:root{--pk-bg: #faf9f7;--pk-surface: #ffffff;--pk-surface-sunken: #f4f2ee;--pk-ink: #1d1b18;--pk-ink-soft: #57534c;--pk-ink-faint: #8f8a82;--pk-line: #e8e4dd;--pk-line-strong: #d8d2c9;--pk-inverse-ink: #faf9f7;--pk-timber: #a97c50;--pk-timber-deep: #8a6238;--pk-timber-tint: #f3ece3;--pk-ok: #3d7a4e;--pk-ok-tint: #e9f2ec;--pk-warn: #9a6b1f;--pk-warn-tint: #f7efdf;--pk-danger: #a8402f;--pk-danger-tint: #f9e9e5;--pk-info-tint: #eef1f4;--pk-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans Hebrew", sans-serif;--pk-text-xs: .75rem;--pk-text-sm: .855rem;--pk-text-md: 1rem;--pk-text-lg: 1.17rem;--pk-text-xl: 1.45rem;--pk-text-2xl: 1.9rem;--pk-text-display: clamp(2.1rem, 5.5vw, 3.4rem);--pk-leading-tight: 1.2;--pk-leading: 1.55;--pk-weight-regular: 400;--pk-weight-medium: 500;--pk-weight-semibold: 600;--pk-weight-bold: 700;--pk-space-1: 4px;--pk-space-2: 8px;--pk-space-3: 12px;--pk-space-4: 16px;--pk-space-5: 20px;--pk-space-6: 24px;--pk-space-8: 32px;--pk-space-10: 40px;--pk-space-12: 48px;--pk-space-16: 64px;--pk-space-20: 80px;--pk-space-24: 96px;--pk-radius-sm: 6px;--pk-radius-md: 10px;--pk-radius-lg: 14px;--pk-radius-xl: 22px;--pk-radius-pill: 999px;--pk-shadow-sm: 0 1px 2px rgba(29, 27, 24, .06);--pk-shadow-md: 0 4px 14px rgba(29, 27, 24, .08);--pk-shadow-lg: 0 12px 32px rgba(29, 27, 24, .12);--pk-ease: cubic-bezier(.2, .8, .2, 1);--pk-dur-fast: .12s;--pk-dur: .2s;--pk-dur-slow: .32s;--pk-focus: #2f5fd0;--pk-control-h: 40px;--pk-control-h-sm: 32px;--pk-control-h-lg: 48px}.pk-app,.pk-page{font-family:var(--pk-font);color:var(--pk-ink);background:var(--pk-bg);line-height:var(--pk-leading);-webkit-font-smoothing:antialiased}.pk-app :focus-visible,.pk-page :focus-visible{outline:2px solid var(--pk-focus);outline-offset:2px;border-radius:var(--pk-radius-sm)}@media(prefers-reduced-motion:reduce){.pk-app *,.pk-page *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.pk-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--pk-space-2);height:var(--pk-control-h);padding-inline:var(--pk-space-5);border-radius:var(--pk-radius-md);border:1px solid transparent;font:inherit;font-size:var(--pk-text-sm);font-weight:var(--pk-weight-semibold);cursor:pointer;white-space:nowrap;transition:background-color var(--pk-dur-fast) var(--pk-ease),border-color var(--pk-dur-fast) var(--pk-ease),color var(--pk-dur-fast) var(--pk-ease),box-shadow var(--pk-dur-fast) var(--pk-ease)}.pk-btn:disabled{opacity:.45;cursor:default}.pk-btn--primary{background:var(--pk-ink);color:var(--pk-inverse-ink)}.pk-btn--primary:hover:not(:disabled){background:#33302b}.pk-btn--outline{background:var(--pk-surface);border-color:var(--pk-line-strong);color:var(--pk-ink)}.pk-btn--outline:hover:not(:disabled){border-color:var(--pk-ink)}.pk-btn--ghost{background:transparent;color:var(--pk-ink)}.pk-btn--ghost:hover:not(:disabled){background:var(--pk-surface-sunken)}.pk-btn--sm{height:var(--pk-control-h-sm);padding-inline:var(--pk-space-3);font-size:var(--pk-text-xs);border-radius:var(--pk-radius-sm)}.pk-btn--lg{height:var(--pk-control-h-lg);padding-inline:var(--pk-space-8);font-size:var(--pk-text-md);border-radius:var(--pk-radius-lg)}.pk-btn.is-active{background:var(--pk-ink);color:var(--pk-inverse-ink);border-color:var(--pk-ink)}.pk-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--pk-control-h);height:var(--pk-control-h);padding:0;border:1px solid transparent;border-radius:var(--pk-radius-md);background:transparent;color:var(--pk-ink);font:inherit;cursor:pointer;transition:background-color var(--pk-dur-fast) var(--pk-ease)}.pk-iconbtn:hover:not(:disabled){background:var(--pk-surface-sunken)}.pk-iconbtn:disabled{opacity:.4;cursor:default}.pk-iconbtn.is-active{background:var(--pk-ink);color:var(--pk-inverse-ink)}.pk-input,.pk-select,.pk-textarea{width:100%;min-height:var(--pk-control-h);padding:var(--pk-space-2) var(--pk-space-3);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-md);background:var(--pk-surface);color:var(--pk-ink);font:inherit;font-size:var(--pk-text-sm);transition:border-color var(--pk-dur-fast) var(--pk-ease)}.pk-input::placeholder,.pk-textarea::placeholder{color:var(--pk-ink-faint)}.pk-input:hover,.pk-textarea:hover{border-color:var(--pk-ink-faint)}.pk-field{display:flex;flex-direction:column;gap:var(--pk-space-1)}.pk-field>.pk-field-label{font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium);color:var(--pk-ink-soft)}.pk-card{background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-sm)}.pk-card--hover{transition:box-shadow var(--pk-dur) var(--pk-ease),transform var(--pk-dur) var(--pk-ease)}.pk-card--hover:hover{box-shadow:var(--pk-shadow-md);transform:translateY(-2px)}.pk-badge{display:inline-flex;align-items:center;gap:var(--pk-space-1);padding:2px var(--pk-space-2);border-radius:var(--pk-radius-pill);font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium);background:var(--pk-surface-sunken);color:var(--pk-ink-soft)}.pk-badge--ok{background:var(--pk-ok-tint);color:var(--pk-ok)}.pk-badge--warn{background:var(--pk-warn-tint);color:var(--pk-warn)}.pk-badge--danger{background:var(--pk-danger-tint);color:var(--pk-danger)}.pk-badge--timber{background:var(--pk-timber-tint);color:var(--pk-timber-deep)}.pk-chip{display:inline-flex;align-items:center;gap:var(--pk-space-2);height:var(--pk-control-h-sm);padding-inline:var(--pk-space-3);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-pill);background:var(--pk-surface);color:var(--pk-ink);font:inherit;font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium);cursor:pointer;transition:background-color var(--pk-dur-fast) var(--pk-ease),border-color var(--pk-dur-fast) var(--pk-ease)}.pk-chip.is-active{background:var(--pk-ink);border-color:var(--pk-ink);color:var(--pk-inverse-ink)}.pk-sheet{position:absolute;background:var(--pk-surface);border:1px solid var(--pk-line);box-shadow:var(--pk-shadow-lg);overflow-y:auto}.pk-sheet--start{inset-block:0;inset-inline-start:0;border-start-end-radius:var(--pk-radius-lg);border-end-end-radius:var(--pk-radius-lg)}.pk-sheet--bottom{inset-inline:0;inset-block-end:0;border-start-start-radius:var(--pk-radius-lg);border-start-end-radius:var(--pk-radius-lg)}.pk-spinner{width:18px;height:18px;border:2px solid var(--pk-line-strong);border-block-start-color:var(--pk-ink);border-radius:50%;animation:pk-spin .8s linear infinite}@keyframes pk-spin{to{transform:rotate(360deg)}}.pk-empty{display:flex;flex-direction:column;align-items:center;gap:var(--pk-space-2);padding:var(--pk-space-10) var(--pk-space-6);text-align:center;color:var(--pk-ink-soft);font-size:var(--pk-text-sm)}.pk-hint{color:var(--pk-ink-soft);font-size:var(--pk-text-sm);line-height:var(--pk-leading)}.pk-divider{border:none;border-block-start:1px solid var(--pk-line);margin-block:var(--pk-space-4)}.pk-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}html,body,#root{height:100%;margin:0}body{font-family:var(--pk-font);color:var(--pk-ink);background:var(--pk-bg)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:var(--pk-space-2);flex-wrap:wrap;padding:var(--pk-space-2) var(--pk-space-4);background:var(--pk-surface);border-block-end:1px solid var(--pk-line)}.topbar-brand{display:flex;align-items:baseline;gap:var(--pk-space-2);margin-inline-end:var(--pk-space-2)}.topbar-group{display:inline-flex;align-items:center;gap:var(--pk-space-1);padding-inline:var(--pk-space-2);border-inline-start:1px solid var(--pk-line)}.topbar-spacer{flex:1}.snap-control{display:inline-flex;align-items:center;gap:var(--pk-space-1);font-size:var(--pk-text-sm);color:var(--pk-ink-soft)}.snap-step{width:64px;min-height:var(--pk-control-h-sm);padding:2px var(--pk-space-2);text-align:end}.snap-unit{color:var(--pk-ink-faint);font-size:var(--pk-text-xs)}.lang-switch{min-width:36px;height:var(--pk-control-h-sm);padding-inline:var(--pk-space-2);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-pill);background:var(--pk-surface);color:var(--pk-ink);font:inherit;font-size:var(--pk-text-xs);font-weight:var(--pk-weight-semibold);cursor:pointer}.lang-switch:hover{border-color:var(--pk-ink)}.build-status{display:inline-flex;align-items:center;gap:var(--pk-space-1);margin:0;padding:2px var(--pk-space-3);border-radius:var(--pk-radius-pill);font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium);white-space:nowrap}.build-status.ok{background:var(--pk-ok-tint);color:var(--pk-ok)}.build-status.blocked{background:var(--pk-warn-tint);color:var(--pk-warn)}.workspace{position:relative;display:flex;flex:1;min-height:0}.viewport{position:relative;flex:1;min-width:0}.scene-container{position:absolute;top:0;right:0;bottom:0;left:0}.sidebar{width:300px;overflow-y:auto;padding:var(--pk-space-4);background:var(--pk-surface);border-inline-start:1px solid var(--pk-line)}.catalog-panel{width:264px;overflow-y:auto;padding:var(--pk-space-4);background:var(--pk-surface);border-inline-end:1px solid var(--pk-line)}.catalog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--pk-space-2);margin-block-end:var(--pk-space-3)}.catalog-header h2{margin:0;font-size:var(--pk-text-md)}.catalog-section{margin-block-end:var(--pk-space-5)}.catalog-section h3{margin:0 0 var(--pk-space-2);font-size:var(--pk-text-xs);font-weight:var(--pk-weight-semibold);color:var(--pk-ink-soft);text-transform:uppercase;letter-spacing:.06em}.catalog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--pk-space-2)}.catalog-item{display:flex;align-items:center;gap:var(--pk-space-2);width:100%;padding:var(--pk-space-2);border:1px solid var(--pk-line);border-radius:var(--pk-radius-md);background:var(--pk-surface);font:inherit;font-size:var(--pk-text-sm);text-align:start;cursor:pointer;transition:border-color var(--pk-dur-fast) var(--pk-ease),box-shadow var(--pk-dur-fast) var(--pk-ease)}.catalog-item:hover{border-color:var(--pk-ink);box-shadow:var(--pk-shadow-sm)}.catalog-item-swatch{flex:none;width:28px;height:28px;border-radius:var(--pk-radius-sm)}.catalog-item-swatch--wood{background:linear-gradient(135deg,#c69a6d,#a97c50)}.catalog-item-swatch--metal{background:linear-gradient(135deg,#4a4642,#2c2926)}.catalog-item-name{flex:1;min-width:0}.catalog-item-plus{color:var(--pk-ink-faint);font-size:var(--pk-text-lg);line-height:1}.catalog-structures{width:100%}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:var(--pk-space-3);margin-block-end:var(--pk-space-3)}.sheet-header h2{margin:0;font-size:var(--pk-text-lg)}.cloud-panel,.template-panel{position:absolute;inset-block-start:var(--pk-space-3);inset-inline-start:var(--pk-space-3);width:min(380px,calc(100% - 2 * var(--pk-space-3)));max-height:calc(100% - 2 * var(--pk-space-3));overflow-y:auto;padding:var(--pk-space-4);background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-lg);z-index:12}.finish-sheet{position:absolute;inset-block:var(--pk-space-3);inset-inline-end:var(--pk-space-3);width:min(440px,calc(100% - 2 * var(--pk-space-3)));overflow-y:auto;padding:var(--pk-space-4);background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-lg);z-index:12}.template-choice{display:flex;flex-wrap:wrap;gap:var(--pk-space-2);margin-block-end:var(--pk-space-3)}.template-apply{width:100%;margin-block-start:var(--pk-space-2)}.panel h2{margin:0 0 var(--pk-space-2);font-size:var(--pk-text-md)}.panel-section{margin-block-end:var(--pk-space-4)}.panel-section h3{margin:0 0 var(--pk-space-2);font-size:var(--pk-text-sm);font-weight:var(--pk-weight-semibold)}.panel-section h4{margin:var(--pk-space-3) 0 var(--pk-space-1);font-size:var(--pk-text-sm)}.readonly-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--pk-space-3);padding-block:3px;font-size:var(--pk-text-sm);color:var(--pk-ink-soft)}.connection-row{display:flex;align-items:center;justify-content:space-between;gap:var(--pk-space-2);padding-block:var(--pk-space-1);font-size:var(--pk-text-sm)}.connection-row-actions{display:inline-flex;gap:var(--pk-space-1);flex-wrap:wrap;justify-content:flex-end}.number-field{display:flex;align-items:center;justify-content:space-between;gap:var(--pk-space-2);margin-block-end:var(--pk-space-2)}.number-field-label{font-size:var(--pk-text-sm);color:var(--pk-ink-soft)}.number-field-input{display:inline-flex;align-items:center;gap:var(--pk-space-1)}.number-field-input input{width:96px;min-height:var(--pk-control-h-sm);padding:2px var(--pk-space-2);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-sm);background:var(--pk-surface);font:inherit;font-size:var(--pk-text-sm);text-align:end}.number-field-suffix{color:var(--pk-ink-faint);font-size:var(--pk-text-xs);min-width:22px}.shortcuts{margin:0;font-size:var(--pk-text-xs);color:var(--pk-ink-soft)}.shortcuts div{display:flex;justify-content:space-between;gap:var(--pk-space-3);padding-block:2px}.shortcuts dt{font-family:ui-monospace,monospace;direction:ltr}.shortcuts dd{margin:0}.project-name{width:160px}button.danger,.pk-btn.danger{color:var(--pk-danger);border-color:var(--pk-danger);background:var(--pk-surface)}button.danger:hover:not(:disabled){background:var(--pk-danger-tint)}.connect-overlay{position:absolute;inset-block-start:var(--pk-space-3);inset-inline-start:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--pk-space-2);max-width:min(680px,calc(100% - 24px));padding:var(--pk-space-2) var(--pk-space-4);background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-pill);box-shadow:var(--pk-shadow-md);font-size:var(--pk-text-sm);z-index:11}[dir=rtl] .connect-overlay{transform:translate(50%)}.connect-error{color:var(--pk-danger)}.issue-list{list-style:none;margin:var(--pk-space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--pk-space-1)}.issue-row{display:flex;align-items:center;gap:var(--pk-space-2)}.issue-row .issue{flex:1;min-width:0}.issue{display:flex;align-items:center;gap:var(--pk-space-2);width:100%;padding:var(--pk-space-1) var(--pk-space-2);border:none;border-radius:var(--pk-radius-sm);background:transparent;font:inherit;font-size:var(--pk-text-sm);text-align:start;cursor:pointer}.issue:hover{background:var(--pk-surface-sunken)}.issue-dot{flex:none;width:8px;height:8px;border-radius:50%}.issue-error .issue-dot{background:var(--pk-danger)}.issue-warning .issue-dot{background:var(--pk-warn)}.issue-info .issue-dot{background:var(--pk-ink-faint)}.issue-text{flex:1}.issue-count{flex:none;min-width:20px;text-align:center;border-radius:var(--pk-radius-pill);background:var(--pk-surface-sunken);color:var(--pk-ink-soft);font-size:var(--pk-text-xs)}.blocking-list{margin:var(--pk-space-2) 0;padding-inline-start:18px;color:var(--pk-warn);font-size:var(--pk-text-sm);line-height:var(--pk-leading)}.materials-table{width:100%;border-collapse:collapse;font-size:var(--pk-text-sm)}.materials-table td{padding:var(--pk-space-1) 0;border-block-end:1px solid var(--pk-line)}.materials-table .quantity{text-align:center;white-space:nowrap}.kerf-control{display:flex;align-items:center;gap:var(--pk-space-2);margin-block-end:var(--pk-space-1);font-size:var(--pk-text-sm)}.kerf-control input{width:72px;min-height:var(--pk-control-h-sm);padding:2px var(--pk-space-2);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-sm);font:inherit;text-align:end}.cut-plan{margin-block-start:var(--pk-space-3);padding-block-start:var(--pk-space-2);border-block-start:1px solid var(--pk-line)}.cut-plan h4{margin:0 0 var(--pk-space-1);font-size:var(--pk-text-sm)}.bar-list{margin:var(--pk-space-1) 0 0;padding-inline-start:20px;font-size:var(--pk-text-xs);line-height:1.7}.offcut{color:var(--pk-ink-faint)}.order-section{margin-block-start:var(--pk-space-4);padding-block-start:var(--pk-space-3);border-block-start:1px solid var(--pk-line)}.quote-table td{padding:var(--pk-space-1) 0}.quote-table .line-unavailable td{background:var(--pk-danger-tint)}.quote-total{margin-block-start:var(--pk-space-2);padding-block-start:var(--pk-space-2);border-block-start:1px solid var(--pk-line);font-weight:var(--pk-weight-semibold);color:var(--pk-ink)}.cloud-signin{display:flex;align-items:flex-end;gap:var(--pk-space-2);margin-block:var(--pk-space-3)}.cloud-signin .number-field{flex:1;margin-block-end:0}.cloud-signin .number-field-input,.cloud-signin input{width:100%}.cloud-actions{display:flex;flex-wrap:wrap;gap:var(--pk-space-2);margin-block:var(--pk-space-2)}.cloud-project-list{list-style:none;margin:0;padding:0}.cloud-project-list li{display:flex;align-items:center;gap:var(--pk-space-2);padding-block:var(--pk-space-1);border-block-end:1px solid var(--pk-line)}.cloud-project-list li.current .cloud-project-open{font-weight:var(--pk-weight-semibold)}.cloud-project-open{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--pk-space-1) var(--pk-space-2);border:none;border-radius:var(--pk-radius-sm);background:transparent;font:inherit;font-size:var(--pk-text-sm);text-align:start;cursor:pointer}.cloud-project-open:hover{background:var(--pk-surface-sunken)}.cloud-project-meta{color:var(--pk-ink-faint);font-size:var(--pk-text-xs)}.guide-label{padding:2px var(--pk-space-2);border-radius:var(--pk-radius-pill);background:var(--pk-timber-tint);color:var(--pk-timber-deep);font-size:var(--pk-text-xs);font-weight:var(--pk-weight-semibold);white-space:nowrap;box-shadow:var(--pk-shadow-sm)}.dimension-label{padding:2px var(--pk-space-3);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-pill);background:var(--pk-surface);color:var(--pk-ink);font:inherit;font-size:var(--pk-text-sm);font-weight:var(--pk-weight-semibold);white-space:nowrap;box-shadow:var(--pk-shadow-sm);cursor:pointer}.dimension-label:disabled{cursor:default;color:var(--pk-ink-soft)}.dimension-label:hover:not(:disabled){border-color:var(--pk-ink)}.dimension-input{width:96px;padding:2px var(--pk-space-2);border:1px solid var(--pk-focus);border-radius:var(--pk-radius-sm);background:var(--pk-surface);font:inherit;font-size:var(--pk-text-sm);text-align:center}.socket-chip{display:flex;align-items:center;gap:var(--pk-space-1);padding:var(--pk-space-1);background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-pill);box-shadow:var(--pk-shadow-md);white-space:nowrap}.socket-chip-close{width:24px;height:24px;border:none;border-radius:50%;background:transparent;color:var(--pk-ink-faint);font:inherit;font-size:var(--pk-text-md);line-height:1;cursor:pointer}.socket-chip-close:hover{color:var(--pk-ink)}.assistant-launcher{position:absolute;inset-block-end:var(--pk-space-4);inset-inline-end:var(--pk-space-4);display:inline-flex;align-items:center;gap:var(--pk-space-2);height:var(--pk-control-h);padding-inline:var(--pk-space-4);border:1px solid var(--pk-line);border-radius:var(--pk-radius-pill);background:var(--pk-surface);color:var(--pk-ink);font:inherit;font-size:var(--pk-text-sm);font-weight:var(--pk-weight-medium);box-shadow:var(--pk-shadow-md);cursor:pointer;z-index:11;transition:box-shadow var(--pk-dur) var(--pk-ease)}.assistant-launcher:hover{box-shadow:var(--pk-shadow-lg)}.assistant-panel{position:absolute;inset-block-end:var(--pk-space-3);inset-inline-end:var(--pk-space-3);display:flex;flex-direction:column;width:min(400px,calc(100% - 2 * var(--pk-space-3)));max-height:min(560px,calc(100% - 2 * var(--pk-space-3)));padding:var(--pk-space-4);background:var(--pk-surface);border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-lg);z-index:12}.assistant-conversation{flex:1 1 auto;min-height:60px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--pk-space-2);margin-block-end:var(--pk-space-3)}.assistant-turn{margin:0;padding:var(--pk-space-2) var(--pk-space-3);border-radius:var(--pk-radius-lg);font-size:var(--pk-text-sm);line-height:var(--pk-leading);max-width:90%}.assistant-turn-user{align-self:flex-start;background:var(--pk-ink);color:var(--pk-inverse-ink)}.assistant-turn-assistant{align-self:flex-end;background:var(--pk-surface-sunken);color:var(--pk-ink)}.assistant-busy{color:var(--pk-ink-faint);font-style:italic}.assistant-proposal{margin-block-end:var(--pk-space-3);padding:var(--pk-space-3);background:var(--pk-timber-tint);border:1px solid var(--pk-line-strong);border-radius:var(--pk-radius-md)}.assistant-proposal h3{margin:0 0 var(--pk-space-1);font-size:var(--pk-text-sm)}.assistant-proposal-summary{margin:0 0 var(--pk-space-1);font-size:var(--pk-text-sm);font-weight:var(--pk-weight-semibold)}.assistant-proposal-validation{margin:0 0 var(--pk-space-2);font-size:var(--pk-text-xs);color:var(--pk-ink-soft)}.assistant-proposal-actions{display:flex;gap:var(--pk-space-2)}.assistant-input{display:flex;align-items:flex-end;gap:var(--pk-space-2);flex-wrap:wrap}.assistant-context{flex-basis:100%}.assistant-input textarea{flex:1;resize:none;min-height:0}.welcome-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--pk-space-4);background:#1d1b1873;z-index:30}.welcome{width:min(560px,100%);max-height:100%;overflow-y:auto;padding:var(--pk-space-6);background:var(--pk-surface);border-radius:var(--pk-radius-xl);box-shadow:var(--pk-shadow-lg)}.welcome h2{margin:0 0 var(--pk-space-3);font-size:var(--pk-text-xl)}.welcome p{color:var(--pk-ink-soft);line-height:var(--pk-leading)}.welcome-steps{margin:var(--pk-space-4) 0 var(--pk-space-5);padding-inline-start:20px;line-height:1.7;color:var(--pk-ink-soft)}.welcome-actions{display:flex;flex-wrap:wrap;gap:var(--pk-space-2)}.scene-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;gap:var(--pk-space-2);padding:var(--pk-space-6);background:var(--pk-surface-sunken);text-align:center}.scene-error h2{margin:0;font-size:var(--pk-text-lg)}.scene-error button{align-self:center;margin-block-start:var(--pk-space-2)}@media(max-width:900px){.workspace{flex-direction:column}.viewport{flex:1 1 55vh;min-height:45vh}.sidebar,.catalog-panel,.cloud-panel,.template-panel,.finish-sheet,.assistant-panel{box-sizing:border-box}.sidebar{width:100%;max-height:45vh;border-inline-start:none;border-block-start:1px solid var(--pk-line)}.catalog-panel{position:absolute;inset:auto 0 0 0;width:100%;max-height:60vh;border-inline-end:none;border-block-start:1px solid var(--pk-line);border-radius:var(--pk-radius-lg) var(--pk-radius-lg) 0 0;box-shadow:var(--pk-shadow-lg);z-index:13}.cloud-panel,.template-panel,.finish-sheet,.assistant-panel{inset:auto 0 0 0;width:100%;max-height:80vh;border-radius:var(--pk-radius-lg) var(--pk-radius-lg) 0 0;border-inline:none;border-block-end:none}.connect-overlay{inset-inline:var(--pk-space-2);inset-inline-start:auto;transform:none;max-width:none;flex-wrap:wrap;justify-content:center;border-radius:var(--pk-radius-lg)}[dir=rtl] .connect-overlay{transform:none}.topbar .pk-btn--sm,.pk-iconbtn,.panel .pk-btn,.catalog-item{min-height:40px}.number-field-input input{min-height:40px;width:110px}.topbar{gap:var(--pk-space-1);padding:var(--pk-space-1) var(--pk-space-2)}.topbar-group{padding-inline:var(--pk-space-1)}.build-status{display:none}}@media(max-width:600px){.topbar{flex-wrap:nowrap;overflow-x:auto}}.catalog-dev>summary{cursor:pointer;list-style:none;padding:4px 0}.catalog-dev>summary::-webkit-details-marker{display:none}.catalog-item .pk-badge{margin-inline-start:auto;font-size:11px}.app--shot .topbar,.app--shot .sidebar,.app--shot .catalog-panel,.app--shot .assistant-launcher,.app--shot .dimension-label,.app--shot .skip-link,.app--shot .icon-rail,.app--shot .edit-toolbar,.app--shot .viewport-topbar,.app--shot .view-cluster,.app--shot .structures-strip{display:none!important}.app--shot .viewport{top:0;right:0;bottom:0;left:0}.view-toolbar{position:absolute;top:12px;inset-inline-start:12px;display:flex;gap:6px;z-index:5}.view-toolbar .pk-btn{background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app--shot .view-toolbar{display:none!important}.topbar{flex-wrap:nowrap;gap:var(--pk-space-4);min-height:56px;padding-inline:var(--pk-space-5)}.topbar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:0;text-decoration:none;color:var(--pk-ink);line-height:1.15;direction:ltr;flex:none}.topbar-logo{display:block;height:24px;width:auto}.topbar-back{color:var(--pk-ink-soft);text-decoration:none;font-size:var(--pk-text-sm);padding-inline:var(--pk-space-3);border-inline-start:1px solid var(--pk-line)}.topbar-back:hover{color:var(--pk-ink)}.topbar-tabs{display:flex;gap:var(--pk-space-2)}.topbar-tabs button{border:none;background:none;font:inherit;font-size:var(--pk-text-sm);font-weight:var(--pk-weight-medium);color:var(--pk-ink-soft);padding:var(--pk-space-2) var(--pk-space-3);border-radius:var(--pk-radius-md);border-block-end:2px solid transparent;cursor:pointer}.topbar-tabs button:hover{color:var(--pk-ink);background:var(--pk-surface-sunken)}.topbar-tabs button.is-current{color:var(--pk-ink);font-weight:var(--pk-weight-semibold);border-block-end-color:var(--pk-ink);border-end-start-radius:0;border-end-end-radius:0}.icon-rail{display:flex;flex-direction:column;align-items:center;gap:var(--pk-space-2);width:68px;padding-block:var(--pk-space-3);background:var(--pk-surface);border-inline-end:1px solid var(--pk-line)}.rail-btn{display:flex;flex-direction:column;align-items:center;gap:4px;width:56px;padding-block:var(--pk-space-2);border:1px solid transparent;border-radius:var(--pk-radius-md);background:none;color:var(--pk-ink-soft);font:inherit;font-size:.62rem;font-weight:var(--pk-weight-medium);cursor:pointer;transition:background-color var(--pk-dur-fast) var(--pk-ease)}.rail-btn:hover{background:var(--pk-surface-sunken);color:var(--pk-ink)}.rail-btn.is-active{background:var(--pk-ink);color:var(--pk-inverse-ink)}.edit-toolbar{position:absolute;top:var(--pk-space-3);inset-inline-start:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--pk-space-1);padding:var(--pk-space-1) var(--pk-space-2);background:#fffffff5;border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-md);z-index:8}[dir=rtl] .edit-toolbar{transform:translate(50%)}.edit-tool{display:inline-flex;align-items:center;gap:var(--pk-space-2);height:var(--pk-control-h-sm);padding-inline:var(--pk-space-3);border:none;border-radius:var(--pk-radius-md);background:none;color:var(--pk-ink);font:inherit;font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium);cursor:pointer;white-space:nowrap}.edit-tool:hover:not(:disabled){background:var(--pk-surface-sunken)}.edit-tool.is-active{background:var(--pk-ink);color:var(--pk-inverse-ink)}.edit-tool:disabled{opacity:.4;cursor:default}.edit-toolbar-divider{width:1px;height:22px;background:var(--pk-line);margin-inline:var(--pk-space-1)}.edit-toolbar .snap-step{width:56px}.viewport-topbar{position:absolute;top:var(--pk-space-3);inset-inline-end:var(--pk-space-3);display:flex;align-items:center;gap:var(--pk-space-2);z-index:8}.units-chip{display:inline-flex;align-items:center;height:var(--pk-control-h-sm);padding-inline:var(--pk-space-3);border:1px solid var(--pk-line);border-radius:var(--pk-radius-md);background:#fffffff5;color:var(--pk-ink-soft);font-size:var(--pk-text-xs);font-weight:var(--pk-weight-medium)}.viewmode{display:inline-flex;border:1px solid var(--pk-line);border-radius:var(--pk-radius-md);background:#fffffff5;overflow:hidden}.viewmode button{border:none;background:none;font:inherit;font-size:var(--pk-text-xs);font-weight:var(--pk-weight-semibold);color:var(--pk-ink-soft);height:var(--pk-control-h-sm);padding-inline:var(--pk-space-3);cursor:pointer}.viewmode button:hover{background:var(--pk-surface-sunken);color:var(--pk-ink)}.view-cluster{position:absolute;inset-inline-end:var(--pk-space-3);top:50%;transform:translateY(-60%);display:flex;flex-direction:column;gap:var(--pk-space-3);z-index:8}.view-stack{display:flex;flex-direction:column;background:#fffffff5;border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-sm);overflow:hidden}.view-stack button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:62px;padding:var(--pk-space-2);border:none;background:none;color:var(--pk-ink-soft);font:inherit;font-size:.6rem;font-weight:var(--pk-weight-medium);cursor:pointer}.view-stack button+button{border-block-start:1px solid var(--pk-line)}.view-stack button:hover{background:var(--pk-surface-sunken);color:var(--pk-ink)}.catalog-panel{width:292px}.catalog-search{margin-block-end:var(--pk-space-3);min-height:var(--pk-control-h-sm)}.catalog-chips{display:flex;flex-wrap:wrap;gap:var(--pk-space-1);margin-block-end:var(--pk-space-4)}.catalog-chips .pk-chip{height:26px;padding-inline:var(--pk-space-2)}.catalog-grid{list-style:none;margin:0 0 var(--pk-space-5);padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--pk-space-2)}.catalog-card{position:relative;display:flex;flex-direction:column;width:100%;padding:0;border:1px solid var(--pk-line);border-radius:var(--pk-radius-md);background:var(--pk-surface);font:inherit;text-align:start;cursor:pointer;overflow:hidden;transition:border-color var(--pk-dur-fast) var(--pk-ease),box-shadow var(--pk-dur-fast) var(--pk-ease)}.catalog-card:hover{border-color:var(--pk-ink);box-shadow:var(--pk-shadow-sm)}.catalog-card-media{display:block;aspect-ratio:1;background:var(--pk-surface-sunken)}.catalog-card-media img{width:100%;height:100%;object-fit:contain;display:block}.catalog-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--pk-space-2)}.catalog-card-title{font-size:var(--pk-text-xs);font-weight:var(--pk-weight-semibold)}.catalog-card-sub{font-size:.62rem;color:var(--pk-ink-faint)}.catalog-card-body .pk-badge{font-size:.58rem;padding-block:0}.catalog-card-plus{position:absolute;inset-block-start:var(--pk-space-2);inset-inline-end:var(--pk-space-2);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--pk-surface);border:1px solid var(--pk-line-strong);color:var(--pk-ink)}.catalog-card:hover .catalog-card-plus{background:var(--pk-ink);border-color:var(--pk-ink);color:var(--pk-inverse-ink)}.catalog-none{margin-block-end:var(--pk-space-4)}.structures-strip{position:absolute;inset-block-end:var(--pk-space-3);inset-inline-start:50%;transform:translate(-50%);width:min(92%,900px);background:#fffffff7;border:1px solid var(--pk-line);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-md);z-index:9}[dir=rtl] .structures-strip{transform:translate(50%)}.structures-strip-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--pk-space-2) var(--pk-space-4);border:none;background:none;font:inherit;font-size:var(--pk-text-sm);font-weight:var(--pk-weight-semibold);color:var(--pk-ink);cursor:pointer}.structures-strip-head .chevron-up{transform:rotate(180deg)}.structures-cards{display:flex;gap:var(--pk-space-3);padding:0 var(--pk-space-4) var(--pk-space-3);overflow-x:auto}.structure-card{flex:none;display:flex;flex-direction:column;width:132px;padding:0;border:1px solid var(--pk-line);border-radius:var(--pk-radius-md);background:var(--pk-surface);font:inherit;cursor:pointer;overflow:hidden;transition:border-color var(--pk-dur-fast) var(--pk-ease),box-shadow var(--pk-dur-fast) var(--pk-ease)}.structure-card:hover{border-color:var(--pk-ink);box-shadow:var(--pk-shadow-sm)}.structure-card-media{display:block;height:76px;background:var(--pk-surface-sunken)}.structure-card-media img{width:100%;height:100%;object-fit:cover;display:block}.structure-card-name{padding:var(--pk-space-1) var(--pk-space-2) var(--pk-space-2);font-size:.66rem;font-weight:var(--pk-weight-medium);color:var(--pk-ink);text-align:start}.assistant-launcher{inset-block-end:132px}.connect-overlay{top:60px}@media(max-width:900px){.icon-rail{display:none}.edit-toolbar{max-width:94%;overflow-x:auto}.edit-tool span,.view-cluster{display:none}.structures-strip{width:96%}.assistant-launcher{inset-block-end:64px}}.snap-chip{gap:var(--pk-space-2);color:var(--pk-ink)}.snap-chip .snap-step{width:52px;min-height:22px;padding-block:0}.structure-card-media img{object-fit:contain}.edit-toolbar{inset-inline-start:var(--pk-space-3);transform:none}[dir=rtl] .edit-toolbar{transform:none}.assistant-launcher{inset-block-end:216px}@media(max-width:900px){.assistant-launcher{inset-block-end:64px}}.viewport-topbar{flex-direction:column;align-items:flex-end}@media(max-width:900px){.icon-rail{display:flex;width:48px}.rail-btn{width:40px}.rail-btn span{display:none}.catalog-panel{position:absolute;inset-block:0;inset-inline-start:48px;z-index:14;width:min(320px,86vw);box-shadow:var(--pk-shadow-lg)}}@media(max-width:900px){.topbar-back,.topbar-tabs{display:none}.topbar{gap:var(--pk-space-2);padding-inline:var(--pk-space-3)}}.viewport-topbar{top:64px}.guide-coach{position:absolute;inset-block-end:232px;inset-inline-start:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--pk-space-4);max-width:min(88%,560px);padding:var(--pk-space-3) var(--pk-space-4);background:var(--pk-ink);color:var(--pk-inverse-ink);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow-lg);z-index:9}[dir=rtl] .guide-coach{transform:translate(50%)}.guide-coach-body strong{display:block;font-size:var(--pk-text-xs);letter-spacing:.04em;opacity:.75;margin-block-end:2px}.guide-coach-body p{margin:0;font-size:var(--pk-text-sm);line-height:var(--pk-leading)}.guide-coach-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--pk-space-1);flex:none}.guide-coach-actions .pk-btn{background:var(--pk-inverse-ink);color:var(--pk-ink)}.guide-coach-off{border:none;background:none;color:var(--pk-inverse-ink);opacity:.6;font:inherit;font-size:var(--pk-text-xs);cursor:pointer;padding:0}.guide-coach-off:hover{opacity:1;text-decoration:underline}.rail-spacer{flex:1}.app--shot .guide-coach{display:none!important}@media(max-width:900px){.guide-coach{inset-block-end:96px;max-width:94%}}.guide-coach{pointer-events:none}.guide-coach .pk-btn,.guide-coach .guide-coach-off{pointer-events:auto}.sheet-actions{display:flex;gap:var(--pk-space-1)}@media print{body *{visibility:hidden}.finish-sheet,.finish-sheet *{visibility:visible}.finish-sheet{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;overflow:visible;border:0;border-radius:0;box-shadow:none}.finish-sheet .pk-btn,.finish-sheet .kerf-control{display:none!important}}
