:root{--ui-scale:.9;--ui-font-scale:.94;color:#1d2433;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef1f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{border:0}.workspace{grid-template-rows:auto 1fr;height:100vh;min-height:100vh;display:grid;overflow:hidden}.workspace-header{background:#fbfcfd;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-radius:calc(8px * var(--ui-scale));color:#9f1239;background:#fff7f7;border:1px solid #efb4b4;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}.project-page{background:#eef1f4;grid-template-rows:auto auto 1fr;min-height:100vh;display:grid}.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));background:#fbfcfd;border-bottom:1px solid #d9dee6;display:flex}.project-page-actions{justify-content:flex-end;gap:calc(8px * var(--ui-scale));flex-wrap:wrap;display:flex}.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-radius:calc(8px * var(--ui-scale));color:#9f1239;font-size:calc(.88rem * var(--ui-font-scale));background:#fff7f7;border:1px solid #efb4b4;font-weight:700}.project-grid{grid-template-columns:repeat(auto-fill, minmax(calc(240px * var(--ui-scale)), 1fr));align-content:start;gap:calc(14px * var(--ui-scale));padding:calc(24px * var(--ui-scale));display:grid}.project-state{gap:calc(8px * var(--ui-scale));min-height:calc(180px * var(--ui-scale));padding:calc(20px * var(--ui-scale));border-radius:calc(10px * var(--ui-scale));color:#475569;background:#fbfcfd;border:1px dashed #cbd3dd;align-content:center;justify-items:start;display:grid}.project-state strong{color:#172033;font-size:calc(1rem * var(--ui-font-scale))}.project-state.error{background:#fff7f7;border-style:solid;border-color:#efb4b4}.project-card{gap:calc(6px * var(--ui-scale));min-height:calc(82px * var(--ui-scale));padding:calc(6px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:inherit;text-align:left;background:#fff;border:1px solid #d5dde7;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.project-card:hover,.project-card:focus-within{background:#f5fbfb;border-color:#1f6f78}.project-card strong,.project-card span{display:block}.project-card strong{color:#172033;font-size:calc(1rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-card span{margin-top:calc(4px * var(--ui-scale));color:#64748b;font-size:calc(.82rem * var(--ui-font-scale))}.project-card-open{gap:calc(12px * var(--ui-scale));min-width:0;padding:calc(8px * var(--ui-scale));color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.project-card-copy{min-width:0}.project-card-backup{flex:none}.project-card-icon{width:calc(40px * var(--ui-scale));height:calc(40px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#1f6f78;background:#e9f7f7;place-items:center;display:grid}.topbar{z-index:320;justify-content:space-between;align-items:center;gap:calc(14px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(18px * var(--ui-scale));background:#fbfcfd;border-bottom:1px solid #d9dee6;display:flex;position:relative;overflow:visible}.topbar-project{flex:auto;min-width:0}.product-label{color:#2f6f73;font-size:calc(.78rem * var(--ui-font-scale));letter-spacing:0;margin:0 0 4px;font-weight:700}.snapshot-selector{margin-top:calc(8px * var(--ui-scale));display:inline-flex;position:relative}.snapshot-selector.in-actions{margin-top:0}.snapshot-selector-button{align-items:center;gap:calc(7px * var(--ui-scale));min-height:calc(30px * var(--ui-scale));max-width:calc(280px * var(--ui-scale));height:calc(38px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd3dd;font-weight:700;display:inline-flex}.snapshot-selector-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.snapshot-menu{z-index:360;width:min(520px * var(--ui-scale), 100vw - 32px);max-height:min(620px * var(--ui-scale), 76vh);padding:calc(6px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:#fff;border:1px solid #d9dee6;display:grid;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 12px 24px #0f172a24}.snapshot-menu-item{gap:calc(3px * var(--ui-scale));width:100%;padding:calc(9px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#1d2433;cursor:pointer;text-align:left;background:0 0;display:grid}.snapshot-menu-item:hover,.snapshot-menu-item.active{background:#e9f7f7}.snapshot-menu-item strong,.snapshot-menu-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.snapshot-menu-item strong{color:#172033;font-size:calc(.9rem * var(--ui-font-scale))}.snapshot-menu-item span{color:#64748b;font-size:calc(.78rem * var(--ui-font-scale))}.snapshot-menu-row{grid-template-columns:minmax(0, 1fr) calc(32px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));align-items:stretch;display:grid}.snapshot-menu-row .snapshot-menu-item{border-top-right-radius:0;border-bottom-right-radius:0}.snapshot-menu-row:hover,.snapshot-menu-row.active{background:#e9f7f7}.snapshot-menu-row:hover .snapshot-menu-item,.snapshot-menu-row.active .snapshot-menu-item{background:0 0}.snapshot-menu-delete{width:calc(32px * var(--ui-scale));min-width:calc(32px * var(--ui-scale));border-radius:0 calc(6px * var(--ui-scale)) calc(6px * var(--ui-scale)) 0;color:#64748b;cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.snapshot-menu-delete:hover{color:#b91c1c;background:#b91c1c14}.snapshot-menu-empty{padding:calc(10px * var(--ui-scale));color:#64748b;font-size:calc(.78rem * var(--ui-font-scale))}.snapshot-menu-divider{height:1px;margin:calc(5px * var(--ui-scale)) 0;background:#dbe2ea}.snapshot-compare{gap:calc(8px * var(--ui-scale));padding:calc(8px * var(--ui-scale));display:grid}.snapshot-compare-heading,.snapshot-compare-total,.snapshot-compare-layer summary{align-items:center;display:flex}.snapshot-compare-heading{gap:calc(6px * var(--ui-scale));color:#172033}.snapshot-compare-controls{gap:calc(8px * var(--ui-scale));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.snapshot-compare-controls label{gap:calc(4px * var(--ui-scale));color:#64748b;min-width:0;font-size:calc(.76rem * var(--ui-font-scale));font-weight:700;display:grid}.snapshot-compare-controls select{min-width:0;height:calc(32px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#1d2433;background:#fff;border:1px solid #cbd3dd}.snapshot-compare-result{gap:calc(8px * var(--ui-scale));display:grid}.snapshot-compare-total{gap:calc(6px * var(--ui-scale));flex-wrap:wrap}.snapshot-compare-total span{padding:calc(3px * var(--ui-scale)) calc(7px * var(--ui-scale));color:#475569;font-size:calc(.76rem * var(--ui-font-scale));background:#edf2f7;border-radius:999px;font-weight:700}.snapshot-compare-layer{border-radius:calc(6px * var(--ui-scale));background:#f8fafc;border:1px solid #dbe2ea}.snapshot-compare-layer summary{justify-content:space-between;gap:calc(8px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));cursor:pointer}.snapshot-compare-layer summary strong{color:#172033;font-size:calc(.84rem * var(--ui-font-scale))}.snapshot-compare-layer summary span{color:#64748b;font-size:calc(.76rem * var(--ui-font-scale))}.snapshot-compare-change-group{gap:calc(4px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale)) calc(8px * var(--ui-scale));display:grid}.snapshot-compare-change-group>span,.snapshot-compare-change-group small{color:#64748b;font-size:calc(.75rem * var(--ui-font-scale));font-weight:700}.snapshot-compare-change-group ul{gap:calc(3px * var(--ui-scale));padding-left:calc(16px * var(--ui-scale));margin:0;display:grid}.snapshot-compare-change-group li{color:#1d2433;font-size:calc(.78rem * var(--ui-font-scale));line-height:1.35}.snapshot-compare-show-button{min-height:calc(32px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#1d4ed8;cursor:pointer;font-size:calc(.8rem * var(--ui-font-scale));background:#eff6ff;border:1px solid #2563eb;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.snapshot-compare-show-button:hover{background:#dbeafe}h1{color:#151b26;font-size:calc(1.35rem * var(--ui-font-scale));letter-spacing:0;margin:0;line-height:1.2}.topbar-actions,.board-actions{align-items:center;gap:calc(10px * var(--ui-scale));display:flex}.topbar-actions{flex:none}.topbar>.icon-button,.topbar-actions>button,.topbar-actions .snapshot-selector-button{border:0}.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));color:#fff;background:#1f6f78;font-weight:700}.primary-button.danger{background:#c2410c}.primary-button:hover{background:#175c64}.ghost-button{padding:0 calc(13px * var(--ui-scale));color:#334155;background:#fff;border:1px solid #cbd3dd;font-weight:700}.ghost-button.compact{min-height:calc(34px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));font-size:calc(.84rem * var(--ui-font-scale))}.icon-button{width:calc(38px * var(--ui-scale));color:#334155;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:#e7edf3}.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}.project-detail-loading{z-index:300;color:#475569;font-size:calc(.96rem * var(--ui-font-scale));background:#f8fafcc7;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.workspace-view-loading{color:#475569;min-width:0;min-height:0;font-size:calc(.96rem * var(--ui-font-scale));background:#fbfcfd;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:#f8fafc;flex-direction:column;display:flex}.layer-panel{border-right:1px solid #d9dee6}.import-panel{z-index:40;border-left:1px solid #d9dee6;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:#1f2937;font-weight:800;display:flex}.compact-title{margin-top:calc(8px * var(--ui-scale));color:#475569;font-size:calc(.88rem * var(--ui-font-scale))}.add-drawing-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));color:#1f6f78;cursor:pointer;background:#fff;border:1px solid #cbd3dd;font-weight:800;display:inline-flex}.add-drawing-button:hover{background:#e9f7f7}.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-radius:calc(8px * var(--ui-scale));color:inherit;cursor:grab;touch-action:none;will-change:transform;text-align:left;background:#fff;border:1px solid #dbe2ea;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;display:grid}.drawing-row:active{cursor:grabbing}.drawing-row.active{background:#eef8f8;border-color:#1f6f78;box-shadow:inset 3px 0 #1f6f78}.drawing-row.active .drawing-index{color:#fff;background:#1f6f78}.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:#172033;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:#64748b;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));color:#475569;font-size:calc(.78rem * var(--ui-font-scale));background:#edf2f7;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-radius:calc(8px * var(--ui-scale));color:#172033;font-size:calc(.88rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;font-weight:700}.drawing-row-name-input:focus{border-color:#1f6f78;outline:none;box-shadow:0 0 0 3px #1f6f781f}.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:#d9dee6}.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-radius:calc(8px * var(--ui-scale));cursor:pointer;background:#fff;border:1px solid #dbe2ea;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}.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:#d9dee6}.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-radius:calc(8px * var(--ui-scale));color:#475569;cursor:pointer;font-size:calc(.82rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;justify-content:space-between;align-items:center;font-weight:800;display:flex}.layer-visibility-all-button:hover{background:#f1f5f9}.layer-visibility-all-button.active{color:#007c73;background:#00a89d1a;border-color:#00a89d}.layer-visibility-all-state{align-items:center;gap:calc(5px * var(--ui-scale));display:inline-flex}.layer-row.active{background:#eef8f8;border-color:#6aa1a7}.layer-row-main:focus-visible{outline:none;box-shadow:0 0 0 3px #1f6f7824}.layer-toggle{width:calc(13px * var(--ui-scale));height:calc(13px * var(--ui-scale));background:#fff;border:2px solid #9ca8b7;border-radius:4px}.layer-row.active .layer-toggle{background:#1f6f78;border-color:#1f6f78}.layer-row strong,.source-meta span{color:#172033;font-size:calc(.92rem * var(--ui-font-scale));display:block}.layer-row small,.source-meta small,.layer-summary,.status-text{color:#64748b;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:#edf2f7;align-items:flex-start;margin-top:auto;display:flex}.layer-base-note{margin-top:calc(10px * var(--ui-scale));background:#eef5f7}.layer-preview-surface{border-radius:calc(10px * var(--ui-scale));background:#fff;border:1px solid #c8d1dc;margin:auto;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 18px 50px #0f172a29}.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}.confirm-dialog-backdrop{padding:calc(20px * var(--ui-scale));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;background:#0f172a61;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-radius:calc(12px * var(--ui-scale));background:#fff;border:1px solid #d9e1ea;display:grid;box-shadow:0 24px 64px #0f172a3d}.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:#172033;display:inline-flex}.confirm-dialog-body p{color:#475569;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:#1f6f78;animation:.9s linear infinite backup-progress-spin}.backup-progress-copy{gap:calc(5px * var(--ui-scale));display:grid}.backup-progress-copy strong{color:#172033;font-size:calc(1rem * var(--ui-font-scale))}.backup-progress-copy p{color:#475569;font-size:calc(.88rem * var(--ui-font-scale));margin:0;line-height:1.55}@keyframes backup-progress-spin{to{transform:rotate(360deg)}}.drawing-board{background-color:#eef2f6;background-image:linear-gradient(#dce3eb 1px,#0000 1px),linear-gradient(90deg,#dce3eb 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;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));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8fafceb;border-bottom:1px solid #d4dbe4;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-background-opacity-anchor{display:inline-flex;position:relative}.drawing-background-opacity-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-radius:calc(14px * var(--ui-scale));background:#fff;border:1px solid #d9e1ea;grid-auto-rows:max-content;display:grid;position:absolute;inset:calc(100% + 10px) 0 auto auto;box-shadow:0 24px 60px #0f172a3d}.drawing-background-opacity-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));background:#fff;border:0;border-top:1px solid #d9e1ea;border-left:1px solid #d9e1ea;position:absolute;bottom:auto;transform:rotate(45deg)}.measurement-control{gap:calc(10px * var(--ui-scale));min-width:calc(280px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border-radius:calc(12px * var(--ui-scale));background:#fff;border:1px solid #d7dfe8;display:grid;box-shadow:0 10px 24px #0f172a0f}.measurement-control-header{justify-content:space-between;align-items:flex-start;gap:calc(12px * var(--ui-scale));display:flex}.measurement-control-header strong{color:#172033;font-size:calc(.9rem * var(--ui-font-scale));font-weight:800}.measurement-control-header span{margin-top:calc(3px * var(--ui-scale));color:#64748b;font-size:calc(.76rem * var(--ui-font-scale));line-height:1.45}.measurement-control-header svg{color:#0f766e;flex:none}.measurement-control-actions{gap:calc(8px * var(--ui-scale));flex-wrap:wrap;display:flex}.measurement-control-draft{gap:calc(8px * var(--ui-scale));padding-top:calc(10px * var(--ui-scale));border-top:1px solid #e3e8ef;display:grid}.measurement-control-draft>span{color:#475569;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-radius:calc(8px * var(--ui-scale));color:#172033;background:#fff;border:1px solid #cbd3dd}.measurement-length-input:focus{border-color:#0f766e;outline:none;box-shadow:0 0 0 3px #0f766e1f}.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-radius:calc(8px * var(--ui-scale));background:#fff;border:1px solid #cbd3dd;display:inline-flex;position:relative}.zoom-control input{width:calc(120px * var(--ui-scale));accent-color:#1f6f78;cursor:pointer}.zoom-control span{width:calc(44px * var(--ui-scale));color:#334155;font-size:calc(.84rem * var(--ui-font-scale));text-align:right;font-weight:800}.zoom-control button,.zoom-control button:hover{background:0 0}.board-toolbar strong,.board-toolbar span{display:block}.board-toolbar span{margin-top:calc(3px * var(--ui-scale));color:#64748b;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{background:#fff;border:1px solid #aeb8c5;max-width:min(100%,1100px);max-height:calc(100vh - 160px);display:block;box-shadow:0 18px 50px #0f172a29}.board-preview-surface{z-index:1;cursor:default;-webkit-user-select:none;user-select:none;flex:none;max-width:min(100%,1200px);margin:auto;display:inline-flex;position:relative;box-shadow:0 18px 50px #0f172a29}.board-preview-surface[style]{max-width:none}.source-plan{background:#fff;border:1px solid #aeb8c5;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:#687589;text-align:center;justify-items:center;margin:auto;display:grid}.empty-board strong{color:#263244}.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 #1f6f782e;border-top-color:#1f6f78;border-radius:50%;animation:.85s linear infinite board-spin}@keyframes board-spin{to{transform:rotate(360deg)}}.drop-zone{gap:calc(8px * var(--ui-scale));padding:calc(24px * var(--ui-scale)) calc(16px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#344255;cursor:pointer;background:#fff;border:1px dashed #94a3b8;justify-items:center;display:grid}.drop-zone.dragging{background:#e9f7f7;border-color:#1f6f78}.drop-zone strong{font-size:calc(.98rem * var(--ui-font-scale))}.drop-zone span{color:#667085;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:#172033;font-size:calc(1rem * var(--ui-font-scale));font-weight:800}.page-picker-current span{color:#64748b;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-radius:calc(10px * var(--ui-scale));color:#172033;font-size:calc(.86rem * var(--ui-font-scale));resize:vertical;background:#fff;border:1px solid #cbd3dd;line-height:1.5}.drawing-memo-input:focus{border-color:#1f6f78;outline:none;box-shadow:0 0 0 3px #1f6f781f}.page-picker label{gap:calc(5px * var(--ui-scale));display:grid}.page-picker label span{color:#64748b;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-radius:calc(8px * var(--ui-scale));color:#172033;background:#fff;border:1px solid #cbd3dd}.crop-box{z-index:2;pointer-events:auto;background:#1f6f7829;border:2px solid #1f6f78;position:absolute;box-shadow:0 0 0 9999px #0f172a61}.crop-box.applied{background:#15803d24;border-color:#15803d}.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));color:#fff;font-size:calc(.75rem * var(--ui-font-scale));pointer-events:none;background:#15803d;font-weight:800;position:absolute}.crop-handle{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));background:#1f6f78;border:2px solid #fff;border-radius:4px;position:absolute;box-shadow:0 2px 8px #0f172a47}.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.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}.stage-placeholder{gap:calc(9px * var(--ui-scale));color:#7a8596;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-radius:calc(8px * var(--ui-scale));background:#fff;border:1px solid #d9e1ea;display:grid}.import-guide strong{color:#172033;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:#64748b;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 #d9dee6;border-left:0;grid-column:1/-1}}@media (width<=760px){.topbar{flex-direction:column;align-items:flex-start}.topbar-actions,.board-actions{width:100%}.primary-button,.ghost-button{flex:1}.layout{grid-template-columns:1fr}.layer-panel{border-bottom:1px solid #d9dee6;border-right:0}.canvas-area{padding:calc(18px * var(--ui-scale))}}.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,#666);border-radius:calc(6px * var(--ui-scale) * var(--circuit-annotation-scale,1));pointer-events:auto;touch-action:none;transform:translate(var(--circuit-tooltip-x,-50%), var(--circuit-tooltip-y,calc(-100% - 12px * var(--ui-scale))));background:#fffffff5;display:inline-flex;position:absolute;box-shadow:0 8px 18px #0f172a1a}.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-sub-label{color:#111827;font-size:85%;font-weight:700;line-height:1.15}.circuit-annotation-description-line{color:#666}.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:#b45309;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,#dc2626);color:#fff;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:#172033;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:#172033;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:#b91c1c;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:#b91c1c}.sensor-circuit-annotation-layer{pointer-events:none}.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}.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{color:#007c73;background:#00a89d1f;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:#fff;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:#ff9205;vector-effect:none}.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.square{rx:2}.lighting-path[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #1d4ed8}.lighting-path-item.snapshot-compare-ghost{pointer-events:none}.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}.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}.snapshot-compare-outline{vector-effect:non-scaling-stroke;pointer-events:none;fill:none!important;stroke-width:5px!important}.snapshot-compare-outline-added{stroke:#2563eb!important}.snapshot-compare-outline-removed{stroke:#dc2626!important}.network-marker-layer{pointer-events:auto;z-index:10;width:100%;height:100%;position:absolute;inset:0}.network-marker-layer.readonly{z-index:6;pointer-events:none}.network-marker-layer.readonly *{pointer-events:none}.network-marker{vector-effect:non-scaling-stroke;pointer-events:all}.network-marker-label{fill:#172033;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:#172033;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:#172033;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-weight:900}.lighting-downlight-label{fill:#172033;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-circuit-group-frame-layer{z-index:34}.lighting-circuit-group-frame{border-radius:calc(8px * var(--ui-scale));color:#1f6f78;cursor:pointer;pointer-events:all;text-align:left;background:#1f6f780d;border:2px dashed #1f6f7894;padding:0;display:block;position:absolute}.lighting-circuit-group-frame.selected{background:#1f6f7814;border-color:#1f6f78;box-shadow:0 0 0 3px #1f6f7824}.lighting-circuit-group-frame span{top:calc(-25px * var(--ui-scale));max-width:100%;padding:calc(3px * var(--ui-scale)) calc(7px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#1f6f78;font-size:calc(.74rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;background:#fff;font-weight:900;position:absolute;left:0;overflow:hidden;box-shadow:0 2px 8px #0f172a1f}.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;appearance:none;border:1px solid #ff9205;border-radius:999px;margin:0;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #ffffffdb}.lighting-handle.selected{fill:#ff9205;background:#ff9205;box-shadow:0 0 0 2px #ffffffdb,0 0 0 5px #ff92052e}.lighting-handle.endpoint,.lighting-handle.middle{fill:#0000}.lighting-handle.downlight.selected{fill:#ff9205;background:#ff9205}.lighting-handle.downlight.square{border-radius:calc(4px * var(--ui-scale))}.lighting-point-add{color:#1d4ed8;border-right:1px solid #3b82f638;border-radius:999px 0 0 999px}.lighting-point-add:hover{background:#dbeafe}.lighting-point-remove{color:#dc2626;background:#fee2e2;border-radius:0 999px 999px 0}.lighting-point-remove:hover{background:#fecaca}.lighting-point-remove:disabled{opacity:.45;cursor:not-allowed}.lighting-point-actions{top:calc(-10px * var(--ui-scale));left:calc(18px * var(--ui-scale));pointer-events:auto;z-index:2;background:#eff6ff;border:1px solid #3b82f633;border-radius:999px;align-items:stretch;display:inline-flex;position:absolute;overflow:hidden;box-shadow:0 8px 18px #3b82f624}.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));color:#9a3412;font-size:calc(.72rem * var(--ui-font-scale));white-space:nowrap;pointer-events:none;z-index:2;background:#fffffff5;border:1px solid #ff92053d;border-radius:999px;justify-content:center;align-items:center;font-weight:900;display:inline-flex;position:absolute;box-shadow:0 8px 18px #0f172a1f}.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-type-select{height:calc(24px * var(--ui-scale));width:100%;max-width:none;padding:0 calc(8px * var(--ui-scale));color:#1f2937;font-size:calc(.75rem * var(--ui-font-scale));cursor:pointer;background:#fff;border:0;border-left:1px solid #3b82f638;outline:none;font-weight:800}.lighting-point-type-select:focus{background:#f8fafc}.lighting-item-order-badge,.lighting-downlight-number{color:#fff;font-size:calc(1rem * var(--ui-font-scale));text-align:center;background:#dc2626;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));pointer-events:auto;background:#eff6ff;border:1px solid #3b82f633;border-radius:999px;align-items:stretch;display:inline-flex;position:absolute;overflow:hidden;box-shadow:0 8px 18px #3b82f624}.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{color:#1d4ed8;border-right:1px solid #3b82f638;border-radius:999px 0 0 999px}.lighting-downlight-add:hover{background:#dbeafee0}.lighting-downlight-remove{color:#dc2626;background:#fee2e2;border-radius:0 999px 999px 0}.lighting-downlight-remove:hover{background:#fecaca}.lighting-downlight-label-pill{align-items:center;gap:calc(4px * var(--ui-scale));width:100%;height:100%;padding:0 calc(6px * var(--ui-scale));color:#172033;white-space:nowrap;pointer-events:none;background:#fffffff5;border:1px solid #dc26262e;border-radius:999px;justify-content:center;display:inline-flex;overflow:hidden;box-shadow:0 6px 14px #0f172a1a}.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-radius:calc(8px * var(--ui-scale));background:#f8fbff;border:1px solid #d9e1ea;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:#18324f;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));background:#00a2ff;border-radius:50%;box-shadow:0 0 0 2px #ffffffeb,0 0 0 4px #00a2ff33}.lighting-config{padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:#fff;border:1px solid #d9e1ea}.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:#172033;font-size:calc(.9rem * var(--ui-font-scale));font-weight:900;display:flex;position:relative}.lighting-config-summary:after{content:"▾";color:#64748b;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));color:#334155;min-width:0;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-radius:calc(8px * var(--ui-scale));color:#172033;text-align:center;appearance:textfield;background:#fff;border:1px solid #cbd3dd}.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));color:#334155;font-size:calc(.95rem * var(--ui-font-scale));cursor:pointer;background:#edf1f5;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:#e7edf3}.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:#172033}.lighting-panel-header span,.lighting-group-header span,.lighting-item-row small,.lighting-empty span{color:#64748b;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}.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-radius:calc(8px * var(--ui-scale));color:#172033;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;align-items:center;display:grid}.lighting-chip.active{background:#e9f7f7;border-color:#1f6f78;box-shadow:inset 0 0 0 1px #1f6f7824}.lighting-chip-label{padding:calc(2px * var(--ui-scale)) calc(6px * var(--ui-scale));color:#475569;font-size:calc(.7rem * var(--ui-font-scale));background:#edf2f7;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:#475569;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-radius:calc(8px * var(--ui-scale));color:#172033;font-size:calc(.82rem * var(--ui-font-scale));cursor:pointer;background:#fff;border:1px solid #dbe2ea;font-weight:900}.lighting-orientation-buttons button.active{color:#0f525c;background:#e9f7f7;border-color:#1f6f78}.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-orientation-list{gap:calc(6px * var(--ui-scale));margin-top:calc(6px * var(--ui-scale));padding:calc(8px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:#f8fafc;border:1px solid #e2e8f0;display:grid}.lighting-item-orientation-list>span{color:#475569;font-size:calc(.76rem * var(--ui-font-scale));font-weight:900}.lighting-item-orientation-row{grid-template-columns:minmax(0, 1fr) minmax(calc(104px * var(--ui-scale)), auto);align-items:center;gap:calc(8px * var(--ui-scale));display:grid}.lighting-item-orientation-row strong{color:#172033;font-size:calc(.78rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.lighting-price-row{gap:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));color:#64748b;font-size:calc(.72rem * var(--ui-font-scale));flex-wrap:wrap;font-weight:800;line-height:1.2;display:flex}.lighting-price-settings{gap:calc(4px * var(--ui-scale));display:grid}.lighting-price-settings-toolbar{margin-bottom:calc(4px * var(--ui-scale));justify-content:flex-end;display:flex}.lighting-price-settings-toolbar button{min-height:calc(28px * var(--ui-scale));padding:0 calc(9px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#334155;font-size:calc(.75rem * var(--ui-font-scale));cursor:pointer;background:#fff;border:1px solid #cbd5e1;font-weight:900}.lighting-price-setting-header{gap:calc(6px * var(--ui-scale));padding:0 calc(2px * var(--ui-scale)) calc(3px * var(--ui-scale));color:#64748b;font-size:calc(.7rem * var(--ui-font-scale));grid-template-columns:minmax(0,1.4fr) minmax(72px,.8fr) minmax(72px,.8fr);font-weight:900;display:grid}.lighting-price-setting-row{align-items:center;gap:calc(6px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(2px * var(--ui-scale));border-top:1px solid #e2e8f0;grid-template-columns:minmax(0,1.4fr) minmax(72px,.8fr) minmax(72px,.8fr);display:grid}.lighting-price-setting-row:first-child{border-top:1px solid #e2e8f0}.lighting-price-setting-name{min-width:0}.lighting-price-setting-name strong{color:#172033;min-width:0;font-size:calc(.86rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lighting-price-control{color:#64748b;font-size:calc(.72rem * var(--ui-font-scale));font-weight:800;display:grid}.lighting-price-control input{width:100%;min-width:0;height:calc(28px * var(--ui-scale));padding:0 calc(6px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));color:#172033;font:inherit;background:#fff;border:1px solid #dbe2ea}.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-radius:calc(999px * var(--ui-scale));color:#172033;font-size:calc(.88rem * var(--ui-font-scale));cursor:pointer;background:#fff;border:1px solid #dbe2ea;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.lighting-mode-chip.active{background:#e9f7f7;border-color:#1f6f78;box-shadow:inset 0 0 0 1px #1f6f7824}.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:#edf2f7;display:grid}.lighting-summary.compact{background:#f5f7fa}.all-layers-memo p{color:#344255;min-width:0;font-size:calc(.86rem * var(--ui-font-scale));white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.5}.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 #1f6f7829}.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:#475569;font-size:calc(.78rem * var(--ui-font-scale));cursor:grab;display:flex}.lighting-circuit-group-header:active{cursor:grabbing}.lighting-circuit-group-header strong{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lighting-circuit-group-header span{color:#64748b;flex:none}.lighting-circuit-group-name-row{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.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-radius:calc(8px * var(--ui-scale));cursor:grab;background:#fff;border:1px solid #dbe2ea;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))}.lighting-item-row.selected{background:#f3fbfb;border-color:#1f6f78;box-shadow:inset 0 0 0 1px #1f6f781f}.lighting-item-row.snapshot-compare-added{border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb4d,0 0 0 2px #2563eb1a}.lighting-item-row.snapshot-compare-removed{border-color:#dc2626;box-shadow:inset 0 0 0 1px #dc26264d,0 0 0 2px #dc26261a}.lighting-item-row.snapshot-compare-readonly{cursor:default}.lighting-item-row.dragging{z-index:3;opacity:.65;will-change:transform;transition:none;position:relative}.lighting-item-row.drop-target{border-color:#1f6f78;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));color:#64748b;cursor:pointer;background:#fff;border:1px solid #cbd3dd;border-radius:999px;place-items:center;padding:0;display:inline-grid;box-shadow:inset 0 0 0 1px #ffffffc2}.lighting-item-loop-toggle.active{color:#0f766e;background:#e6f7f7;border-color:#1f6f78}.lighting-item-loop-toggle:hover{background:#f8fafc}.snapshot-compare-removed-badge{color:#fff!important;background:#dc2626!important}.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:#172033}.lighting-item-description-row{align-items:center;gap:calc(6px * var(--ui-scale));min-width:0;display:flex}.lighting-item-name-edit{color:#64748b;cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.lighting-item-row:not(.selected) .lighting-item-name-edit{display:none}.lighting-item-name-edit:hover{color:#172033;background:0 0}.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-radius:calc(8px * var(--ui-scale));color:#334155;font-size:calc(.84rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;flex:auto}.lighting-item-description-input:focus{border-color:#1f6f78;outline:none;box-shadow:0 0 0 2px #1f6f781f}.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-radius:calc(8px * var(--ui-scale));color:#172033;font-size:calc(.94rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;flex:auto;font-weight:900}.lighting-item-name-input:focus{border-color:#1f6f78;outline:none;box-shadow:0 0 0 2px #1f6f781f}.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{color:#15803d;background:#e8f7ee}.lighting-item-name-confirm:hover{background:#d7f2e1}.lighting-item-name-cancel{color:#64748b;background:#edf2f7}.lighting-item-name-cancel:hover{color:#172033;background:#e2e8f0}.lighting-item-hint{color:#64748b;font-size:calc(.76rem * var(--ui-font-scale))}.lighting-item-name{color:#172033;width:100%;min-width:0;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-underline-offset:3px;outline:none;-webkit-text-decoration:underline #1f6f78;text-decoration:underline #1f6f78;text-decoration-thickness:2px}.lighting-item-remove{width:calc(28px * var(--ui-scale));height:calc(28px * var(--ui-scale));color:#64748b;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{color:#172033;background:#e6eef5}.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));color:#1f6f78;cursor:pointer;font-size:calc(.76rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;border-radius:999px;place-self:center;font-weight:800}.lighting-item-group-button:hover{background:#e9f7f7;border-color:#1f6f78}.lighting-item-ungroup-button{color:#64748b}.lighting-item-ungroup-button:hover{color:#172033}.lighting-empty{gap:calc(4px * var(--ui-scale));padding:calc(12px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));background:#fff;border:1px dashed #cbd3dd;display:grid}.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-radius:calc(10px * var(--ui-scale));color:#172033;cursor:pointer;background:#fff;border:1px solid #d9e1ea;place-items:center;display:inline-grid}.layer-settings-toggle:hover,.lighting-settings-toggle:hover{background:#f3f7fb}.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-radius:calc(14px * var(--ui-scale));background:#fff;border:1px solid #d9e1ea;display:grid;position:absolute;bottom:calc(100% + 10px);left:auto;right:0;box-shadow:0 24px 60px #0f172a3d}.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));background:#fff;border-bottom:1px solid #d9e1ea;border-right:1px solid #d9e1ea;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:#172033;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-radius:calc(10px * var(--ui-scale));background:#f8fafc;border:1px solid #dbe2ea;display:grid}.layer-settings-section-title{color:#172033;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:#172033;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:#334155;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:#334155;font-size:calc(.8rem * var(--ui-font-scale));font-weight:700;display:flex}.lighting-opacity-sync-row input{accent-color:#172033;flex:none}.estimate-board{background:#fbfcfd;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));background:#fff;border-bottom:1px solid #d4dbe4;display:flex}.estimate-board-header strong,.estimate-board-header span{display:block}.estimate-board-header strong{color:#172033;font-size:calc(1.08rem * var(--ui-font-scale))}.estimate-board-header span{margin-top:calc(4px * var(--ui-scale));color:#64748b;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:#1d4ed8;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:#64748b;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{color:#172033;background:#edf2f7}.estimate-scope-chip:focus-visible{outline-offset:2px;outline:2px solid #1d4ed8}.estimate-scope-chip.active{color:#172033;background:#fff;border-color:#cbd3dd;box-shadow:0 1px 2px #0f172a0f}.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:#64748b;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-radius:calc(10px * var(--ui-scale));background:#fff;border:1px solid #d9dee6;flex-wrap:wrap;display:flex}.estimate-column-visibility>strong{color:#64748b;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:#475569;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:#1d4ed8;margin:0}.estimate-column-visibility-option:has(input:focus-visible){color:#172033}.estimate-layer-sections{gap:calc(16px * var(--ui-scale));display:grid}.estimate-final-summary{border-radius:calc(14px * var(--ui-scale));background:#fff;border:1px solid #d4dbe4;overflow:hidden;box-shadow:0 4px 14px #0f172a0d}.estimate-final-summary-header{padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));background:#f5f7fa;border-bottom:1px solid #d9dee6}.estimate-final-summary-header strong,.estimate-final-summary-header span{display:block}.estimate-final-summary-header strong{color:#172033;font-size:calc(.98rem * var(--ui-font-scale))}.estimate-final-summary-header span{margin-top:calc(2px * var(--ui-scale));color:#64748b;font-size:calc(.79rem * var(--ui-font-scale))}.estimate-final-summary-list{grid-template-columns:repeat(auto-fit, minmax(calc(240px * var(--ui-scale)), 1fr));gap:calc(8px * var(--ui-scale));padding:calc(12px * var(--ui-scale)) calc(16px * var(--ui-scale));margin:0;display:grid}.estimate-final-summary-list>div{justify-content:space-between;align-items:baseline;gap:calc(8px * var(--ui-scale));min-width:0;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(10px * var(--ui-scale));background:#f5f7fa;border:1px solid #dbe2ea;display:flex}.estimate-final-summary-list dt,.estimate-final-summary-list dd{font-variant-numeric:tabular-nums;margin:0}.estimate-final-summary-list dt{color:#64748b;font-size:calc(.8rem * var(--ui-font-scale));white-space:nowrap}.estimate-final-summary-list dd{color:#172033;font-size:calc(.88rem * var(--ui-font-scale));text-align:right;white-space:nowrap;font-weight:800}.estimate-final-summary-list .is-unavailable{color:#c15f00;font-size:calc(.76rem * var(--ui-font-scale))}.estimate-final-summary-list .is-total{background:#edf2f7;border-color:#cbd3dd;grid-column:1/-1}.estimate-final-summary-list .is-total dt,.estimate-final-summary-list .is-total dd{color:#172033;font-size:calc(.92rem * var(--ui-font-scale))}.estimate-final-summary-list .is-margin{background:#eff6ff;border-color:#bfdbfe}.estimate-final-summary-list .is-labor{background:#f0fdf4;border-color:#bbf7d0}.estimate-final-summary-list .is-service{background:#fffbeb;border-color:#fde68a}.estimate-layer-section{border-radius:calc(14px * var(--ui-scale));background:#fff;border:1px solid #d9dee6;min-width:0;overflow:hidden;box-shadow:0 4px 14px #0f172a0d}.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 #d9dee6;display:flex}.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:#172033;font-size:calc(.98rem * var(--ui-font-scale))}.estimate-layer-title>div>span{margin-top:calc(2px * var(--ui-scale));color:#64748b;font-size:calc(.79rem * var(--ui-font-scale))}.estimate-layer-count{padding:calc(4px * var(--ui-scale)) calc(8px * var(--ui-scale));color:#64748b;font-size:calc(.76rem * var(--ui-font-scale));background:#f5f7fa;border-radius:999px;flex:none;font-weight:700}.estimate-table-scroll{min-width:0;overflow-x:auto}.estimate-table{width:100%;min-width:calc(1600px * 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));color:#1d2433;font-size:calc(.84rem * var(--ui-font-scale));text-align:left;vertical-align:middle;border-bottom:1px solid #dbe2ea;border-right:1px solid #dbe2ea}.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));color:#64748b;font-size:calc(.75rem * var(--ui-font-scale));white-space:nowrap;background:#f5f7fa;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-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:#f8fafcb8}.estimate-table tbody tr:last-child th,.estimate-table tbody tr:last-child td{border-bottom:0}.estimate-table tbody th{color:#172033;font-weight:700}.estimate-table tbody tr.is-service>th,.estimate-table tbody tr.is-service>td{color:#c00000!important}.estimate-table tfoot tr{background:#edf2f7}.estimate-table tfoot th,.estimate-table tfoot td{color:#172033;border-top:1px solid #cbd3dd;border-bottom:0;font-weight:800}.estimate-table tfoot th{text-align:right}.estimate-table tfoot .is-unavailable{color:#c15f00;font-size:calc(.76rem * var(--ui-font-scale))}.estimate-table tfoot .estimate-device-total-row,.estimate-table tfoot .estimate-labor-total-row{background:#f5f7fa}.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:#fffbebb8}.estimate-expand-button{align-items:center;gap:calc(4px * var(--ui-scale));width:100%;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:#64748b;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-offset:2px;outline:2px solid #1f6f78}.estimate-detail-row{background:#f8fafcad}.estimate-detail-row.is-expanded,.estimate-detail-row.is-expanded:hover{background:#fffbebb8}.estimate-detail-row th,.estimate-detail-row td{color:#475569;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));vertical-align:middle;background:#d9dee6;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{color:#b45309;background:#fff7ed}.estimate-layer-icon.tone-green{color:#15803d;background:#f0fdf4}.estimate-layer-icon.tone-teal{color:#0f766e;background:#f0fdfa}.estimate-layer-icon.tone-violet{color:#7c3aed;background:#f5f3ff}.estimate-layer-icon.tone-red{color:#b91c1c;background:#fef2f2}.estimate-layer-icon.tone-blue{color:#2563eb;background:#eff6ff}.estimate-number-cell{color:#475569;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.estimate-number-cell.is-total{color:#172033;font-weight:800}.estimate-number-cell.is-labor-amount{color:#15803d;font-weight:800}.estimate-quantity-cell{padding-left:calc(4px * var(--ui-scale))!important;padding-right:calc(4px * var(--ui-scale))!important}.estimate-quantity-input{width:calc(48px * var(--ui-scale));color:#172033;min-width:0;height:1.2em;min-height:0;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-quantity-input:focus,.estimate-quantity-input:focus-visible{box-shadow:none;outline:0}.estimate-service-cell{color:#475569;white-space:nowrap;text-align:center!important}.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:#1d4ed8;vertical-align:middle;margin:0}.estimate-circuit-list-cell{color:#475569;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{color:#64748b;font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:3ch}.estimate-circuit-list li>strong{color:#475569;font-weight:600}.estimate-circuit-list li>.estimate-circuit-power{color:#64748b;text-align:left;min-width:0;font-weight:400}.estimate-note-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#64748b!important}.estimate-empty-cell{height:calc(56px * var(--ui-scale))!important;color:#64748b!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:#172033;font-size:calc(.96rem * var(--ui-font-scale))}.estimate-sidebar .layer-sidebar-header span{margin-top:calc(2px * var(--ui-scale));color:#64748b;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-radius:calc(10px * var(--ui-scale));background:#fff;border:1px solid #d9dee6;overflow:hidden}.estimate-rule-section-header{align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(10px * var(--ui-scale));background:#f5f7fa;border-bottom:1px solid #dbe2ea;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:#172033;font-size:calc(.86rem * var(--ui-font-scale))}.estimate-rule-section-header span{margin-top:calc(2px * var(--ui-scale));color:#64748b;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{color:#b45309;background:#fff7ed}.estimate-rule-icon.tone-green{color:#15803d;background:#f0fdf4}.estimate-rule-icon.tone-teal{color:#0f766e;background:#f0fdfa}.estimate-rule-icon.tone-violet{color:#7c3aed;background:#f5f3ff}.estimate-rule-icon.tone-red{color:#b91c1c;background:#fef2f2}.estimate-rule-icon.tone-blue{color:#2563eb;background:#eff6ff}.estimate-rule-section-body{display:grid}.estimate-rule-group{padding:calc(10px * var(--ui-scale));border-bottom:1px solid #dbe2ea}.estimate-rule-group:last-child{border-bottom:0}.estimate-rule-group>strong{margin-bottom:calc(4px * var(--ui-scale));color:#172033;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:#64748b;font-size:calc(.72rem * var(--ui-font-scale));line-height:1.5;position:relative}.estimate-rule-group li small{color:#64748b;font-size:inherit}.estimate-rule-group li:before{content:"•";color:#475569;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));color:#172033;background:#edf2f7;font-weight:700}.estimate-rule-group .estimate-rule-result:before{content:none}.estimate-rule-group .estimate-price-settings-item{padding-left:0}.estimate-rule-group .estimate-price-settings-item:before{content:none}.estimate-rule-group .estimate-price-settings-toolbar{justify-content:space-between;align-items:center;gap:calc(8px * var(--ui-scale));display:flex}.estimate-rule-group .estimate-price-settings-toolbar>span{color:#64748b;font-size:inherit}.estimate-rule-group .estimate-price-settings-toolbar button{min-height:calc(34px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#172033;font:inherit;font-size:calc(.7rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;flex:none;font-weight:700}.estimate-rule-group .estimate-price-settings-toolbar button:hover{color:#1f6f78;border-color:#1f6f78}.estimate-rule-group .estimate-price-settings-toolbar button:focus-visible{outline-offset:1px;outline:2px solid #1f6f78}.estimate-rule-group .estimate-price-settings-help{margin:calc(4px * var(--ui-scale)) 0 0;color:#475569;font-size:calc(.7rem * var(--ui-font-scale));line-height:1.45}.estimate-rule-group .estimate-price-settings-list{gap:calc(2px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale));display:grid}.estimate-rule-group .estimate-price-settings-row{align-items:center;gap:calc(8px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) 0;border-top:1px solid #dbe2ea;grid-template-columns:minmax(0,1fr) auto;display:grid}.estimate-rule-group .estimate-price-settings-name{min-width:0}.estimate-rule-group .estimate-price-settings-name strong,.estimate-rule-group .estimate-price-settings-name small{display:block}.estimate-rule-group .estimate-price-settings-name strong{color:#172033;font-size:calc(.74rem * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.estimate-rule-group .estimate-price-settings-name small{color:#475569;font-size:calc(.66rem * var(--ui-font-scale));margin-top:2px}.estimate-rule-group .estimate-price-input{align-items:center;gap:calc(2px * var(--ui-scale));color:#64748b;white-space:nowrap;display:inline-flex}.estimate-rule-group .estimate-price-input input{width:calc(92px * var(--ui-scale));min-height:calc(34px * var(--ui-scale));padding:0 calc(4px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#172033;font:inherit;font-size:calc(.74rem * var(--ui-font-scale));font-variant-numeric:tabular-nums;text-align:right;background:#fff;border:1px solid #cbd3dd}.estimate-rule-group .estimate-price-input input:focus-visible{outline-offset:1px;outline:2px solid #1f6f78}.estimate-rule-group .estimate-price-input>span:not(.sr-only){font-size:calc(.7rem * var(--ui-font-scale))}.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:#475569;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:#1d4ed8;margin:0}.estimate-rule-group .estimate-iot-device-item span{color:#172033;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-offset:2px;outline:2px solid #1f6f78}.estimate-rule-group .estimate-iot-device-empty{color:#c15f00}.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:#475569;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-radius:calc(8px * var(--ui-scale));color:#172033;font:inherit;font-size:calc(.72rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd}.estimate-rule-group .estimate-curtain-fixture-row select:focus-visible{outline-offset:1px;outline:2px solid #1f6f78}.estimate-rule-group .estimate-curtain-fixture-row .estimate-curtain-fixture-empty{color:#c15f00;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-radius:calc(8px * var(--ui-scale));color:#172033;font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:#fff;border:1px solid #cbd3dd}.estimate-rule-group .estimate-labor-rate-control input:focus-visible{outline-offset:1px;outline:2px solid #1f6f78}.estimate-rule-group .estimate-labor-rate-control span{color:#64748b;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:#f5f7fa;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:#64748b}.estimate-rule-group .estimate-price-summary dd{color:#475569;text-align:right;font-weight:700}.estimate-rule-group .estimate-price-summary .is-total{background:#edf2f7;border:1px solid #cbd3dd}.estimate-rule-group .estimate-price-summary .is-total dt,.estimate-rule-group .estimate-price-summary .is-total dd{color:#172033;font-weight:800}.estimate-rule-group .estimate-price-warning{margin:calc(8px * var(--ui-scale)) 0 0;color:#c15f00;font-size:calc(.72rem * var(--ui-font-scale));line-height:1.45}@page{size:A4;margin:0}.estimate-quote-shell{color:#000;background:#eee;min-height:100vh;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:#f7f7f7;border-bottom:1px solid #ccc;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{color:#000;min-height:30px;font:inherit;background:#fff;border:1px solid #999}.estimate-quote-toolbar button{cursor:pointer;align-items:center;gap:5px;padding:5px 10px;display:inline-flex}.estimate-quote-toolbar button:hover{background:#f0f0f0}.estimate-quote-toolbar button:focus-visible{outline-offset:2px;outline:2px solid #555}.estimate-quote-toolbar button:has(input:focus-visible){outline-offset:2px;outline:2px solid #555}.estimate-quote-toolbar button:disabled{color:#aaa;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{background:#fff;border:0;border-left:1px solid #ddd;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{color:#555;align-items:center;min-width:62px;display:inline-flex}.estimate-quote-document{background:#fff;width:210mm;min-height:297mm;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{appearance:none;cursor:pointer;width:max-content;margin:3mm 0 1mm;font-size:24pt;font-weight:900;line-height:1;display:block}.estimate-quote-document-subtitle{width:100%;min-height:6mm;margin:0 0 6mm;line-height:1.35;display:block;color:#666!important;font-size:10pt!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{text-align:center;width:100%;min-height:9mm;font-size:18pt;font-weight:600}.estimate-quote-recipient-name input::placeholder{color:#777;opacity:1}.estimate-quote-recipient-name em{padding-left:2mm;font-size:11pt;font-style:normal}.estimate-quote-meta-line{border-bottom:.25mm dotted #000;grid-template-columns:22mm 1fr;align-items:center;min-height:6mm;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{background:#d9d9d9;border-bottom:.25mm dotted #000;height:6.5mm;padding:1mm 1.8mm;font-weight:900}.estimate-quote-supplier-row{border-bottom:.25mm dotted #000;grid-template-columns:17mm 1fr;align-items:center;min-height:6.6mm;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{object-fit:contain;opacity:.9;pointer-events:none;width:12mm;height:12mm;position:absolute;right:0}.estimate-quote-amount-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#efefef;justify-content:space-between;align-items:center;height:13mm;margin:6mm 0 2mm;padding:0 1.8mm;display:flex}.estimate-quote-amount-bar>div{font-size:16pt;font-weight:900}.estimate-quote-amount-bar small{font-size:10pt;font-weight:900}.estimate-quote-amount-bar small input{width:24mm;font-size:inherit;font-weight:inherit}.estimate-quote-amount-bar>strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:20pt;font-weight:900}.estimate-quote-table-wrap{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{text-align:left;background:#d9d9d9;border-top:.6mm solid #000;border-bottom:.25mm dotted #000;height:6mm;padding:0 1.5mm;font-weight:900}.estimate-quote-table-wrap td{vertical-align:top;background:#fff;border-bottom:.25mm dotted #ccc;height:5.3mm;padding:.7mm 1.4mm}.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 .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{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#efefef;border-top:.3mm solid #000;border-bottom:.25mm dotted #000;height:5.3mm;font-weight:900}.estimate-quote-table-wrap .package-gap-row td{border-bottom:0;height:2.65mm;padding:0}.estimate-quote-table-wrap .blank-data-row td{color:#0000;border-bottom:.25mm dotted #ccc;height:5.3mm}.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{break-inside:avoid;margin-top:1mm}.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{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#d9d9d9;height:5.8mm;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-notes{margin-top:2.5mm}.estimate-quote-notes.is-hidden{display:none}.estimate-quote-notes h2{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#d9d9d9;border-top:.6mm solid #000;border-bottom:.25mm dotted #000;height:6.5mm;margin:0;padding:1.2mm 1.5mm;font-size:10.5pt;line-height:1.2}.estimate-quote-notes input{border-bottom:.25mm dotted #ccc;width:100%;min-height:6mm;padding:1mm 1.5mm;display:block}.estimate-quote-error{color:#000;text-align:center;background:#eee;place-content:center;gap:10px;min-height:100vh;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}.estimate-quote-document input,.estimate-quote-document select{outline: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{border-color:#9437ff;box-shadow:0 8px 18px #9437ff1f}.switch-marker{fill:#9437ff;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}.switch-marker.selected{fill:#fff;stroke:#9437ff;stroke-width:2.6px}.switch-order-badge{background:#9437ff}.switch-item-type-row{gap:calc(4px * var(--ui-scale));flex-direction:column;display:flex}.switch-item-type-label{gap:calc(4px * var(--ui-scale));color:#334155;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-radius:calc(8px * var(--ui-scale));color:#172033;font-size:calc(.84rem * var(--ui-font-scale));background:#fff;border:1px solid #cbd3dd;font-weight:800}.switch-item-point-row{gap:calc(6px * var(--ui-scale));padding:calc(8px * var(--ui-scale));border-radius:calc(10px * var(--ui-scale));background:#f8fafc;border:1px solid #e5e7eb;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:#334155;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-radius:calc(10px * var(--ui-scale));background:#fff;border:1px solid #dbe2ea;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #0f172a24}.switch-button-count-option{width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale));border-radius:calc(7px * var(--ui-scale));color:#172033;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{color:#6d28d9;background:#9437ff1a;border-color:#7c3aed}.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));color:#6d28d9;font-size:calc(.68rem * var(--ui-font-scale));background:#9437ff1f;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-inline .lighting-item-name-edit{flex:none;margin-left:auto;display:inline-grid}.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-radius:calc(8px * var(--ui-scale));color:#172033;font-size:calc(.8rem * var(--ui-font-scale));cursor:pointer;background:#fff;border:1px solid #dbe2ea;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-point-type-icon-button:hover{background:#f8fafc}.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-radius:calc(12px * var(--ui-scale));background:#fff;border:1px solid #dbe2ea;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #0f172a24}.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:#172033;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:#7c3aed1a}.switch-point-type-option-icon{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));color:#fff;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-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:#64748b;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]{color:#6d28d9}.switch-tooltip-visibility-toggle:hover{color:#4c1d95}.switch-direction-toggle{min-height:calc(34px * var(--ui-scale));padding:0 calc(10px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));color:#172033;cursor:pointer;background:#fff;border:1px solid #dbe2ea;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-direction-toggle.active{color:#6d28d9;background:#9437ff1a;border-color:#7c3aed}.switch-direction-toggle:hover{background:#f8fafc}.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-radius:calc(8px * var(--ui-scale));color:#172033;cursor:pointer;background:#fff;border:1px solid #dbe2ea;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.switch-tooltip-point-toggle.active{color:#6d28d9;background:#9437ff1a;border-color:#7c3aed}.switch-tooltip-point-toggle:hover{background:#f8fafc}
