:root{--color-text-strong:#172033;--color-text-base:#1d2433;--color-text-muted:#64748b;--color-text-soft:#475569;--color-text-accent:#1f6f78;--color-text-danger:#b91c1c;--color-text-danger-strong:#dc2626;--color-text-warning:#c15f00;--color-text-primary:#1d4ed8;--color-text-success:#15803d;--color-text-violet:#7c3aed;--color-text-cyan:#0e7490;--color-text-on-accent:#fff;--color-text-brand:#242725;--color-bg-app:#eef1f4;--color-bg-page:#fbfcfd;--color-bg-panel:#f8fafc;--color-bg-subtle:#f5f7fa;--color-bg-card:#fff;--color-bg-accent:#e9f7f7;--color-bg-accent-soft:#edf2f7;--color-bg-accent-strong:#1f6f78;--color-bg-accent-hover:#175c64;--color-bg-danger-strong:#c2410c;--color-bg-success-strong:#15803d;--color-bg-warning-soft:#fef2f2;--color-bg-warning-light:#fee2e2;--color-bg-warning:#fffbeb;--color-bg-success:#f0fdf4;--color-bg-primary:#eff6ff;--color-bg-violet:#f5f3ff;--color-bg-cyan:#eef5f7;--color-bg-grid:#eef2f6;--color-border:#d9dee6;--color-border-soft:#dbe2ea;--color-border-muted:#cbd3dd;--color-border-strong:#d4dbe4;--color-border-danger:#efb4b4;--color-shadow-rgb:15 23 42;--color-shadow-accent-rgb:31 111 120;--color-surface-rgb:255 255 255;--color-panel-rgb:248 250 252;--color-warning-rgb:255 251 235;--color-primary-rgb:59 130 246;--color-violet-rgb:148 55 255;--color-cyan-rgb:0 168 157;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--drawing-source-filter:none;--drawing-paper-background:#fff;--drawing-paper-foreground:var(--color-text-strong);--drawing-paper-muted:var(--color-text-muted);--drawing-paper-border:var(--color-border);--drawing-tooltip-surface-rgb:var(--color-surface-rgb);--drawing-tooltip-foreground:var(--color-text-strong);--drawing-tooltip-muted:var(--color-text-muted);--drawing-tooltip-warning:var(--color-text-warning);--drawing-tooltip-danger:var(--color-text-danger);--drawing-tooltip-shadow-rgb:var(--color-shadow-rgb)}:root[data-theme=dark]{--color-text-strong:#e7edf5;--color-text-base:#d7e0eb;--color-text-muted:#9eacc0;--color-text-soft:#b9c5d5;--color-text-accent:#83d3da;--color-text-danger:#ff9aa5;--color-text-danger-strong:#ffa6ad;--color-text-warning:#f5c27c;--color-text-primary:#a3bfff;--color-text-success:#8cdda9;--color-text-violet:#c7a9fa;--color-text-cyan:#87d6e6;--color-text-brand:#edf3ef;--color-bg-app:#0f151f;--color-bg-page:#121b27;--color-bg-panel:#162130;--color-bg-subtle:#1c2939;--color-bg-card:#192534;--color-bg-accent:#1b363c;--color-bg-accent-soft:#213244;--color-bg-accent-strong:#286e78;--color-bg-accent-hover:#337f89;--color-bg-danger-strong:#a0412f;--color-bg-success-strong:#256b45;--color-bg-warning-soft:#39232c;--color-bg-warning-light:#4a2934;--color-bg-warning:#392e20;--color-bg-success:#1c362a;--color-bg-primary:#20324d;--color-bg-violet:#302641;--color-bg-cyan:#19343c;--color-bg-grid:#111b28;--color-border:#2b394b;--color-border-soft:#253344;--color-border-muted:#394b61;--color-border-strong:#3e5066;--color-border-danger:#80505d;--color-shadow-rgb:0 0 0;--color-shadow-accent-rgb:131 211 218;--color-surface-rgb:25 37 52;--color-panel-rgb:22 33 48;--color-warning-rgb:57 46 32;--color-primary-rgb:163 191 255;--color-violet-rgb:199 169 250;--color-cyan-rgb:112 212 201;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--drawing-source-filter:invert(.9) hue-rotate(180deg);--drawing-paper-background:#1a1a1a}.layer-preview-surface,.board-preview-surface,.drawing-print-sheet,.mobile-viewer-stage,.variant-sync-preview-stage,.project-pdf-page,.estimate-quote-document{--color-text-strong:#172033;--color-text-base:#1d2433;--color-text-muted:#64748b;--color-text-soft:#475569;--color-text-accent:#1f6f78;--color-text-danger:#b91c1c;--color-text-danger-strong:#dc2626;--color-text-warning:#c15f00;--color-text-primary:#1d4ed8;--color-text-success:#15803d;--color-text-violet:#7c3aed;--color-text-cyan:#0e7490;--color-text-on-accent:#fff;--color-text-brand:#242725;--color-bg-app:#eef1f4;--color-bg-page:#fbfcfd;--color-bg-panel:#f8fafc;--color-bg-subtle:#f5f7fa;--color-bg-card:#fff;--color-bg-accent:#e9f7f7;--color-bg-accent-soft:#edf2f7;--color-bg-accent-strong:#1f6f78;--color-bg-accent-hover:#175c64;--color-bg-danger-strong:#c2410c;--color-bg-success-strong:#15803d;--color-bg-warning-soft:#fef2f2;--color-bg-warning-light:#fee2e2;--color-bg-warning:#fffbeb;--color-bg-success:#f0fdf4;--color-bg-primary:#eff6ff;--color-bg-violet:#f5f3ff;--color-bg-cyan:#eef5f7;--color-bg-grid:#eef2f6;--color-border:#d9dee6;--color-border-soft:#dbe2ea;--color-border-muted:#cbd3dd;--color-border-strong:#d4dbe4;--color-border-danger:#efb4b4;--color-shadow-rgb:15 23 42;--color-shadow-accent-rgb:31 111 120;--color-surface-rgb:255 255 255;--color-panel-rgb:248 250 252;--color-warning-rgb:255 251 235;--color-primary-rgb:59 130 246;--color-violet-rgb:148 55 255;--color-cyan-rgb:0 168 157;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text-base)}@media screen{:is(.canvas-stage,.mobile-viewer-viewport,.variant-sync-preview-viewport) :is(.layer-preview-surface,.board-preview-surface,.drawing-print-sheet,.mobile-viewer-stage,.variant-sync-preview-stage){background-color:var(--drawing-paper-background);border-color:var(--drawing-paper-border)}:is(.canvas-stage,.mobile-viewer-viewport,.variant-sync-preview-viewport) :is(.layer-preview-image,.source-plan,.floor-plan,.mobile-viewer-image,.variant-sync-preview-image){filter:var(--drawing-source-filter)}:is(.canvas-stage,.mobile-viewer-viewport,.variant-sync-preview-viewport) .circuit-annotation-tooltip{--color-surface-rgb:var(--drawing-tooltip-surface-rgb);--color-text-strong:var(--drawing-tooltip-foreground);--color-text-muted:var(--drawing-tooltip-muted);--color-text-warning:var(--drawing-tooltip-warning);--color-text-danger:var(--drawing-tooltip-danger);--color-shadow-rgb:var(--drawing-tooltip-shadow-rgb)}.canvas-stage .drawing-print-sheet-header{color:var(--drawing-paper-muted);border-color:var(--drawing-paper-border)}.canvas-stage .drawing-print-sheet-header h2{color:var(--drawing-paper-foreground)}}@media print{:root,:root[data-theme]{--color-text-strong:#172033;--color-text-base:#1d2433;--color-text-muted:#64748b;--color-text-soft:#475569;--color-text-accent:#1f6f78;--color-text-danger:#b91c1c;--color-text-danger-strong:#dc2626;--color-text-warning:#c15f00;--color-text-primary:#1d4ed8;--color-text-success:#15803d;--color-text-violet:#7c3aed;--color-text-cyan:#0e7490;--color-text-on-accent:#fff;--color-text-brand:#242725;--color-bg-app:#eef1f4;--color-bg-page:#fbfcfd;--color-bg-panel:#f8fafc;--color-bg-subtle:#f5f7fa;--color-bg-card:#fff;--color-bg-accent:#e9f7f7;--color-bg-accent-soft:#edf2f7;--color-bg-accent-strong:#1f6f78;--color-bg-accent-hover:#175c64;--color-bg-danger-strong:#c2410c;--color-bg-success-strong:#15803d;--color-bg-warning-soft:#fef2f2;--color-bg-warning-light:#fee2e2;--color-bg-warning:#fffbeb;--color-bg-success:#f0fdf4;--color-bg-primary:#eff6ff;--color-bg-violet:#f5f3ff;--color-bg-cyan:#eef5f7;--color-bg-grid:#eef2f6;--color-border:#d9dee6;--color-border-soft:#dbe2ea;--color-border-muted:#cbd3dd;--color-border-strong:#d4dbe4;--color-border-danger:#efb4b4;--color-shadow-rgb:15 23 42;--color-shadow-accent-rgb:31 111 120;--color-surface-rgb:255 255 255;--color-panel-rgb:248 250 252;--color-warning-rgb:255 251 235;--color-primary-rgb:59 130 246;--color-violet-rgb:148 55 255;--color-cyan-rgb:0 168 157;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root{--app-scale:.72;--app-viewport-height:calc(100dvh / var(--app-scale));--ui-scale:1;--ui-font-scale:1;zoom:var(--app-scale);color:var(--color-text-base);background:var(--color-bg-app);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}@media print{:root{--app-scale:1;zoom:1}}@media (width<=600px){:is(:root:has(.work-time-workspace),:root:has(.materials-workspace),:root:has(.catalog-page)){--app-scale:1}}*{box-sizing:border-box}body{min-width:320px;min-height:var(--app-viewport-height);margin:0}button,input,textarea,select{font:inherit}button{border:0}.workspace{height:var(--app-viewport-height);min-height:var(--app-viewport-height);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.workspace-header{background:var(--color-bg-page);min-width:0}.project-detail-feedback{align-items:center;gap:calc(10px * var(--ui-scale));margin:calc(10px * var(--ui-scale)) calc(18px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border:1px solid var(--color-border-danger);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-warning-soft);color:var(--color-text-danger);display:flex}.project-detail-feedback>svg{flex:none}.project-detail-feedback-message{gap:calc(2px * var(--ui-scale));flex:auto;min-width:0;display:grid}.project-detail-feedback-message span{overflow-wrap:anywhere}.project-detail-feedback-actions{align-items:center;gap:calc(6px * var(--ui-scale));flex:none;display:flex}.drawing-autosave-notice{z-index:1000;top:calc(16px * var(--ui-scale));right:calc(18px * var(--ui-scale));align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(14px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 4px 16px rgb(var(--color-shadow-rgb)/12%);color:var(--color-text-soft);font-size:calc(.88rem * var(--ui-font-scale));white-space:nowrap;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(calc(-100% - calc(16px * var(--ui-scale))));font-weight:600;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s,visibility 0s linear .24s;display:inline-flex;position:fixed}.drawing-autosave-notice.is-visible{visibility:visible;opacity:1;transition-delay:0s;transform:translateY(0)}.drawing-autosave-notice.is-visible svg{animation-play-state:running}.drawing-autosave-notice svg{color:var(--color-text-accent);flex:none;animation:1s linear infinite paused drawing-autosave-spin}@media (prefers-reduced-motion:reduce){.drawing-autosave-notice{transition:none}.drawing-autosave-notice svg{animation:none}}@media print{.drawing-autosave-notice{display:none}}@keyframes drawing-autosave-spin{to{transform:rotate(360deg)}}.project-page{min-height:var(--app-viewport-height);background:var(--color-bg-app);flex-direction:column;display:flex}.project-page-content{grid-template-columns:minmax(0, 1fr) calc(310px * var(--ui-scale));flex:1;align-items:start;display:grid}.project-page-main{min-width:0}.project-page-main .project-grid{padding-top:0}.project-list-header{padding:calc(24px * var(--ui-scale)) calc(24px * var(--ui-scale)) calc(14px * var(--ui-scale))}.project-list-header h1{color:var(--color-text-strong);font-size:calc(22px * var(--ui-font-scale));margin:0;line-height:1.3}.project-section-heading{padding:calc(12px * var(--ui-scale)) calc(24px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(16px * var(--ui-font-scale));margin:0;line-height:1.4}.project-section-empty{padding:calc(8px * var(--ui-scale)) 0;color:var(--color-text-muted);font-size:calc(.88rem * var(--ui-font-scale));grid-column:1/-1;margin:0}.project-page-header{justify-content:space-between;align-items:center;gap:calc(20px * var(--ui-scale));padding:calc(22px * var(--ui-scale)) calc(28px * var(--ui-scale));border-bottom:1px solid var(--color-border);background:var(--color-bg-page);display:flex}.project-page-actions{justify-content:flex-end;gap:calc(8px * var(--ui-scale));flex-wrap:wrap;display:flex}.project-user-email{max-width:calc(220px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;align-self:center;font-weight:700;overflow:hidden}.project-banner{margin:calc(16px * var(--ui-scale)) calc(24px * var(--ui-scale)) 0;padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border:1px solid var(--color-border-danger);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-warning-soft);color:var(--color-text-danger);font-size:calc(.88rem * var(--ui-font-scale));font-weight:700}.project-grid{align-content:start;gap:calc(14px * var(--ui-scale));min-width:0;padding:calc(24px * var(--ui-scale));grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.project-state{gap:calc(8px * var(--ui-scale));min-height:calc(180px * var(--ui-scale));padding:calc(20px * var(--ui-scale));border:1px dashed var(--color-border-muted);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-page);color:var(--color-text-soft);grid-column:1/-1;align-content:center;justify-items:start;display:grid}.project-state strong{color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale))}.project-state.error{border-style:solid;border-color:var(--color-border-danger);background:var(--color-bg-warning-soft)}.project-card{--project-card-font-scale:1.1;min-height:calc(82px * var(--ui-scale));padding:calc(6px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:inherit;text-align:left;position:relative}.project-card:hover,.project-card:focus-within{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.project-card-open{width:100%;min-width:0;height:100%;padding:calc(8px * var(--ui-scale));color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-content:start;display:grid}.project-card-copy{overflow-wrap:anywhere;min-width:0}.project-card-eyebrow{min-height:calc(28px * var(--ui-scale));padding-right:calc(64px * var(--ui-scale));align-items:center;display:flex}.project-card-date{color:var(--color-text-accent);font-size:calc(.78rem * var(--ui-font-scale) * var(--project-card-font-scale));font-variant-numeric:tabular-nums;font-weight:600}.project-card-title{margin-top:calc(4px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale) * var(--project-card-font-scale));text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.project-card-properties{gap:1px calc(8px * var(--ui-scale));margin:calc(8px * var(--ui-scale)) 0 0;font-size:calc(.82rem * var(--ui-font-scale) * var(--project-card-font-scale));grid-template-columns:max-content minmax(0,1fr);line-height:1.6;display:grid}.project-card-properties dt{color:var(--color-text-muted);white-space:nowrap;font-weight:700}.project-card-properties dd{min-width:0;color:var(--color-text-soft);overflow-wrap:anywhere;margin:0}.project-card-actions{top:calc(14px * var(--ui-scale));right:calc(14px * var(--ui-scale));align-items:center;gap:calc(8px * var(--ui-scale));display:flex;position:absolute}.project-card-drawing-count{color:var(--color-text-muted);align-items:center;display:inline-flex}.project-card-drawing-count svg{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale))}.project-card-backup{width:calc(26px * var(--ui-scale));height:calc(26px * var(--ui-scale));color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.project-card-backup:hover{color:var(--color-text-accent)}.project-card-backup:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}.project-card-backup:disabled{opacity:.4;cursor:wait}@media (width<=1100px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.project-grid{grid-template-columns:minmax(0,1fr)}}.cloud-backup-sidebar{border-left:1px solid var(--color-border);background:var(--color-bg-page);align-self:stretch;min-width:0}.cloud-backup-header{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));padding:calc(20px * var(--ui-scale)) calc(20px * var(--ui-scale)) calc(16px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft);display:flex}.cloud-backup-heading{align-items:center;gap:calc(10px * var(--ui-scale));color:var(--color-text-accent);display:flex}.cloud-backup-heading p{margin:0 0 calc(4px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale))}.cloud-backup-heading h2{color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale));margin:0}.cloud-backup-content{padding:calc(16px * var(--ui-scale)) calc(20px * var(--ui-scale))}.cloud-backup-summary{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));margin-bottom:calc(8px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale));display:flex}.cloud-backup-environment{color:var(--color-text-soft);font-weight:700}.cloud-backup-list{margin:0;padding:0;list-style:none}.cloud-backup-item{align-items:start;gap:calc(10px * var(--ui-scale));padding:calc(14px * var(--ui-scale)) 0;border-bottom:1px solid var(--color-border-soft);display:flex}.cloud-backup-item>svg{margin-top:calc(2px * var(--ui-scale));color:var(--color-text-muted);flex:none}.cloud-backup-item-copy{gap:calc(4px * var(--ui-scale));flex:1;min-width:0;display:grid}.cloud-backup-item-title{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(.88rem * var(--ui-font-scale));font-weight:700;display:flex}.cloud-backup-latest{padding:calc(2px * var(--ui-scale)) calc(6px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-accent);color:var(--color-text-accent);font-size:calc(.72rem * var(--ui-font-scale))}.cloud-backup-item-meta{justify-content:space-between;gap:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.82rem * var(--ui-font-scale));font-variant-numeric:tabular-nums;display:flex}.cloud-backup-filename{color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cloud-backup-state{justify-items:start;gap:calc(12px * var(--ui-scale));padding:calc(16px * var(--ui-scale)) 0;color:var(--color-text-muted);overflow-wrap:anywhere;margin:0;line-height:1.6;display:grid}.cloud-backup-state p{margin:0}.cloud-backup-state.error{color:var(--color-text-danger)}.cloud-backup-note{margin:calc(16px * var(--ui-scale)) 0 0;color:var(--color-text-muted);font-size:calc(.75rem * var(--ui-font-scale))}.database-copy{margin:0 calc(20px * var(--ui-scale)) calc(20px * var(--ui-scale));padding-top:calc(16px * var(--ui-scale));border-top:1px solid var(--color-border-soft)}.database-copy-button{width:100%}.database-copy-dialog{box-sizing:border-box;max-height:calc(100dvh - 40px);overflow-y:auto}.database-copy-dialog:not([open]){display:none}.database-copy-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/38%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.database-copy-progress{gap:calc(8px * var(--ui-scale));display:grid}.database-copy-progress.failed{--database-copy-progress-color:var(--color-text-danger)}.database-copy-progress-summary{justify-content:space-between;align-items:baseline;gap:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.82rem * var(--ui-font-scale));display:flex}.database-copy-progress-summary strong{color:var(--database-copy-progress-color,var(--color-text-accent));font-size:calc(1.1rem * var(--ui-font-scale));font-variant-numeric:tabular-nums}.database-copy-progress-bar{width:100%;height:calc(8px * var(--ui-scale));appearance:none;background:var(--color-bg-accent-soft);border:0;border-radius:999px;display:block;overflow:hidden}.database-copy-progress-bar::-webkit-progress-bar{background:var(--color-bg-accent-soft);border-radius:999px}.database-copy-progress-bar::-webkit-progress-value{background:var(--database-copy-progress-color,var(--color-text-accent));border-radius:999px}.database-copy-progress-bar::-moz-progress-bar{background:var(--database-copy-progress-color,var(--color-text-accent));border-radius:999px}.database-copy-steps{gap:calc(2px * var(--ui-scale));margin:calc(8px * var(--ui-scale)) 0 0;padding:0;list-style:none;display:grid}.database-copy-step{align-items:center;gap:calc(10px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale));line-height:1.5;display:flex}.database-copy-step>svg{flex:none}.database-copy-step.complete{color:var(--color-text-accent)}.database-copy-step.active{background:var(--color-bg-accent);color:var(--color-text-accent);font-weight:600}.database-copy-step.failed{background:var(--color-bg-warning-soft);color:var(--color-text-danger)}.database-copy-step-copy{gap:calc(2px * var(--ui-scale));overflow-wrap:anywhere;flex:1;min-width:0;display:grid}.database-copy-step-copy small{font-size:calc(.75rem * var(--ui-font-scale));font-variant-numeric:tabular-nums;font-weight:400}.database-copy-step-status{font-size:calc(.72rem * var(--ui-font-scale));flex-shrink:0}.database-copy-success{color:var(--color-text-accent)}.database-copy-caption{color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale));overflow-wrap:anywhere;margin:0;line-height:1.6}.database-copy-error{color:var(--color-text-danger);overflow-wrap:anywhere;margin:0;line-height:1.6}@media (width<=760px){.project-page-header{flex-direction:column;align-items:start}.project-page-actions{justify-content:flex-start}.project-page-actions>button{white-space:nowrap}.project-user-email{flex-basis:100%;max-width:100%}.project-page-content{grid-template-columns:minmax(0,1fr)}.cloud-backup-sidebar{border-top:1px solid var(--color-border);border-left:0}}.topbar{z-index:320;justify-content:space-between;align-items:center;gap:calc(14px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(18px * var(--ui-scale));border-bottom:1px solid var(--color-border);background:var(--color-bg-page);display:flex;position:relative;overflow:visible}.topbar-identity{align-items:center;gap:calc(14px * var(--ui-scale));flex:auto;min-width:0;display:flex}.topbar-project{align-items:center;gap:calc(10px * var(--ui-scale));flex:auto;min-width:0;display:flex}.topbar-project h1{font-size:calc(1.4rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;margin:0;line-height:1.2;overflow:hidden}.topbar-project-heading{gap:calc(1px * var(--ui-scale));flex:none;min-width:0;max-width:50%;display:grid}.topbar-project-date{color:var(--color-text-accent);font-size:calc(9px * var(--ui-font-scale));font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.1;overflow:hidden}.topbar-project-details{flex:0 1 calc(360px * var(--ui-scale));gap:3px calc(4px * var(--ui-scale));min-width:0;color:var(--color-text-soft);font-size:calc(10px * var(--ui-font-scale));grid-template-columns:minmax(0,1fr);margin:0;padding:0;line-height:1.05;display:grid}.topbar-project-details dt{flex-shrink:0;font-weight:600}.topbar-project-details dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.topbar-project-detail-row{gap:calc(4px * var(--ui-scale));min-width:0;display:flex}.topbar-project-owner-label:before{content:"|";margin-right:calc(4px * var(--ui-scale));font-weight:400}.product-label{color:var(--color-text-accent);font-size:calc(.78rem * var(--ui-font-scale));letter-spacing:0;margin:0 0 4px;font-weight:700}.topbar-actions{flex:none}.topbar>.icon-button,.topbar-actions>button{border:0}.project-export-menu{width:calc(160px * var(--ui-scale));padding:calc(4px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 8px 24px rgb(var(--color-shadow-rgb)/16%);color:var(--color-text-strong);margin:0;position:fixed;inset:auto}.project-export-menu:popover-open{gap:calc(2px * var(--ui-scale));display:grid}.project-export-menu>hr{width:100%;margin:calc(2px * var(--ui-scale)) 0;border:0;border-top:1px solid var(--color-border)}.project-export-menu>button{align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(34px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:inherit;font-size:calc(.88rem * var(--ui-font-scale));text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.project-export-menu>button:hover,.project-export-menu>button:focus-visible{background:var(--color-bg-accent);outline:2px solid var(--color-text-accent);outline-offset:-2px}.primary-button,.ghost-button,.icon-button{justify-content:center;align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(38px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));cursor:pointer;transition:background .16s,color .16s,opacity .16s;display:inline-flex}.primary-button{padding:0 calc(15px * var(--ui-scale));background:var(--color-bg-accent-strong);color:var(--color-text-on-accent);font-weight:700}.primary-button.danger{background:var(--color-bg-danger-strong)}.primary-button:hover{background:var(--color-bg-accent-hover)}.ghost-button{padding:0 calc(13px * var(--ui-scale));border:1px solid var(--color-border-muted);background:var(--color-bg-card);color:var(--color-text-soft);font-weight:700}.ghost-button.compact{min-height:calc(34px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));font-size:var(--ui-font-size-control-compact)}.icon-button{width:calc(38px * var(--ui-scale));color:var(--color-text-soft);background-color:#0000}.icon-button.compact{width:calc(28px * var(--ui-scale));min-height:calc(28px * var(--ui-scale))}.topbar-back-button{flex:none}.ghost-button:hover,.icon-button:hover{background:var(--color-bg-accent-soft)}.pdf-debug-toggle[aria-checked=true]{background:var(--color-bg-warning);box-shadow:inset 0 0 0 1px var(--color-text-warning);color:var(--color-text-warning)}.pdf-debug-toggle[aria-checked=true]:hover{background:var(--color-bg-warning)}.primary-button:disabled,.ghost-button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.45}.layout{grid-template-columns:calc(260px * var(--ui-scale)) minmax(0, 1fr) calc(360px * var(--ui-scale));grid-template-rows:minmax(0,1fr);height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.layer-variant-saving{z-index:300;background:var(--color-bg-page);color:var(--color-text-soft);font-size:calc(.85rem * var(--ui-font-scale));padding:6px 10px;position:absolute;top:8px;right:8px}.project-detail-loading{z-index:300;background:rgb(var(--color-panel-rgb)/78%);color:var(--color-text-soft);font-size:calc(.96rem * var(--ui-font-scale));place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.workspace-view-loading{background:var(--color-bg-page);min-width:0;min-height:0;color:var(--color-text-soft);font-size:calc(.96rem * var(--ui-font-scale));grid-column:2;place-items:center;font-weight:700;display:grid}.layer-panel,.import-panel{gap:calc(18px * var(--ui-scale));height:100%;min-height:0;padding:calc(20px * var(--ui-scale));background:var(--color-bg-panel);flex-direction:column;display:flex}.layer-panel{border-right:1px solid var(--color-border);overflow-y:auto}.layer-panel>*{flex-shrink:0}.import-panel{border-left:1px solid var(--color-border);z-index:40;position:relative;overflow:visible}.lighting-sidebar{gap:calc(14px * var(--ui-scale));grid-template-rows:auto minmax(0,1fr) auto;align-content:start;height:100%;min-height:0;display:grid}.panel-title{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);font-weight:800;display:flex}.compact-title{margin-top:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.88rem * var(--ui-font-scale))}.project-drawings-heading{gap:calc(4px * var(--ui-scale))}.project-drawings-heading>svg{flex-shrink:0}.project-drawings-heading>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-drawings-heading .icon-button.compact{width:calc(24px * var(--ui-scale));flex-shrink:0}.add-drawing-button{margin-left:auto}.drawing-list{gap:calc(10px * var(--ui-scale));display:grid}.drawing-row{gap:calc(6px * var(--ui-scale));min-height:calc(36px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:inherit;cursor:grab;touch-action:none;will-change:transform;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;display:grid}.drawing-row:active{cursor:grabbing}.drawing-row.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);box-shadow:inset 3px 0 0 var(--color-text-accent)}.drawing-row.active .drawing-index{background:var(--color-bg-accent-strong);color:var(--color-text-on-accent)}.drawing-row.editing{grid-template-columns:auto minmax(0,1fr)}.drawing-row.dragging{opacity:.55;transform:scale(.995)}.drawing-row strong,.drawing-row small{display:block}.drawing-row strong{color:var(--color-text-strong);font-size:calc(.92rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drawing-row small{margin-top:calc(3px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale))}.drawing-index{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-accent-soft);color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));place-items:center;font-weight:900;display:inline-grid}.drawing-row-main{width:100%;min-width:0;height:100%;color:inherit;text-align:left;cursor:inherit;background:0 0;border:0;justify-content:flex-start;place-self:stretch stretch;align-items:center;padding:0;display:flex}.drawing-row-main:hover{background:0 0}.drawing-row-edit-button{align-self:center}.drawing-row-actions{align-items:center;gap:calc(4px * var(--ui-scale));display:inline-flex}.drawing-row-editor{gap:calc(4px * var(--ui-scale));grid-template-columns:minmax(0,1fr) auto auto;align-items:center;width:100%;min-width:0;display:grid}.drawing-row-name-input{width:100%;min-width:0;min-height:calc(32px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.88rem * var(--ui-font-scale));font-weight:700}.drawing-row-name-input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 3px rgb(var(--color-shadow-accent-rgb)/12%);outline:none}.drawing-row-editor .icon-button.compact{min-width:calc(30px * var(--ui-scale));min-height:calc(30px * var(--ui-scale));padding:0}.layer-list{gap:calc(10px * var(--ui-scale));display:grid}.sidebar-section-divider{height:1px;margin:calc(4px * var(--ui-scale)) 0 calc(2px * var(--ui-scale));background:var(--color-border)}.compact-list{gap:calc(8px * var(--ui-scale))}.layer-row{gap:calc(10px * var(--ui-scale));min-height:calc(64px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}button.layer-row{text-align:left;width:100%}.layer-row-main{gap:calc(10px * var(--ui-scale));text-align:left;width:100%;min-width:0;cursor:inherit;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:0;display:grid}.layer-visibility-toggle{flex:none}.layer-row-actions{align-items:center;gap:calc(2px * var(--ui-scale));display:flex}.layer-variant-list{gap:calc(2px * var(--ui-scale));min-width:0;padding:calc(6px * var(--ui-scale)) 0 0;border-top:1px solid var(--color-border-soft);grid-column:1/-1;margin:0;list-style:none;display:grid}.layer-variant-row{align-items:center;gap:calc(2px * var(--ui-scale));grid-template-columns:minmax(0,1fr);display:grid}.layer-variant-row .icon-button.compact{min-width:calc(26px * var(--ui-scale));min-height:calc(26px * var(--ui-scale));padding:0}.layer-variant-actions{align-items:center;gap:calc(4px * var(--ui-scale));padding-left:calc(20px * var(--ui-scale));display:flex}.layer-variant-select{align-items:center;gap:calc(5px * var(--ui-scale));min-width:0;min-height:calc(28px * var(--ui-scale));padding:calc(3px * var(--ui-scale));border-radius:calc(4px * var(--ui-scale));color:var(--color-text-soft);font:inherit;font-size:calc(.82rem * var(--ui-font-scale));text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.layer-variant-select:hover{background:var(--color-bg-accent)}.layer-variant-select:focus-visible{outline:2px solid var(--color-text-accent)}.layer-variant-select.active{color:var(--color-text-strong);font-weight:700}.layer-variant-marker{flex:0 0 calc(12px * var(--ui-scale));text-align:center}.layer-variant-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layer-variant-select.active .layer-variant-name{text-underline-offset:3px;text-decoration:underline}.layer-variant-delete:hover{color:var(--color-text-danger)}.compact-list .layer-row{min-height:calc(52px * var(--ui-scale));padding:calc(10px * var(--ui-scale))}.compact-list .layer-row-drawing,.compact-list .layer-row-all{min-height:calc(42px * var(--ui-scale));padding-top:calc(8px * var(--ui-scale));padding-bottom:calc(8px * var(--ui-scale))}.layer-row-divider{height:1px;margin:calc(8px * var(--ui-scale)) 0 calc(10px * var(--ui-scale));background:var(--color-border)}.layer-visibility-all-button{width:100%;min-height:calc(38px * var(--ui-scale));margin-bottom:calc(8px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-soft);cursor:pointer;font-size:calc(.82rem * var(--ui-font-scale));justify-content:space-between;align-items:center;font-weight:800;display:flex}.layer-visibility-all-button:hover{background:var(--color-bg-panel)}.layer-visibility-all-button.active{background:rgb(var(--color-cyan-rgb)/10%);color:var(--color-text-accent);border-color:#00a89d}.layer-visibility-all-state{align-items:center;gap:calc(5px * var(--ui-scale));display:inline-flex}.layer-row.active{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.layer-row-main:focus-visible{box-shadow:0 0 0 3px rgb(var(--color-shadow-accent-rgb)/14%);outline:none}.layer-toggle{width:calc(13px * var(--ui-scale));height:calc(13px * var(--ui-scale));border:2px solid var(--color-text-muted);background:var(--color-bg-card);border-radius:4px}.layer-row.active .layer-toggle{border-color:var(--color-text-accent);background:var(--color-bg-accent-strong)}.layer-row strong,.source-meta span{color:var(--color-text-strong);font-size:calc(.92rem * var(--ui-font-scale));display:block}.layer-row small,.source-meta small,.layer-summary,.status-text{color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale));line-height:1.5}.layer-summary{gap:calc(9px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-accent-soft);align-items:flex-start;margin-top:auto;display:flex}.layer-base-note{margin-top:calc(10px * var(--ui-scale));background:var(--color-bg-cyan)}.layer-preview-surface{border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 18px 50px rgb(var(--color-shadow-rgb)/16%);margin:auto;display:inline-flex;position:relative;overflow:hidden}.layer-preview-image{background-repeat:no-repeat;background-origin:content-box}.layer-readonly-overlay{pointer-events:none;position:absolute;inset:0}.layer-readonly-overlay.inactive-layer{opacity:.5}.all-layers-stage .layer-readonly-overlay .selectable{z-index:6;pointer-events:none}.all-layers-stage .layer-readonly-overlay .selectable .sensor-marker,.all-layers-stage .layer-readonly-overlay .selectable .curtain-blind-marker,.all-layers-stage .layer-readonly-overlay .selectable .network-marker,.all-layers-stage .layer-readonly-overlay .selectable .access-control-marker,.all-layers-stage .layer-readonly-overlay .selectable .hvac-control-marker,.all-layers-stage .layer-readonly-overlay .selectable .facility-marker,.all-layers-stage .layer-readonly-overlay .selectable .power-marker,.all-layers-stage .layer-readonly-overlay .selectable .switch-marker,.all-layers-stage .layer-readonly-overlay .circuit-annotation-tooltip{cursor:pointer}.confirm-dialog-backdrop{padding:calc(20px * var(--ui-scale));background:rgb(var(--color-shadow-rgb)/38%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;place-items:center;display:grid;position:fixed;inset:0}.confirm-dialog{gap:calc(14px * var(--ui-scale));width:min(420px * var(--ui-scale), 100vw - 32px);padding:calc(18px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(12px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 24px 64px rgb(var(--color-shadow-rgb)/24%);display:grid}.confirm-dialog-header{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));display:flex}.confirm-dialog-title{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);display:inline-flex}.confirm-dialog-body p{color:var(--color-text-soft);margin:0;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:calc(10px * var(--ui-scale));display:flex}.backup-progress-backdrop{cursor:wait}.backup-progress-dialog{width:min(460px * var(--ui-scale), 100vw - 32px);cursor:default;grid-template-columns:auto minmax(0,1fr);align-items:center}.backup-progress-spinner{color:var(--color-text-accent);animation:.9s linear infinite backup-progress-spin}.backup-progress-copy{gap:calc(5px * var(--ui-scale));display:grid}.backup-progress-copy strong{color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale))}.backup-progress-copy p{color:var(--color-text-soft);font-size:calc(.88rem * var(--ui-font-scale));margin:0;line-height:1.55}@keyframes backup-progress-spin{to{transform:rotate(360deg)}}:root{--ui-font-size-page-title:calc(1.2rem * var(--ui-font-scale));--ui-font-size-section-title:calc(1.04rem * var(--ui-font-scale));--ui-font-size-subsection-title:calc(.93rem * var(--ui-font-scale));--ui-font-size-dialog-title:calc(1.1rem * var(--ui-font-scale));--ui-font-size-body:calc(1rem * var(--ui-font-scale));--ui-font-size-small:calc(.88rem * var(--ui-font-scale));--ui-font-size-caption:calc(.82rem * var(--ui-font-scale));--ui-font-size-label:var(--ui-font-size-body);--ui-font-size-input:var(--ui-font-size-body);--ui-font-size-control-compact:calc(.84rem * var(--ui-font-scale));--ui-line-height-heading:1.35;--ui-line-height-body:1.5;--ui-font-weight-heading:700}.ui-typography{font-size:var(--ui-font-size-body);line-height:var(--ui-line-height-body)}:where(.ui-typography h1,.ui-typography h2,.ui-typography h3),.ui-page-title,.ui-section-title,.ui-subsection-title,.ui-dialog-title{font-weight:var(--ui-font-weight-heading);line-height:var(--ui-line-height-heading)}:where(.ui-typography h1),.ui-page-title{font-size:var(--ui-font-size-page-title)}:where(.ui-typography h2),.ui-section-title{font-size:var(--ui-font-size-section-title)}:where(.ui-typography h3),.ui-subsection-title{font-size:var(--ui-font-size-subsection-title)}.ui-dialog-title{font-size:var(--ui-font-size-dialog-title)}.ui-text-body,.ui-text-small,.ui-text-caption{line-height:var(--ui-line-height-body)}.ui-text-body{font-size:var(--ui-font-size-body)}.ui-text-small{font-size:var(--ui-font-size-small)}.ui-text-caption{font-size:var(--ui-font-size-caption)}.ui-field-label{font-size:var(--ui-font-size-label)}@media (width<=600px){.ui-typography{--ui-font-size-page-title:calc(18px * var(--ui-font-scale));--ui-font-size-section-title:calc(14px * var(--ui-font-scale));--ui-font-size-subsection-title:calc(13px * var(--ui-font-scale));--ui-font-size-dialog-title:calc(16px * var(--ui-font-scale));--ui-font-size-body:calc(14px * var(--ui-font-scale));--ui-font-size-small:calc(12px * var(--ui-font-scale));--ui-font-size-caption:calc(12px * var(--ui-font-scale));--ui-font-size-input:calc(16px * var(--ui-font-scale));--ui-font-size-control-compact:calc(12px * var(--ui-font-scale))}}@font-face{font-family:Pretendard Variable;font-style:normal;font-weight:45 920;font-display:swap;src:url(/assets/pretendard-variable-latin-Csm0YNoH.woff2)format("woff2");unicode-range:U+20,U+41-5A,U+61-7A}.iotpy-brand{align-items:center;gap:calc(12px * var(--ui-scale));min-width:0;display:flex}.iotpy-brand-mark{width:calc(54px * var(--ui-scale));height:calc(54px * var(--ui-scale));object-fit:contain;flex-shrink:0}.iotpy-brand-copy{gap:calc(3px * var(--ui-scale));min-width:0;display:grid}.iotpy-brand-name{color:var(--color-text-brand);font-synthesis:none;letter-spacing:-.045em;white-space:nowrap;margin:0;font-family:Pretendard Variable,sans-serif;font-size:24px;font-style:normal;font-weight:750;line-height:1}.project-page-brand{gap:calc(8px * var(--ui-scale));flex-shrink:0}.project-page-brand .iotpy-brand-mark{width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale))}.project-page-brand .iotpy-brand-name{font-size:22px}.catalog-page-brand{gap:10px}.catalog-page-brand .iotpy-brand-mark{width:34px;height:34px}.catalog-page-brand .iotpy-brand-name{font-size:23px}.catalog-page-brand .iotpy-brand-copy>span:last-child{color:var(--color-text-muted);font-size:12px}@media (width<=600px){.mobile-project-list .project-page-header{gap:10px}.mobile-project-list .project-page-actions .ghost-button{gap:5px;padding-inline:7px}.mobile-project-list .project-page-brand{gap:8px}.mobile-project-list .project-page-brand .iotpy-brand-mark{width:27.2px;height:27.2px}.mobile-project-list .project-page-brand .iotpy-brand-name{font-size:20px}.catalog-page-brand{gap:7px}.catalog-page-brand .iotpy-brand-mark{width:27px;height:27px}.catalog-page-brand .iotpy-brand-name{font-size:18px}.catalog-page-brand .iotpy-brand-copy>span:last-child{font-size:10px}}.auth-page{min-height:var(--app-viewport-height);padding:calc(36px * var(--ui-scale)) calc(20px * var(--ui-scale));background:var(--color-bg-app);place-items:center;display:grid}.auth-panel{width:min(100%, 400px * var(--ui-scale));gap:calc(26px * var(--ui-scale));padding:calc(38px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(18px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 18px 50px rgb(var(--color-shadow-rgb)/9%);display:grid}.auth-brand{justify-content:center;align-items:center;gap:calc(14px * var(--ui-scale));display:flex}.auth-brand .iotpy-brand-mark{width:calc(66px * var(--ui-scale));height:calc(66px * var(--ui-scale));object-fit:contain}.auth-brand p{margin:calc(5px * var(--ui-scale)) 0 0;color:var(--color-text-accent);font-size:calc(.76rem * var(--ui-font-scale));font-weight:800}.auth-brand .iotpy-brand-name{font-size:calc(3rem * var(--ui-font-scale))}.auth-heading{gap:calc(6px * var(--ui-scale));text-align:center;display:grid}.auth-heading h2,.auth-heading p{margin:0}.auth-heading h2{color:var(--color-text-strong);font-size:calc(1.18rem * var(--ui-font-scale))}.auth-heading p{color:var(--color-text-muted);font-size:calc(.86rem * var(--ui-font-scale))}.auth-form{gap:calc(16px * var(--ui-scale));display:grid}.auth-form label{gap:calc(7px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.84rem * var(--ui-font-scale));font-weight:800;display:grid}.auth-form input{width:100%;height:calc(44px * var(--ui-scale));padding:0 calc(13px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);outline:none;transition:border-color .16s,box-shadow .16s}.auth-form input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 3px rgb(var(--color-shadow-accent-rgb)/12%)}.auth-error{margin:calc(-4px * var(--ui-scale)) 0 0;padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border-radius:calc(7px * var(--ui-scale));background:var(--color-bg-warning-soft);color:var(--color-text-danger);font-size:calc(.82rem * var(--ui-font-scale));font-weight:700}.auth-submit{min-height:calc(44px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-accent-strong);color:var(--color-text-on-accent);cursor:pointer;font-weight:800}.auth-submit:hover{background:var(--color-bg-accent-hover)}.auth-submit:disabled{cursor:wait;opacity:.6}.auth-mode-link{padding:calc(4px * var(--ui-scale));color:var(--color-text-accent);cursor:pointer;background:0 0;justify-self:center;font-weight:800}.auth-mode-link:hover{text-decoration:underline}.auth-loading-panel{justify-items:center}.auth-loading-panel>p{color:var(--color-text-muted);margin:0}@media (width<=520px){.auth-page{padding-top:calc(64px * var(--ui-scale));align-items:start}.auth-panel{padding:calc(28px * var(--ui-scale)) calc(22px * var(--ui-scale))}}.crawler-page{min-height:var(--app-viewport-height);background:var(--color-bg-app)}.crawler-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-page);justify-content:space-between;align-items:center;gap:16px;padding:22px 28px;display:flex}.crawler-header h1{margin:4px 0 0;font-size:24px}.crawler-status{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 28px;display:flex}.crawler-status span{color:var(--color-text-muted)}.crawler-layout{grid-template-columns:250px minmax(0,1fr);display:grid}.crawler-profiles{border-right:1px solid var(--color-border);background:var(--color-bg-panel);padding:18px}.crawler-profile{border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));text-align:left;background:var(--color-bg-page);cursor:pointer;gap:5px;width:100%;margin:6px 0;padding:12px;display:grid}.crawler-profile.active{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.crawler-profile span{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:12px;overflow:hidden}.crawler-main{min-width:0;padding:20px}.crawler-section{border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-page);margin-bottom:16px;padding:18px}.crawler-section h2{margin:0 0 14px;font-size:16px}.crawler-section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.crawler-section-heading h2,.crawler-section-heading h3{margin:0;font-size:16px}.crawler-form{gap:14px;display:grid}.crawler-form label{gap:7px;font-weight:600;display:grid}.crawler-form input,.crawler-form textarea{border:1px solid var(--color-border-muted);width:100%;min-width:0;color:var(--color-text-base);background:var(--color-bg-card);border-radius:5px;padding:9px 10px}.crawler-form textarea{resize:vertical}.crawler-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.crawler-checkbox{align-items:center;display:flex!important}.crawler-checkbox input{width:auto}.crawler-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crawler-hint{color:var(--color-text-muted);margin:8px 0;font-weight:400;line-height:1.6}.crawler-notice{padding:28px}.crawler-message{border:1px solid var(--color-border);color:var(--color-text-accent);background:var(--color-bg-accent);overflow-wrap:anywhere;border-radius:5px;margin:12px 20px;padding:12px}.crawler-message.error{color:var(--color-text-danger);border-color:var(--color-border-danger);background:var(--color-bg-warning-soft)}.crawler-advanced summary{cursor:pointer;color:var(--color-text-soft)}.crawler-advanced .crawler-form{margin-top:14px}.crawler-table-wrap{overflow-x:auto}.crawler-table-wrap table{border-collapse:collapse;width:100%}.crawler-table-wrap th,.crawler-table-wrap td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:10px}.crawler-table-wrap th{color:var(--color-text-muted);white-space:nowrap;font-weight:500}.crawler-job-url{overflow-wrap:anywhere;max-width:440px;color:var(--color-text-muted);margin:4px 0;display:block}.crawler-job-error{max-width:440px;color:var(--color-text-danger);overflow-wrap:anywhere;margin:8px 0 0}.crawler-result{margin-top:18px}.crawler-result pre{background:var(--color-bg-subtle);max-height:420px;padding:14px;font-size:12px;overflow:auto}.crawler-viewer-backdrop{z-index:1500;background:rgb(var(--color-shadow-rgb)/55%);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.crawler-viewer{border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-page);flex-direction:column;width:min(1500px,100%);height:min(1050px,94%);display:flex;overflow:hidden}.crawler-viewer header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.crawler-viewer iframe{background:#222;border:0;flex:1;width:100%;min-height:0}@media (width<=760px){.crawler-layout{grid-template-columns:minmax(0,1fr)}.crawler-profiles{border-right:0;border-bottom:1px solid var(--color-border)}.crawler-main{padding:12px}.crawler-header{flex-wrap:wrap;padding:18px}.crawler-status{padding:12px 18px}.crawler-form-row{grid-template-columns:minmax(0,1fr)}.crawler-viewer-backdrop{padding:5px}.crawler-section-heading{flex-wrap:wrap}}.catalog-page{min-height:var(--app-viewport-height);color:var(--color-text-base);background:var(--color-bg-page);font-size:18px;line-height:1.55}.catalog-page a{color:inherit;text-decoration:none}.catalog-page button,.catalog-page a,.catalog-page input,.catalog-page select{outline-offset:3px}.catalog-page button:focus-visible,.catalog-page a:focus-visible,.catalog-page input:focus-visible,.catalog-page select:focus-visible{outline:2px solid var(--color-text-accent)}.catalog-page .ghost-button,.catalog-page .primary-button{flex:none;min-height:44px;padding:8px 16px;font-size:16px}.catalog-page button{cursor:pointer}.catalog-page button:disabled{cursor:default;opacity:.45}.catalog-page-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-card);align-items:center;gap:28px;min-height:74px;padding:12px 36px;font-size:17px;display:flex}.catalog-home{color:var(--color-text-soft);align-items:center;gap:8px;display:inline-flex}.catalog-readonly{color:var(--color-text-muted);margin-left:auto;font-size:15px}.catalog-content{width:min(100% - 80px,1600px);margin:0 auto;padding:42px 0 64px}.catalog-content.browse{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:40px;width:calc(100% - 64px);display:grid}.catalog-content.product{max-width:1400px;padding-top:24px}.catalog-main{min-width:0}.catalog-sidebar{max-height:calc(var(--app-viewport-height) - 48px);border-right:1px solid var(--color-border);padding-right:24px;position:sticky;top:24px;overflow-y:auto}.catalog-sidebar h2{color:var(--color-text-strong);margin:0 0 16px;font-size:20px}.catalog-vendors{gap:4px;display:grid}.catalog-vendor-row{align-items:center;gap:2px;display:flex}.catalog-vendor-filter{min-width:0;min-height:48px;color:var(--color-text-soft);text-align:left;background:0 0;border-radius:6px;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:17px;display:flex}.catalog-vendor-filter:hover{background:var(--color-bg-subtle)}.catalog-vendor-filter[aria-pressed=true]{background:var(--color-bg-accent);color:var(--color-text-accent);font-weight:650}.catalog-vendor-refresh,.catalog-icon-button{width:36px;height:36px;color:var(--color-text-muted);background:0 0;border-radius:6px;flex:0 0 36px;justify-content:center;align-items:center;padding:0;display:inline-flex}.catalog-vendor-refresh:hover,.catalog-icon-button:hover{background:var(--color-bg-accent);color:var(--color-text-accent)}.catalog-vendor-count{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:14px}.catalog-refresh-message{background:var(--color-bg-accent);color:var(--color-text-accent);overflow-wrap:anywhere;border-radius:6px;margin:0 0 18px;padding:12px 14px;font-size:15px}.catalog-refresh-message.error{background:var(--color-bg-warning-soft);color:var(--color-text-danger)}.catalog-refresh-spinning{animation:1s linear infinite catalog-refresh-spin}.catalog-heading{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.catalog-heading h1{letter-spacing:-1px;margin:0 0 5px;font-size:36px;line-height:1.3}.catalog-heading p{color:var(--color-text-muted);margin:0}.catalog-heading>svg{color:var(--color-text-accent)}.catalog-search{align-items:stretch;gap:10px;display:flex}.catalog-search .primary-button{flex:0 0 96px;width:auto;min-width:96px;font-size:18px}.catalog-search-input{border:1px solid var(--color-border-muted);background:var(--color-bg-card);min-width:0;min-height:60px;color:var(--color-text-muted);border-radius:8px;flex:1;align-items:center;gap:12px;padding:0 18px;display:flex}.catalog-search-input:focus-within{border-color:var(--color-text-accent);box-shadow:0 0 0 2px var(--color-bg-accent)}.catalog-search-input input{min-width:0;color:var(--color-text-strong);background:0 0;border:0;outline:0;flex:1;padding:14px 0;font-size:19px}.catalog-search-input input::-webkit-search-cancel-button{display:none}.catalog-search-input button{color:var(--color-text-muted);background:0 0;align-items:center;padding:8px;display:flex}.catalog-filters{flex-wrap:wrap;align-items:end;gap:14px;padding:20px 0 26px;display:flex}.catalog-filters label{min-width:170px;color:var(--color-text-muted);gap:5px;font-size:15px;display:grid}.catalog-filters .catalog-vendor-select{display:none}.catalog-filters select{border:1px solid var(--color-border);background:var(--color-bg-card);max-width:270px;min-height:42px;color:var(--color-text-base);border-radius:6px;padding:8px 32px 8px 12px;font-size:16px}.catalog-reset,.catalog-text-button{color:var(--color-text-accent);text-underline-offset:3px;background:0 0;padding:8px 4px;font-size:15px;text-decoration:underline}.catalog-results-heading{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.catalog-results-heading strong{font-size:19px}.catalog-results-heading strong span{color:var(--color-text-accent);font-variant-numeric:tabular-nums;margin-left:8px}.catalog-results-heading small{color:var(--color-text-muted);font-size:15px}.catalog-results{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.catalog-product-row{border-bottom:1px solid var(--color-border);grid-template-columns:24px 88px minmax(0,1fr) minmax(160px,210px) minmax(160px,210px);align-items:center;gap:22px;min-height:128px;padding:20px 14px;display:grid;position:relative}.catalog-image{background:var(--color-bg-subtle);border-radius:6px;align-self:center;place-items:center;width:88px;height:88px;display:grid;overflow:hidden}.catalog-image img{object-fit:contain;width:100%;height:100%}.catalog-image>span{color:var(--color-text-muted);justify-items:center;gap:14px;display:grid}.catalog-image.large{aspect-ratio:1;width:100%;height:auto;max-height:380px;padding:18px}.catalog-image.large small{font-size:16px}.catalog-list-copy{gap:5px;min-width:0;display:grid}.catalog-product-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:15px;display:flex}.catalog-availability{color:var(--color-text-accent);white-space:nowrap;align-items:center;gap:5px;font-size:14px;display:inline-flex}.catalog-availability:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.catalog-availability.unavailable{color:var(--color-text-muted)}.catalog-favorite-control{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.catalog-favorite-button{width:32px;height:32px;color:var(--color-text-muted);background:0 0;border:0;border-radius:4px;place-items:center;padding:4px;display:inline-grid}.catalog-favorite-button:hover,.catalog-favorite-button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.catalog-favorite-error{max-width:260px;color:var(--color-text-danger);font-size:12px}.catalog-product-name{max-width:100%;color:var(--color-text-strong);overflow-wrap:anywhere;justify-self:start;font-size:20px;font-weight:650}.catalog-product-name:hover{text-underline-offset:3px;text-decoration:underline}.catalog-list-subtitle{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:15px}.catalog-drawing-name{min-width:0;color:var(--color-text-soft);flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:15px;display:flex}.catalog-drawing-name>small{color:var(--color-text-muted);flex-shrink:0;font-size:12px}.catalog-drawing-name .catalog-inline-editor{text-align:left;justify-items:start}.catalog-drawing-name .catalog-inline-editor input{text-align:left;max-width:100%}.catalog-list-source-link{z-index:1;text-underline-offset:3px;justify-self:start;align-items:center;gap:4px;min-height:32px;font-size:15px;display:inline-flex;position:relative;color:var(--color-text-accent)!important;text-decoration:underline!important}.catalog-list-price{text-align:right;font-variant-numeric:tabular-nums;justify-items:end;gap:3px;display:grid}.catalog-list-price small{color:var(--color-text-soft);font-size:14px}.catalog-list-price strong{color:var(--color-text-strong);overflow-wrap:anywhere;font-size:19px;font-weight:650}.catalog-list-price>span{color:var(--color-text-muted);font-size:13px}.catalog-inline-editor{vertical-align:middle;min-width:0;max-width:100%;font:inherit;justify-items:end;gap:4px;display:inline-grid}.catalog-inline-edit-button{max-width:100%;color:inherit;font:inherit;text-align:inherit;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.catalog-inline-edit-button:hover{color:var(--color-text-accent);text-underline-offset:3px;text-decoration:underline}.catalog-inline-editor input{border:1px solid var(--color-border);background:var(--color-bg-card);width:100%;min-width:0;max-width:180px;color:var(--color-text-strong);font:inherit;text-align:right;cursor:text;border-radius:4px;padding:4px 6px}.catalog-inline-editor input:focus{border-color:var(--color-text-accent)}.catalog-inline-editor small{max-width:210px;color:var(--color-text-muted);white-space:normal;font-size:12px;font-weight:400}.catalog-inline-editor .catalog-inline-edit-error{color:var(--color-text-danger)}.catalog-margin-options{cursor:pointer;align-items:center;gap:8px;margin-top:18px;font-size:15px;display:flex}.catalog-margin-options input{width:18px;height:18px;accent-color:var(--color-text-accent)}.catalog-product-select{z-index:1;cursor:pointer;place-items:center;min-height:36px;display:grid;position:relative}.catalog-product-select input,.catalog-select-all input{width:18px;height:18px;accent-color:var(--color-text-accent);cursor:pointer;margin:0}.catalog-select-all{color:var(--color-text-soft);cursor:pointer;align-items:center;gap:10px;padding:8px 14px 14px;font-size:14px;display:flex}.catalog-selection-toolbar{border:1px solid var(--color-border);background:var(--color-bg-accent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.catalog-selection-toolbar strong{margin-right:auto;font-size:15px}.catalog-manufacturer-detail{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 20px;display:flex}.catalog-manufacturer-detail strong{color:var(--color-text-strong);margin-left:8px}.catalog-manufacturer-input{color:var(--color-text-soft);gap:8px;font-size:15px;display:grid}.catalog-manufacturer-input input{border:1px solid var(--color-border);background:var(--color-bg-card);width:100%;color:var(--color-text-strong);border-radius:6px;padding:10px 12px;font-size:16px}.catalog-manufacturer-options{border:0;border-top:1px solid var(--color-border);align-content:start;gap:2px;max-height:250px;margin:20px 0 0;padding:10px 0 0;display:grid;overflow-y:auto}.catalog-manufacturer-options legend{color:var(--color-text-muted);padding-right:12px;font-size:13px}.catalog-manufacturer-options label{cursor:pointer;align-items:center;gap:10px;padding:9px 4px;display:flex}.catalog-manufacturer-options label span{overflow-wrap:anywhere}.catalog-manufacturer-options input{accent-color:var(--color-text-accent)}.catalog-pagination{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:24px;padding:30px 0 0;display:flex}.catalog-state{text-align:center;justify-items:center;gap:12px;padding:70px 20px;display:grid}.catalog-state>svg{color:var(--color-text-muted)}.catalog-state h2{margin:0;font-size:24px}.catalog-state p{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0}.catalog-state>div{align-items:center;gap:20px;display:flex}.catalog-state a{color:var(--color-text-accent);text-decoration:underline}.catalog-detail-nav{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.catalog-detail-nav>a{color:var(--color-text-soft);align-items:center;gap:8px;display:inline-flex}.catalog-share-feedback{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.catalog-copy-url{color:var(--color-text-muted);gap:8px;margin-bottom:20px;font-size:15px;display:grid}.catalog-copy-url input{border:1px solid var(--color-border);width:100%;color:var(--color-text-strong);background:var(--color-bg-card);border-radius:6px;padding:10px}.catalog-detail-summary{grid-template-columns:minmax(220px,340px) minmax(0,1fr);align-items:start;gap:42px;padding-bottom:36px;display:grid}.catalog-detail-overview{min-width:0}.catalog-detail-overview h1{color:var(--color-text-strong);letter-spacing:-.6px;overflow-wrap:anywhere;margin:10px 0 8px;font-size:32px;line-height:1.4}.catalog-original-name{color:var(--color-text-soft);margin:0 0 10px}.catalog-key{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0 0 22px;font-size:14px}.catalog-price-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.catalog-price-table th,.catalog-price-table td{border-bottom:1px solid var(--color-border);text-align:right;padding:12px 16px}.catalog-price-table thead{background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:15px}.catalog-price-table tr>:first-child{text-align:left}.catalog-price-table td{font-weight:650}.catalog-help{color:var(--color-text-muted);margin:12px 0 0;font-size:15px}.catalog-source-link{align-items:center;gap:8px;margin-top:20px;display:inline-flex;color:var(--color-text-accent)!important}.catalog-section{border-top:1px solid var(--color-border);padding:28px 0}.catalog-section h2{color:var(--color-text-strong);margin:0 0 20px;font-size:22px;font-weight:650}.catalog-section h2 span{color:var(--color-text-accent);font-variant-numeric:tabular-nums;margin-left:8px}.catalog-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.catalog-section-heading h2{margin:0}.catalog-section-heading+p{margin:0 0 20px}.catalog-attachments{gap:calc(20px * var(--ui-scale));grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));display:grid}.catalog-attachment,.catalog-attachment-slot{align-content:start;gap:calc(8px * var(--ui-scale));min-width:0;display:grid}.catalog-attachment-slot.is-dragging .catalog-attachment-image{border-color:var(--color-text-accent);outline:2px dashed var(--color-text-accent);outline-offset:-6px}.catalog-attachment-slot>button{justify-content:center;align-items:center;gap:calc(8px * var(--ui-scale));width:100%;display:inline-flex}.catalog-attachment-status{min-height:24px;margin:0 0 calc(12px * var(--ui-scale));color:var(--color-text-accent);font-size:15px}.catalog-attachment-image{aspect-ratio:4/3;border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);place-items:center;display:grid;overflow:hidden}.catalog-attachment-image img{object-fit:contain;width:100%;height:100%;min-height:0}.catalog-attachment-image>span{justify-items:center;gap:calc(8px * var(--ui-scale));padding:calc(12px * var(--ui-scale));color:var(--color-text-muted);text-align:center;display:grid}.catalog-attachment:hover .catalog-attachment-image{border-color:var(--color-text-accent)}.catalog-attachment-caption{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-accent);font-size:15px;display:flex}.catalog-info{grid-template-columns:210px minmax(0,1fr);gap:12px 24px;margin:0;display:grid}.catalog-info dt{color:var(--color-text-muted);font-size:16px}.catalog-info dd{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0;margin:0}.catalog-memo{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.catalog-option-search{border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-bg-card);border-radius:6px;align-items:center;gap:8px;padding:7px 12px;display:flex}.catalog-option-search input{width:240px;min-width:0;color:var(--color-text-strong);background:0 0;border:0;padding:2px 0;font-size:16px}.catalog-table-scroll{border:1px solid var(--color-border);border-radius:8px;overflow-x:auto}.catalog-option-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:900px}.catalog-option-table thead{background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:15px}.catalog-option-table th,.catalog-option-table td{border-bottom:1px solid var(--color-border);text-align:right;padding:14px 16px}.catalog-option-table thead th{text-align:center}.catalog-option-table thead tr:nth-child(2) th{padding-top:4px;font-weight:500}.catalog-option-table thead tr:first-child th{border-bottom:0}.catalog-option-table tbody th{text-align:left;width:42%}.catalog-option-table td{white-space:nowrap}.catalog-option-table .expanded{background:var(--color-bg-accent)}.catalog-option-toggle{text-align:left;width:100%;color:var(--color-text-strong);background:0 0;align-items:center;gap:9px;padding:0;display:flex}.catalog-option-toggle>svg{flex-shrink:0;transition:transform .16s}.catalog-option-toggle[aria-expanded=true]>svg{transform:rotate(-180deg)}.catalog-option-toggle>span{min-width:0;display:grid}.catalog-option-toggle strong{overflow-wrap:anywhere;font-size:17px;font-weight:600}.catalog-option-toggle small{color:var(--color-text-muted);margin-top:4px;font-size:14px;font-weight:400}.catalog-option-toggle .catalog-availability{margin-left:auto}.catalog-option-details td{background:var(--color-bg-subtle);text-align:left;white-space:normal;padding:22px 28px}.catalog-inline-empty{color:var(--color-text-muted);text-align:center;padding:16px}.catalog-loading{border-top:1px solid var(--color-border)}.catalog-skeleton{border-bottom:1px solid var(--color-border);align-items:center;gap:24px;padding:20px 14px;display:flex}.catalog-skeleton>span{background:var(--color-bg-accent-soft);border-radius:6px;flex-shrink:0;width:88px;height:88px}.catalog-skeleton>div{flex:1;gap:10px;display:grid}.catalog-skeleton i{background:var(--color-bg-accent-soft);border-radius:3px;width:55%;height:15px;display:block}.catalog-skeleton i:nth-child(2){width:80%;height:21px}.catalog-loading.detail .catalog-skeleton{align-items:start;min-height:400px;padding-top:40px}.catalog-loading.detail .catalog-skeleton>span{width:280px;height:280px}@keyframes catalog-refresh-spin{to{transform:rotate(360deg)}}.catalog-upload-dialog{border:1px solid var(--color-border);background:var(--color-bg-card);width:min(640px,100vw - 32px);max-height:calc(100dvh - 40px);color:var(--color-text-base);border-radius:12px;padding:0;font-size:16px;line-height:1.55;overflow-y:auto}.catalog-upload-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/42%)}.catalog-upload-dialog button,.catalog-upload-dialog input{cursor:pointer;outline-offset:3px}.catalog-upload-dialog button:focus-visible,.catalog-upload-dialog input:focus-visible{outline:2px solid var(--color-text-accent)}.catalog-upload-dialog button:disabled{cursor:default;opacity:.45}.catalog-upload-dialog .primary-button,.catalog-upload-dialog .ghost-button{min-height:44px;padding:8px 16px;font-size:15px}.catalog-upload-header{border-bottom:1px solid var(--color-border);align-items:start;gap:16px;padding:24px;display:flex}.catalog-upload-header>div{flex:1;min-width:0}.catalog-upload-header h2{margin:0;font-size:22px;line-height:1.4}.catalog-upload-header p{color:var(--color-text-muted);margin:8px 0 0;font-size:14px}.catalog-upload-body{padding:24px}.catalog-upload-body>p:first-child{margin-top:0}.catalog-upload-body .catalog-refresh-message{margin:16px 0 0}.catalog-upload-picker{border:1px dashed var(--color-border-muted);background:var(--color-bg-subtle);color:var(--color-text-accent);text-align:center;border-radius:8px;justify-items:center;gap:12px;padding:32px 18px;display:grid;position:relative}.catalog-upload-picker strong{overflow-wrap:anywhere;max-width:100%;font-size:16px}.catalog-upload-picker span{color:var(--color-text-muted);font-size:13px}.catalog-upload-picker input{opacity:0;width:100%;height:100%;position:absolute;inset:0}.catalog-upload-picker:focus-within{outline:2px solid var(--color-text-accent);outline-offset:3px}.catalog-upload-picker.busy{opacity:.6}.catalog-upload-removals{max-height:260px;margin:18px 0 0;padding:0;list-style:none;overflow-y:auto}.catalog-upload-removals li{border-bottom:1px solid var(--color-border);align-items:start;gap:12px;padding:12px 0;display:flex}.catalog-upload-removals li>span{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex:0 0 32px}.catalog-upload-removals strong{overflow-wrap:anywhere;font-size:15px;display:block}.catalog-upload-removals small{color:var(--color-text-muted)}.catalog-upload-progress{color:var(--color-text-accent);align-items:center;gap:8px;margin-bottom:0;font-size:14px;display:flex}.catalog-upload-progress svg{flex-shrink:0}.catalog-upload-footer{border-top:1px solid var(--color-border);justify-content:end;gap:10px;padding:16px 24px;display:flex}@media (prefers-reduced-motion:reduce){.catalog-refresh-spinning{animation:none}}@media (width<=1000px){.catalog-content,.catalog-content.browse{width:calc(100% - 48px)}.catalog-content.browse{display:block}.catalog-sidebar{display:none}.catalog-filters .catalog-vendor-select{align-items:end;gap:6px;display:flex}.catalog-vendor-select label{flex:1;min-width:0}.catalog-vendor-select .catalog-vendor-refresh{flex-basis:42px;width:42px;height:42px}.catalog-product-row{grid-template-columns:24px 76px minmax(0,1fr) minmax(130px,170px) minmax(130px,170px);gap:16px}.catalog-image{width:76px;height:76px}.catalog-detail-summary{grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:26px}}@media (width<=600px){.catalog-upload-header,.catalog-upload-body{padding:18px}.catalog-upload-header h2{font-size:19px}.catalog-upload-footer{padding:14px 18px}.catalog-page{font-size:15px}.catalog-page-header{gap:18px;min-height:52px;padding:10px 16px;font-size:13px}.catalog-readonly{font-size:11px}.catalog-content,.catalog-content.browse{width:calc(100% - 32px);padding-top:24px}.catalog-heading{margin-bottom:20px}.catalog-heading h1{font-size:26px}.catalog-heading p{font-size:13px}.catalog-heading>svg{display:none}.catalog-search{gap:6px}.catalog-search-input{gap:8px;min-height:48px;padding:0 10px}.catalog-search-input>svg{flex-shrink:0;width:17px}.catalog-search-input input{padding:10px 0;font-size:16px}.catalog-page .primary-button{min-width:60px;min-height:44px;padding:8px 12px;font-size:14px}.catalog-search .primary-button{flex-basis:72px}.catalog-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 0 20px;display:grid}.catalog-filters label{min-width:0;font-size:12px}.catalog-filters select{width:100%;min-width:0;min-height:40px;padding:7px 24px 7px 8px;font-size:14px}.catalog-reset{justify-self:start;padding:0;font-size:13px}.catalog-results-heading{align-items:start;gap:8px;padding:14px 0}.catalog-results-heading strong{white-space:nowrap;font-size:16px}.catalog-results-heading small{padding-top:4px;font-size:11px}.catalog-product-row{grid-template-columns:24px 58px minmax(0,1fr) minmax(0,1fr);gap:10px;padding:18px 0}.catalog-product-select{grid-row:1/3;align-self:start}.catalog-image{grid-area:1/2/3;align-self:start;width:58px;height:58px}.catalog-list-copy{grid-column:3/5;gap:4px}.catalog-list-price{grid-column:3}.catalog-list-price+.catalog-list-price{grid-column:4}.catalog-product-meta{gap:8px;font-size:12px}.catalog-availability{font-size:11px}.catalog-product-name{font-size:16px}.catalog-list-subtitle{font-size:12px}.catalog-drawing-name{font-size:13px}.catalog-list-source-link{min-height:36px;font-size:12px}.catalog-list-price{text-align:left;justify-items:start}.catalog-list-price .catalog-inline-editor{justify-items:start}.catalog-list-price small{font-size:11px}.catalog-list-price strong{font-size:14px}.catalog-list-price>span{font-size:10px}.catalog-detail-nav{margin-bottom:20px;font-size:13px}.catalog-page .ghost-button{padding:7px 10px;font-size:13px}.catalog-detail-summary{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:24px}.catalog-image.large{grid-area:auto;justify-self:center;width:min(100%,260px);max-height:260px}.catalog-detail-overview h1{margin-top:8px;font-size:25px}.catalog-key{font-size:12px}.catalog-price-table th,.catalog-price-table td{padding:10px 8px}.catalog-price-table thead,.catalog-help{font-size:12px}.catalog-section{padding:22px 0}.catalog-section h2{margin-bottom:16px;font-size:19px}.catalog-section-heading h2{margin:0}.catalog-info{grid-template-columns:112px minmax(0,1fr);gap:12px;font-size:14px}.catalog-info dt{font-size:13px}.catalog-option-search{width:100%}.catalog-option-search input{width:100%;font-size:16px}.catalog-loading.detail .catalog-skeleton{min-height:440px;display:grid}.catalog-loading.detail .catalog-skeleton>span{width:220px;height:220px}}.drawing-board{background:linear-gradient(var(--color-border-soft) 1px, transparent 1px), linear-gradient(90deg, var(--color-border-soft) 1px, transparent 1px);background-color:var(--color-bg-grid);background-size:32px 32px;grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid}.board-toolbar{z-index:30;justify-content:space-between;align-items:flex-start;gap:calc(16px * var(--ui-scale));min-height:calc(64px * var(--ui-scale));padding:calc(12px * var(--ui-scale)) calc(18px * var(--ui-scale));border-bottom:1px solid var(--color-border-strong);background:rgb(var(--color-panel-rgb)/92%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;position:relative}.board-actions{z-index:31;align-items:flex-start;gap:calc(10px * var(--ui-scale));flex-wrap:wrap;justify-content:flex-end;display:flex;position:relative}.drawing-source-actions{align-items:center;gap:calc(10px * var(--ui-scale));display:flex}.drawing-settings-anchor{display:inline-flex;position:relative}.drawing-settings-popover{z-index:340;width:min(360px * var(--ui-scale), 100vw - 32px);box-sizing:border-box;align-content:start;gap:calc(14px * var(--ui-scale));min-width:0;padding:calc(16px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(14px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 24px 60px rgb(var(--color-shadow-rgb)/24%);grid-auto-rows:max-content;display:grid;position:absolute;inset:calc(100% + 10px) 0 auto auto}.drawing-settings-popover:after{content:"";top:calc(-7px * var(--ui-scale));right:calc(13px * var(--ui-scale));width:calc(12px * var(--ui-scale));height:calc(12px * var(--ui-scale));border:0;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);background:var(--color-bg-card);position:absolute;bottom:auto;transform:rotate(45deg)}.drawing-tooltip-scale-control{gap:calc(14px * var(--ui-scale));padding-top:calc(12px * var(--ui-scale));border-top:1px solid var(--color-border-soft);display:grid}.measurement-control{align-items:center;gap:calc(10px * var(--ui-scale));min-width:0;display:inline-flex;position:relative}.measurement-control-header{align-items:center;gap:calc(8px * var(--ui-scale));white-space:nowrap;display:flex}.measurement-control-header strong{color:var(--color-text-strong);font-size:calc(.9rem * var(--ui-font-scale));font-weight:800}.measurement-control-header svg{color:var(--color-text-accent);flex:none}.measurement-control-actions{align-items:center;gap:calc(8px * var(--ui-scale));display:flex}.measurement-control-actions button{white-space:nowrap}.measurement-control-draft{top:calc(100% + 10px * var(--ui-scale));z-index:34;width:min(360px * var(--ui-scale), 100vw - 36px);gap:calc(8px * var(--ui-scale));padding:calc(14px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 10px 24px rgb(var(--color-shadow-rgb)/12%);display:grid;position:absolute;right:0}.measurement-control-draft>span{color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));line-height:1.45}.measurement-control-input-row{gap:calc(8px * var(--ui-scale));flex-wrap:wrap;align-items:center;display:flex}.measurement-length-input{width:calc(132px * var(--ui-scale));min-height:calc(38px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong)}.measurement-length-input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 3px rgb(var(--color-shadow-accent-rgb)/12%);outline:none}.zoom-control{z-index:32;align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(38px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);display:inline-flex;position:relative}.zoom-control input{width:calc(120px * var(--ui-scale));accent-color:var(--color-text-accent);cursor:pointer}.zoom-control span{width:calc(44px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.84rem * var(--ui-font-scale));text-align:right;font-weight:800}.zoom-control button,.zoom-control button:hover{background:0 0}.zoom-control button.active{background:var(--color-bg-accent);color:var(--color-text-accent)}.drawing-legend{z-index:50;border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:rgb(var(--color-surface-rgb)/96%);width:min(280px,100% - 16px);box-shadow:0 8px 24px rgb(var(--color-shadow-rgb)/16%);color:var(--color-text-strong);pointer-events:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact;flex-direction:column;display:flex;position:absolute;overflow:hidden}.drawing-legend.readonly .drawing-legend-header{cursor:default}.drawing-legend-width-handle,.drawing-legend-resize-handle{touch-action:none;z-index:1;background:0 0;position:absolute;right:0}.drawing-legend-width-handle{cursor:ew-resize;width:10px;top:0;bottom:18px}.drawing-legend-resize-handle{cursor:nwse-resize;width:18px;height:18px;bottom:0}.drawing-legend-header{padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-panel);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;display:flex}.drawing-legend-header:active{cursor:grabbing}.drawing-legend-content{gap:calc(8px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));display:grid}.all-layers-stage{overflow:visible}.all-layers-stage .lighting-canvas{border-radius:inherit}.drawing-print-sheet-hidden{display:contents}.canvas-stage .drawing-print-sheet{overflow:visible}.drawing-print-sheet{background:var(--color-bg-card);box-shadow:0 0 0 1px var(--color-border-muted), 0 18px 50px rgb(var(--color-shadow-rgb)/16%);flex:none;margin:auto;position:relative;overflow:hidden}.drawing-print-sheet .all-layers-stage{box-shadow:none;border:0;border-radius:0}.drawing-print-sheet-header{border-bottom:1px solid var(--color-border);height:12mm;color:var(--color-text-muted);pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:5mm;left:5mm}.drawing-print-sheet-header small,.drawing-print-sheet-header>span{font-size:9pt;display:block}.drawing-print-sheet-header h2{color:var(--color-text-strong);margin:1mm 0 0;font-size:14pt}.drawing-legend-section{gap:calc(3px * var(--ui-scale));display:grid}.drawing-legend-section-heading{justify-content:space-between;gap:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));display:flex}.drawing-legend-row{align-items:center;gap:calc(5px * var(--ui-scale));min-width:0;font-size:calc(.8rem * var(--ui-font-scale));display:flex}.drawing-legend-row .all-layers-item-icon{width:calc(16px * var(--ui-scale));height:calc(16px * var(--ui-scale))}.drawing-legend-item-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.drawing-legend-item-count,.drawing-legend-empty{color:var(--color-text-muted)}.drawing-legend-item-count{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto}.drawing-legend-empty{margin:0}.board-toolbar strong,.board-toolbar span{display:block}.board-toolbar span{margin-top:calc(3px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale))}.canvas-area{z-index:1;min-height:0;padding:calc(28px * var(--ui-scale));justify-content:flex-start;align-items:flex-start;display:flex;position:relative;overflow:auto}.canvas-area.move-tool{cursor:grab}.canvas-area.move-tool.panning{cursor:grabbing}.canvas-area.move-tool.measuring,.canvas-area.move-tool.measuring.panning{cursor:crosshair}.canvas-area.move-tool .board-preview-surface,.canvas-area.move-tool .source-plan,.canvas-area.move-tool .floor-plan,.canvas-area.move-tool .crop-box{cursor:grab}.canvas-area.move-tool.panning .board-preview-surface,.canvas-area.move-tool.panning .source-plan,.canvas-area.move-tool.panning .floor-plan,.canvas-area.move-tool.panning .crop-box{cursor:grabbing}.canvas-area.move-tool.measuring .board-preview-surface,.canvas-area.move-tool.measuring .source-plan,.canvas-area.move-tool.measuring .floor-plan,.canvas-area.move-tool.measuring .crop-box,.canvas-area.move-tool.measuring .measurement-overlay,.canvas-area.move-tool.measuring .measurement-overlay *{cursor:crosshair}.canvas-stage{justify-content:flex-start;align-items:flex-start;min-width:100%;min-height:100%;display:flex}.floor-plan{border:1px solid var(--color-border-muted);background:var(--color-bg-card);max-width:min(100%,1100px);max-height:calc(100vh - 160px);box-shadow:0 18px 50px rgb(var(--color-shadow-rgb)/16%);display:block}.board-preview-surface{z-index:1;cursor:default;-webkit-user-select:none;user-select:none;max-width:min(100%,1200px);box-shadow:0 18px 50px rgb(var(--color-shadow-rgb)/16%);flex:none;margin:auto;display:inline-flex;position:relative}.board-preview-surface[style]{max-width:none}.source-plan{border:1px solid var(--color-border-muted);background:var(--color-bg-card);max-width:100%;max-height:calc(100vh - 170px);display:block}.measurement-overlay{z-index:3;position:absolute;inset:0}.measurement-overlay-svg{display:block;overflow:visible}.measurement-line line{stroke-linecap:round;stroke-linejoin:round}.measurement-line.saved line{stroke:#15803d;stroke-width:3px;stroke-dasharray:0}.measurement-line.saved circle{fill:#15803d;stroke:#fff;stroke-width:2px}.measurement-line.saved text{fill:#14532d;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-size:14px;font-weight:800}.measurement-line.draft line{stroke:#0f766e;stroke-width:3px;stroke-dasharray:10 8}.measurement-line.draft circle{fill:#0f766e;stroke:#fff;stroke-width:2px}.measurement-line.draft text{fill:#0f766e;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-size:14px;font-weight:800}.empty-board{gap:calc(10px * var(--ui-scale));color:var(--color-text-muted);text-align:center;justify-items:center;margin:auto;display:grid}.empty-board strong{color:var(--color-text-strong)}.empty-board span{font-size:calc(.9rem * var(--ui-font-scale))}.board-spinner{width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale));border:3px solid rgb(var(--color-shadow-accent-rgb)/18%);border-top-color:var(--color-text-accent);border-radius:50%;animation:.85s linear infinite board-spin}@keyframes board-spin{to{transform:rotate(360deg)}}.drawing-upload-zone{width:min(100%, 480px * var(--ui-scale));gap:calc(14px * var(--ui-scale));min-width:0;padding:calc(40px * var(--ui-scale)) calc(24px * var(--ui-scale));border:1px dashed var(--color-border-muted);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-page);color:var(--color-text-soft);cursor:pointer;justify-items:center;transition:background .16s,border-color .16s;display:grid}.drawing-upload-zone:hover,.drawing-upload-zone:focus-visible,.drawing-upload-zone.dragging{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.drawing-upload-zone:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:4px}.drawing-upload-zone>svg{color:var(--color-text-accent)}.drawing-upload-zone strong{font-size:calc(.98rem * var(--ui-font-scale))}.drawing-upload-zone span{color:var(--color-text-soft);font-size:calc(.9rem * var(--ui-font-scale))}.drawing-upload-zone small{color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale))}.source-meta{gap:calc(6px * var(--ui-scale));display:grid}.source-meta div{align-items:center;gap:calc(8px * var(--ui-scale));display:flex}.source-meta small{word-break:break-word}.page-picker{gap:calc(8px * var(--ui-scale));grid-template-columns:auto minmax(0,1fr) auto;align-items:end;display:grid}.page-picker.arrow-picker{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.page-picker-current{justify-items:center;gap:calc(2px * var(--ui-scale));min-width:calc(80px * var(--ui-scale));padding:calc(2px * var(--ui-scale)) 0;text-align:center;display:grid}.page-picker-current strong{color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale));font-weight:800}.page-picker-current span{color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale));font-weight:700}.drawing-memo-input{width:100%;min-height:calc(120px * var(--ui-scale));padding:calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.86rem * var(--ui-font-scale));resize:vertical;line-height:1.5}.drawing-memo-input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 3px rgb(var(--color-shadow-accent-rgb)/12%);outline:none}.page-picker label{gap:calc(5px * var(--ui-scale));display:grid}.page-picker label span{color:var(--color-text-muted);font-size:calc(.75rem * var(--ui-font-scale));font-weight:700}.page-picker select{width:100%;min-height:calc(34px * var(--ui-scale));padding:0 calc(9px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong)}.crop-box{z-index:2;border:2px solid var(--color-text-accent);background:rgb(var(--color-shadow-accent-rgb)/16%);box-shadow:0 0 0 9999px rgb(var(--color-shadow-rgb)/38%);pointer-events:auto;position:absolute}.crop-box.applied{border-color:var(--color-text-success);background:#15803d24}.crop-badge{top:calc(8px * var(--ui-scale));left:calc(8px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(7px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-success-strong);color:var(--color-text-on-accent);font-size:calc(.75rem * var(--ui-font-scale));pointer-events:none;font-weight:800;position:absolute}.crop-handle{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));border:2px solid var(--color-bg-card);background:var(--color-bg-accent-strong);box-shadow:0 2px 8px rgb(var(--color-shadow-rgb)/28%);touch-action:none;border-radius:4px;position:absolute}.crop-handle.top-left{top:calc(-10px * var(--ui-scale));left:calc(-10px * var(--ui-scale));cursor:nwse-resize}.crop-handle.top-right{top:calc(-10px * var(--ui-scale));right:calc(-10px * var(--ui-scale));cursor:nesw-resize}.crop-handle.top{top:calc(-10px * var(--ui-scale));cursor:ns-resize;left:50%;transform:translate(-50%)}.crop-handle.right{top:50%;right:calc(-10px * var(--ui-scale));cursor:ew-resize;transform:translateY(-50%)}.crop-handle.bottom-left{bottom:calc(-10px * var(--ui-scale));left:calc(-10px * var(--ui-scale));cursor:nesw-resize}.crop-handle.bottom-right{right:calc(-10px * var(--ui-scale));bottom:calc(-10px * var(--ui-scale));cursor:nwse-resize}.crop-handle.bottom{bottom:calc(-10px * var(--ui-scale));cursor:ns-resize;left:50%;transform:translate(-50%)}.crop-handle.left{top:50%;left:calc(-10px * var(--ui-scale));cursor:ew-resize;transform:translateY(-50%)}.stage-placeholder{gap:calc(9px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.92rem * var(--ui-font-scale));justify-items:center;display:grid}.import-guide{gap:calc(10px * var(--ui-scale));padding:calc(14px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);display:grid}.import-guide strong{color:var(--color-text-strong);font-size:calc(.9rem * var(--ui-font-scale))}.import-guide ol{gap:calc(7px * var(--ui-scale));padding-left:calc(18px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.84rem * var(--ui-font-scale));margin:0;line-height:1.5;display:grid}.status-text{min-height:calc(40px * var(--ui-scale));margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.layout{grid-template-columns:calc(220px * var(--ui-scale)) minmax(0, 1fr)}.import-panel{border-top:1px solid var(--color-border);border-left:0;grid-column:1/-1}}@media (width<=760px){.board-actions{width:100%}.primary-button,.ghost-button{flex:1}.layout{grid-template-columns:1fr}.layer-panel{border-right:0;border-bottom:1px solid var(--color-border)}.canvas-area{padding:calc(18px * var(--ui-scale))}}.plan-chat{--plan-chat-outer-gap:16px;width:min(1320px / var(--app-scale), 100vw / var(--app-scale) - var(--plan-chat-outer-gap) * 2);height:min(900px / var(--app-scale), 100dvh / var(--app-scale) - var(--plan-chat-outer-gap) * 2);border:1px solid var(--color-border);background:var(--color-bg-page);max-width:none;max-height:none;color:var(--color-text-base);border-radius:12px;padding:0;overflow:hidden}.plan-chat.is-comparing{width:calc(100vw / var(--app-scale) - var(--plan-chat-outer-gap) * 2);height:calc(100dvh / var(--app-scale) - var(--plan-chat-outer-gap) * 2)}.plan-chat.is-dragging{outline:2px dashed var(--color-text-accent);outline-offset:-4px}.plan-chat[open]{flex-direction:column;display:flex}.plan-chat::backdrop{background:#00000073}.plan-chat button{flex-shrink:0}.plan-chat select,.plan-chat textarea{color:var(--color-text-base);background:var(--color-bg-card);border:1px solid var(--color-border-muted);font:inherit;border-radius:6px;min-width:0;padding:6px 8px}.plan-chat select{max-width:100%}.plan-chat textarea{resize:vertical;box-sizing:border-box;width:100%;min-height:80px;max-height:180px}.plan-chat-header{justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.plan-chat-header h2{margin:0 0 4px}.plan-chat-header span{color:var(--color-text-muted);font-size:var(--ui-font-size-small)}.plan-chat-header-actions{align-items:center;gap:8px;display:flex}.plan-chat-accounts{background:var(--color-bg-panel);font-size:var(--ui-font-size-small);font-variant-numeric:tabular-nums;color:var(--color-text-soft);flex-wrap:wrap;gap:6px 20px;padding:8px 18px;display:flex}.plan-chat-notice{font-size:var(--ui-font-size-small);background:var(--color-bg-warning);color:var(--color-text-soft);margin:0;padding:8px 18px}.plan-chat-workspace{flex:1;grid-template-columns:minmax(0,1fr) 360px;min-height:0;display:grid}.plan-chat-image{background:var(--color-bg-subtle);flex-direction:column;min-width:0;min-height:0;display:flex}.plan-chat-image-toolbar,.plan-chat-image-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.plan-chat-image-toolbar label{align-items:center;gap:8px;display:flex}.plan-chat-image-footer{border-top:1px solid var(--color-border);background:var(--color-bg-page)}.plan-chat-image-footer>span{color:var(--color-text-muted);flex:1}.plan-chat-paper{border:1px solid var(--color-border);color:#475569;background:#fff;border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;margin:0 12px 12px;padding:12px;display:flex;overflow:auto}.plan-chat-paper img{object-fit:contain;max-width:100%;max-height:100%;display:block}.plan-chat-paper>p{align-items:center;gap:8px;display:flex}.plan-chat-comparison{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;padding:0 12px 12px;display:grid}.plan-chat-comparison-pane{flex-direction:column;min-width:0;min-height:0;margin:0;display:flex}.plan-chat-comparison-pane .plan-chat-paper{margin:0}.plan-chat-comparison-label{color:var(--color-text-soft);padding:0 4px 8px;font-weight:600}.plan-chat-empty{text-align:center;justify-items:center;gap:12px;padding:20px;display:grid}.plan-chat-empty p{margin:0}.plan-chat-conversation{border-left:1px solid var(--color-border);flex-direction:column;min-width:0;min-height:0;display:flex}.plan-chat-conversation.has-file-drop{position:relative}.plan-chat-file-drop{z-index:1;border:2px dashed var(--color-text-accent);background:var(--color-bg-panel);color:var(--color-text-base);text-align:center;pointer-events:none;border-radius:6px;place-items:center;padding:16px;display:grid;position:absolute;inset:6px}.plan-chat-conversation-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.plan-chat-conversation-header select{max-width:205px;font-size:var(--ui-font-size-small)}.plan-chat-history{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;overflow:auto}.plan-chat-intro{color:var(--color-text-soft);line-height:1.7}.plan-chat-intro p{margin:0 0 14px}.plan-chat-message{border-bottom:1px solid var(--color-border-soft);margin-bottom:6px;padding:12px 0 18px}.plan-chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 12px;line-height:1.65}.plan-chat-message-meta{font-size:var(--ui-font-size-small);align-items:center;gap:8px;display:flex}.plan-chat-message-meta span{color:var(--color-text-muted)}.plan-chat-message-meta time{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.plan-chat-progress{color:var(--color-text-soft);align-items:center;gap:8px;line-height:1.6;display:flex}.plan-chat-error{color:var(--color-text-danger);overflow-wrap:anywhere;margin:8px 16px;line-height:1.6}.plan-chat-retry{align-self:flex-start;margin:0 16px 8px}.plan-chat-history .plan-chat-error{margin:12px 0}.plan-chat-composer{border-top:1px solid var(--color-border);gap:8px;padding:14px 16px;display:grid}.plan-chat-composer-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.plan-chat-composer-actions>span{color:var(--color-text-muted)}.plan-chat-attachments{gap:8px;min-width:0;display:grid}.plan-chat-attachment-actions{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.plan-chat-attachment-actions>span{color:var(--color-text-muted)}.plan-chat-attachment{background:var(--color-bg-panel);border-radius:6px;align-items:center;gap:8px;min-width:0;padding:8px;display:flex}.plan-chat-attachment>img{object-fit:contain;background:#fff;border-radius:4px;flex:none;width:44px;height:44px}.plan-chat-attachment-details{flex:1;gap:4px;min-width:0;display:grid}.plan-chat-attachment-details>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-chat-attachment-details label{align-items:center;gap:8px;display:flex}.plan-chat-mobile-tabs{display:none}.plan-chat-spinner{flex-shrink:0;animation:1.2s linear infinite plan-chat-spin}.plan-run-status{border-top:1px solid var(--color-border);color:var(--color-text-soft);font-variant-numeric:tabular-nums;padding:10px 16px;line-height:1.6}.plan-run-status-summary{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.plan-run-status strong{color:var(--color-text-base);white-space:nowrap;font-weight:600}.plan-run-status-note{color:var(--color-text-muted);margin-top:4px;display:block}.plan-run-status-details{min-width:0}.plan-run-status summary{cursor:pointer}.plan-run-status dl{grid-template-columns:auto auto;gap:2px 16px;margin:6px 0 0;display:grid}.plan-run-status dt{color:var(--color-text-muted)}.plan-run-status dd{text-align:right;color:var(--color-text-base);margin:0}@keyframes plan-chat-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.plan-chat-spinner{animation:none}}@media (width<=900px){.plan-chat-workspace{grid-template-columns:minmax(0,1fr) 320px}}.calibration-assistant-preview{width:100%;height:100%;min-height:0;display:block}.calibration-assistant-summary{overflow-wrap:anywhere;flex-flow:column;align-items:flex-start}.calibration-assistant .calibration-assistant-summary>span{flex:none;width:100%}.panel-layout-assistant-preview{width:100%;height:100%;min-height:0;display:block}@media (width<=650px){.plan-chat{--plan-chat-outer-gap:6px;width:calc(100vw / var(--app-scale) - var(--plan-chat-outer-gap) * 2);height:calc(100dvh / var(--app-scale) - var(--plan-chat-outer-gap) * 2);border-radius:8px}.plan-chat-header{padding:10px 12px}.plan-chat-accounts{gap:4px 10px;padding:8px 12px}.plan-chat-mobile-tabs{border-bottom:1px solid var(--color-border);display:flex}.plan-chat-mobile-tabs button{background:var(--color-bg-page);color:var(--color-text-soft);border:0;border-bottom:2px solid #0000;flex:1;padding:10px}.plan-chat-mobile-tabs button[aria-pressed=true]{border-bottom-color:var(--color-text-base);color:var(--color-text-base)}.plan-chat-workspace{display:flex}.plan-chat-image,.plan-chat-conversation{border:0;flex:1}.plan-chat-workspace[data-pane=image] .plan-chat-conversation,.plan-chat-workspace[data-pane=chat] .plan-chat-image{display:none}.plan-chat-image-footer{align-items:flex-start}.plan-chat-image-footer>span{flex-basis:100%}.plan-chat-comparison{gap:8px;padding:0 8px 8px}.plan-chat-comparison-pane .plan-chat-paper{padding:6px}}.circuit-annotation-layer{pointer-events:none;z-index:42;--circuit-accent:#ff9205;position:absolute;inset:0}.circuit-annotation-layer.readonly{z-index:8}.circuit-annotation-layer.draggable .circuit-annotation-tooltip{cursor:move}.circuit-annotation-layer.static .circuit-annotation-tooltip{cursor:default}.circuit-annotation-frame{border:1px dashed var(--circuit-accent);opacity:0;border-radius:10px;transition:opacity .12s,box-shadow .12s,border-color .12s;position:absolute;box-shadow:inset 0 0 0 1px #ff920524}.circuit-annotation-frame.selected{opacity:1;border-style:solid;box-shadow:inset 0 0 0 1px #ff920529,0 8px 18px #ff92051a}.circuit-annotation-tooltip{align-items:stretch;gap:calc(2px * var(--ui-scale) * var(--circuit-annotation-scale,1));min-height:calc(25px * var(--ui-scale) * var(--circuit-annotation-scale,1));padding:calc(6px * var(--ui-scale) * var(--circuit-annotation-scale,1)) calc(10px * var(--ui-scale) * var(--circuit-annotation-scale,1));border:2px solid var(--circuit-accent,var(--color-text-muted));border-radius:calc(6px * var(--ui-scale) * var(--circuit-annotation-scale,1));background:rgb(var(--color-surface-rgb)/96%);box-shadow:0 8px 18px rgb(var(--color-shadow-rgb)/10%);pointer-events:auto;touch-action:none;transform:translate(var(--circuit-tooltip-x,-50%), var(--circuit-tooltip-y,calc(-100% - 12px * var(--ui-scale))));display:inline-flex;position:absolute}.circuit-annotation-leading{margin-right:calc(6px * var(--ui-scale) * var(--circuit-annotation-scale,1));flex:none;align-items:center;display:inline-flex}.circuit-annotation-text{flex-direction:column;justify-content:center;min-width:0;display:inline-flex}.circuit-annotation-label-row{align-items:center;min-width:0;display:inline-flex}.circuit-annotation-manufacturer{margin-bottom:calc(2px * var(--ui-scale) * var(--circuit-annotation-scale,1));color:var(--color-text-muted);font-size:calc(.75rem * var(--ui-font-scale) * var(--circuit-annotation-scale,1));white-space:nowrap;font-weight:500;line-height:1.2}.circuit-annotation-sub-label{color:var(--color-text-strong);font-size:85%;font-weight:700;line-height:1.15}.circuit-annotation-description-line{color:var(--color-text-muted)}.circuit-annotation-sub-label-line{display:block}.circuit-annotation-type-badge{width:fit-content;max-width:100%;margin-top:calc(3px * var(--ui-scale) * var(--circuit-annotation-scale,1));padding:calc(2px * var(--ui-scale) * var(--circuit-annotation-scale,1)) calc(6px * var(--ui-scale) * var(--circuit-annotation-scale,1));color:var(--color-text-warning);background:#f59e0b24;border-radius:999px;align-self:flex-start;align-items:center;font-size:90%;font-weight:900;line-height:1.15;display:inline-flex}.circuit-annotation-order-badge{min-width:calc(20px * var(--ui-scale) * var(--circuit-annotation-scale,1));height:calc(20px * var(--ui-scale) * var(--circuit-annotation-scale,1));padding:0 calc(5px * var(--ui-scale) * var(--circuit-annotation-scale,1));background:var(--circuit-badge-bg,var(--color-text-danger-strong));color:var(--color-text-on-accent);font-size:calc(.9rem * var(--ui-font-scale) * var(--circuit-annotation-scale,1));border-radius:999px;place-items:center;font-weight:900;line-height:1;display:inline-grid}.circuit-annotation-label{color:var(--color-text-strong);font-size:calc(1.2rem * var(--ui-font-scale) * var(--circuit-annotation-scale,1));white-space:nowrap;align-items:center;font-weight:900;display:inline-flex}.circuit-annotation-label-trailing{margin-left:calc(4px * var(--ui-scale) * var(--circuit-annotation-scale,1));color:var(--color-text-strong);font-size:calc(.9rem * var(--ui-font-scale) * var(--circuit-annotation-scale,1));white-space:nowrap;font-weight:600;line-height:1.2}.circuit-annotation-delete{min-width:calc(14px * var(--ui-scale) * var(--circuit-annotation-scale,1));padding:0 calc(5px * var(--ui-scale) * var(--circuit-annotation-scale,1));color:var(--color-text-danger);font-size:calc(1rem * var(--ui-font-scale) * var(--circuit-annotation-scale,1));cursor:pointer;pointer-events:auto;background:0 0;border:0;justify-content:center;align-items:center;font-weight:900;line-height:1;display:flex}.circuit-annotation-delete:hover{color:var(--color-text-danger)}.layer-manufacturer-control{color:var(--color-text-soft);cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.layer-manufacturer-control input{width:16px;height:16px;accent-color:var(--color-text-accent)}.sensor-circuit-annotation-layer{pointer-events:none}.bundle-product-sidebar{border-top:1px solid var(--color-border);margin-top:16px;padding-top:12px}.bundle-product-sidebar h3{margin:0 0 10px;font-size:13px}.bundle-product-sidebar p{color:var(--color-text-muted);font-size:12px}.bundle-product-sidebar-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.bundle-product-sidebar-row input{width:100%;min-width:0}.bundle-product-sidebar-row.active{outline:1px solid var(--color-text-cyan);border-radius:6px}.bundle-product-template-list{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.bundle-product-templates p{color:var(--color-text-muted);margin:6px 0 0;font-size:12px}.bundle-product-canvas-layer{z-index:12;pointer-events:none;position:absolute;inset:0}.bundle-product-placement-surface{pointer-events:auto;cursor:crosshair;position:absolute;inset:0}.bundle-product-device-layer{pointer-events:none;position:absolute;inset:0}.bundle-product-device-layer>svg{pointer-events:none}.bundle-product-canvas-layer.selectable .circuit-annotation-tooltip{pointer-events:auto}.lighting-stage{cursor:crosshair;flex:none;margin:auto}.lighting-canvas{transform-origin:0 0;position:absolute;inset:0 auto auto 0;overflow:hidden}.lighting-canvas .layer-preview-image{position:absolute;inset:0 auto auto 0}.canvas-stage .lighting-stage{overflow:visible}.canvas-stage .lighting-stage .lighting-canvas{border-radius:inherit;overflow:visible}.canvas-stage .lighting-stage .lighting-path-layer,.canvas-stage .lighting-stage .sensor-marker-layer,.canvas-stage .lighting-stage .curtain-blind-marker-layer,.canvas-stage .lighting-stage .switch-marker-layer,.canvas-stage .lighting-stage .network-marker-layer,.canvas-stage .lighting-stage .access-control-marker-layer,.canvas-stage .lighting-stage .hvac-control-marker-layer,.canvas-stage .lighting-stage .facility-marker-layer,.canvas-stage .lighting-stage .power-marker-layer,.canvas-stage .lighting-stage .region-shape-layer{overflow:visible}.canvas-stage .lighting-stage .layer-preview-image{border-radius:inherit;pointer-events:none}.canvas-stage .lighting-stage .lighting-canvas-background{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.lighting-path-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.lighting-path-layer.readonly{z-index:6;pointer-events:none}.lighting-path-layer.readonly *{pointer-events:none}.wiring-connection-layer{pointer-events:none;z-index:43;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wiring-connection-line{stroke:#00a89d;stroke-width:2.5px;vector-effect:non-scaling-stroke}.wiring-connection-line-outline{stroke:#fff;stroke-width:6px;opacity:.9}.panel-wiring-toggle.active{background:rgb(var(--color-cyan-rgb)/12%);color:var(--color-text-accent);border-color:#00a89d}.sensor-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.sensor-marker-layer.readonly{z-index:6;pointer-events:none}.sensor-marker-layer.readonly *{pointer-events:none}.curtain-blind-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.curtain-blind-marker-layer.readonly{z-index:6;pointer-events:none}.curtain-blind-marker-layer.readonly *{pointer-events:none}.lighting-downlight-link-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.lighting-path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lighting-path.completed{stroke:#ff9205;stroke-width:7px;stroke-dasharray:0;cursor:pointer;pointer-events:none}.lighting-path.completed.selected{stroke-width:7px;pointer-events:none}.lighting-path-point{fill:var(--color-bg-card);stroke:#ff9205;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}.lighting-path-point[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #1d4ed8}.lighting-path-point.downlight{fill:#ff9205;stroke:#fff}.lighting-path-point.selected{fill:#ff9205;stroke:#1d4ed8;stroke-width:2.5px}.lighting-path-point.downlight.selected{fill:#fff;stroke:#ff9205;stroke-width:2.5px}.lighting-path-point.downlight.range-selected{fill:#ff9205;stroke:#fff}.lighting-path-point.downlight.square{rx:2}.lighting-path[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #1d4ed8}.sensor-marker{fill:#00a2ff;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}.sensor-marker.selected{fill:#fff;stroke:#00a2ff;stroke-width:2.6px}.sensor-circuit-path{fill:none;stroke:#00a2ff;stroke-width:1.5px;stroke-dasharray:4 4;pointer-events:none}.sensor-circuit-path.selected{stroke-width:2px}.sensor-drawing{cursor:crosshair}.sensor-draft-hint{z-index:12;border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-muted);pointer-events:none;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px}.curtain-blind-marker{fill:#017101;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}.curtain-blind-marker.selected{fill:#fff;stroke:#017101;stroke-width:2.6px}.curtain-blind-rail,.curtain-blind-rail-hit{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.curtain-blind-rail{pointer-events:none}.curtain-blind-rail.selected{filter:drop-shadow(0 0 2px #01710173)}.curtain-blind-rail-hit{stroke:#0000;stroke-width:18px;pointer-events:stroke;cursor:move}.curtain-blind-rail-point{fill:#fff;stroke:#017101;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer}.curtain-blind-rail-point.selected{stroke-width:2.6px}.network-marker-layer,.access-control-marker-layer,.hvac-control-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.network-marker-layer.readonly,.access-control-marker-layer.readonly,.hvac-control-marker-layer.readonly{z-index:6;pointer-events:none}.network-marker-layer.readonly *,.access-control-marker-layer.readonly *,.hvac-control-marker-layer.readonly *{pointer-events:none}.network-marker,.access-control-marker,.hvac-control-marker{vector-effect:non-scaling-stroke;pointer-events:all}.network-marker-label,.access-control-marker-label,.hvac-control-marker-label{fill:var(--color-text-strong);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-weight:900}.facility-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.facility-marker-layer.readonly{z-index:6;pointer-events:none}.facility-marker-layer.readonly *{pointer-events:none}.facility-marker{vector-effect:non-scaling-stroke;pointer-events:all}.facility-marker-label{fill:var(--color-text-strong);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-weight:900}.power-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.power-marker-layer.readonly{z-index:6;pointer-events:none}.power-marker-layer.readonly *{pointer-events:none}.power-marker{vector-effect:non-scaling-stroke;pointer-events:all}.power-marker-label{fill:var(--color-text-strong);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-weight:900}.lighting-downlight-label{fill:var(--color-text-strong);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:10px;font-weight:900}.lighting-path.hit{fill:none;stroke:#0000;stroke-width:19.6px;cursor:pointer;pointer-events:stroke;vector-effect:non-scaling-stroke}.lighting-path.hit.expanded{stroke-width:25.2px}.lighting-path.hit.selected,.lighting-path-item.selected .lighting-path.hit{cursor:pointer}.lighting-path.draft{stroke:#ff9205;stroke-width:7px;stroke-dasharray:2 1.4;pointer-events:none;vector-effect:non-scaling-stroke}.lighting-path.draft-point{fill:#ff9205;stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.lighting-downlight-link{fill:none;stroke:#ff9205;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lighting-path-item.selected{filter:drop-shadow(0 0 2px #ff920547)}.lighting-handle-layer{pointer-events:none;transform-origin:0 0;z-index:40;position:absolute;inset:0}.lighting-point-edit-layer{z-index:43}.lighting-circuit-group-move{color:var(--color-text-muted);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:3px;display:inline-flex}.lighting-circuit-group-move:hover,.lighting-circuit-group-move:focus-visible{color:var(--color-text-warning);background:#fef3c7}.lighting-circuit-group-move:active{cursor:grabbing}.lighting-point-group{pointer-events:none;z-index:41;position:absolute;transform:translate(-50%,-50%)}.lighting-handle{width:calc(14px * var(--ui-scale));height:calc(14px * var(--ui-scale));stroke:#ff9205;stroke-width:.7px;fill:#0000;cursor:move;pointer-events:all;box-shadow:0 0 0 2px rgb(var(--color-surface-rgb)/86%);appearance:none;border:1px solid #ff9205;border-radius:999px;margin:0;padding:0;position:absolute;transform:translate(-50%,-50%)}.lighting-handle.selected{fill:#ff9205;box-shadow:0 0 0 2px rgb(var(--color-surface-rgb)/86%), 0 0 0 5px #ff92052e;background:#ff9205}.lighting-handle.endpoint,.lighting-handle.middle{fill:#0000}.lighting-handle.downlight.selected{fill:#0000;background:0 0}.lighting-handle.downlight.square{border-radius:calc(4px * var(--ui-scale))}.lighting-point-add{border-right:1px solid rgb(var(--color-primary-rgb)/22%);color:var(--color-text-primary);border-radius:999px 0 0 999px}.lighting-point-add:hover{background:var(--color-bg-primary)}.lighting-point-remove{background:var(--color-bg-warning-light);color:var(--color-text-danger-strong);border-radius:0 999px 999px 0}.lighting-point-remove:hover{background:var(--color-border-danger)}.lighting-point-remove:disabled{opacity:.45;cursor:not-allowed}.lighting-point-actions{top:calc(-10px * var(--ui-scale));left:calc(18px * var(--ui-scale));border:1px solid rgb(var(--color-primary-rgb)/20%);background:var(--color-bg-primary);box-shadow:0 8px 18px rgb(var(--color-primary-rgb)/14%);pointer-events:auto;z-index:2;border-radius:999px;align-items:stretch;display:inline-flex;position:absolute;overflow:hidden}.lighting-add-menu{width:calc(250px * var(--ui-scale));max-width:calc(100vw - 24px);padding:calc(10px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 8px 24px rgb(var(--color-shadow-rgb)/16%);color:var(--color-text-strong);font-size:calc(.84rem * var(--ui-font-scale));pointer-events:auto;margin:0;position:fixed;inset:auto;overflow:auto}.lighting-add-menu>strong{padding:calc(4px * var(--ui-scale));display:block}.lighting-add-menu-group{gap:calc(2px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale));display:grid}.lighting-add-menu-group>span{padding:calc(4px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.76rem * var(--ui-font-scale))}.lighting-add-menu-group button{padding:calc(8px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-panel);color:var(--color-text-strong);text-align:left;cursor:pointer}.lighting-add-menu-group button:hover,.lighting-add-menu-group button:focus-visible{background:var(--color-bg-primary);outline-offset:-2px;outline:2px solid #93c5fd}.lighting-point-context-menu{padding:calc(4px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);max-width:calc(100vw - 16px);box-shadow:0 8px 24px rgb(var(--color-shadow-rgb)/16%);pointer-events:auto;margin:0;position:fixed;inset:auto}.lighting-point-context-menu button{padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(.84rem * var(--ui-font-scale));text-align:left;cursor:pointer}.lighting-point-context-menu button:hover,.lighting-point-context-menu button:focus-visible{background:var(--color-bg-accent)}.lighting-point-context-menu button:disabled{color:var(--color-text-muted);cursor:default}.lighting-point-length-badge{top:calc(18px * var(--ui-scale));left:calc(18px * var(--ui-scale));padding:calc(3px * var(--ui-scale)) calc(7px * var(--ui-scale));background:rgb(var(--color-surface-rgb)/96%);color:#9a3412;font-size:calc(.72rem * var(--ui-font-scale));white-space:nowrap;pointer-events:none;z-index:2;box-shadow:0 8px 18px rgb(var(--color-shadow-rgb)/12%);border:1px solid #ff92053d;border-radius:999px;justify-content:center;align-items:center;font-weight:900;display:inline-flex;position:absolute}.lighting-point-action{min-width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale));padding:0 calc(7px * var(--ui-scale));font-size:calc(.88rem * var(--ui-font-scale));cursor:pointer;pointer-events:auto;z-index:3;background:0 0;border:0;flex:none;font-weight:900}.lighting-point-action:hover{background:#dbeafee0}.lighting-point-action:disabled{opacity:.45;cursor:not-allowed}.lighting-point-type-control{min-width:calc(82px * var(--ui-scale));z-index:3;flex:auto;align-items:center;display:inline-flex}.lighting-point-quantity-control,.lighting-point-layout-control{border-left:1px solid rgb(var(--color-primary-rgb)/22%);z-index:3;flex:none;align-items:center;display:inline-flex}.lighting-point-type-select{height:calc(24px * var(--ui-scale));width:100%;max-width:none;padding:0 calc(8px * var(--ui-scale));border:0;border-left:1px solid rgb(var(--color-primary-rgb)/22%);background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.75rem * var(--ui-font-scale));cursor:pointer;outline:none;font-weight:800}.lighting-point-type-select:focus{background:var(--color-bg-panel)}.lighting-point-quantity-select,.lighting-point-layout-select{height:calc(24px * var(--ui-scale));min-width:calc(56px * var(--ui-scale));padding:0 calc(6px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.75rem * var(--ui-font-scale));cursor:pointer;border:0;outline:none;font-weight:900}.lighting-point-quantity-select:focus,.lighting-point-layout-select:focus{background:var(--color-bg-panel)}.lighting-item-order-badge,.lighting-downlight-number{background:var(--color-bg-danger-strong);color:var(--color-text-on-accent);font-size:calc(1rem * var(--ui-font-scale));text-align:center;border-radius:50%;justify-content:center;place-items:center;font-weight:900;line-height:1;display:flex}.sensor-order-badge{background:#00a2ff}.lighting-downlight-actions{top:calc(-10px * var(--ui-scale));left:calc(18px * var(--ui-scale));border:1px solid rgb(var(--color-primary-rgb)/20%);background:var(--color-bg-primary);box-shadow:0 8px 18px rgb(var(--color-primary-rgb)/14%);pointer-events:auto;border-radius:999px;align-items:stretch;display:inline-flex;position:absolute;overflow:hidden}.lighting-downlight-action{min-width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale));padding:0 calc(7px * var(--ui-scale));font-size:calc(.88rem * var(--ui-font-scale));cursor:pointer;pointer-events:auto;background:0 0;border:0;font-weight:900}.lighting-downlight-add{border-right:1px solid rgb(var(--color-primary-rgb)/22%);color:var(--color-text-primary);border-radius:999px 0 0 999px}.lighting-downlight-add:hover{background:#dbeafee0}.lighting-downlight-remove{background:var(--color-bg-warning-light);color:var(--color-text-danger-strong);border-radius:0 999px 999px 0}.lighting-downlight-remove:hover{background:var(--color-border-danger)}.lighting-downlight-label-pill{align-items:center;gap:calc(4px * var(--ui-scale));width:100%;height:100%;padding:0 calc(6px * var(--ui-scale));background:rgb(var(--color-surface-rgb)/96%);box-shadow:0 6px 14px rgb(var(--color-shadow-rgb)/10%);color:var(--color-text-strong);white-space:nowrap;pointer-events:none;border:1px solid #dc26262e;border-radius:999px;justify-content:center;display:inline-flex;overflow:hidden}.lighting-controller{gap:calc(4px * var(--ui-scale));min-width:0;padding:calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-panel);display:grid}.lighting-controller.active{border-color:var(--color-border-strong)}.lighting-controller-header{align-items:center;gap:calc(4px * var(--ui-scale));min-width:0;display:flex}.lighting-controller-header>strong{font-size:var(--ui-font-size-subsection-title);flex:1}.lighting-controller-header>button,.lighting-controller-create>button{flex:none;width:auto}.lighting-controller-name{cursor:text;flex:1;min-width:0;display:flex}.lighting-controller-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lighting-controller-count{color:var(--color-text-muted);font-size:var(--ui-font-size-small);flex:none}.lighting-controller-capacity-warning{color:var(--color-text-danger);margin:0}.lighting-controller-circuits{gap:calc(4px * var(--ui-scale));min-width:0;padding-left:calc(4px * var(--ui-scale));display:grid}.lighting-controller-tools{gap:calc(4px * var(--ui-scale));min-width:0;display:grid}.lighting-controller-create{align-items:center;gap:calc(4px * var(--ui-scale));min-width:0;display:flex}.lighting-controller-create select{flex:1;min-width:0}.lighting-controller-type,.lighting-controller-assignment{gap:calc(4px * var(--ui-scale));min-width:0;font-size:var(--ui-font-size-small);display:grid}.lighting-controller-type span,.lighting-controller-assignment span{color:var(--color-text-muted)}.lighting-controller-create select,.lighting-controller-type select,.lighting-controller-assignment select{width:100%;min-width:0;padding:calc(4px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font:inherit}.lighting-controller-add-circuit{text-align:left;white-space:normal;justify-content:flex-start}.lighting-controller-add-circuit[aria-pressed=true]{background:var(--color-bg-card);font-weight:600}.lighting-sidebar-summary{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(36px * var(--ui-scale));min-width:0;padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));display:flex}.lighting-sidebar-counts{align-items:center;gap:calc(4px * var(--ui-scale)) calc(12px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale));flex-wrap:wrap;margin:0;display:flex}.lighting-sidebar-counts>div{align-items:baseline;gap:calc(4px * var(--ui-scale));white-space:nowrap;display:flex}.lighting-sidebar-counts dd{color:var(--color-text-strong);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.lighting-rotate-button.ghost-button.compact{gap:calc(4px * var(--ui-scale));min-height:calc(28px * var(--ui-scale));padding:0 calc(6px * var(--ui-scale));font-size:calc(.76rem * var(--ui-font-scale));flex:none}.layer-bulk-type{gap:calc(4px * var(--ui-scale));min-width:0;display:grid}.layer-bulk-type-trigger{align-items:center;gap:calc(8px * var(--ui-scale));width:100%;min-height:calc(30px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.8rem * var(--ui-font-scale));text-align:left;cursor:pointer;display:flex}.layer-bulk-type-trigger:hover:not(:disabled){background:var(--color-bg-panel)}.layer-bulk-type-trigger:focus-visible{outline:2px solid var(--color-text-violet);outline-offset:2px}.layer-bulk-type-trigger:disabled{color:var(--color-text-muted);cursor:default}.layer-bulk-type-trigger svg{flex:none}.layer-bulk-type-current{min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.layer-bulk-type-options{gap:calc(4px * var(--ui-scale));display:grid}.layer-bulk-type-options .lighting-mode-chip{min-height:calc(30px * var(--ui-scale));padding:calc(4px * var(--ui-scale));font-size:calc(.76rem * var(--ui-font-scale))}.layer-bulk-type-grid.lighting-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.layer-bulk-type-hint{color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale))}.layer-sidebar,.lighting-panel{gap:calc(12px * var(--ui-scale));z-index:40;flex:auto;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;display:grid;position:relative;overflow:visible}.layer-sidebar-content,.lighting-panel-content{gap:calc(12px * var(--ui-scale));min-height:0;padding-right:calc(4px * var(--ui-scale));grid-auto-rows:max-content;align-content:start;display:grid;overflow:auto}.layer-sidebar-header,.lighting-panel-header{gap:calc(4px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-panel);display:grid}.layer-sidebar-footer{min-height:calc(44px * var(--ui-scale));z-index:50;flex:none;justify-content:flex-end;align-items:center;display:flex;position:relative}.sensor-legend{align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border-radius:calc(10px * var(--ui-scale));color:var(--color-text-strong);background:#00a2ff0f;border:1px solid #00a2ff2e;font-weight:700;display:inline-flex}.sensor-legend-dot{width:calc(12px * var(--ui-scale));height:calc(12px * var(--ui-scale));box-shadow:0 0 0 2px rgb(var(--color-surface-rgb)/92%), 0 0 0 4px #00a2ff33;background:#00a2ff;border-radius:50%}.lighting-config{padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card)}.lighting-config summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.lighting-config summary::-webkit-details-marker{display:none}.lighting-config[open] .lighting-config-summary:after{transform:rotate(180deg)}.lighting-config-summary{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(.9rem * var(--ui-font-scale));font-weight:900;display:flex;position:relative}.lighting-config-summary:after{content:"▾";color:var(--color-text-muted);font-size:.9em;transition:transform .16s}.lighting-config-body{gap:calc(10px * var(--ui-scale));padding-top:calc(10px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.lighting-width-control{gap:calc(8px * var(--ui-scale));min-width:0;color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));font-weight:800;display:grid}.lighting-width-control>span{overflow-wrap:anywhere;min-width:0}.lighting-width-control-input{min-width:0;min-height:calc(34px * var(--ui-scale));display:block;position:relative}.lighting-step-input{width:100%;min-height:calc(34px * var(--ui-scale));padding:0 calc(34px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);text-align:center;appearance:textfield}.lighting-step-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.lighting-step-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.lighting-step-button{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));background:var(--color-bg-accent-soft);color:var(--color-text-soft);font-size:calc(.95rem * var(--ui-font-scale));cursor:pointer;border-radius:999px;place-items:center;font-weight:900;display:inline-grid;position:absolute;top:50%;transform:translateY(-50%)}.lighting-step-button:first-of-type{left:calc(6px * var(--ui-scale))}.lighting-step-button:last-of-type{right:calc(6px * var(--ui-scale))}.lighting-step-button:hover{background:var(--color-bg-accent-soft)}.lighting-width-control-row{gap:calc(8px * var(--ui-scale));grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.lighting-panel-header strong,.lighting-group-header strong,.lighting-item-row strong,.lighting-empty strong{color:var(--color-text-strong)}.lighting-panel-header span,.lighting-group-header span,.lighting-item-row small,.lighting-empty span{color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale));line-height:1.45}.lighting-group{gap:calc(8px * var(--ui-scale));display:grid}.lighting-group-header{gap:calc(2px * var(--ui-scale));display:grid}.lighting-mode-grid{gap:calc(6px * var(--ui-scale));grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.network-type-grid,.access-control-type-grid,.hvac-control-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.network-type-grid-switch-hub{grid-template-columns:repeat(2,minmax(0,1fr))}.network-type-grid-switch-hub .lighting-mode-chip{min-height:calc(44px * var(--ui-scale));line-height:1.25}.facility-type-grid{grid-template-columns:minmax(0,1fr)}.facility-type-grid .lighting-mode-chip{border-radius:calc(10px * var(--ui-scale));text-align:left;white-space:nowrap;justify-content:flex-start;width:100%}.facility-type-grid .lighting-mode-chip span{text-overflow:ellipsis;min-width:0;overflow:hidden}.lighting-subtype-grid{gap:calc(8px * var(--ui-scale));grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lighting-chip{gap:calc(4px * var(--ui-scale));min-height:calc(64px * var(--ui-scale));padding:calc(10px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);text-align:left;cursor:pointer;align-items:center;display:grid}.lighting-chip.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);box-shadow:inset 0 0 0 1px rgb(var(--color-shadow-accent-rgb)/14%)}.lighting-chip-label{padding:calc(2px * var(--ui-scale)) calc(6px * var(--ui-scale));background:var(--color-bg-accent-soft);color:var(--color-text-soft);font-size:calc(.7rem * var(--ui-font-scale));border-radius:999px;align-self:start;font-weight:900;display:inline-flex}.lighting-orientation-control{gap:calc(6px * var(--ui-scale));padding-top:calc(2px * var(--ui-scale));display:grid}.lighting-orientation-control>span{color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));font-weight:900}.lighting-orientation-buttons{gap:calc(6px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.lighting-orientation-buttons button{min-height:calc(30px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.82rem * var(--ui-font-scale));cursor:pointer;font-weight:900}.lighting-orientation-buttons button.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);color:var(--color-text-accent)}.lighting-orientation-buttons.compact{gap:calc(4px * var(--ui-scale))}.lighting-orientation-buttons.compact button{min-height:calc(26px * var(--ui-scale));padding:0 calc(7px * var(--ui-scale));font-size:calc(.75rem * var(--ui-font-scale))}.lighting-item-point-list{gap:calc(6px * var(--ui-scale));margin-top:calc(6px * var(--ui-scale));padding:calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-panel);display:grid}.lighting-item-point-list>span{color:var(--color-text-soft);font-size:calc(.76rem * var(--ui-font-scale));font-weight:900}.lighting-item-point-row{gap:calc(4px * var(--ui-scale));grid-template-columns:minmax(0,1fr);display:grid}.lighting-item-point-row strong{color:var(--color-text-strong);font-size:calc(.78rem * var(--ui-font-scale));overflow-wrap:anywhere;font-weight:900}.lighting-item-point-controls{grid-template-columns:minmax(0, 1fr) calc(44px * var(--ui-scale)) calc(48px * var(--ui-scale));align-items:center;gap:calc(4px * var(--ui-scale));display:grid}.lighting-item-fixture-orientation{justify-self:end}.lighting-item-point-controls select,.lighting-item-fixture-orientation select{width:100%;min-width:0;height:calc(26px * var(--ui-scale));padding:0 calc(2px * var(--ui-scale));appearance:none;border:1px solid var(--color-border-muted);border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.72rem * var(--ui-font-scale));cursor:pointer;font-weight:900}.lighting-product-settings{gap:calc(9px * var(--ui-scale));display:grid}.lighting-product-settings p{color:var(--color-text-muted);font-size:calc(.76rem * var(--ui-font-scale));margin:0}.lighting-product-control{gap:calc(3px * var(--ui-scale));min-width:0;color:var(--color-text-soft);font-size:calc(.72rem * var(--ui-font-scale));font-weight:700;display:grid}.lighting-product-control select{width:100%;min-width:0;min-height:calc(29px * var(--ui-scale));padding:0 calc(7px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.lighting-mode-chip{min-height:calc(36px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(999px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.88rem * var(--ui-font-scale));cursor:pointer;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.lighting-mode-chip.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);box-shadow:inset 0 0 0 1px rgb(var(--color-shadow-accent-rgb)/14%)}.lighting-mode-chip:disabled{opacity:.45;cursor:not-allowed}.lighting-summary{gap:calc(4px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-accent-soft);display:grid}.lighting-summary.compact{background:var(--color-bg-subtle)}.all-layers-item-section{min-width:0;padding:calc(10px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card)}.all-layers-item-section.hidden{opacity:.6}.all-layers-item-heading{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);display:flex}.all-layers-item-heading span{color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale));flex:none}.all-layers-item-heading-label{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.all-layers-item-icon{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));fill:currentColor;stroke:#fff;stroke-width:2px;flex:none}.all-layers-item-list{gap:calc(4px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale));display:grid}.all-layers-item-button{align-items:center;gap:calc(8px * var(--ui-scale));width:100%;min-width:0;padding:calc(7px * var(--ui-scale)) calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(6px * var(--ui-scale));background:var(--color-bg-panel);color:var(--color-text-strong);text-align:left;cursor:pointer;display:flex}.all-layers-item-button:hover,.all-layers-item-button:focus-visible{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.all-layers-item-number{color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale));flex:none}.all-layers-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.all-layers-item-empty{margin:calc(8px * var(--ui-scale)) 0 0;color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale))}.lighting-item-list{gap:calc(8px * var(--ui-scale));display:grid}.lighting-circuit-group{gap:calc(6px * var(--ui-scale));display:grid}.lighting-circuit-single{display:grid}.lighting-circuit-group.dragging,.lighting-circuit-single.dragging{opacity:.65}.lighting-circuit-group.drop-target,.lighting-circuit-single.drop-target,.lighting-circuit-group.selected{border-radius:calc(8px * var(--ui-scale));box-shadow:0 0 0 2px rgb(var(--color-shadow-accent-rgb)/16%)}.lighting-circuit-group-header{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(4px * var(--ui-scale)) calc(2px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));cursor:grab;display:flex}.lighting-circuit-group-header:active{cursor:grabbing}.lighting-circuit-group-header strong{min-width:0;color:var(--color-text-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lighting-circuit-group-header span{color:var(--color-text-muted);flex:none}.lighting-circuit-group-name-row{align-items:center;gap:calc(6px * var(--ui-scale));flex:1;min-width:0;display:flex}.lighting-circuit-group-sort{color:var(--color-text-muted);cursor:grab;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:3px;display:inline-flex}.lighting-circuit-group-sort:active{cursor:grabbing}.lighting-circuit-group-sort:disabled{opacity:.4;cursor:default}.lighting-circuit-group-header .lighting-item-order-badge{flex:0 0 calc(28px * var(--ui-scale))}.lighting-circuit-group-name-editor{flex:auto}.lighting-item-row{grid-template-columns:calc(44px * var(--ui-scale)) minmax(0, 1fr) repeat(3, auto);border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);cursor:grab;align-items:stretch;padding:0;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:grid}.lighting-item-row.grouped{margin-left:calc(12px * var(--ui-scale));grid-template-columns:minmax(0,1fr) repeat(3,auto)}.lighting-item-row.selected{border-color:var(--color-text-accent);background:var(--color-bg-accent);box-shadow:inset 0 0 0 1px rgb(var(--color-shadow-accent-rgb)/12%)}.lighting-item-row.dragging{z-index:3;opacity:.65;will-change:transform;transition:none;position:relative}.lighting-item-row.drop-target{border-color:var(--color-text-accent);box-shadow:inset 0 0 0 1px #1f6f7838,0 10px 24px #1f6f781a}.lighting-item-row strong,.lighting-item-row small{display:block}.lighting-item-header-row{justify-content:center;align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;padding:calc(6px * var(--ui-scale)) calc(6px * var(--ui-scale)) calc(8px * var(--ui-scale)) calc(8px * var(--ui-scale));display:flex}.lighting-item-order-badge{width:100%;max-width:calc(28px * var(--ui-scale));aspect-ratio:1;flex:0 auto;margin-left:0}.lighting-item-loop-toggle{width:calc(28px * var(--ui-scale));height:calc(28px * var(--ui-scale));border:1px solid var(--color-border-muted);background:var(--color-bg-card);color:var(--color-text-muted);cursor:pointer;box-shadow:inset 0 0 0 1px rgb(var(--color-surface-rgb)/76%);border-radius:999px;place-items:center;padding:0;display:inline-grid}.lighting-item-loop-toggle.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);color:var(--color-text-accent)}.lighting-item-loop-toggle:hover{background:var(--color-bg-panel)}.lighting-item-content{justify-content:space-between;align-items:center;gap:calc(60px * var(--ui-scale));min-width:0;padding:calc(8px * var(--ui-scale)) calc(8px * var(--ui-scale));cursor:inherit;display:flex}.lighting-item-meta{gap:calc(2px * var(--ui-scale));flex:auto;min-width:0;display:grid}.lighting-item-name-row{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.lighting-item-name-row strong:first-child{color:var(--color-text-strong)}.lighting-item-description-row{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.lighting-item-text-trigger{min-width:0;max-width:100%;color:inherit;font:inherit;text-align:left;cursor:text;background:0 0;border:0;align-items:baseline;padding:0;display:inline-flex}.lighting-item-text-trigger:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px;border-radius:2px}.lighting-item-text-trigger:hover{text-underline-offset:2px;text-decoration:underline}.lighting-item-description-editor{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.lighting-item-description-input{min-width:0;height:calc(28px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-soft);font-size:calc(.84rem * var(--ui-font-scale));flex:auto}.lighting-item-description-input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 2px rgb(var(--color-shadow-accent-rgb)/12%);outline:none}.lighting-item-name-editor{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.lighting-item-name-input{min-width:0;height:calc(30px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.94rem * var(--ui-font-scale));flex:auto;font-weight:900}.lighting-item-name-input:focus{border-color:var(--color-text-accent);box-shadow:0 0 0 2px rgb(var(--color-shadow-accent-rgb)/12%);outline:none}.lighting-item-name-confirm,.lighting-item-name-cancel{width:calc(28px * var(--ui-scale));height:calc(28px * var(--ui-scale));cursor:pointer;border-radius:999px;flex:none;place-items:center;display:inline-grid}.lighting-item-name-confirm{background:var(--color-bg-success);color:var(--color-text-success)}.lighting-item-name-confirm:hover{background:var(--color-bg-success)}.lighting-item-name-cancel{background:var(--color-bg-accent-soft);color:var(--color-text-muted)}.lighting-item-name-cancel:hover{background:var(--color-border-soft);color:var(--color-text-strong)}.lighting-item-hint{color:var(--color-text-muted);font-size:calc(.76rem * var(--ui-font-scale))}.lighting-item-name{width:100%;min-width:0;color:var(--color-text-strong);font-size:calc(.98rem * var(--ui-font-scale));cursor:text;background:0 0;border:0;padding:0;font-weight:900}.lighting-item-name:focus{text-decoration:underline;-webkit-text-decoration-color:var(--color-text-accent);text-decoration-color:var(--color-text-accent);text-underline-offset:3px;outline:none;text-decoration-thickness:2px}.lighting-item-remove{width:calc(28px * var(--ui-scale));height:calc(28px * var(--ui-scale));color:var(--color-text-muted);cursor:pointer;font-size:calc(1rem * var(--ui-font-scale));background-color:#0000;border-radius:999px;flex:none;place-self:center;place-items:center;margin-right:4px;font-weight:900;line-height:1;display:inline-grid}.lighting-item-remove:hover{background:var(--color-bg-accent-soft);color:var(--color-text-strong)}.lighting-item-group-button{min-width:calc(42px * var(--ui-scale));height:calc(28px * var(--ui-scale));margin-right:calc(6px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border:1px solid var(--color-border-muted);background:var(--color-bg-card);color:var(--color-text-accent);cursor:pointer;font-size:calc(.76rem * var(--ui-font-scale));border-radius:999px;place-self:center;font-weight:800}.lighting-item-group-button:hover{background:var(--color-bg-accent);border-color:var(--color-text-accent)}.lighting-item-ungroup-button{color:var(--color-text-muted)}.lighting-item-ungroup-button:hover{color:var(--color-text-strong)}.lighting-empty{gap:calc(4px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border:1px dashed var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);display:grid}.sensor-draft-controls{border:1px solid var(--color-border);background:var(--color-bg-accent);border-radius:6px;flex-direction:column;gap:8px;padding:10px;font-size:12px;display:flex}.sensor-draft-controls span{color:var(--color-text-muted);line-height:1.6}.sensor-circuit-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sensor-circuit-actions strong{margin-right:auto}.sensor-point-list{border-top:1px solid var(--color-border);flex-direction:column;gap:4px;width:100%;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.sensor-sidebar .lighting-item-content{flex-direction:column;align-items:stretch;gap:0}.sensor-point-row{border-radius:4px;align-items:center;display:flex}.sensor-point-row.selected{background:var(--color-bg-accent)}.sensor-point-select{color:var(--color-text-base);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:6px 8px}.lan-installation-control{min-width:0;color:var(--color-text-muted);font-size:var(--ui-font-size-small);align-items:center;gap:5px;display:inline-flex}.lan-installation-control select{border:1px solid var(--color-border);background:var(--color-bg-panel);min-width:0;color:var(--color-text-base);font:inherit;border-radius:4px;padding:4px}.layer-settings-footer,.lighting-settings-footer{min-height:calc(44px * var(--ui-scale));flex:none;justify-content:flex-end;align-items:center;display:flex}.layer-settings-anchor,.lighting-settings-anchor{justify-content:flex-end;width:100%;display:flex;position:relative}.layer-settings-toggle,.lighting-settings-toggle{width:calc(38px * var(--ui-scale));height:calc(38px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);cursor:pointer;place-items:center;display:inline-grid}.layer-settings-toggle:hover,.lighting-settings-toggle:hover{background:var(--color-bg-panel)}.layer-settings-popover,.lighting-settings-popover{z-index:260;width:min(420px * var(--ui-scale), 100vw - 32px);box-sizing:border-box;gap:calc(14px * var(--ui-scale));min-width:0;max-width:calc(100vw - 32px);padding:calc(16px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(14px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 24px 60px rgb(var(--color-shadow-rgb)/24%);display:grid;position:absolute;bottom:calc(100% + 10px);left:auto;right:0}.layer-settings-popover:after,.lighting-settings-popover:after{content:"";right:calc(16px * var(--ui-scale));bottom:calc(-7px * var(--ui-scale));width:calc(12px * var(--ui-scale));height:calc(12px * var(--ui-scale));border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-bg-card);position:absolute;transform:rotate(45deg)}.layer-settings-header,.lighting-settings-header{justify-content:space-between;align-items:flex-start;gap:calc(12px * var(--ui-scale));min-width:0;display:flex}.layer-settings-header strong,.lighting-settings-header strong{color:var(--color-text-strong);font-size:calc(1rem * var(--ui-font-scale));font-weight:900;display:block}.layer-settings-grid,.lighting-settings-grid{gap:calc(10px * var(--ui-scale));grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));min-width:0;display:grid}.layer-settings-section{gap:calc(8px * var(--ui-scale));min-width:0;padding:calc(12px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-panel);display:grid}.layer-settings-section-title{color:var(--color-text-strong);font-size:calc(.84rem * var(--ui-font-scale));font-weight:800}.layer-settings-section-body{gap:calc(8px * var(--ui-scale));min-width:0;display:grid}.lighting-opacity-control{gap:calc(6px * var(--ui-scale));background:0 0;border:0;border-radius:0;padding:0;display:grid}.lighting-opacity-control>span{color:var(--color-text-strong);font-size:calc(.84rem * var(--ui-font-scale));font-weight:800}.lighting-opacity-control-row{align-items:center;gap:calc(10px * var(--ui-scale));display:flex}.lighting-opacity-range{flex:auto}.lighting-opacity-control strong{min-width:calc(42px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.84rem * var(--ui-font-scale));text-align:right}.lighting-opacity-sync-row{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));font-weight:700;display:flex}.lighting-opacity-sync-row input{accent-color:var(--color-text-strong);flex:none}.region-shape-layer{pointer-events:none;touch-action:none;position:absolute;inset:0;overflow:hidden}.region-shape{fill:var(--region-color);fill-opacity:.08;stroke:var(--region-color);stroke-width:1.5px}.region-shape.selected{fill-opacity:.16;stroke-width:2.5px}.region-shape.selectable{pointer-events:all;cursor:pointer}.region-label{fill:var(--region-color);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:13px;font-weight:600}.region-label.selectable{pointer-events:all;cursor:pointer}.region-vertex{fill:#fff;stroke:var(--color-text-muted);stroke-width:2px;pointer-events:all;cursor:grab;touch-action:none}.region-vertex.active,.region-vertex.first{stroke:var(--color-text-accent)}.region-vertex.selected{fill:var(--color-text-accent);stroke:#fff;stroke-width:2.5px;cursor:grabbing}.region-vertex:hover{stroke-width:3px}.region-midpoint{pointer-events:all;cursor:copy}.region-midpoint circle{fill:#fff;stroke:var(--color-text-accent);stroke-width:1px}.region-midpoint path{fill:none;stroke:var(--color-text-accent);stroke-width:1px;pointer-events:none}.region-point-delete{--region-point-delete-width:84px;--region-point-delete-height:32px;left:clamp(4px, var(--region-point-x) + 12px, 100% - var(--region-point-delete-width) - 4px);top:clamp(4px, var(--region-point-y) - 16px, 100% - var(--region-point-delete-height) - 4px);z-index:1;width:var(--region-point-delete-width);height:var(--region-point-delete-height);border:1px solid var(--color-border-danger);background:var(--color-bg-card);box-shadow:0 2px 8px rgb(var(--color-shadow-rgb)/12%);color:var(--color-text-danger-strong);white-space:nowrap;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:0;font-size:12px;display:inline-flex;position:absolute}.region-point-delete:hover{background:var(--color-bg-warning-light)}.region-point-delete:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}.region-snap-guides{fill:none;stroke:var(--color-text-primary);stroke-width:1px;stroke-dasharray:4 4}.region-draft{fill:none;stroke:var(--color-text-accent);stroke-width:2px;stroke-dasharray:6 3}.region-drawing{cursor:crosshair}.region-stage{touch-action:none}.region-sidebar .layer-sidebar-content{flex-direction:column;gap:12px;display:flex}.region-draft-controls,.region-selection{border-top:1px solid var(--color-border);flex-direction:column;gap:8px;padding:12px 0;font-size:12px;display:flex}.region-draft-controls span,.region-selection span{color:var(--color-text-muted);overflow-wrap:anywhere;line-height:1.6}.region-action-row{gap:6px;display:flex}.region-list{flex-direction:column;gap:3px;display:flex}.region-list-row{border:1px solid var(--color-border);border-radius:6px;align-items:center;display:flex}.region-list-row.selected{border-color:var(--color-text-accent);background:var(--color-bg-accent)}.region-list-row.dragging{z-index:1;background:var(--color-bg-accent);opacity:.8;position:relative}.region-drag-handle{color:var(--color-text-muted);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:5px;flex:0 0 22px;justify-content:center;align-self:stretch;align-items:center;padding:0;display:inline-flex}.region-drag-handle:active{cursor:grabbing}.region-drag-handle:hover,.region-drag-handle:focus-visible{background:var(--color-bg-subtle);color:var(--color-text-strong)}.region-drag-handle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.region-drag-handle:disabled{opacity:.3;cursor:default}.region-list-select{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:9px 8px;display:flex}.region-list-select i{border-radius:2px;flex-shrink:0;width:8px;height:8px}.region-list-select span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.region-list-select small{color:var(--color-text-muted);white-space:nowrap}.region-name-editor{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.region-name-editor label{color:var(--color-text-muted);grid-column:1/-1}.region-name-editor input{border:1px solid var(--color-border);border-radius:4px;width:100%;min-width:0;padding:6px}.region-help{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.6}.all-layers-stage .region-shape.selectable,.all-layers-stage .region-label.selectable{pointer-events:all}.region-assistant-preview{width:100%;height:100%;min-height:0;display:block}.estimate-board{background:var(--color-bg-page);grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid}.estimate-board-header{justify-content:space-between;align-items:flex-start;gap:calc(16px * var(--ui-scale));padding:calc(24px * var(--ui-scale)) calc(28px * var(--ui-scale)) calc(16px * var(--ui-scale));border-bottom:1px solid var(--color-border-strong);background:var(--color-bg-card);display:flex}.estimate-board-header strong,.estimate-board-header span{display:block}.estimate-board-header strong{color:var(--color-text-strong);font-size:calc(1.08rem * var(--ui-font-scale))}.estimate-board-header span{margin-top:calc(4px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.86rem * var(--ui-font-scale))}.estimate-board-actions{align-items:center;gap:calc(8px * var(--ui-scale));flex:none;display:flex}.estimate-kicker{align-items:center;gap:calc(8px * var(--ui-scale));margin:0 0 calc(8px * var(--ui-scale));color:var(--color-text-primary);font-size:calc(.84rem * var(--ui-font-scale));font-weight:800;display:inline-flex}.estimate-kicker span{color:inherit;margin:0}.estimate-board-body{min-height:0;padding:calc(28px * var(--ui-scale));overflow:auto}.estimate-content{gap:calc(16px * var(--ui-scale));align-content:start;min-height:0;display:grid}.estimate-scope-strip{gap:calc(4px * var(--ui-scale));padding-bottom:calc(2px * var(--ui-scale));scrollbar-width:thin;display:flex;overflow-x:auto}.estimate-scope-chip{align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(34px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(12px * var(--ui-scale));border-radius:calc(10px * var(--ui-scale));color:var(--color-text-muted);text-align:left;background:0 0;border:1px solid #0000;flex:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.estimate-scope-chip:hover{background:var(--color-bg-accent-soft);color:var(--color-text-strong)}.estimate-scope-chip:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.estimate-scope-chip.active{border-color:var(--color-border-muted);background:var(--color-bg-card);color:var(--color-text-strong);box-shadow:0 1px 2px rgb(var(--color-shadow-rgb)/6%)}.estimate-scope-chip-label{font-size:calc(.83rem * var(--ui-font-scale));font-weight:750}.estimate-scope-chip-meta{max-width:calc(150px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.76rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.estimate-column-visibility{align-items:center;gap:calc(4px * var(--ui-scale)) calc(12px * var(--ui-scale));min-width:0;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);flex-wrap:wrap;display:flex}.estimate-column-visibility>strong{color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale));white-space:nowrap}.estimate-column-visibility-option{align-items:center;gap:calc(4px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));cursor:pointer;display:inline-flex}.estimate-column-visibility-option input{width:calc(15px * var(--ui-scale));height:calc(15px * var(--ui-scale));accent-color:var(--color-text-primary);margin:0}.estimate-column-visibility-option:has(input:focus-visible){color:var(--color-text-strong)}.estimate-layer-sections{gap:calc(16px * var(--ui-scale));display:grid}.estimate-final-summaries{grid-template-columns:repeat(auto-fit, minmax(min(100%, 640px * var(--ui-scale)), 1fr));align-items:start;gap:calc(16px * var(--ui-scale));max-width:calc(1520px * var(--ui-scale) + calc(16px * var(--ui-scale)));min-width:0;display:grid}.estimate-final-summary{width:100%;max-width:calc(760px * var(--ui-scale));border:1px solid var(--color-border-strong);border-radius:calc(14px * var(--ui-scale));background:var(--color-bg-card);min-width:0;box-shadow:0 4px 14px rgb(var(--color-shadow-rgb)/5%);justify-self:start;overflow:hidden}.estimate-final-summary-header{padding:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale));border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.estimate-final-summary-header strong,.estimate-final-summary-header span{display:block}.estimate-final-summary-header strong{color:var(--color-text-strong);font-size:calc(.98rem * var(--ui-font-scale))}.estimate-final-summary-header span{margin-top:calc(2px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.79rem * var(--ui-font-scale))}.estimate-final-summary-table-wrap{padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));overflow-x:auto}.estimate-final-summary-table{width:100%;min-width:calc(608px * var(--ui-scale));border-collapse:collapse;table-layout:fixed}.estimate-final-summary-table th,.estimate-final-summary-table td{padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft);font-variant-numeric:tabular-nums}.estimate-final-summary-table th{color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale));text-align:left;overflow-wrap:anywhere;font-weight:500;line-height:1.35}.estimate-final-summary-table thead th{text-align:center;font-weight:700}.estimate-final-summary-table thead th:first-child[rowspan]{text-align:left;width:24%}.estimate-final-summary-table td{color:var(--color-text-strong);font-size:calc(.88rem * var(--ui-font-scale));text-align:right;white-space:nowrap;font-weight:400}.estimate-final-summary-table td.is-unavailable{color:var(--color-text-warning);font-size:calc(.76rem * var(--ui-font-scale))}.estimate-final-summary-table .is-total{background:var(--color-bg-subtle)}.estimate-final-summary-table .is-total>*{color:var(--color-text-strong);font-weight:800}.estimate-final-summary-table .is-margin td{color:var(--color-text-primary)}.estimate-final-summary-table .is-margin th,.estimate-final-summary-table .is-profit th{text-align:right}.estimate-final-summary-table .is-profit{background:var(--color-bg-subtle)}.estimate-final-summary-table .is-profit>*{color:var(--color-text-strong);font-weight:800}.estimate-final-summary-table .is-service td{color:var(--color-text-warning)}.estimate-final-summary-table tfoot tr:last-child>*{border-bottom:0}.estimate-final-summary-margin-rate{color:var(--color-text-muted);white-space:nowrap}.estimate-layer-section{border:1px solid var(--color-border);border-radius:calc(14px * var(--ui-scale));background:var(--color-bg-card);min-width:0;box-shadow:0 4px 14px rgb(var(--color-shadow-rgb)/5%);overflow:hidden}.estimate-layer-header{justify-content:space-between;align-items:center;gap:calc(16px * var(--ui-scale));min-height:calc(58px * var(--ui-scale));padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.estimate-layer-actions{align-items:center;gap:calc(10px * var(--ui-scale));flex-wrap:wrap;flex:none;max-width:100%;margin-left:auto;display:flex}.estimate-layer-inclusion{align-items:center;gap:calc(4px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));white-space:nowrap;cursor:pointer;display:inline-flex}.estimate-layer-inclusion input{width:calc(15px * var(--ui-scale));height:calc(15px * var(--ui-scale));accent-color:var(--color-text-primary);margin:0}.estimate-layer-title{align-items:center;gap:calc(10px * var(--ui-scale));min-width:0;display:flex}.estimate-layer-title>div strong,.estimate-layer-title>div span{display:block}.estimate-layer-title>div strong{color:var(--color-text-strong);font-size:calc(.98rem * var(--ui-font-scale))}.estimate-layer-title>div>span{margin-top:calc(2px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.79rem * var(--ui-font-scale))}.estimate-layer-count{padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:calc(.76rem * var(--ui-font-scale));border-radius:999px;flex:none;font-weight:700}.estimate-table-scroll{min-width:0;overflow-x:auto}.estimate-table{width:100%;min-width:calc(1740px * var(--ui-scale));border-collapse:collapse;table-layout:fixed}.estimate-table th,.estimate-table td{height:calc(26px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(12px * var(--ui-scale));border-right:1px solid var(--color-border-soft);border-bottom:1px solid var(--color-border-soft);color:var(--color-text-base);font-size:calc(.84rem * var(--ui-font-scale));text-align:left;vertical-align:middle}.estimate-table th:last-child,.estimate-table td:last-child{border-right:0}.estimate-table thead th{height:calc(26px * var(--ui-scale));padding-top:calc(4px * var(--ui-scale));padding-bottom:calc(4px * var(--ui-scale));background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:calc(.75rem * var(--ui-font-scale));white-space:nowrap;font-weight:700}.estimate-table thead th:first-child{width:16%}.estimate-table thead th:nth-child(2),.estimate-table thead th:nth-child(3){width:6%}.estimate-table thead th:nth-child(4){width:8%}.estimate-table thead th:nth-child(5){width:6%}.estimate-table thead th:nth-child(6),.estimate-table thead th:nth-child(7){width:9%}.estimate-table thead th:nth-child(8){width:10%}.estimate-table thead th:nth-child(9){width:7%}.estimate-table thead th:nth-child(10){width:10%}.estimate-table thead th:nth-child(11){width:5%}.estimate-table thead th:nth-child(12){width:8%}.estimate-table thead th.estimate-item-column{width:14%}.estimate-table thead th.estimate-circuit-column,.estimate-table thead th.estimate-total-quantity-column{width:5%}.estimate-table thead th.estimate-quantity-column{width:7%}.estimate-table thead th.estimate-length-column{width:5%}.estimate-table thead th.estimate-purchase-column,.estimate-table thead th.estimate-sale-column{width:7%}.estimate-table thead th.estimate-manual-sale-column,.estimate-table thead th.estimate-amount-column{width:8%}.estimate-table thead th.estimate-service-column{text-align:center;width:5%}.estimate-table thead th.estimate-service-total-column{width:9%}.estimate-table thead th.estimate-margin-rate-column{width:6%}.estimate-table thead th.estimate-margin-amount-column{width:8%}.estimate-table thead th.estimate-power-column{width:5%}.estimate-table thead th.estimate-note-column{width:7%}.estimate-table tbody tr{transition:background-color .16s}.estimate-table tbody tr:hover{background:rgb(var(--color-panel-rgb)/72%)}.estimate-table tbody tr:last-child th,.estimate-table tbody tr:last-child td{border-bottom:0}.estimate-table tbody th{color:var(--color-text-strong);font-weight:700}.estimate-table tbody tr.is-service>th,.estimate-table tbody tr.is-service>td{color:var(--color-text-danger)!important}.estimate-table tfoot tr{background:var(--color-bg-accent-soft)}.estimate-table tfoot th,.estimate-table tfoot td{border-top:1px solid var(--color-border-muted);color:var(--color-text-strong);border-bottom:0;font-weight:800}.estimate-table tfoot th{text-align:right}.estimate-table tfoot .is-unavailable{color:var(--color-text-warning);font-size:calc(.76rem * var(--ui-font-scale))}.estimate-table tfoot .estimate-device-total-row,.estimate-table tfoot .estimate-labor-total-row{background:var(--color-bg-subtle)}.estimate-table tfoot .estimate-device-total-row th,.estimate-table tfoot .estimate-device-total-row td,.estimate-table tfoot .estimate-labor-total-row th,.estimate-table tfoot .estimate-labor-total-row td{font-weight:400}.estimate-summary-row.is-expanded,.estimate-summary-row.is-expanded:hover{background:rgb(var(--color-warning-rgb)/72%)}.estimate-row-label{align-items:center;gap:calc(4px * var(--ui-scale));min-width:0;display:flex}.estimate-row-label>span{min-width:0}.estimate-product-memo-toggle,.estimate-bundle-details-toggle{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:var(--color-text-accent);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.estimate-product-memo-toggle:hover,.estimate-product-memo-toggle[aria-expanded=true],.estimate-product-memo-toggle[aria-pressed=true],.estimate-bundle-details-toggle:hover,.estimate-bundle-details-toggle[aria-expanded=true],.estimate-bundle-details-toggle[aria-pressed=true]{background:var(--color-bg-accent-soft)}.estimate-product-memo-toggle:focus-visible,.estimate-bundle-details-toggle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.estimate-bundle-details-toggle{color:var(--color-text-muted)}.estimate-bundle-details-toggle[aria-pressed=true]{color:var(--color-text-accent)}.estimate-product-memo-popover{z-index:1000;box-sizing:border-box;padding:calc(10px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 8px 24px rgb(var(--color-shadow-rgb)/16%);color:var(--color-text-base);font-size:calc(.8rem * var(--ui-font-scale));overflow-wrap:anywhere;font-weight:400;line-height:1.5;position:fixed;overflow:auto}.estimate-product-memo-popover textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:100px;max-height:220px;padding:calc(4px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-base);font:inherit;display:block}.estimate-product-memo-header{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);display:flex}.estimate-product-memo-hint{margin:calc(2px * var(--ui-scale)) 0 calc(8px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale))}.estimate-product-memo-entry{padding-top:calc(8px * var(--ui-scale));border-top:1px solid var(--color-border-soft)}.estimate-product-memo-entry+.estimate-product-memo-entry{margin-top:calc(8px * var(--ui-scale))}.estimate-product-memo-name{margin-bottom:calc(4px * var(--ui-scale));color:var(--color-text-strong);display:block}.estimate-product-memo-text{white-space:pre-wrap;margin:0}.estimate-product-memo-actions{justify-content:flex-end;gap:calc(4px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale));display:flex}.estimate-product-memo-actions button{min-height:calc(28px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));font-size:inherit}.estimate-product-memo-error{margin:calc(4px * var(--ui-scale)) 0 0;color:var(--color-text-danger)}.estimate-add-labor,.estimate-add-device{align-items:center;gap:calc(2px * var(--ui-scale));white-space:nowrap;display:inline-flex}.estimate-device-search-dialog{width:min(680px * var(--ui-scale), 100vw - 24px);border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);color:var(--color-text-base);padding:0}.estimate-device-search-dialog[open]{flex-direction:column;display:flex}.estimate-device-search-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/35%)}.estimate-device-search-dialog h2,.estimate-device-search-dialog h3,.estimate-device-search-dialog p{margin:0}.estimate-device-search-dialog h2{font-size:calc(1rem * var(--ui-font-scale))}.estimate-device-search-dialog h3{font-size:calc(.95rem * var(--ui-font-scale));overflow-wrap:anywhere}.estimate-device-search-dialog p{color:var(--color-text-muted);font-size:calc(.85rem * var(--ui-font-scale))}.estimate-device-search-dialog button{flex-shrink:0}.estimate-device-search-header,.estimate-device-search-footer{justify-content:space-between;align-items:center;gap:calc(10px * var(--ui-scale));padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));display:flex}.estimate-device-search-header{border-bottom:1px solid var(--color-border)}.estimate-device-search-header p{margin-top:calc(4px * var(--ui-scale))}.estimate-device-search-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale))}.estimate-device-search-body{align-items:stretch;gap:calc(12px * var(--ui-scale));min-height:0;padding:calc(16px * var(--ui-scale));flex-direction:column;display:flex;overflow-y:auto}.estimate-device-search-body>button{align-self:flex-start}.estimate-device-search-field{align-items:center;gap:calc(8px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));color:var(--color-text-muted);display:flex}.estimate-device-search-field input{width:100%;min-width:0;color:var(--color-text-base);font:inherit;background:0 0;border:0}.estimate-device-search-field:focus-within{outline:2px solid var(--color-text-accent);outline-offset:1px}.estimate-device-search-field input:focus{outline:none}.estimate-device-search-choices{margin:0;padding:0;list-style:none}.estimate-device-search-choices>li{border-bottom:1px solid var(--color-border-soft)}.estimate-device-search-result,.estimate-device-search-choice{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));padding:calc(12px * var(--ui-scale)) calc(8px * var(--ui-scale));display:flex}.estimate-device-search-result{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0}.estimate-device-search-result:hover{background:var(--color-bg-subtle)}.estimate-device-search-result:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.estimate-device-search-info{gap:calc(4px * var(--ui-scale));overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.estimate-device-search-info strong{font-size:calc(.88rem * var(--ui-font-scale))}.estimate-device-search-info small,.estimate-device-search-info span{color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale))}.estimate-device-search-pagination{justify-content:center;align-items:center;gap:calc(12px * var(--ui-scale));display:flex}.estimate-manual-labor-name,.estimate-manual-device-name{width:100%;min-width:0;padding:calc(2px * var(--ui-scale)) 0;border:0;border-bottom:1px dashed var(--color-border-strong);color:inherit;font:inherit;background:0 0;outline:none;flex:1}.estimate-manual-labor-name:focus-visible,.estimate-manual-device-name:focus-visible{border-bottom-color:var(--color-text-accent)}.estimate-manual-labor-delete,.estimate-manual-device-delete{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:var(--color-text-danger);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.estimate-manual-labor-delete:hover,.estimate-manual-labor-delete:focus-visible,.estimate-manual-device-delete:hover,.estimate-manual-device-delete:focus-visible{background:var(--color-bg-warning-soft)}.estimate-row-drag-handle{width:calc(22px * var(--ui-scale));min-height:calc(24px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:var(--color-text-muted);cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.estimate-row-drag-handle:active{cursor:grabbing}.estimate-row-drag-handle:hover,.estimate-row-drag-handle:focus-visible{background:var(--color-bg-subtle);color:var(--color-text-strong)}.estimate-row-drag-handle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.estimate-row-drag-handle:disabled{opacity:.3;cursor:default}.estimate-summary-row.is-dragging,.estimate-detail-row.is-dragging{z-index:1;opacity:.7;background:var(--color-bg-accent-soft);position:relative}.estimate-expand-button{align-items:center;gap:calc(4px * var(--ui-scale));width:auto;min-width:0;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.estimate-expand-button svg{color:var(--color-text-muted);flex:none;transition:transform .16s}.estimate-expand-button[aria-expanded=true] svg{transform:rotate(90deg)}.estimate-expand-button:focus-visible{border-radius:calc(8px * var(--ui-scale));outline:2px solid var(--color-text-accent);outline-offset:2px}.estimate-detail-row{background:rgb(var(--color-panel-rgb)/68%)}.estimate-detail-row.is-expanded,.estimate-detail-row.is-expanded:hover{background:rgb(var(--color-warning-rgb)/72%)}.estimate-detail-row th,.estimate-detail-row td{color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale))}.estimate-detail-row .estimate-note-cell{text-overflow:clip;white-space:normal;overflow:visible}.estimate-detail-row.estimate-row-depth-2 .estimate-detail-label{padding-left:calc(32px * var(--ui-scale))!important}.estimate-detail-label{padding-left:calc(16px * var(--ui-scale))!important;font-weight:600!important}.estimate-detail-label .estimate-detail-branch{width:calc(12px * var(--ui-scale));height:1px;margin-right:calc(8px * var(--ui-scale));background:var(--color-border);vertical-align:middle;display:inline-block}.estimate-layer-icon{width:calc(30px * var(--ui-scale));height:calc(30px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));flex:none;justify-content:center;align-items:center;display:inline-flex}.estimate-layer-icon svg{flex:none;display:block}.estimate-layer-icon.tone-amber{background:var(--color-bg-warning);color:var(--color-text-warning)}.estimate-layer-icon.tone-green{background:var(--color-bg-success);color:var(--color-text-success)}.estimate-layer-icon.tone-teal{background:var(--color-bg-accent);color:var(--color-text-accent)}.estimate-layer-icon.tone-violet{background:var(--color-bg-violet);color:var(--color-text-violet)}.estimate-layer-icon.tone-red{background:var(--color-bg-warning-soft);color:var(--color-text-danger)}.estimate-layer-icon.tone-blue{background:var(--color-bg-primary);color:var(--color-text-primary)}.estimate-number-cell{color:var(--color-text-soft);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.estimate-number-cell.is-total{color:var(--color-text-strong);font-weight:800}.estimate-number-cell.is-labor-amount{color:var(--color-text-success);font-weight:800}.estimate-quantity-cell,.estimate-manual-sale-cell{padding-left:calc(4px * var(--ui-scale))!important;padding-right:calc(4px * var(--ui-scale))!important}.estimate-quantity-input,.estimate-manual-sale-input,.estimate-manual-device-price-input{width:calc(48px * var(--ui-scale));min-width:0;height:1.2em;min-height:0;color:var(--color-text-strong);font:inherit;font-size:calc(.8rem * var(--ui-font-scale));font-variant-numeric:tabular-nums;text-align:right;appearance:textfield;background:0 0;border:0;border-radius:0;padding:0;line-height:1.2}.estimate-quantity-input::-webkit-inner-spin-button{appearance:none;margin:0}.estimate-quantity-input::-webkit-outer-spin-button{appearance:none;margin:0}.estimate-manual-sale-input::-webkit-inner-spin-button{appearance:none;margin:0}.estimate-manual-sale-input::-webkit-outer-spin-button{appearance:none;margin:0}.estimate-manual-device-price-input::-webkit-inner-spin-button{appearance:none;margin:0}.estimate-manual-device-price-input::-webkit-outer-spin-button{appearance:none;margin:0}.estimate-quantity-input:focus,.estimate-quantity-input:focus-visible,.estimate-manual-sale-input:focus,.estimate-manual-sale-input:focus-visible,.estimate-manual-device-price-input:focus,.estimate-manual-device-price-input:focus-visible{box-shadow:none;outline:0}.estimate-quantity-input{width:100%;height:calc(24px * var(--ui-scale));cursor:text;display:block}.estimate-manual-sale-input,.estimate-manual-device-price-input{width:100%}.estimate-manual-sale-input::placeholder,.estimate-manual-device-price-input::placeholder{color:var(--color-text-muted)}.estimate-service-cell{color:var(--color-text-soft);white-space:nowrap;text-align:center!important;padding-left:calc(4px * var(--ui-scale))!important;padding-right:calc(4px * var(--ui-scale))!important}.estimate-table tr.is-excluded>th,.estimate-table tr.is-excluded>td{color:var(--color-text-muted)!important}.estimate-table tr.is-excluded .estimate-row-label{text-decoration:line-through}.estimate-treatment-controls{align-items:center;gap:calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(4px * var(--ui-scale));background:var(--color-bg-subtle);width:fit-content;margin:0 auto;padding:0;display:flex}.estimate-treatment-controls label{cursor:pointer;align-items:center;display:flex}.estimate-service-total-cell{min-width:calc(96px * var(--ui-scale))}.estimate-service-checkbox{width:calc(15px * var(--ui-scale));height:calc(15px * var(--ui-scale));accent-color:var(--color-text-primary);vertical-align:middle;margin:0}.estimate-circuit-list-cell{color:var(--color-text-soft);overflow-x:auto}.estimate-circuit-list{gap:calc(4px * var(--ui-scale));margin:0;padding:0;list-style:none;display:grid}.estimate-circuit-list li{align-items:baseline;gap:calc(8px * var(--ui-scale));white-space:nowrap;display:flex}.estimate-circuit-list li>span{min-width:3ch;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:right;flex:none}.estimate-circuit-list li>strong{color:var(--color-text-soft);font-weight:600}.estimate-circuit-list li>.estimate-circuit-power{min-width:0;color:var(--color-text-muted);text-align:left;font-weight:400}.estimate-note-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--color-text-muted)!important}.estimate-empty-cell{height:calc(56px * var(--ui-scale))!important;color:var(--color-text-muted)!important;text-align:center!important}@media (width<=840px){.estimate-board-header{padding:calc(18px * var(--ui-scale))}.estimate-board-body{padding:calc(16px * var(--ui-scale))}.estimate-scope-chip-meta{display:none}}.estimate-sidebar .layer-sidebar-header strong,.estimate-sidebar .layer-sidebar-header span{display:block}.estimate-sidebar .layer-sidebar-header strong{color:var(--color-text-strong);font-size:calc(.96rem * var(--ui-font-scale))}.estimate-sidebar .layer-sidebar-header span{margin-top:calc(2px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.78rem * var(--ui-font-scale));line-height:1.45}.estimate-sidebar .layer-sidebar-content{gap:calc(10px * var(--ui-scale))}.estimate-rule-section{border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);overflow:hidden}.estimate-rule-section-header{align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(10px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-subtle);display:flex}.estimate-rule-section-header>div{min-width:0}.estimate-rule-section-header strong,.estimate-rule-section-header span{display:block}.estimate-rule-section-header strong{color:var(--color-text-strong);font-size:calc(.86rem * var(--ui-font-scale))}.estimate-rule-section-header span{margin-top:calc(2px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.estimate-rule-icon{width:calc(28px * var(--ui-scale));height:calc(28px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));flex:none;justify-content:center;align-items:center;display:inline-flex}.estimate-rule-icon.tone-amber{background:var(--color-bg-warning);color:var(--color-text-warning)}.estimate-rule-icon.tone-green{background:var(--color-bg-success);color:var(--color-text-success)}.estimate-rule-icon.tone-teal{background:var(--color-bg-accent);color:var(--color-text-accent)}.estimate-rule-icon.tone-violet{background:var(--color-bg-violet);color:var(--color-text-violet)}.estimate-rule-icon.tone-red{background:var(--color-bg-warning-soft);color:var(--color-text-danger)}.estimate-rule-icon.tone-blue{background:var(--color-bg-primary);color:var(--color-text-primary)}.estimate-rule-section-body{display:grid}.estimate-rule-group{padding:calc(10px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft)}.estimate-rule-group:last-child{border-bottom:0}.estimate-rule-group>strong{margin-bottom:calc(4px * var(--ui-scale));color:var(--color-text-strong);font-size:calc(.76rem * var(--ui-font-scale));display:block}.estimate-rule-group ul{gap:calc(4px * var(--ui-scale));margin:0;padding:0;list-style:none;display:grid}.estimate-rule-group li{padding-left:calc(11px * var(--ui-scale));color:var(--color-text-muted);font-size:calc(.72rem * var(--ui-font-scale));line-height:1.5;position:relative}.estimate-rule-group li small{color:var(--color-text-muted);font-size:inherit}.estimate-rule-group li:before{content:"•";color:var(--color-text-soft);position:absolute;top:0;left:0}.estimate-rule-group .estimate-rule-result{margin-top:calc(2px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-accent-soft);color:var(--color-text-strong);font-weight:700}.estimate-rule-group .estimate-rule-result:before{content:none}.estimate-rule-group .estimate-labor-rate-row{align-items:center;gap:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));grid-template-columns:minmax(0,1fr) auto;padding-left:0;display:grid}.estimate-rule-group .estimate-labor-rate-row:before{content:none}.estimate-rule-group .estimate-labor-rate-row label{color:var(--color-text-soft);font-weight:700}.estimate-rule-group .estimate-labor-rate-row small{grid-column:1/-1}.estimate-rule-group .estimate-iot-device-item{padding-left:0}.estimate-rule-group .estimate-iot-device-item:before{content:none}.estimate-rule-group .estimate-iot-device-item label{align-items:center;gap:calc(4px * var(--ui-scale));cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.estimate-rule-group .estimate-iot-device-item input{width:calc(15px * var(--ui-scale));height:calc(15px * var(--ui-scale));accent-color:var(--color-text-primary);margin:0}.estimate-rule-group .estimate-iot-device-item span{color:var(--color-text-strong);font-size:inherit;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.estimate-rule-group .estimate-iot-device-item small{white-space:nowrap}.estimate-rule-group .estimate-iot-device-item:has(input:focus-visible) label{outline:2px solid var(--color-text-accent);outline-offset:2px}.estimate-rule-group .estimate-iot-device-empty{color:var(--color-text-warning)}.estimate-rule-group .estimate-curtain-fixture-row{align-items:center;gap:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);padding-left:0;display:grid}.estimate-rule-group .estimate-curtain-fixture-row:before{content:none}.estimate-rule-group .estimate-curtain-fixture-row label{color:var(--color-text-soft);font-weight:700}.estimate-rule-group .estimate-curtain-fixture-row select{width:100%;min-width:0;min-height:calc(34px * var(--ui-scale));padding:0 calc(4px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font:inherit;font-size:calc(.72rem * var(--ui-font-scale))}.estimate-rule-group .estimate-curtain-fixture-row select:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.estimate-rule-group .estimate-curtain-fixture-row .estimate-curtain-fixture-empty{color:var(--color-text-warning);text-align:right}.estimate-rule-group .estimate-curtain-fixture-row small{grid-column:1/-1}.estimate-rule-group .estimate-labor-rate-control{align-items:center;gap:calc(4px * var(--ui-scale));display:inline-flex}.estimate-rule-group .estimate-labor-rate-control input{width:calc(102px * var(--ui-scale));min-height:calc(34px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font:inherit;font-variant-numeric:tabular-nums;text-align:right}.estimate-rule-group .estimate-labor-rate-control input:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.estimate-rule-group .estimate-labor-rate-control span{color:var(--color-text-muted);white-space:nowrap}.estimate-rule-group .estimate-price-summary-item{padding-left:0}.estimate-rule-group .estimate-price-summary-item:before{content:none}.estimate-rule-group .estimate-price-summary{gap:calc(4px * var(--ui-scale));margin:0;display:grid}.estimate-rule-group .estimate-price-summary>div{justify-content:space-between;align-items:baseline;gap:calc(8px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-subtle);display:flex}.estimate-rule-group .estimate-price-summary dt,.estimate-rule-group .estimate-price-summary dd{font-variant-numeric:tabular-nums;margin:0}.estimate-rule-group .estimate-price-summary dt{color:var(--color-text-muted)}.estimate-rule-group .estimate-price-summary dd{color:var(--color-text-soft);text-align:right;font-weight:700}.estimate-rule-group .estimate-price-summary .is-total{border:1px solid var(--color-border-muted);background:var(--color-bg-accent-soft)}.estimate-rule-group .estimate-price-summary .is-total dt,.estimate-rule-group .estimate-price-summary .is-total dd{color:var(--color-text-strong);font-weight:800}.estimate-rule-group .estimate-price-warning{margin:calc(8px * var(--ui-scale)) 0 0;color:var(--color-text-warning);font-size:calc(.72rem * var(--ui-font-scale));line-height:1.45}.estimate-travel-table{min-width:calc(640px * var(--ui-scale))}.estimate-travel-table thead th:first-child{width:33%}.estimate-travel-table thead th:nth-child(2){width:22%}.estimate-travel-table thead th:nth-child(3){width:15%}.estimate-travel-table thead th:nth-child(4){width:22%}.estimate-travel-table thead th:nth-child(5){width:8%}.estimate-travel-table input:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.project-settings-link-button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.project-settings-view{background:var(--color-bg-panel);grid-column:2/-1;min-width:0;min-height:0;overflow:auto}.project-settings-content{width:min(100%,1000px);padding:calc(24px * var(--ui-scale)) calc(28px * var(--ui-scale)) calc(40px * var(--ui-scale));margin:0 auto}.project-settings-header{color:var(--color-text-accent);align-items:flex-start;gap:10px;margin-bottom:18px;display:flex}.project-settings-header h1{margin-bottom:4px}.project-settings-header p{color:var(--color-text-muted);margin:0}.project-settings-heading{flex:1;min-width:0}.project-settings-default-button{white-space:nowrap;flex:none;margin-left:auto}.project-settings-section{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:12px;margin-bottom:12px;padding:16px}.project-settings-section h2{color:var(--color-text-strong);margin:0 0 8px}.project-settings-section>p{color:var(--color-text-muted);font-size:var(--ui-font-size-small);margin:0 0 12px}.project-settings-name-field,.project-settings-product-row{grid-template-columns:minmax(140px,210px) minmax(0,1fr);align-items:center;gap:12px;display:grid}.project-settings-name-field>span,.project-settings-product-row>span{color:var(--color-text-soft);font-weight:700}.project-settings-name-field input,.project-settings-name-field select,.project-settings-product-row input,.project-settings-product-row select{border:1px solid var(--color-border-muted);background:var(--color-bg-card);width:100%;min-width:0;min-height:30px;color:var(--color-text-strong);font:inherit;border-radius:7px;padding:4px 8px}.project-settings-group{padding-top:4px}.project-settings-group+.project-settings-group{border-top:1px solid var(--color-border-soft);margin-top:12px;padding-top:10px}.project-settings-group h3{color:var(--color-text-accent);margin:0 0 6px}.project-settings-properties .project-settings-name-field+.project-settings-name-field{margin-top:10px}.project-settings-properties>.project-settings-property-help{margin:12px 0 0}.project-settings-product-row{padding:3px 0}.project-settings-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-settings-labor-rates{gap:8px;display:grid}.project-settings-section>.project-settings-labor-help{margin:10px 0 0}.project-settings-error{color:var(--color-text-danger)}.project-settings-success{color:var(--color-text-accent)}@media (width<=900px){.project-settings-content{padding:16px}.project-settings-name-field,.project-settings-product-row{grid-template-columns:minmax(0,1fr);gap:4px}}.project-snapshots-button small{text-overflow:ellipsis;white-space:nowrap;max-width:140px;color:var(--color-text-muted);font-size:10px;display:block;overflow:hidden}.project-snapshots-dialog{border:1px solid var(--color-border);background:var(--color-bg-page);width:min(1400px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--color-text-base);border-radius:8px;padding:20px;overflow:auto}.project-snapshots-dialog::backdrop{background:#00000073}.project-snapshots-dialog h2,.project-snapshots-dialog h3,.project-snapshots-dialog p{margin:0 0 12px}.project-snapshots-dialog label{gap:6px;min-width:0;display:grid}.project-snapshots-dialog input,.project-snapshots-dialog select{width:100%;min-width:0;color:inherit;background:var(--color-bg-panel);border:1px solid var(--color-border);padding:7px}.project-snapshots-heading{justify-content:space-between;gap:12px;display:flex}.project-snapshots-controls{border:0;min-width:0;margin:0;padding:0}.project-snapshots-create{flex-wrap:wrap;align-items:end;gap:12px;margin:8px 0 20px;display:flex}.project-snapshots-selectors{grid-template-columns:1fr 1fr;gap:12px;display:grid}.project-snapshots-actions{flex-wrap:wrap;gap:8px;margin:12px 0 20px;display:flex}.project-snapshots-meta{color:var(--color-text-muted);font-size:12px;margin-top:8px!important}.project-snapshots-error{color:var(--color-text-danger)}.project-snapshots-previews{grid-template-columns:1fr 1fr;gap:12px;min-height:320px;margin:12px 0;display:grid}.project-snapshots-table{max-height:360px;overflow:auto}.project-snapshots-table table{border-collapse:collapse;width:100%;font-size:12px}.project-snapshots-table th,.project-snapshots-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);padding:8px}.project-snapshots-table pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px;max-height:140px;margin:0;overflow:auto}.project-snapshots-history{padding:0;list-style:none}.project-snapshots-history li{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}@media (width<=700px){.project-snapshots-dialog{width:calc(100vw - 16px);padding:12px}.project-snapshots-selectors,.project-snapshots-previews{grid-template-columns:1fr}}.work-time-icon{background:currentColor;flex:none;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.work-time-link-button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.work-time-view{background:var(--color-bg-panel);min-width:0;min-height:0;color:var(--color-text-base);grid-column:2/-1;overflow:auto}.work-time-content{max-width:1280px;padding:calc(24px * var(--ui-scale));margin:0 auto}.work-time-header,.work-time-section-heading,.work-time-table-heading,.work-time-remote-controls,.work-time-section-footer{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));margin-bottom:calc(16px * var(--ui-scale));flex-wrap:wrap;display:flex}.work-time-header h1{align-items:center;gap:calc(8px * var(--ui-scale));margin:0 0 calc(4px * var(--ui-scale));display:flex}.work-time-header p,.work-time-section-heading p{margin:calc(4px * var(--ui-scale)) 0 0;color:var(--color-text-muted)}.work-time-actions,.work-time-month,.work-time-search{align-items:center;gap:calc(8px * var(--ui-scale));display:flex}.work-time-site-meta{text-align:right;min-width:0;margin-left:auto}.work-time-distance{justify-content:flex-end;gap:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale));margin:0 0 calc(4px * var(--ui-scale));flex-wrap:wrap;display:flex}.work-time-distance>div{align-items:baseline;gap:calc(8px * var(--ui-scale));display:flex}.work-time-distance dt{color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale))}.work-time-distance dd{color:var(--color-text-strong);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.work-time-save-state,.work-time-hint{color:var(--color-text-muted);font-size:calc(.8rem * var(--ui-font-scale));font-weight:400}.work-time-fields{border:0;min-width:0;margin:0;padding:0}.work-time-section{min-width:0;padding:calc(20px * var(--ui-scale));margin-bottom:calc(16px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card)}.work-time-section h2{margin:0 0 calc(12px * var(--ui-scale))}.work-time-section h3{margin:0}.work-time-section label{gap:calc(4px * var(--ui-scale));font-weight:600;font-size:calc(.86rem * var(--ui-font-scale));display:grid}.work-time-section input,.work-time-section select,.work-time-section textarea{border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);min-width:0;max-width:100%;color:var(--color-text-base);font:inherit;padding:6px 9px;font-weight:400}.work-time-section input:focus-visible,.work-time-section select:focus-visible,.work-time-section textarea:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.work-time-section button{white-space:nowrap}.work-time-settings-grid{align-items:end;gap:calc(12px * var(--ui-scale));margin-bottom:calc(16px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.work-time-settings-grid label{position:relative}.work-time-settings-grid label>.work-time-hint{font-size:calc(.72rem * var(--ui-font-scale))}.work-time-settings-heading{justify-content:space-between;align-items:center;gap:calc(16px * var(--ui-scale));flex-wrap:wrap;display:flex}.work-time-settings-heading h2{margin:0}.work-time-settings-toggle{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-strong);cursor:pointer;background:0 0;padding:0;font-weight:700;display:flex}.work-time-settings-toggle:disabled{opacity:1;cursor:default}.work-time-settings-toggle .collapsed{transform:rotate(-90deg)}.work-time-period-fields{align-items:end;gap:calc(12px * var(--ui-scale));flex-wrap:wrap;margin-left:auto;display:flex}.work-time-period-fields label{width:155px;position:relative}.work-time-period-fields label>.work-time-hint{font-size:calc(.7rem * var(--ui-font-scale));position:absolute;top:0;right:0}.work-time-period-fields input{width:100%}.work-time-settings-heading:has(+div:not([hidden])){margin-bottom:calc(16px * var(--ui-scale))}.work-time-location{gap:calc(8px * var(--ui-scale));display:grid}.work-time-search input{flex:1;width:0}.work-time-search-results{border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));max-height:240px;overflow:auto}.work-time-search-results button{text-align:left;white-space:normal;border:0;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-card);width:100%;color:var(--color-text-base);cursor:pointer;padding:9px 12px;display:block}.work-time-search-results button:hover,.work-time-search-results button:focus-visible{background:var(--color-bg-accent)}.work-time-search-results p{margin:calc(12px * var(--ui-scale));color:var(--color-text-muted)}.work-time-selected-place{align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border-left:3px solid var(--color-text-accent);background:var(--color-bg-accent);display:flex}.work-time-selected-place>div{flex:1;min-width:0}.work-time-selected-place strong{overflow-wrap:anywhere;font-size:calc(.86rem * var(--ui-font-scale));display:block}.work-time-selected-place span{margin-top:calc(4px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));display:block}.work-time-section-footer{margin-top:calc(16px * var(--ui-scale));margin-bottom:0}.work-time-section-footer p{min-width:200px;color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale));flex:1;margin:0}.work-time-summary{grid-template-columns:repeat(var(--work-time-summary-columns,3), minmax(0, 1fr));gap:calc(16px * var(--ui-scale));padding:calc(16px * var(--ui-scale)) 0;margin:0 0 calc(16px * var(--ui-scale));border-top:1px solid var(--color-border-soft);border-bottom:1px solid var(--color-border-soft);display:grid}.work-time-summary dt{color:var(--color-text-muted);font-size:calc(.82rem * var(--ui-font-scale))}.work-time-summary dd{margin:calc(4px * var(--ui-scale)) 0 0;font-weight:700;font-size:calc(1.15rem * var(--ui-font-scale));font-variant-numeric:tabular-nums}.work-time-summary>div:last-child{text-align:right}.work-time-summary>div:last-child dd{color:var(--color-text-accent)}.work-time-month input{width:145px}.work-time-month-tabs{align-items:center;min-width:0;max-width:100%;margin-left:auto;display:flex}.work-time-month-tabs button{color:var(--color-text-soft);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;flex:none;padding:5px 12px}.work-time-month-tabs button:hover{background:var(--color-bg-subtle)}.work-time-month-tabs button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent);font-weight:700}.work-time-month-tabs button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.work-time-month-options{scrollbar-width:thin;min-width:0;display:flex;overflow-x:auto}.work-time-month-options button{border-right:1px solid var(--color-border-soft)}.work-time-month-all{flex:none}.work-time-table-scroll{max-width:100%;overflow-x:auto}.work-time-table{border-collapse:collapse;width:100%;min-width:520px;font-size:calc(.84rem * var(--ui-font-scale));text-align:left;font-variant-numeric:tabular-nums}.work-time-table th,.work-time-table td{border-bottom:1px solid var(--color-border-soft);vertical-align:middle;padding:4.5px 12px}.work-time-table thead{background:var(--color-bg-subtle);color:var(--color-text-soft)}.work-time-table tbody th{white-space:nowrap;font-weight:500}.work-time-table tbody tr:last-child>*{border-bottom:0}.work-time-table tfoot{background:var(--color-bg-accent);color:var(--color-text-accent);border-top:1px solid var(--color-border-muted);font-weight:700}.work-time-table tfoot small{color:var(--color-text-soft);font-weight:400;display:block}.work-time-table .work-time-editable-cell{border-inline:1px solid var(--color-border-soft);padding:0;position:relative}.work-time-table .work-time-editable-cell:hover{background:var(--color-bg-subtle)}.work-time-table .work-time-editable-cell:focus-within{outline:2px solid var(--color-text-accent);outline-offset:-2px;background:var(--color-bg-card)}.work-time-table .work-time-cell-editor{resize:none;appearance:textfield;background:0 0;border:0;border-radius:0;outline:none;width:100%;height:100%;min-height:0;padding:0 12px;display:block;position:absolute;inset:0}.work-time-table .work-time-cell-editor:focus-visible{outline:none}.work-time-table .work-time-cell-editor::-webkit-inner-spin-button{appearance:none;margin:0}.work-time-table .work-time-cell-editor::-webkit-outer-spin-button{appearance:none;margin:0}.work-time-calendar-date{display:block}.work-time-calendar-date small{font-size:calc(.73rem * var(--ui-font-scale));font-weight:400;display:block}.work-time-calendar-date.saturday{color:var(--color-text-primary)}.work-time-calendar-date.holiday{color:var(--color-text-danger)}.work-time-site-table{min-width:1000px}.work-time-site-table th:nth-child(4){min-width:140px}.work-time-site-table th:last-child{width:35%}.work-time-site-table .work-time-site-row td:not(.work-time-editable-cell){white-space:nowrap}.work-time-site-table .work-time-cell-editor{padding-block:4.5px}.work-time-site-table .work-time-detail-cell{padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));background:var(--color-bg-subtle)}.work-time-remote-table{min-width:620px}.work-time-remote-table th:first-child{width:155px}.work-time-remote-table th:nth-child(2){width:140px}.work-time-remote-table th:last-child{width:42px}.work-time-remote-table tbody th,.work-time-remote-table tbody td{padding-block:0}.work-time-remote-table tbody .icon-button{width:calc(24px * var(--ui-scale));min-height:calc(24px * var(--ui-scale))}.work-time-site-row{cursor:pointer}.work-time-site-row:hover>:not(.work-time-editable-cell),.work-time-site-row[data-expanded=true]>:not(.work-time-editable-cell){background:var(--color-bg-subtle)}.work-time-row-toggle{align-items:center;gap:calc(8px * var(--ui-scale));color:inherit;cursor:pointer;background:0 0;padding:0;display:inline-flex}.work-time-row-toggle svg{flex:none}.work-time-row-toggle .collapsed{transform:rotate(-90deg)}.work-time-row-toggle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}.work-time-visit{padding:calc(16px * var(--ui-scale)) 0;border-bottom:1px solid var(--color-border-soft)}.work-time-visit:last-child{border-bottom:0}.work-time-visit-heading{gap:calc(12px * var(--ui-scale));font-size:calc(.85rem * var(--ui-font-scale));flex-wrap:wrap;align-items:center;display:flex}.work-time-leg{gap:calc(12px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.78rem * var(--ui-font-scale));grid-template-columns:100px minmax(0,1fr) auto auto;align-items:center;display:grid}.work-time-leg>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.work-time-error,.work-time-warning,.work-time-inline-error{padding:calc(12px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));font-size:calc(.85rem * var(--ui-font-scale))}.work-time-error,.work-time-inline-error{color:var(--color-text-danger);background:var(--color-bg-warning-soft)}.work-time-warning{color:var(--color-text-warning);background:var(--color-bg-warning)}.work-time-inline-error{align-items:center;gap:calc(8px * var(--ui-scale));margin-bottom:calc(12px * var(--ui-scale));flex-wrap:wrap;display:flex}.work-time-empty{padding:calc(24px * var(--ui-scale));color:var(--color-text-muted);text-align:center;font-size:calc(.88rem * var(--ui-font-scale))}.work-time-overall{border-top:2px solid var(--color-text-accent)}.work-time-combined-totals{gap:calc(20px * var(--ui-scale));padding-bottom:calc(20px * var(--ui-scale));margin:0 0 calc(20px * var(--ui-scale));border-bottom:1px solid var(--color-border-soft);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.work-time-combined-totals dt{color:var(--color-text-soft);font-size:calc(.87rem * var(--ui-font-scale))}.work-time-combined-totals dd{margin:calc(8px * var(--ui-scale)) 0 0;color:var(--color-text-accent);font-weight:700;font-size:calc(1.25rem * var(--ui-font-scale));font-variant-numeric:tabular-nums}.work-time-combined-totals small{color:var(--color-text-muted)}.work-time-monthly-title{padding-bottom:calc(12px * var(--ui-scale))}.work-time-monthly-table{min-width:850px}@media (width<=1000px){.work-time-content{padding:calc(12px * var(--ui-scale))}.work-time-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-time-leg{grid-template-columns:100px minmax(0,1fr)}}@media (width<=600px){.work-time-workspace .layer-panel{display:none}.work-time-workspace .layout{grid-template-columns:minmax(0,1fr)}.work-time-view{grid-column:1/-1}.work-time-section{padding:calc(12px * var(--ui-scale))}.work-time-actions{justify-content:space-between;width:100%}.work-time-save-state{font-size:11px}.work-time-summary{gap:calc(8px * var(--ui-scale))}.work-time-summary dd{font-size:calc(.9rem * var(--ui-font-scale))}.work-time-search{flex-wrap:wrap}.work-time-search input{min-width:140px}.work-time-section input,.work-time-section select,.work-time-section textarea{min-height:40px}.work-time-period-fields{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.work-time-period-fields label{width:auto}.work-time-period-fields>button{grid-column:1/-1}.work-time-combined-totals{grid-template-columns:minmax(0,1fr)}.work-time-month-tabs{width:100%}}.materials-link-button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.materials-view{background:var(--color-bg-page);flex-direction:column;grid-area:1/2/auto/-1;min-width:0;min-height:0;display:flex;overflow:auto}.materials-header{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));padding:calc(24px * var(--ui-scale));border-bottom:1px solid var(--color-border);background:var(--color-bg-card);flex-wrap:wrap;display:flex}.materials-header h1{align-items:center;gap:calc(8px * var(--ui-scale));margin:0;display:flex}.materials-header p{margin:calc(8px * var(--ui-scale)) 0 0;color:var(--color-text-muted)}.materials-save-state{align-items:center;gap:calc(8px * var(--ui-scale));color:var(--color-text-muted);display:flex}.materials-save-state.is-error,.materials-error{color:var(--color-text-danger)}.materials-content{min-width:0;min-height:0;padding:calc(24px * var(--ui-scale));flex-direction:column;flex:1;display:flex}.materials-content>:not(.materials-sheet-scroll){flex-shrink:0}.materials-hint{margin:calc(12px * var(--ui-scale)) 0;color:var(--color-text-muted);font-size:var(--ui-font-size-small)}.materials-summary{gap:calc(24px * var(--ui-scale));padding-block:calc(12px * var(--ui-scale)) calc(20px * var(--ui-scale));color:var(--color-text-soft);flex-wrap:wrap;display:flex}.materials-summary strong{color:var(--color-text-strong);font-variant-numeric:tabular-nums}.materials-sheet-scroll{border:1px solid var(--color-border-muted);background:var(--color-bg-card);flex:1;max-width:100%;min-height:100px;overflow:auto}.materials-sheet{table-layout:fixed;border-spacing:0;width:100%;min-width:1210px;font-size:calc(.92rem * var(--ui-font-scale))}.materials-sheet th,.materials-sheet td{border-right:1px solid var(--color-border-soft);border-bottom:1px solid var(--color-border-soft);vertical-align:middle;height:42px;padding:6px 10px}.materials-sheet tr>:last-child{border-right:0}.materials-sheet thead th{z-index:2;background:var(--color-bg-subtle);height:38px;color:var(--color-text-soft);text-align:center;white-space:nowrap;font-weight:600;position:sticky;top:0}.materials-sheet tbody tr:last-child>*{border-bottom:0}.materials-sheet tbody tr:focus-within>*,.materials-sheet tbody tr:hover>*{background-color:var(--color-bg-subtle)}.materials-sheet input[type=checkbox]{width:17px;height:17px;accent-color:var(--color-text-accent);vertical-align:middle;cursor:pointer;margin:0}.materials-sheet input:focus-visible,.materials-sheet select:focus-visible,.materials-sheet button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.materials-col-number{width:52px}.materials-col-name{width:auto}.materials-col-quantity{width:100px}.materials-col-check{width:90px}.materials-col-purchase{width:160px}.materials-col-date{width:190px}.materials-col-method{width:140px}.materials-col-vendor{width:160px}.materials-section-row th{text-align:left;background:var(--color-bg-accent-soft);height:36px;color:var(--color-text-strong)}.materials-section-row span{margin-left:calc(12px * var(--ui-scale));color:var(--color-text-muted);font-size:.86em;font-weight:400}.materials-row-number{text-align:center;color:var(--color-text-muted);background:var(--color-bg-panel);font-variant-numeric:tabular-nums}.materials-name-cell{text-align:left;overflow-wrap:anywhere;font-weight:500}.materials-name-cell small{color:var(--color-text-muted);margin-top:3px;font-size:.86em;font-weight:400;display:block}.materials-group-row>*{background:var(--color-bg-subtle)}.materials-group-toggle{align-items:center;gap:calc(8px * var(--ui-scale));max-width:100%;color:var(--color-text-strong);font:inherit;text-align:left;cursor:pointer;background:0 0;padding:0;font-weight:700;display:inline-flex}.materials-group-toggle svg{flex-shrink:0}.materials-group-toggle span{overflow-wrap:anywhere;min-width:0}.materials-detail-row .materials-name-cell{padding-left:calc(10px + 18px * var(--materials-row-depth))}.materials-group-progress{text-align:center;font-variant-numeric:tabular-nums}.materials-group-progress small{color:var(--color-text-muted);font-size:.8em;display:block}.materials-group-hint{color:var(--color-text-muted);font-size:.88em}.materials-quantity{text-align:right;font-variant-numeric:tabular-nums}.materials-check-cell{text-align:center}.materials-purchase-control{justify-content:center;align-items:center;gap:6px;display:flex}.materials-purchase-control input{flex-shrink:0}.materials-purchase-control.is-partial input{accent-color:var(--color-text-warning)}.materials-purchase-quantity{min-width:0;min-height:30px;color:var(--color-text-accent);font-size:inherit;font-variant-numeric:tabular-nums;text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;padding:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;overflow:hidden}.materials-purchase-quantity:hover{background:var(--color-bg-accent)}.materials-purchase-dialog{width:min(420px, 100vw / var(--app-scale) - 32px);max-height:calc(100dvh / var(--app-scale) - 32px);padding:calc(20px * var(--ui-scale));border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-base);margin:auto;overflow:auto}.materials-purchase-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/38%)}.materials-purchase-dialog-header{justify-content:space-between;align-items:center;gap:calc(12px * var(--ui-scale));display:flex}.materials-purchase-dialog-header h2{font-size:calc(1.1rem * var(--ui-font-scale));margin:0}.materials-purchase-dialog-body{gap:calc(12px * var(--ui-scale));margin-block:calc(20px * var(--ui-scale));display:grid}.materials-purchase-dialog-body p{overflow-wrap:anywhere;margin:0}.materials-purchase-dialog-body label{justify-content:space-between;gap:calc(12px * var(--ui-scale));display:flex}.materials-purchase-dialog-body label span{color:var(--color-text-muted)}.materials-purchase-dialog-body input{width:100%;min-height:42px;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));font-size:inherit}.materials-purchase-item{font-weight:600}.materials-purchase-context,.materials-purchase-help{color:var(--color-text-muted);font-size:calc(.88rem * var(--ui-font-scale))}.materials-purchase-dialog-actions{justify-content:flex-end;gap:calc(8px * var(--ui-scale));display:flex}.materials-sheet td.materials-editor-cell{padding:0}.materials-editor-cell select{width:100%;min-height:42px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:6px 10px}.materials-editor-cell select:disabled{color:var(--color-text-muted);cursor:default}.materials-date-cell{align-items:center;min-height:42px;display:flex}.materials-date-cell input{width:0;min-width:0;height:42px;color:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;flex:1;padding:6px 4px 6px 10px}.materials-date-clear{width:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;align-self:stretch;place-items:center;padding:0;display:grid}.materials-date-clear:hover{color:var(--color-text-danger)}.materials-date-empty{width:100%;min-height:42px;color:var(--color-text-muted);text-align:left;cursor:pointer;background:0 0;padding:6px 10px}.materials-empty{padding:calc(24px * var(--ui-scale));border:1px solid var(--color-border-soft);color:var(--color-text-muted);text-align:center}.materials-sheet .is-installed .materials-name-cell>span{color:var(--color-text-success)}@media (width<=1000px){.materials-content,.materials-header{padding:calc(12px * var(--ui-scale))}}@media (width<=600px){.materials-workspace .layer-panel{display:none}.materials-workspace .layout{grid-template-columns:minmax(0,1fr)}.materials-view{grid-column:1/-1}.materials-sheet{min-width:1210px}}.project-settings-panel-toggle{align-items:center;gap:8px;margin:16px 0;font-weight:600;display:flex}.project-settings-panel-toggle input{width:17px;height:17px;accent-color:var(--color-text-accent)}.distribution-panel-link-button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.distribution-panel-view{background:var(--color-bg-page);flex-direction:column;grid-area:1/2/auto/-1;min-width:0;min-height:0;display:flex;overflow:hidden}.distribution-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.distribution-panel-header h1{color:var(--color-text-strong);margin:0}.distribution-panel-header p{color:var(--color-text-muted);margin:5px 0 0}.distribution-panel-header button[aria-pressed=true]{background:var(--color-bg-accent-soft);border-color:var(--color-text-accent);color:var(--color-text-accent)}.distribution-panel-inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.distribution-panel-drawing-select{white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.distribution-panel-drawing-select>span{flex-shrink:0}.distribution-panel-drawing-select select{max-width:240px}.distribution-panel-editor{flex:1;grid-template-columns:340px minmax(0,1fr);gap:12px;min-width:0;min-height:0;padding:0 8px 8px;display:grid}.distribution-panel-palette{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;min-width:0;min-height:0;padding:16px;overflow:auto}.distribution-panel-palette h2{color:var(--color-text-strong);justify-content:space-between;margin:0 0 12px;display:flex}.distribution-panel-palette h3{flex-wrap:wrap;justify-content:space-between;gap:4px;margin:16px 0 6px;display:flex}.distribution-panel-palette h3 small{color:var(--color-text-muted);font-size:var(--ui-font-size-small);font-weight:400}.distribution-panel-palette section,.distribution-panel-dimensions{margin-bottom:20px}.distribution-panel-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.distribution-panel-dimensions,.distribution-panel-inspector,.distribution-panel-catalog-form{gap:8px;display:grid}.distribution-panel-dimensions label,.distribution-panel-inspector label,.distribution-panel-catalog-form label{font-size:var(--ui-font-size-label);gap:4px;display:grid}.distribution-panel-dimensions>button{justify-self:start}.distribution-panel-view input:not([type=checkbox]),.distribution-panel-view select,.distribution-panel-catalog-dialog input:not([type=checkbox]),.distribution-panel-catalog-dialog select,.distribution-panel-catalog-dialog textarea{border:1px solid var(--color-border-strong);width:100%;min-width:0;min-height:30px;color:var(--color-text-strong);background:var(--color-bg-card);font-size:var(--ui-font-size-input);font-variant-numeric:tabular-nums;border-radius:6px;padding:4px 8px}.distribution-panel-view input[type=number],.distribution-panel-catalog-dialog input[type=number]{text-align:right}.distribution-panel-view input:focus-visible,.distribution-panel-view select:focus-visible,.distribution-panel-catalog-dialog input:focus-visible,.distribution-panel-catalog-dialog textarea:focus-visible,.distribution-panel-catalog-dialog select:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.distribution-panel-view button:focus-visible,.distribution-panel-catalog-dialog button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.distribution-panel-model-button{border-bottom:1px solid var(--color-border-soft);width:100%;min-height:48px;color:var(--color-text-strong);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.distribution-panel-model-button small,.distribution-panel-placed-row small{color:var(--color-text-muted);font-size:var(--ui-font-size-small);margin-top:4px;display:block}.distribution-panel-model-button:disabled{color:var(--color-text-muted);cursor:default}.distribution-panel-model-button:hover:not(:disabled),.distribution-panel-placed-row:hover{outline:1px solid var(--color-border-strong);outline-offset:2px}.distribution-panel-inspector{border-block:1px solid var(--color-border);padding-block:16px}.distribution-panel-inspector p,.distribution-panel-inspector h2{margin:0}.distribution-panel-inspector form{gap:12px;display:grid}.distribution-panel-inspector strong{overflow-wrap:anywhere}.distribution-panel-placed-row{width:100%;color:var(--color-text-strong);text-align:left;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:4px;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px 4px;display:grid}.distribution-panel-placed-row>span{overflow-wrap:anywhere;min-width:0}.distribution-panel-placed-row.is-selected{background:var(--color-bg-subtle)}.distribution-panel-model-row{align-items:center;gap:6px;display:flex}.distribution-panel-model-row .distribution-panel-model-button{flex:1;min-width:0}.distribution-panel-favorite{color:var(--color-text-muted);flex-shrink:0}.distribution-panel-favorite[aria-pressed=true]{color:var(--color-text-accent)}.distribution-panel-palette-list{max-height:340px;padding:2px;overflow:auto}.distribution-panel-part-drawing text{font-family:inherit}.distribution-panel-reference-note{color:var(--color-text-muted);background:var(--color-bg-card);font-size:var(--ui-font-size-caption);margin:0;padding:8px 12px;line-height:1.5}.distribution-panel-meta{color:var(--color-text-muted);font-size:var(--ui-font-size-small);line-height:var(--ui-line-height-body)}.distribution-panel-size{white-space:nowrap;display:inline-block}.distribution-panel-error{color:var(--color-text-danger);margin:0;line-height:1.5}.distribution-panel-notice{color:var(--color-text-danger);background:var(--color-bg-warning-soft);justify-content:space-between;align-items:center;gap:12px;margin:0 8px 12px;padding:8px 12px;display:flex}.distribution-panel-notice button{color:var(--color-text-strong);cursor:pointer;background:0 0;flex-shrink:0;text-decoration:underline}.distribution-panel-check{white-space:nowrap;align-items:center;gap:6px;display:flex!important}.distribution-panel-check input{width:16px;height:16px;accent-color:var(--color-text-accent);margin:0}.distribution-panel-canvas-area{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.distribution-panel-canvas-toolbar{background:var(--color-bg-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.distribution-panel-canvas-toolbar output{text-align:center;font-variant-numeric:tabular-nums;min-width:46px}.distribution-panel-canvas-viewport{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;overflow:auto}.distribution-panel-canvas-stage{place-items:center;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:12px;display:grid}.distribution-panel-canvas{touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;display:block;overflow:visible}.distribution-panel-plate{fill:#fff;stroke:var(--color-border-strong);stroke-width:1.5px}.distribution-panel-workspace{fill:#f1f4f5}.distribution-panel-workspace-label{fill:#697b85}.distribution-panel-grid{stroke:#e6eaed;stroke-width:1px}.distribution-panel-ruler{fill:var(--color-text-muted);font-variant-numeric:tabular-nums}.distribution-panel-part{cursor:grab;outline:none}.distribution-panel-part>.distribution-panel-hitbox{fill:#0000;stroke:#0000;stroke-width:1px}.distribution-panel-part>text{fill:var(--color-text-strong);pointer-events:none}.distribution-panel-part.is-outside>.distribution-panel-hitbox{stroke:#697b85;stroke-dasharray:4 3}.distribution-panel-part.is-overlapping>rect{stroke:var(--color-text-warning);stroke-width:2px}.distribution-panel-part.is-selected>rect,.distribution-panel-part:focus-visible>rect{fill:#0000;stroke:var(--color-text-accent);stroke-width:2px}.distribution-panel-part:active{cursor:grabbing}.distribution-panel-outside-badge{background:var(--color-bg-accent);color:var(--color-text-accent);font-size:var(--ui-font-size-caption);border-radius:3px;margin-left:6px;padding:1px 4px;display:inline-block}.distribution-panel-canvas-footer{color:var(--color-text-muted);background:var(--color-bg-card);font-size:var(--ui-font-size-small);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 12px;display:flex}.distribution-panel-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;min-height:180px;padding:24px;display:flex}.distribution-panel-empty p{color:var(--color-text-muted);margin:0}.distribution-panel-catalog-dialog{width:min(1000px, 100vw / var(--app-scale) - 48px);max-width:calc(100vw / var(--app-scale) - 32px);max-height:calc(90dvh / var(--app-scale));border:1px solid var(--color-border);color:var(--color-text-base);background:var(--color-bg-card);border-radius:8px;padding:0}.distribution-panel-catalog-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/35%)}.distribution-panel-dialog-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.distribution-panel-dialog-header h2{color:var(--color-text-strong);margin:0}.distribution-panel-dialog-header p{color:var(--color-text-muted);margin:8px 0 0}.distribution-panel-catalog-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:320px;display:grid}.distribution-panel-catalog-tree{border-right:1px solid var(--color-border);padding:20px}.distribution-panel-catalog-editor{padding:20px}.distribution-panel-catalog-form h3{margin:0}.distribution-panel-catalog-form>button{justify-self:start}.distribution-panel-catalog-group{margin-top:20px}.distribution-panel-catalog-row{align-items:center;gap:4px;min-width:0;padding:5px 0;display:flex}.distribution-panel-catalog-row .icon-button{flex-shrink:0}.distribution-panel-text-button{min-width:0;color:var(--color-text-strong);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;flex:1;padding:4px 0}.distribution-panel-text-button small{color:var(--color-text-muted);font-size:var(--ui-font-size-small);margin-top:5px;display:block}.distribution-panel-catalog-model{border-bottom:1px solid var(--color-border-soft);margin-left:16px}@media (width<=900px){.distribution-panel-header{padding:12px}}@media (width<=600px){:root:has(.distribution-panel-workspace){--app-scale:1}.distribution-panel-workspace .layout{grid-template-columns:minmax(0,1fr)}.distribution-panel-workspace .layer-panel{display:none}.distribution-panel-view{grid-column:1;overflow:auto}.distribution-panel-header>.distribution-panel-inline-actions{width:100%}.distribution-panel-drawing-select{flex:1}.distribution-panel-drawing-select select{max-width:none}.distribution-panel-editor{flex-direction:column;flex:none;display:flex}.distribution-panel-canvas-area{order:-1;height:50dvh;min-height:300px}.distribution-panel-palette{overflow:visible}.distribution-panel-canvas-toolbar{font-size:var(--ui-font-size-small)}.distribution-panel-placed-row{min-height:44px}.distribution-panel-catalog-body{grid-template-columns:minmax(0,1fr)}.distribution-panel-catalog-tree{border-right:0;border-bottom:1px solid var(--color-border)}}.distribution-panel-workbench{gap:12px;min-width:0;min-height:0;display:grid}.distribution-panel-workbench.has-data-editor{grid-template-columns:minmax(0,1fr) minmax(420px,.85fr)}.distribution-panel-canvas-stack{flex-direction:column;min-width:0;min-height:0;display:flex}.distribution-panel-canvas-stack>.distribution-panel-canvas-area{flex:1}.distribution-panel-preview-label{color:var(--color-text-accent);background:var(--color-bg-accent-soft);font-size:var(--ui-font-size-small);padding:6px 12px}.distribution-panel-data-editor{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:8px;flex-direction:column;gap:10px;min-width:0;min-height:0;padding:12px;display:flex;overflow:auto}.distribution-panel-data-editor>p{margin:0}.distribution-panel-data-header,.distribution-panel-data-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.distribution-panel-data-header{justify-content:space-between}.distribution-panel-data-header h2{margin:0}.distribution-panel-data-tabs{gap:2px;margin-right:auto;display:flex}.distribution-panel-data-tabs button[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent-soft)}.distribution-panel-json-label{min-height:180px;color:var(--color-text-muted);font-size:var(--ui-font-size-small);flex-direction:column;flex:1;gap:6px;display:flex}.distribution-panel-view textarea.distribution-panel-json{resize:vertical;width:100%;min-height:160px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--ui-font-size-small);tab-size:2;white-space:pre;color:var(--color-text-strong);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;flex:1;padding:10px;line-height:1.6;overflow:auto}.distribution-panel-data-table-area{flex:1;min-height:160px;overflow:auto}.distribution-panel-data-table-area label{gap:4px;display:grid}.distribution-panel-data-table-scroll{overflow:auto}.distribution-panel-data-table-scroll table{border-collapse:collapse;width:100%;min-width:540px;font-size:var(--ui-font-size-small)}.distribution-panel-data-table-scroll th,.distribution-panel-data-table-scroll td{border-bottom:1px solid var(--color-border-soft);text-align:right;font-variant-numeric:tabular-nums;padding:5px 3px;font-weight:400}.distribution-panel-data-table-scroll th:first-child{text-align:left;width:140px;max-width:140px}.distribution-panel-data-table-scroll tbody th{background:var(--color-bg-card);position:sticky;left:0}.distribution-panel-data-table-scroll .is-selected th{background:var(--color-bg-accent-soft)}.distribution-panel-data-table-scroll small{max-width:130px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--ui-font-size-caption);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.distribution-panel-data-table-scroll td input,.distribution-panel-data-table-scroll td select{min-width:68px}.distribution-panel-data-errors{max-height:140px;color:var(--color-text-danger);font-size:var(--ui-font-size-small);overflow-wrap:anywhere;margin:0;padding-left:20px;overflow:auto}.distribution-panel-data-report{color:var(--color-text-strong);font-size:var(--ui-font-size-small);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.distribution-panel-data-report span{width:100%;color:var(--color-text-warning)}@media (width<=1100px){.distribution-panel-workbench.has-data-editor{grid-template-rows:minmax(220px,1fr) minmax(240px,1fr);grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.distribution-panel-workbench{order:-1}.distribution-panel-canvas-stack{height:50dvh;min-height:300px}.distribution-panel-canvas-stack>.distribution-panel-canvas-area{height:auto;min-height:0}.distribution-panel-workbench.has-data-editor{flex-direction:column;display:flex}.distribution-panel-data-editor{min-height:400px;max-height:70dvh}}.distribution-panel-view{grid-column:2}.distribution-panel-view.distribution-panel-empty{grid-column:2/-1}.distribution-panel-title-actions{align-items:center;gap:6px;display:flex}.distribution-panel-palette{padding:12px}.distribution-panel-palette .distribution-panel-placed{margin:0}.distribution-panel-placed>input{margin-bottom:10px}.distribution-panel-mobile-category{display:none}.distribution-panel-categories{gap:6px;display:grid}.distribution-panel-categories h2{margin:0 0 6px}.distribution-panel-category-button{width:100%;min-height:40px;color:var(--color-text-strong);text-align:left;cursor:pointer;background:0 0;border-radius:5px;align-items:center;gap:9px;padding:8px 10px;display:flex}.distribution-panel-category-button span{flex:1}.distribution-panel-category-button small{color:var(--color-text-muted);font-size:var(--ui-font-size-small);font-variant-numeric:tabular-nums}.distribution-panel-category-button:hover{background:var(--color-bg-subtle)}.distribution-panel-category-button.is-active{color:var(--color-text-accent);background:var(--color-bg-accent-soft)}.distribution-panel-category-button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.distribution-panel-category-rail-slot,.distribution-panel-category-rail{flex-direction:column;align-items:center;gap:3px;width:100%;display:flex}.distribution-panel-inspector-panel{flex-direction:column;grid-area:1/3;gap:12px;min-width:0;min-height:0;padding:16px;display:flex}.distribution-panel-inspector-header{border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;display:flex}.distribution-panel-inspector-header>span{color:var(--color-text-muted);font-size:var(--ui-font-size-small)}.distribution-panel-inspector-content{flex:1;min-height:0;padding-right:20px;display:block;overflow:auto}.distribution-panel-inspector-panel .distribution-panel-inspector{border:0;padding:0}.distribution-panel-inspector-panel .distribution-panel-inspector h2{margin-bottom:4px}.distribution-panel-inspector-panel label{font-size:var(--ui-font-size-label);gap:5px;display:grid}.distribution-panel-inspector-panel input:not([type=checkbox]),.distribution-panel-inspector-panel select,.distribution-panel-inspector-panel textarea{width:100%;min-width:0;min-height:30px;color:var(--color-text-strong);background:var(--color-bg-card);border:1px solid var(--color-border-strong);font-family:inherit;font-size:var(--ui-font-size-input);font-variant-numeric:tabular-nums;border-radius:6px;padding:4px 8px}.distribution-panel-inspector-panel input[type=number]{text-align:right}.distribution-panel-inspector-panel textarea{resize:vertical}.distribution-panel-inspector-panel input:focus-visible,.distribution-panel-inspector-panel select:focus-visible,.distribution-panel-inspector-panel textarea:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:1px}.distribution-panel-inspector-panel button:focus-visible,.distribution-panel-inspector-panel summary:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.distribution-panel-add-parts,.distribution-panel-model-choices{gap:12px;min-width:0;display:grid}.distribution-panel-add-parts h2{margin:0}.distribution-panel-model-choices h3{flex-wrap:wrap;align-items:center;gap:5px;margin:0;display:flex}.distribution-panel-model-choices h3 small{width:100%;color:var(--color-text-muted);font-size:var(--ui-font-size-small);font-weight:400}.distribution-panel-favorite-models{margin:0}.distribution-panel-favorite-models>h3 span{color:var(--color-text-muted);font-size:var(--ui-font-size-small);margin-left:auto}.distribution-panel-more-models summary{min-height:36px;color:var(--color-text-strong);cursor:pointer;align-items:center;gap:6px;padding:6px 0;list-style:none;display:flex}.distribution-panel-more-models summary::-webkit-details-marker{display:none}.distribution-panel-more-models summary span{color:var(--color-text-muted);font-size:var(--ui-font-size-small);margin-left:auto}.distribution-panel-more-models[open] summary>svg{transform:rotate(180deg)}.distribution-panel-inspector-panel.is-numeric .distribution-panel-inspector-content{flex-direction:column;padding:0;display:flex;overflow:hidden}.distribution-panel-inspector-panel.is-numeric .distribution-panel-data-editor{border:0;border-radius:0;flex:1;padding:0}.distribution-panel-inspector-panel .distribution-panel-data-editor label.distribution-panel-json-label{display:flex}.distribution-panel-inspector-panel textarea.distribution-panel-json{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--ui-font-size-small)}@media (width<=1100px){.distribution-panel-editor{grid-template-columns:300px minmax(0,1fr)}}@media (width<=600px){.distribution-panel-workspace .layout{flex-direction:column;display:flex;overflow:auto}.distribution-panel-workspace .tablet-layer-rail,.distribution-panel-workspace .tablet-add-rail{display:none}.distribution-panel-view{flex:none;overflow:visible}.distribution-panel-mobile-category{gap:5px;margin-bottom:12px;display:grid}.distribution-panel-palette{max-height:300px;overflow:auto}.distribution-panel-inspector-panel{border-top:1px solid var(--color-border);border-left:0;flex:none;height:auto;min-height:160px;max-height:75dvh}.distribution-panel-inspector-panel.is-numeric{height:70dvh;min-height:400px}}.tablet-workspace .layout>.distribution-panel-inspector-panel{grid-area:auto}.distribution-panel-wiring,.distribution-panel-wiring-section,.distribution-panel-wiring-fields{gap:12px;min-width:0;display:grid}.distribution-panel-wiring h2,.distribution-panel-wiring h3,.distribution-panel-wiring h4,.distribution-panel-wiring p{margin:0}.distribution-panel-wiring-section{border:0;border-top:1px solid var(--color-border);margin:0;padding:12px 0}.distribution-panel-wiring-section legend{color:var(--color-text-strong);font-size:var(--ui-font-size-section-title);padding:0 6px 0 0;font-weight:600}.distribution-panel-entry-fields{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.distribution-panel-entry-location,.distribution-panel-entry-move{font-size:var(--ui-font-size-label);gap:5px;display:grid}.distribution-panel-entry-positions{grid-template-columns:repeat(4,35.2px);gap:4px;display:grid}.distribution-panel-entry-move-buttons{gap:4px;display:flex}.distribution-panel-entry-position{border:1px solid var(--color-border-strong);background:var(--color-bg-card);width:35.2px;height:35.2px;color:var(--color-text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.distribution-panel-entry-position:hover:not(:disabled):not(.active){background:var(--color-bg-subtle);color:var(--color-text-strong)}.distribution-panel-entry-position.active{background:var(--color-bg-accent-soft);border-color:var(--color-text-accent);color:var(--color-text-accent)}.distribution-panel-entry-position:disabled{cursor:default;opacity:.45}.distribution-panel-connection-editor{min-width:0}.distribution-panel-connection-editor>summary{cursor:pointer;color:var(--color-text-strong);font-weight:600}.distribution-panel-connection-fields{gap:8px;min-width:0;padding-top:12px;display:grid}.distribution-panel-connection-list{gap:12px;max-height:360px;padding:2px;display:grid;overflow:auto}.distribution-panel-connection-row{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-bottom:12px;display:grid}.distribution-panel-connection-points{pointer-events:none}.distribution-panel-connection-points.is-picking{pointer-events:auto;cursor:crosshair}.distribution-panel-connection-halo{fill:#fff;fill-opacity:.85;stroke:#087eaa;stroke-width:1.5px}.distribution-panel-connection-dot{fill:#087eaa;stroke:#fff;stroke-width:1px}.distribution-panel-connection-points g:focus-visible{outline:none}.distribution-panel-connection-points g:focus-visible .distribution-panel-connection-halo,.distribution-panel-connection-points g:hover .distribution-panel-connection-halo{stroke-width:3px}.distribution-panel-cable-list{gap:6px;min-width:0;display:grid}.distribution-panel-cable-list-title{color:var(--color-text-strong);font-size:var(--ui-font-size-small);align-items:center;gap:8px;font-weight:600;display:flex}.distribution-panel-cable-list-title:after{content:"";border-top:1px solid var(--color-border);flex:1}.distribution-panel-cable-header{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.distribution-panel-cable-header .ghost-button{flex:none;width:auto}.distribution-panel-cable-number{color:var(--color-text-muted);font-size:var(--ui-font-size-label)}.distribution-panel-cable-row{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:6px;gap:6px;min-width:0;padding:8px;display:grid}.distribution-panel-cable-main{grid-template-columns:minmax(0,1fr) 100px;align-items:start;gap:6px;display:grid}.distribution-panel-cable-details>summary{color:var(--color-text-muted);font-size:var(--ui-font-size-small);cursor:pointer;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;list-style:none;display:flex}.distribution-panel-cable-details>summary::-webkit-details-marker{display:none}.distribution-panel-cable-details[open]>summary svg{transform:rotate(180deg)}.distribution-panel-cable-extra{gap:8px;padding-top:8px;display:grid}.distribution-panel-cable-note{color:var(--color-text-muted);font-size:var(--ui-font-size-small);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;margin:0;padding:3px 0;font-weight:400}.distribution-panel button.distribution-panel-cable-note{cursor:text}.distribution-panel-cable-row .distribution-panel-meta{align-self:end}.distribution-panel-cable-progress{color:var(--color-text-strong)}.distribution-panel-cable-connections{gap:4px;margin:0;padding:0;list-style:none;display:grid}.distribution-panel-cable-connections button{font-size:var(--ui-font-size-small)}.distribution-panel-waypoint{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.distribution-panel-wiring-actions{background:var(--color-bg-card);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:8px;padding-block:12px;display:flex;position:sticky;bottom:0}.distribution-panel-preview-label{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.distribution-panel-wiring-drawing{pointer-events:none}.distribution-panel-wire,.distribution-panel-cable-entry{cursor:pointer;outline:none}.distribution-panel-wire-line{fill:none;stroke:#627f89;stroke-width:1.5px}.distribution-panel-wire-hit{fill:none;stroke:#0000;stroke-width:10px;pointer-events:stroke}.distribution-panel-wire-end{fill:#fff;stroke:#627f89;stroke-width:1.5px}.distribution-panel-wire.is-selected .distribution-panel-wire-line,.distribution-panel-wire:focus-visible .distribution-panel-wire-line{stroke:#087eaa;stroke-width:3px}.distribution-panel-wire.is-selected .distribution-panel-wire-end{stroke:#087eaa}.distribution-panel-cable-entry circle{fill:#fff;stroke:#546b76;stroke-width:1.5px;pointer-events:all}.distribution-panel-cable-entry text,.distribution-panel-entry-group{fill:#253541}.distribution-panel-entry-group-selection{fill:#087eaa;fill-opacity:.08;stroke:#087eaa;stroke-width:1.5px}.distribution-panel-cable-branch-line{fill:none;stroke:#627f89;stroke-width:1.5px}.distribution-panel-cable-branches.is-selected .distribution-panel-cable-branch-line{stroke:#087eaa;stroke-width:2px}.distribution-panel-cable-branch-label{fill:#253541;stroke:#fff;stroke-width:3px;paint-order:stroke}.distribution-panel-cable-branch-hit{fill:#0000}.distribution-panel-cable-branch.is-connectable{cursor:pointer;outline:none}.distribution-panel-cable-branch.is-connectable:hover .distribution-panel-cable-branch-hit,.distribution-panel-cable-branch.is-connectable:focus-visible .distribution-panel-cable-branch-hit,.distribution-panel-cable-branch.is-connecting .distribution-panel-cable-branch-hit{fill:#087eaa;fill-opacity:.12}.distribution-panel-cable-entry.is-selected circle,.distribution-panel-cable-entry:focus-visible circle{stroke:#087eaa;stroke-width:3px}.distribution-panel-resize-handle{outline:none}.distribution-panel-resize-handle.is-horizontal{cursor:ew-resize}.distribution-panel-resize-handle.is-vertical{cursor:ns-resize}.distribution-panel-resize-hitbox{fill:#0000;pointer-events:all}.distribution-panel-resize-grip{fill:#fff;stroke:var(--color-text-accent);stroke-width:2px;pointer-events:none}.distribution-panel-resize-handle:hover .distribution-panel-resize-grip,.distribution-panel-resize-handle:focus-visible .distribution-panel-resize-grip{fill:var(--color-bg-accent);stroke-width:3px}.distribution-panel-resize-length{fill:#253541;stroke:#fff;stroke-width:3px;paint-order:stroke}.distribution-panel-sync{gap:12px;min-width:0;display:grid}.distribution-panel-sync h2,.distribution-panel-sync p,.distribution-panel-sync h3{margin:0}.distribution-panel-sync-group{border-top:1px solid var(--color-border-soft);gap:8px;min-width:0;padding-block:12px;display:grid}.distribution-panel-sync-group h3{overflow-wrap:anywhere;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.distribution-panel-sync-group h3>span{color:var(--color-text-muted);font-size:var(--ui-font-size-small);flex-shrink:0;font-weight:400}.distribution-panel-sync .distribution-panel-check{white-space:normal}.distribution-panel-sync-confirm{font-size:var(--ui-font-size-small)!important}.distribution-panel-sync-details{min-width:0}.distribution-panel-sync-details>summary{cursor:pointer;color:var(--color-text-muted);font-size:var(--ui-font-size-small);padding-block:6px}.distribution-panel-sync-source{border-top:1px solid var(--color-border-soft);overflow-wrap:anywhere;gap:6px;padding-block:10px;display:grid}.distribution-panel-sync-origin{gap:6px;padding-block:8px;display:grid}.distribution-panel-header .ghost-button{white-space:nowrap}.layer-variant-options{border-top:1px solid var(--color-border);grid-column:1/-1;min-width:0;padding-top:6px}.layer-variant-options .layer-variant-list{border-top:0;padding-top:3px}.variant-sync-dialog{width:calc(100vw / var(--app-scale));height:calc(100dvh / var(--app-scale));background:var(--color-bg-panel);max-width:none;max-height:none;color:var(--color-text-base);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.variant-sync-dialog[open]{flex-direction:column;display:flex}.variant-sync-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/45%)}.variant-sync-dialog h2,.variant-sync-dialog h3,.variant-sync-dialog p{margin:0}.variant-sync-dialog input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-text-accent);flex-shrink:0}.variant-sync-dialog button:disabled{cursor:not-allowed;opacity:.5}.variant-sync-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-card);flex:none;justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.variant-sync-header>div{min-width:0}.variant-sync-header h2{align-items:center;gap:10px;font-size:1.4rem;display:flex}.variant-sync-header p{color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:6px}.variant-sync-body{overscroll-behavior:contain;flex:1;min-height:0;padding:24px 28px 40px;overflow-y:auto}.variant-sync-source{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:8px;padding:20px}.variant-sync-source p{color:var(--color-text-muted);margin-top:12px}.variant-sync-source-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.variant-sync-source-button{border:1px solid var(--color-border-muted);background:var(--color-bg-card);overflow-wrap:anywhere;text-align:left;cursor:pointer;border-radius:6px;max-width:100%;padding:10px 16px}.variant-sync-source-button.active{border-color:var(--color-text-accent);background:var(--color-bg-accent);color:var(--color-text-accent);font-weight:700;text-decoration:underline}.variant-sync-plan-heading{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 14px;display:flex}.variant-sync-plan-heading h3{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.variant-sync-plan-heading label{white-space:nowrap;align-items:center;gap:6px;display:flex}.variant-sync-previews{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}.variant-sync-preview{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:8px;min-width:0;overflow:hidden}.variant-sync-preview-heading{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.variant-sync-preview-heading>div:first-child{min-width:0}.variant-sync-preview-heading h3{overflow-wrap:anywhere}.variant-sync-preview-heading p{color:var(--color-text-muted);margin-top:5px}.variant-sync-preview-tools{flex-shrink:0;align-items:center;gap:2px;display:flex}.variant-sync-preview-tools output{text-align:center;min-width:42px}.variant-sync-preview-viewport{height:clamp(360px, 48vh / var(--app-scale), 720px);background:var(--color-bg-grid);touch-action:none;cursor:grab;position:relative;overflow:hidden}.variant-sync-preview-stage{background:var(--color-bg-card);pointer-events:none;position:absolute;top:0;left:0}.variant-sync-preview-image{opacity:.65;background-repeat:no-repeat;position:absolute;inset:0}.variant-sync-preview .layer-readonly-overlay{z-index:1}.variant-sync-preview .circuit-annotation-order-badge{display:none}.variant-sync-preview-changes{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:visible}.variant-sync-preview-empty{height:100%;color:var(--color-text-muted);justify-content:center;align-items:center;gap:10px;display:flex}.variant-sync-guide{color:var(--color-text-muted);margin-top:10px!important}.variant-sync-section{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:8px;margin-top:24px;overflow:hidden}.variant-sync-section-heading{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;padding:20px;display:flex}.variant-sync-section-heading h3{align-items:center;gap:8px;display:flex}.variant-sync-section-heading p{color:var(--color-text-muted);margin-top:6px}.variant-sync-section-heading label{flex-shrink:0;align-items:center;gap:6px;display:flex}.variant-sync-section-import{--sync-color:#15803d}.variant-sync-section-delete{--sync-color:#b91c1c}.variant-sync-section-move{--sync-color:#1d4ed8}.variant-sync-changes{margin:0;padding:0;list-style:none}.variant-sync-changes li{border-bottom:1px solid var(--color-bg-accent-soft);align-items:center;gap:16px;padding:12px 20px;display:flex}.variant-sync-changes li:last-child{border-bottom:0}.variant-sync-changes li.focused{background:var(--color-bg-accent)}.variant-sync-change{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.variant-sync-change strong{overflow-wrap:anywhere}.variant-sync-change small{color:var(--color-text-muted);margin-top:5px;display:block}.variant-sync-change-number{background:var(--sync-color);height:26px;color:var(--color-text-on-accent);border-radius:50%;flex:0 0 26px;place-items:center;font-weight:700;display:grid}.variant-sync-empty{text-align:center;color:var(--color-text-muted);padding:60px 20px}.variant-sync-footer{border-top:1px solid var(--color-border);background:var(--color-bg-card);flex:none;align-items:center;gap:12px;padding:16px 28px;display:flex}.variant-sync-footer>div{flex:1}.variant-sync-footer p{color:var(--color-text-danger)}@page{size:A4;margin:0}.estimate-quote-shell{min-height:var(--app-viewport-height);background:var(--color-bg-app);color:var(--color-text-base);font:9.8pt/1.32 Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif}.estimate-quote-shell *,.estimate-quote-shell :before,.estimate-quote-shell :after{box-sizing:border-box}.estimate-quote-toolbar{z-index:10;background:var(--color-bg-panel);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:center;gap:8px;padding:8px;display:flex;position:sticky;top:0}.estimate-quote-toolbar button,.estimate-quote-toolbar label,.estimate-quote-toolbar .estimate-quote-toolbar-stepper{border:1px solid var(--color-border-muted);background:var(--color-bg-card);min-height:30px;color:var(--color-text-base);font:inherit}.estimate-quote-toolbar button{cursor:pointer;align-items:center;gap:5px;padding:5px 10px;display:inline-flex}.estimate-quote-toolbar button:hover{background:var(--color-bg-subtle)}.estimate-quote-toolbar button:focus-visible{outline:2px solid var(--color-text-soft);outline-offset:2px}.estimate-quote-toolbar button:has(input:focus-visible){outline:2px solid var(--color-text-soft);outline-offset:2px}.estimate-quote-toolbar button:disabled{color:var(--color-text-muted);cursor:default}.estimate-quote-toolbar-check{cursor:pointer;align-items:center;gap:4px;padding:5px 8px;display:inline-flex}.estimate-quote-toolbar-check input{margin:0}.estimate-quote-toolbar-stepper{align-items:center;gap:4px;padding:0 4px;display:inline-flex}.estimate-quote-toolbar-stepper button{border:0;border-left:1px solid var(--color-border-soft);background:var(--color-bg-card);min-width:26px;padding:5px 7px}.estimate-quote-toolbar-stepper button:first-of-type{border-left:0}.estimate-quote-toolbar-stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:14px}.estimate-quote-save-status{min-width:62px;color:var(--color-text-soft);align-items:center;display:inline-flex}.estimate-quote-toolbar-percent output{min-width:42px}.estimate-quote-document{color:#000;zoom:var(--estimate-quote-scale,1);width:210mm;min-height:297mm;font-size:calc(9.8pt * var(--estimate-quote-font-scale,1));background:#fff;margin:0 auto;padding:12mm;position:relative;box-shadow:0 8mm 24mm #0000001f}.estimate-quote-document input,.estimate-quote-document select{min-width:0;color:inherit;font:inherit;background:0 0;border:0;border-radius:0;outline:0;padding:0}.estimate-quote-document input:focus-visible,.estimate-quote-document select:focus-visible{outline-offset:.6mm;outline:.35mm solid #999}.estimate-quote-top{grid-template-columns:1fr 82mm;align-items:start;gap:22mm;display:grid}.estimate-quote-recipient select{width:max-content;margin:calc(3mm * var(--estimate-quote-row-padding-scale,1)) 0 calc(1mm * var(--estimate-quote-row-padding-scale,1));appearance:none;font-size:calc(24pt * var(--estimate-quote-font-scale,1));cursor:pointer;font-weight:900;line-height:1;display:block}.estimate-quote-document-subtitle{width:100%;min-height:calc(4mm * var(--estimate-quote-font-scale,1) + 2mm * var(--estimate-quote-row-padding-scale,1));margin:0 0 calc(6mm * var(--estimate-quote-row-padding-scale,1));line-height:1.35;display:block;color:#666!important;font-size:calc(10pt * var(--estimate-quote-font-scale,1))!important;font-weight:600!important}.estimate-quote-recipient-name{text-align:center;border-bottom:1.2mm solid #000;grid-template-columns:1fr auto;align-items:end;display:grid}.estimate-quote-recipient-name input{width:100%;min-height:calc(7mm * var(--estimate-quote-font-scale,1) + 2mm * var(--estimate-quote-row-padding-scale,1));font-size:calc(18pt * var(--estimate-quote-font-scale,1));text-align:center;font-weight:600}.estimate-quote-recipient-name input::placeholder{color:#777;opacity:1}.estimate-quote-recipient-name em{font-size:calc(11pt * var(--estimate-quote-font-scale,1));padding-left:2mm;font-style:normal}.estimate-quote-meta-line{min-height:calc(4mm * var(--estimate-quote-font-scale,1) + 2mm * var(--estimate-quote-row-padding-scale,1));border-bottom:.25mm dotted #000;grid-template-columns:22mm 1fr;align-items:center;display:grid}.estimate-quote-meta-line strong{font-weight:900}.estimate-quote-meta-line input{width:100%}.estimate-quote-supplier{border-top:.6mm solid #000;border-bottom:.6mm solid #000}.estimate-quote-supplier-title{min-height:calc(4.5mm * var(--estimate-quote-font-scale,1) + 2mm * var(--estimate-quote-row-padding-scale,1));padding:calc(1mm * var(--estimate-quote-row-padding-scale,1)) 1.8mm;background:#d9d9d9;border-bottom:.25mm dotted #000;font-weight:900}.estimate-quote-supplier-row{min-height:calc(4mm * var(--estimate-quote-font-scale,1) + 2.6mm * var(--estimate-quote-row-padding-scale,1));border-bottom:.25mm dotted #000;grid-template-columns:17mm 1fr;align-items:center;display:grid}.estimate-quote-supplier-row:last-child{border-bottom:0}.estimate-quote-supplier-row.two-col{grid-template-columns:17mm 1fr 17mm 20mm}.estimate-quote-supplier-row strong,.estimate-quote-supplier-row span{padding:0 1.8mm}.estimate-quote-supplier-row strong{font-weight:900}.estimate-quote-representative{align-items:center;margin-left:-5mm;display:inline-flex;position:relative}.estimate-quote-representative img{width:calc(8mm * var(--estimate-quote-font-scale,1) + 4mm * var(--estimate-quote-row-padding-scale,1));height:calc(8mm * var(--estimate-quote-font-scale,1) + 4mm * var(--estimate-quote-row-padding-scale,1));object-fit:contain;opacity:.9;pointer-events:none;position:absolute;right:0}.estimate-quote-amount-bar{min-height:calc(9mm * var(--estimate-quote-font-scale,1) + 4mm * var(--estimate-quote-row-padding-scale,1));margin:calc(6mm * var(--estimate-quote-row-padding-scale,1)) 0 calc(2mm * var(--estimate-quote-row-padding-scale,1));padding:calc(2mm * var(--estimate-quote-row-padding-scale,1)) 1.8mm;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#efefef;justify-content:space-between;align-items:center;gap:4mm;display:flex}.estimate-quote-amount-bar>div{min-width:0;font-size:calc(16pt * var(--estimate-quote-font-scale,1));flex:1;align-items:baseline;gap:2mm;font-weight:900;display:flex}.estimate-quote-amount-bar>div>span{flex-shrink:0}.estimate-quote-amount-bar small{min-width:0;font-size:calc(10pt * var(--estimate-quote-font-scale,1));flex:1;font-weight:900}.estimate-quote-amount-bar small input{width:100%;font-size:inherit;font-weight:inherit}.estimate-quote-amount-bar>strong{font-size:calc(20pt * var(--estimate-quote-font-scale,1));font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-weight:900}.estimate-quote-table-wrap{--estimate-quote-row-height:calc(3.9mm * var(--estimate-quote-font-scale,1) + 1.4mm * var(--estimate-quote-row-padding-scale,1));overflow-x:auto}.estimate-quote-table-wrap table{border-collapse:collapse;table-layout:fixed;width:100%}.estimate-quote-table-wrap thead{display:table-header-group}.estimate-quote-table-wrap th{height:calc(4.6mm * var(--estimate-quote-font-scale,1) + 1.4mm * var(--estimate-quote-row-padding-scale,1));text-align:left;background:#d9d9d9;border-top:.6mm solid #000;border-bottom:.25mm dotted #000;padding:0 1.5mm;font-weight:900}.estimate-quote-table-wrap td{height:var(--estimate-quote-row-height);padding:calc(.7mm * var(--estimate-quote-row-padding-scale,1)) 1.4mm;vertical-align:top;background:#fff;border-bottom:.25mm dotted #ccc}.estimate-quote-table-wrap tbody tr:last-child td{border-bottom:0}.estimate-quote-table-wrap tbody tr.is-missing td{color:#c00000}.estimate-quote-table-wrap tbody tr.is-detail td{color:#555;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fafafa}.estimate-quote-table-wrap tbody tr.is-service td{color:#c00000;background:#fff}.estimate-quote-table-wrap tbody tr.is-excluded td{color:#c00000;-webkit-print-color-adjust:exact;print-color-adjust:exact;text-decoration:line-through}.estimate-quote-table-wrap .col-name.is-detail{padding-left:5mm}.estimate-quote-table-wrap .quote-detail-branch{vertical-align:middle;border-bottom:.25mm solid #aaa;width:3.5mm;height:2.5mm;margin-right:1mm;display:inline-block}.estimate-quote-table-wrap .package-total-row td{height:var(--estimate-quote-row-height);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#efefef;border-top:.3mm solid #000;border-bottom:.25mm dotted #000;font-weight:900}.estimate-quote-table-wrap .package-gap-row td{height:calc(2.65mm * var(--estimate-quote-row-padding-scale,1));border-bottom:0;padding:0}.estimate-quote-table-wrap .blank-data-row td{height:var(--estimate-quote-row-height);color:#0000;border-bottom:.25mm dotted #ccc}.estimate-quote-table-wrap .col-package{width:15%}.estimate-quote-table-wrap .col-name{width:35%}.estimate-quote-table-wrap .col-unit-price,.estimate-quote-table-wrap .col-qty{width:16%}.estimate-quote-table-wrap .col-total{width:18%}.estimate-quote-table-wrap .col-unit-price,.estimate-quote-table-wrap .col-qty,.estimate-quote-table-wrap .col-total{white-space:nowrap}.estimate-quote-table-wrap .col-service{text-align:center;width:7%}.estimate-quote-table-wrap .col-service-total{white-space:nowrap;width:14%}.estimate-quote-table-wrap table.has-service-columns .col-package{width:13%}.estimate-quote-table-wrap table.has-service-columns .col-name{width:28%}.estimate-quote-table-wrap table.has-service-columns .col-unit-price{width:13%}.estimate-quote-table-wrap table.has-service-columns .col-qty{width:11%}.estimate-quote-table-wrap table.has-service-columns .col-total{width:14%}.estimate-quote-table-wrap table.has-service-columns .col-service{width:7%}.estimate-quote-table-wrap table.has-service-columns .col-service-total{width:14%}.estimate-quote-table-wrap .num{text-align:right;font-variant-numeric:tabular-nums}.estimate-quote-bottom{margin-top:calc(1mm * var(--estimate-quote-row-padding-scale,1));break-inside:avoid}.estimate-quote-summary-table{border-collapse:collapse;border-top:.25mm dotted #000;border-bottom:.6mm solid #000;width:100%}.estimate-quote-summary-table th,.estimate-quote-summary-table td{height:calc(4.4mm * var(--estimate-quote-font-scale,1) + 1.4mm * var(--estimate-quote-row-padding-scale,1));-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#d9d9d9;padding:0 1.5mm;font-weight:900}.estimate-quote-summary-table th{text-align:left}.estimate-quote-summary-table td{text-align:right;font-variant-numeric:tabular-nums}.estimate-quote-summary-table .summary-sub-row th,.estimate-quote-summary-table .summary-sub-row td{background:#efefef;font-weight:700}.estimate-quote-summary-table .summary-discount-row td{color:#c00000}.estimate-quote-summary-table .summary-excluded-row td{color:#c00000;text-decoration:line-through}.estimate-quote-notes{margin-top:calc(2.5mm * var(--estimate-quote-row-padding-scale,1))}.estimate-quote-notes.is-hidden{display:none}.estimate-quote-notes h2{min-height:calc(4.1mm * var(--estimate-quote-font-scale,1) + 2.4mm * var(--estimate-quote-row-padding-scale,1));padding:calc(1.2mm * var(--estimate-quote-row-padding-scale,1)) 1.5mm;font-size:calc(10.5pt * var(--estimate-quote-font-scale,1));-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#d9d9d9;border-top:.6mm solid #000;border-bottom:.25mm dotted #000;margin:0;line-height:1.2}.estimate-quote-notes input{width:100%;min-height:calc(4mm * var(--estimate-quote-font-scale,1) + 2mm * var(--estimate-quote-row-padding-scale,1));padding:calc(1mm * var(--estimate-quote-row-padding-scale,1)) 1.5mm;border-bottom:.25mm dotted #ccc;display:block}.estimate-quote-error{min-height:var(--app-viewport-height);color:#000;text-align:center;background:#eee;place-content:center;gap:10px;padding:24px;display:grid}.estimate-quote-error h1,.estimate-quote-error p{margin:0}.estimate-quote-error button{cursor:pointer;background:#fff;border:1px solid #999;justify-self:center;padding:8px 14px}@media screen and (width<=900px){.estimate-quote-toolbar{justify-content:flex-start}.estimate-quote-document{margin-left:0;margin-right:0}}@media print{body:has(.estimate-quote-shell){background:#fff;min-width:0}.estimate-quote-toolbar{display:none}.estimate-quote-shell{background:#fff;min-height:0}.estimate-quote-document{box-shadow:none;margin:0 auto}.estimate-quote-document input,.estimate-quote-document select{outline:0}}.switch-product-control select{min-height:calc(36px * var(--ui-scale));font-size:calc(1.25rem * var(--ui-font-scale))}.switch-display-settings{gap:calc(4px * var(--ui-scale));display:grid}.switch-display-options{align-items:center;gap:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));flex-wrap:wrap;display:flex}.switch-display-option{align-items:center;gap:calc(8px * var(--ui-scale));font-size:var(--ui-font-size-small);cursor:pointer;display:flex}.switch-display-option input{accent-color:#9437ff;margin:0}.switch-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.switch-marker-layer.readonly{z-index:6;pointer-events:none}.switch-marker-layer.readonly *{pointer-events:none}.switch-point-annotation-layer{pointer-events:none;z-index:44;width:100%;height:100%;position:absolute;inset:0}.switch-point-connector-layer{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.switch-point-connector{fill:none;stroke:#9437ff;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.switch-point-annotation .circuit-annotation-tooltip{box-shadow:0 8px 18px rgb(var(--color-violet-rgb)/12%);border-color:#9437ff}.switch-point-annotation .circuit-annotation-label,.switch-tooltip-button-label{white-space:pre-wrap}.switch-marker{fill:#9437ff;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}.switch-marker.selected{fill:#9437ff;stroke:#fff;stroke-width:2.6px;filter:drop-shadow(0 0 3px #9437ff)}.switch-marker-letter{fill:#fff;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:800}.switch-order-badge{background:#9437ff}.switch-item-type-row{gap:calc(4px * var(--ui-scale));flex-direction:column;display:flex}.switch-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.switch-type-grid .lighting-mode-chip{white-space:nowrap}.switch-item-type-label{gap:calc(4px * var(--ui-scale));color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));font-weight:800;display:grid}.switch-item-type-select{width:100%;min-height:calc(32px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.84rem * var(--ui-font-scale));font-weight:800}.switch-item-point-row{gap:calc(6px * var(--ui-scale));padding:calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-panel);display:grid;position:relative}.switch-item-point-line{align-items:center;gap:calc(8px * var(--ui-scale));min-height:calc(34px * var(--ui-scale));display:flex}.switch-item-point-heading{color:var(--color-text-soft);font-size:calc(.8rem * var(--ui-font-scale));flex:auto}.switch-button-count-picker{flex:none;position:relative}.switch-button-count-popover{z-index:80;grid-template-columns:repeat(4, calc(32px * var(--ui-scale)));gap:calc(4px * var(--ui-scale));padding:calc(6px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 14px 34px rgb(var(--color-shadow-rgb)/14%);display:grid;position:absolute;top:calc(100% + 6px);right:0}.switch-button-count-option{width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale));border-radius:calc(7px * var(--ui-scale));color:var(--color-text-strong);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-weight:900;display:inline-flex}.switch-button-count-option:hover,.switch-button-count-option.active{border-color:var(--color-text-violet);background:rgb(var(--color-violet-rgb)/10%);color:var(--color-text-violet)}.switch-point-button-list{gap:calc(4px * var(--ui-scale));display:grid}.switch-point-button-row{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.switch-point-button-badge{width:calc(20px * var(--ui-scale));height:calc(20px * var(--ui-scale));background:rgb(var(--color-violet-rgb)/12%);color:var(--color-text-violet);font-size:calc(.68rem * var(--ui-font-scale));border-radius:999px;flex:none;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-item-point-name-inline,.switch-item-point-name-inline .lighting-item-name-row{align-items:center;gap:calc(6px * var(--ui-scale));white-space:nowrap;flex:auto;min-width:0;display:flex}.switch-item-point-name-inline .lighting-item-name-row strong:first-child{min-width:0}.switch-item-point-name-button{min-width:0;max-width:100%;color:inherit;font:inherit;text-align:left;cursor:text;background:0 0;border:0;padding:0;display:inline-flex}.switch-item-point-name-button:focus-visible{outline:2px solid var(--color-text-violet);outline-offset:2px;border-radius:2px}.switch-item-point-name-editor{align-items:center;gap:calc(6px * var(--ui-scale));width:100%;min-width:0;display:flex}.switch-item-point-name-input{flex:auto;width:100%;min-width:0}.switch-point-type-picker{flex:none;position:relative}.switch-point-type-icon-button{width:calc(30px * var(--ui-scale));height:calc(30px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);font-size:calc(.8rem * var(--ui-font-scale));cursor:pointer;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-point-type-icon-button:hover{background:var(--color-bg-panel)}.switch-point-type-popover{z-index:80;gap:calc(4px * var(--ui-scale));min-width:calc(160px * var(--ui-scale));padding:calc(8px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(12px * var(--ui-scale));background:var(--color-bg-card);box-shadow:0 14px 34px rgb(var(--color-shadow-rgb)/14%);display:grid;position:absolute;top:calc(100% + 6px);right:0}.switch-point-type-option{align-items:center;gap:calc(8px * var(--ui-scale));width:100%;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:var(--color-text-strong);text-align:left;cursor:pointer;background:0 0;border:0;font-weight:800;display:inline-flex}.switch-point-type-option:hover,.switch-point-type-option.active{background:rgb(var(--color-violet-rgb)/10%)}.switch-point-type-option-icon{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));color:var(--color-text-on-accent);font-size:calc(.76rem * var(--ui-font-scale));background:#9437ff;border-radius:999px;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-item-controls{gap:calc(8px * var(--ui-scale));margin-top:calc(6px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.switch-direction-toggle-group{gap:calc(6px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.switch-label-placement-group{grid-template-columns:repeat(4,minmax(0,1fr))}.switch-label-placement-group .switch-direction-toggle svg{width:calc(16px * var(--ui-scale));height:calc(16px * var(--ui-scale));stroke:currentColor;display:block}.switch-label-placement-control{grid-column:1/-1}.switch-button-label-layout-control{gap:calc(6px * var(--ui-scale));display:grid}.switch-button-label-layout-group{grid-template-columns:repeat(2,minmax(0,1fr))}.switch-control-heading{justify-content:flex-start;align-items:center;gap:calc(6px * var(--ui-scale));display:flex}.switch-tooltip-visibility-toggle{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.switch-tooltip-visibility-toggle[aria-pressed=true],.switch-tooltip-visibility-toggle:hover{color:var(--color-text-violet)}.switch-direction-toggle{min-height:calc(34px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);cursor:pointer;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-direction-toggle.active{border-color:var(--color-text-violet);background:rgb(var(--color-violet-rgb)/10%);color:var(--color-text-violet)}.switch-direction-toggle:hover{background:var(--color-bg-panel)}.switch-tooltip-point-toggle-group{grid-template-columns:repeat(auto-fit, minmax(calc(28px * var(--ui-scale)), 1fr));gap:calc(6px * var(--ui-scale));display:grid}.switch-tooltip-point-toggle{min-height:calc(32px * var(--ui-scale));border:1px solid var(--color-border-soft);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-strong);cursor:pointer;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-tooltip-point-toggle.active{border-color:var(--color-text-violet);background:rgb(var(--color-violet-rgb)/10%);color:var(--color-text-violet)}.switch-tooltip-point-toggle:hover{background:var(--color-bg-panel)}@page pyplan-landscape{size:A4 landscape;margin:0}@page pyplan-portrait{size:A4 portrait;margin:0}.project-jpeg-preview-dialog{width:calc(100vw / var(--app-scale));height:calc(100dvh / var(--app-scale));background:var(--color-bg-panel);max-width:none;max-height:none;color:var(--color-text-base);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.project-jpeg-preview-dialog[open]{flex-direction:column;display:flex}.project-jpeg-preview-dialog::backdrop{background:#0f172a73}.project-jpeg-preview-dialog button:disabled{cursor:not-allowed;opacity:.5}.project-jpeg-preview-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-card);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.project-jpeg-preview-header>div{min-width:0}.project-jpeg-preview-header h2{align-items:center;gap:8px;margin:0;font-size:1.25rem;display:flex}.project-jpeg-preview-header p{color:var(--color-text-muted);overflow-wrap:anywhere;margin:5px 0 0}.project-jpeg-preview-toolbar{border-bottom:1px solid var(--color-border);background:var(--color-bg-card);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:8px 24px;padding:10px 24px;display:flex}.project-jpeg-preview-pages,.project-jpeg-preview-zoom{align-items:center;gap:6px;min-width:0;display:flex}.project-jpeg-preview-pages span,.project-jpeg-preview-pages output,.project-jpeg-preview-zoom span,.project-jpeg-preview-zoom output{text-align:center;flex-shrink:0;min-width:46px}.project-jpeg-preview-pages select{width:min(320px, 100vw / var(--app-scale) - 210px);border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);min-width:0;color:var(--color-text-base);padding:8px}.project-jpeg-preview-viewport{overscroll-behavior:contain;background:var(--color-bg-app);flex:1;min-height:0;overflow:auto}.project-jpeg-preview-stage{padding:24px}.project-jpeg-preview-stage img{object-fit:contain;width:100%;height:100%;display:block}.project-jpeg-preview-footer{border-top:1px solid var(--color-border);background:var(--color-bg-card);flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:14px 24px;display:flex}.project-jpeg-preview-footer button{white-space:nowrap;flex-shrink:0}.project-jpeg-preview-footer p{min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:180px;margin:0;overflow:hidden}.project-pdf-print-frame{pointer-events:none;border:0;width:0;height:0;position:fixed;top:0;left:-100000px}.project-pdf-export{visibility:hidden;color:#151b26;pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;zoom:calc(1 / var(--app-scale));position:fixed;top:0;left:-100000px}.project-pdf-export.project-jpeg-export{visibility:visible;background:#fff}.project-pdf-export .project-pdf-page{box-sizing:border-box;break-inside:avoid;flex-direction:column;margin:0;display:flex;overflow:hidden}.project-pdf-export .project-pdf-page+.project-pdf-export .project-pdf-page{break-before:page}.project-pdf-export .project-pdf-page.landscape{page:pyplan-landscape;width:297mm;height:210mm}.project-pdf-export .project-pdf-page.portrait{page:pyplan-portrait;width:210mm;height:297mm}.project-pdf-export .project-pdf-page-header{box-sizing:border-box;border-bottom:1px solid #d9dee6;flex:0 0 12mm;justify-content:space-between;align-items:flex-start;margin:5mm 5mm 0;display:flex}.project-pdf-export .project-pdf-page-header small{color:#64748b;font-size:9pt;display:block}.project-pdf-export .project-pdf-page-header h2{color:#151b26;margin:1mm 0 0;font-size:14pt}.project-pdf-export .project-pdf-page-header>span{color:#64748b;font-size:9pt}.project-pdf-export .project-pdf-page-body{flex:1;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.project-pdf-export .project-pdf-stage-frame{flex:none;position:relative;overflow:hidden}.project-pdf-export .project-pdf-stage{box-shadow:none;cursor:default;border:0;border-radius:0;margin:0;position:absolute;top:0;left:0}.project-pdf-export .project-pdf-stage *{box-shadow:none!important;filter:none!important;text-shadow:none!important}.project-pdf-export .project-pdf-page-empty{color:#64748b;font-size:12pt}@media print{body:has(.project-pdf-export){background:#fff;min-width:0;min-height:0}body:has(.project-pdf-export) .workspace{display:none!important}.project-pdf-export{visibility:visible;pointer-events:auto;display:contents;position:static}.project-pdf-export.pdf-debug .project-pdf-page:after,.project-pdf-export.pdf-debug .project-pdf-page-header:after,.project-pdf-export.pdf-debug .project-pdf-page-body:after,.project-pdf-export.pdf-debug .project-pdf-stage-frame:after,.project-pdf-export.pdf-debug .project-pdf-stage:after,.project-pdf-export.pdf-debug .drawing-legend:after{z-index:10000;color:#fff;pointer-events:none;padding:1mm 1.5mm;font-size:7pt;font-weight:800;line-height:1;position:absolute;top:0;left:0}.project-pdf-export.pdf-debug .project-pdf-page{outline-offset:-2px;outline:2px solid #e11d48;position:relative}.project-pdf-export.pdf-debug .project-pdf-page:after{content:"A4 페이지";background:#e11d48}.project-pdf-export.pdf-debug .project-pdf-page-header{outline-offset:-2px;outline:2px solid #2563eb;position:relative}.project-pdf-export.pdf-debug .project-pdf-page-header:after{content:"헤더 영역";background:#2563eb}.project-pdf-export.pdf-debug .project-pdf-page-body{outline-offset:-2px;outline:2px solid #16a34a;position:relative}.project-pdf-export.pdf-debug .project-pdf-page-body:after{content:"본문 영역";background:#16a34a}.project-pdf-export.pdf-debug .project-pdf-stage-frame{outline-offset:-5px;outline:2px dashed #f97316}.project-pdf-export.pdf-debug .project-pdf-stage-frame:after{content:"클리핑 영역 / 범례 이동 한계";background:#f97316;top:5px;left:5px}.project-pdf-export.pdf-debug .project-pdf-stage{outline-offset:-2px;outline:2px solid #a855f7}.project-pdf-export.pdf-debug .project-pdf-stage:after{content:"도면 기준 영역";background:#a855f7}.project-pdf-export.pdf-debug .drawing-legend{outline-offset:-2px;outline:2px solid #0891b2}.project-pdf-export.pdf-debug .drawing-legend:after{content:"범례 실측 영역";background:#0891b2;left:auto;right:0}}:root:is(.mobile-drawing-viewer,.mobile-project-browser){--app-scale:1;--app-viewport-height:100dvh}:root.mobile-drawing-viewer body{overscroll-behavior:none;overflow:hidden}.mobile-project-list{background:var(--color-bg-page)}.mobile-project-list .project-page-header{padding:calc(4px + env(safe-area-inset-top,0px)) max(8px, env(safe-area-inset-right,0px)) 4px max(12px, env(safe-area-inset-left,0px));flex-direction:row;align-items:center;gap:8px}.mobile-project-list .product-label{display:none}.mobile-project-list h1{margin:0;font-size:18px}.mobile-project-list .project-page-actions{flex-shrink:0}.mobile-project-list .ghost-button{min-height:44px;font-size:13px}.mobile-project-list .project-page-content{display:block}.mobile-project-list .project-list-header{padding:16px max(12px, env(safe-area-inset-right,0px)) 12px max(12px, env(safe-area-inset-left,0px))}.mobile-project-list .project-list-header h1{font-size:18px}.mobile-project-list .project-section-heading{padding:12px max(12px, env(safe-area-inset-right,0px)) 12px max(12px, env(safe-area-inset-left,0px));font-size:15px}.mobile-project-list .project-section-empty{padding:8px 12px 16px}.mobile-project-list .project-grid{padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);grid-template-columns:minmax(0,1fr);gap:0}.mobile-project-list .project-card{border:0;border-bottom:1px solid var(--color-border);border-radius:0;min-height:72px;padding:4px}.mobile-project-list .project-card-title{font-size:calc(16px * var(--project-card-font-scale))}.mobile-project-list .project-card-date,.mobile-project-list .project-card-properties{font-size:calc(12px * var(--project-card-font-scale))}.mobile-viewer{height:100dvh;color:var(--color-text-base);background:var(--color-bg-app);grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;inset:0;overflow:hidden}.mobile-viewer.immersive{grid-template-rows:minmax(0,1fr)}.mobile-viewer-header{z-index:2;min-width:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px);border-bottom:1px solid var(--color-border);background:var(--color-bg-page);align-items:center;display:flex}.mobile-viewer-button{width:44px;height:44px;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-viewer-button:disabled{opacity:.35;cursor:default}.mobile-viewer-button:active{background:var(--color-bg-accent)}.mobile-viewer-button[aria-pressed=true]{color:var(--color-text-accent)}.mobile-viewer-button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-3px}.mobile-viewer-drawing{flex:1;min-width:0;padding:2px 4px;display:grid}.mobile-viewer-drawing span{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:14px;overflow:hidden}.mobile-viewer-drawing select{width:100%;min-width:0;height:26px;color:var(--color-text-strong);text-overflow:ellipsis;background:0 0;border:0;padding:0 20px 0 0;font-size:16px;font-weight:700}.mobile-viewer-viewport{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;min-width:0;min-height:0;position:relative;overflow:hidden}.mobile-viewer-viewport:active{cursor:grabbing}.mobile-viewer-stage{background:var(--color-bg-card);pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.mobile-viewer-stage *{pointer-events:none!important}.mobile-viewer-stage.hide-labels .circuit-annotation-layer,.mobile-viewer-stage.hide-labels .region-label{display:none}.mobile-viewer-image{background-repeat:no-repeat;position:absolute;inset:0}.mobile-viewer-controls{z-index:3;bottom:calc(8px + env(safe-area-inset-bottom,0px));left:max(8px, env(safe-area-inset-left,0px));border:1px solid var(--color-border-muted);background:rgb(var(--color-surface-rgb)/95%);border-radius:8px;align-items:center;display:flex;position:absolute}.mobile-viewer-controls output{min-width:42px;color:var(--color-text-soft);text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.mobile-viewer-restore{z-index:3;top:max(4px, env(safe-area-inset-top,0px));right:max(4px, env(safe-area-inset-right,0px));border:1px solid var(--color-border-muted);background:rgb(var(--color-surface-rgb)/95%);border-radius:8px;position:absolute}.mobile-viewer-empty{text-align:center;align-content:center;justify-items:center;gap:8px;padding:16px;display:grid;position:absolute;inset:0}.mobile-viewer-empty span{color:var(--color-text-muted);line-height:1.5}.mobile-viewer-error{z-index:4;top:calc(48px + env(safe-area-inset-top,0px));right:max(4px, env(safe-area-inset-right,0px));left:max(4px, env(safe-area-inset-left,0px));border:1px solid var(--color-border-danger);background:var(--color-bg-warning-soft);color:var(--color-text-danger);align-items:center;gap:8px;padding:8px;display:flex;position:absolute}.mobile-viewer-error span{overflow-wrap:anywhere;flex:1}.mobile-viewer-error button{min-height:44px;color:inherit;background:0 0;padding:4px 8px;font-weight:700}.mobile-viewer-layers{width:100%;max-width:100%;max-height:min(560px,80dvh);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);border:1px solid var(--color-border);color:var(--color-text-base);background:var(--color-bg-page);border-radius:12px 12px 0 0;margin:0;position:fixed;inset:auto 0 0;overflow:hidden}.mobile-viewer-layers[open]{grid-template-rows:auto auto minmax(0,1fr) auto;display:grid}.mobile-viewer-layers::backdrop{background:rgb(var(--color-shadow-rgb)/35%)}.mobile-viewer-layers-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-left:12px;display:flex}.mobile-viewer-layers-header h2{margin:0;font-size:16px}.mobile-viewer-layers-actions{gap:8px;padding:4px 12px;display:flex}.mobile-viewer-layers-actions button{min-height:40px;color:var(--color-text-accent);background:var(--color-bg-accent);border-radius:6px;padding:0 12px;font-weight:700}.mobile-viewer-layers-list{overscroll-behavior:contain;min-height:0;overflow:auto}.mobile-viewer-layer{align-items:center;gap:10px;min-height:44px;padding:4px 16px;display:flex}.mobile-viewer-layer input{width:20px;height:20px;accent-color:var(--color-text-accent);margin:0}.mobile-viewer-layer span{flex:1}.mobile-viewer-layer small{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.mobile-viewer-gesture-hint{border-top:1px solid var(--color-border);color:var(--color-text-muted);text-align:center;margin:0;padding:10px 12px;font-size:12px}.tablet-workspace{--tablet-rail-width:40px}.tablet-workspace .topbar{grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);gap:10px;min-height:42px;padding:4px 8px;display:grid}.tablet-workspace .topbar-identity{gap:4px}.tablet-workspace .topbar-project{gap:6px}.tablet-workspace .topbar-project h1{max-width:260px;font-size:12.6px}.tablet-workspace .topbar-actions{justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.tablet-workspace .topbar-actions button{white-space:nowrap;flex-shrink:0;font-size:12px}.tablet-workspace .topbar .icon-button{width:32px;min-height:32px}.tablet-workspace .topbar .primary-button,.tablet-workspace .topbar .ghost-button{gap:5px;min-height:32px;padding:0 9px}.tablet-workspace .layout{--tablet-right-rail-width:0px;isolation:isolate;grid-template-columns:var(--tablet-rail-width) minmax(0, 1fr);grid-template-rows:minmax(0,1fr);position:relative}.tablet-workspace .layout:has(>.tablet-add-rail){--tablet-right-rail-width:var(--tablet-rail-width);grid-template-columns:var(--tablet-rail-width) minmax(0, 1fr) var(--tablet-right-rail-width)}.tablet-workspace .drawing-board,.tablet-workspace .estimate-board{grid-area:1/2}.tablet-workspace .drawing-board{z-index:0;grid-template-rows:minmax(0,1fr);position:relative}.tablet-workspace .project-settings-view{grid-row:1}.tablet-workspace .layout>.layer-panel,.tablet-workspace .layout>.import-panel{z-index:110;width:min(360px, 100% - var(--tablet-rail-width) - var(--tablet-right-rail-width));visibility:hidden;pointer-events:none;height:100%;box-shadow:0 6px 30px rgb(var(--color-shadow-rgb)/18%);padding:14px;position:absolute;top:0;bottom:0}.tablet-workspace .layout>.layer-panel{left:var(--tablet-rail-width)}.tablet-workspace .layout>.import-panel{right:var(--tablet-right-rail-width);padding-top:48px}.tablet-workspace .tablet-left-open>.layer-panel,.tablet-workspace .tablet-right-open>.import-panel{visibility:visible;pointer-events:auto}.tablet-workspace .layout>.import-panel:not(.layer-sidebar){overflow-y:auto}.tablet-workspace .board-toolbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;min-height:0;padding:0}.tablet-workspace .board-toolbar>div:first-child{display:none}.tablet-workspace .board-actions{flex-wrap:nowrap;align-items:center;gap:3px}.tablet-workspace .board-actions .panel-wiring-toggle span{display:none}.tablet-workspace .zoom-control{gap:3px;min-height:32px;padding:0 4px}.tablet-workspace .zoom-control input{width:clamp(48px,6vw,110px);margin:0}.tablet-workspace .zoom-control span{width:38px;font-size:11px}.tablet-workspace .zoom-control .icon-button{width:30px;min-height:30px}.tablet-workspace .drawing-settings-popover{top:calc(100% + 12px)}.tablet-toolbar-slot{justify-content:center;align-items:center;min-width:0;display:flex}.tablet-layer-rail,.tablet-add-rail{z-index:120;background:var(--color-bg-panel);flex-direction:column;grid-row:1;align-items:center;gap:8px;min-height:0;padding:8px 1px;display:flex}.tablet-layer-rail{border-right:1px solid var(--color-border);grid-column:1}.tablet-layer-rail-layers{overscroll-behavior:contain;flex-direction:column;flex:1;align-items:center;gap:3px;width:100%;min-height:0;display:flex;overflow-y:auto}.tablet-add-rail{border-left:1px solid var(--color-border);grid-column:3}.tablet-add-rail-tools{overscroll-behavior:contain;flex-direction:column;flex:1;gap:6px;width:100%;min-height:0;display:flex;overflow-y:auto}.tablet-add-rail-group{flex-direction:column;align-items:center;gap:3px;display:flex}.tablet-add-rail-group+.tablet-add-rail-group{border-top:1px solid var(--color-border);padding-top:6px}.tablet-add-rail-actions{border-top:1px solid var(--color-border);gap:3px;padding-top:6px;display:grid}.tablet-rail-divider{background:var(--color-border);flex:0 0 1px;width:calc(100% - 6px);margin:5px 3px}.tablet-rail-button{border-radius:calc(8px * var(--ui-scale));width:36px;height:44px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:1px solid #0000;flex:0 0 44px;place-items:center;margin:0;padding:0;display:grid}.tablet-rail-button:hover,.tablet-rail-button:focus-visible{background:var(--color-bg-accent-soft)}.tablet-rail-button.active,.tablet-rail-button[aria-expanded=true]{border-color:var(--color-text-accent);background:var(--color-bg-accent);color:var(--color-text-accent)}.tablet-rail-button.active{box-shadow:inset 3px 0 var(--color-text-accent)}.tablet-rail-button:disabled{opacity:.4;cursor:default}.tablet-add-button{grid-template-rows:20px 12px;align-content:center}.tablet-add-button small{text-overflow:ellipsis;white-space:nowrap;width:100%;padding:0 1px;font-size:9px;line-height:12px;overflow:hidden}.tablet-panel-backdrop{z-index:100;inset:0 var(--tablet-right-rail-width) 0 var(--tablet-rail-width);background:rgb(var(--color-shadow-rgb)/12%);padding:0;position:absolute}.tablet-panel-heading{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;display:flex}.tablet-inspector-close{z-index:1;position:absolute;top:7px;right:10px}.tablet-settings-gate-button{border-top:1px solid var(--color-border);width:100%;color:var(--color-text-soft);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;gap:6px;margin-top:auto;padding:12px;display:flex}.tablet-access-dialog{width:min(420px, 100vw / var(--app-scale) - 32px);max-height:calc(100dvh / var(--app-scale) - 32px);border:1px solid var(--color-border);border-radius:calc(10px * var(--ui-scale));background:var(--color-bg-card);color:var(--color-text-base);box-shadow:0 24px 64px rgb(var(--color-shadow-rgb)/24%);margin:auto;padding:20px}.tablet-access-dialog::backdrop{background:rgb(var(--color-shadow-rgb)/38%)}.tablet-access-form{gap:14px;margin-top:18px;display:grid}.tablet-access-form label{gap:8px;display:grid}.tablet-access-form input{border:1px solid var(--color-border-muted);border-radius:calc(8px * var(--ui-scale));width:100%;min-height:42px;padding:8px 10px}.tablet-access-error{color:var(--color-text-danger);margin:0}.tablet-access-pages{gap:12px;margin-top:20px;display:grid}.tablet-drawing-edit-tools{position:relative}.tablet-drawing-edit-tools summary{border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);white-space:nowrap;cursor:pointer;align-items:center;gap:4px;min-height:32px;padding:0 8px;font-size:12px;list-style:none;display:flex}.tablet-drawing-edit-tools summary::-webkit-details-marker{display:none}.tablet-drawing-edit-content{border:1px solid var(--color-border);border-radius:calc(8px * var(--ui-scale));background:var(--color-bg-card);width:350px;box-shadow:0 12px 30px rgb(var(--color-shadow-rgb)/18%);flex-wrap:wrap;gap:12px;padding:16px;display:flex;position:absolute;top:calc(100% + 12px);right:0}.tablet-drawing-edit-content .measurement-control,.tablet-drawing-edit-content .drawing-source-actions{flex-wrap:wrap}.tablet-drawing-edit-content .drawing-source-actions>button{white-space:nowrap;flex:none}@media (width<=800px){.tablet-workspace .topbar{grid-template-columns:minmax(90px,1fr) auto auto;gap:5px}.tablet-workspace .topbar-project h1{font-size:11.2px}.tablet-workspace .project-export-label{display:none}}.project-inspector.import-panel{flex-direction:column;gap:0;min-width:0;padding:0;display:flex;overflow:hidden}.project-inspector[hidden],.project-inspector [hidden]{display:none!important}.project-inspector-tabs{border-bottom:1px solid var(--color-border);flex:none;padding:0 12px;display:flex}.project-inspector-tabs>button{min-height:44px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:7px;padding:8px;display:flex}.project-inspector-tabs>button[aria-selected=true]{color:var(--color-text-base);border-bottom-color:var(--color-text-base);font-weight:600}.project-inspector-tabs>button:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-3px}.project-inspector-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.project-inspector-native.import-panel{width:100%;height:100%;min-height:0;max-height:none;box-shadow:none;border:0;flex:1;grid-area:auto;position:relative}.project-inspector-native.import-panel:not(.layer-sidebar){overflow-y:auto}.project-assistant-context{color:var(--color-text-soft);overflow-wrap:anywhere;padding:10px 16px 4px}.project-assistant-account{color:var(--color-text-muted);padding:4px 16px 8px}.project-assistant-account summary{cursor:pointer}.project-assistant-account .plan-chat-accounts{background:0 0;padding:8px 0 0}.project-assistant-sync{color:var(--color-text-danger);font-size:var(--ui-font-size-small);padding:8px 16px}.project-assistant-sync p{overflow-wrap:anywhere;margin:0 0 6px}.project-assistant .plan-chat-conversation{border:0;flex:1}.project-assistant .plan-chat-conversation-header{font-size:var(--ui-font-size-small);padding-block:8px}.project-assistant .plan-chat-history{padding-top:8px}.project-assistant .plan-chat-composer{padding-top:10px}.project-assistant .plan-chat-composer-actions{align-items:center}.project-assistant .plan-chat-composer-actions>span{max-width:60%;line-height:1.5}.project-assistant textarea,.project-assistant select{border:1px solid var(--color-border-muted);background:var(--color-bg-card);min-width:0;color:var(--color-text-base);font:inherit;border-radius:6px;padding:6px 8px}.project-assistant textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:72px;max-height:160px}.project-assistant-result{justify-items:start;gap:8px;min-width:0;display:grid}.project-assistant-message-context{color:var(--color-text-muted);overflow-wrap:anywhere}.project-assistant-result-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-assistant-result-actions>span{color:var(--color-text-soft)}.project-assistant-result-image{border:1px solid var(--color-border);background:#fff;border-radius:4px;width:100%;padding:6px}.project-assistant-result-image img{object-fit:contain;width:100%;max-height:260px;display:block}.project-assistant-prompt-link{max-width:100%;color:inherit;font:inherit;text-align:left;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;text-decoration:underline;display:inline-flex}.project-assistant-prompt-link svg{flex:none}.project-assistant-prompt-link:hover{color:var(--color-text-accent)}.project-assistant-prompt-link:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:4px;border-radius:2px}.project-assistant-prompt-dialog{width:min(1000px / var(--app-scale), 100vw / var(--app-scale) - 32px);height:min(800px / var(--app-scale), 100dvh / var(--app-scale) - 32px);border:1px solid var(--color-border);background:var(--color-bg-page);max-width:none;max-height:none;color:var(--color-text-base);border-radius:12px;padding:0;overflow:hidden}.project-assistant-prompt-dialog[open]{flex-direction:column;display:flex}.project-assistant-prompt-dialog::backdrop{background:#00000073}.project-assistant-prompt-header{border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.project-assistant-prompt-header h2{margin:0}.project-assistant-prompt-header button{flex:none}.project-assistant-prompt-body{flex:1;min-width:0;min-height:0;padding:16px 18px;overflow:auto}.project-assistant-prompt-body p{margin:0 0 10px}.project-assistant-prompt-body pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:0;line-height:1.65}.tablet-workspace .layout>.project-inspector.import-panel{padding:44px 0 0;overflow:hidden}.theme-toggle{color:var(--color-text-soft);flex:none}.theme-toggle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}.theme-toggle[aria-pressed=true]{color:var(--color-text-accent);background:var(--color-bg-accent)}.catalog-page-header>.theme-toggle{margin-left:auto}.auth-theme-control{position:fixed;top:16px;right:16px}.project-page-header{grid-template-columns:auto minmax(0,1fr) auto;display:grid}.project-page-actions,.estimate-quote-toolbar>.theme-toggle{margin-left:auto}@media (width<=600px){.theme-toggle{width:44px;min-height:44px}.mobile-project-list .project-page-actions{flex-shrink:1;gap:4px;min-width:0}}@media print{.theme-toggle{display:none!important}}
