.boc-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md, 6px);padding:5px 11px;font-size:12.5px;cursor:pointer;font-family:inherit;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:6px}.boc-btn:hover{background:var(--bg)}.boc-btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.boc-btn--primary:hover{background:#1d4ed8}.boc-btn--small{padding:3px 8px;font-size:11.5px}.boc-btn--ghost{border-color:transparent;background:transparent}.boc-btn--ghost:hover{background:var(--bg)}.boc-inp{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md, 6px);padding:5px 9px;font-size:12.5px;color:var(--text);font-family:inherit}.boc-inp:focus{outline:none;border-color:var(--primary)}.boc-inp--numeric{text-align:right;font-variant-numeric:tabular-nums}.boc-badge{display:inline-flex;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:600;align-items:center;white-space:nowrap}.boc-badge--default{background:var(--surface);border:1px solid var(--border);color:var(--text)}.boc-badge--warn{background:#fef3c7;color:var(--warn)}.boc-badge--ok{background:#dcfce7;color:var(--ok)}.boc-badge--err{background:#fee2e2;color:var(--err)}.boc-badge--info{background:#dbeafe;color:var(--primary)}.boc-badge--dim{background:var(--border);color:var(--text-muted)}.boc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg, 10px);padding:14px}.boc-tabs{display:flex;flex-direction:column;gap:12px}.boc-tabs-list{display:flex;border-bottom:1px solid var(--border);gap:16px}.boc-tab-btn{background:transparent;border:none;padding:8px 12px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.boc-tab-btn:hover{color:var(--text)}.boc-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.boc-tabs-content{padding-top:8px}.boc-table-container{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md, 6px);background:var(--surface)}.boc-table{width:100%;border-collapse:collapse;text-align:left;font-size:12.5px}.boc-table th{padding:10px 12px;border-bottom:1px solid var(--border);font-weight:600;background:var(--bg);color:var(--text-muted)}.boc-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.boc-table tr:last-child td{border-bottom:none}.boc-table tr:hover td{background:#00000005}.boc-dropdown{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md, 6px);padding:5px 28px 5px 9px;font-size:12.5px;color:var(--text);font-family:inherit;appearance:none;cursor:pointer;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2212%22%20height%3D%228%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201l5%205%205-5%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.5%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 8px center;background-size:10px}.boc-dropdown:focus{outline:none;border-color:var(--primary)}.boc-dropdown:disabled{background-color:var(--bg);cursor:not-allowed;opacity:.7}.shell{display:flex;height:100vh;overflow:hidden}.navrail{width:220px;background:#0f172a;color:#cbd5e1;padding:14px 0;overflow-y:auto;flex-shrink:0}.navrail .ver{font-size:11px;color:#64748b;padding:0 16px 12px;border-bottom:1px solid #1e293b;margin-bottom:8px}.navrail button{display:block;width:100%;text-align:left;background:none;border:none;color:#cbd5e1;padding:7px 16px;font-size:13px;cursor:pointer;font-family:inherit}.navrail button:hover{background:#1e293b}.navrail .grp{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:12px 16px 4px}.stage{flex:1;overflow-y:auto;padding:20px 24px}.screen{display:none}.screen.show{display:block}.note{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 14px;font-size:12.5px;margin-bottom:14px;line-height:1.55}.frame{background:var(--bg);border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0f172a14}.btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 11px;font-size:12.5px;cursor:pointer;font-family:inherit;color:var(--text)}.btn.pri{background:var(--primary);border-color:var(--primary);color:#fff}.btn.sm{padding:3px 8px;font-size:11.5px}.btn.ghost{border-color:transparent}.drop{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:12.5px}.drop:after{content:" ▾";color:var(--dim)}.inp{background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 9px;font-size:12.5px;width:100%;color:var(--text)}.inp.num{width:58px;text-align:right}.badge{display:inline-block;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:600}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.ok{background:#dcfce7;color:var(--ok)}.badge.err{background:#fee2e2;color:var(--err)}.badge.info{background:#dbeafe;color:var(--primary)}.badge.dim{background:var(--border);color:#475569}table.tb{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--surface)}table.tb th{background:#f1f5f9;text-align:left;padding:6px 9px;border-bottom:1px solid var(--border);font-weight:600;font-size:11.5px;color:#475569}table.tb td{padding:5px 9px;border-bottom:1px solid #f1f5f9}table.tb tr:hover td{background:#f8fafc}.r{text-align:right!important}.money{font-variant-numeric:tabular-nums}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);background:var(--surface);padding:0 8px}.tabs .t{padding:8px 14px;font-size:12.5px;color:#64748b;border-bottom:2px solid transparent;cursor:pointer}.tabs .t.on{color:var(--primary);border-color:var(--primary);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px}.lbl{font-size:11.5px;color:#64748b;margin-bottom:3px;display:block}.row{display:flex;gap:10px;align-items:center}.muted{color:var(--dim)}.cap{font-size:11.5px;color:#64748b;margin-top:8px;line-height:1.6}.main3{display:flex;height:100%}.colL{width:200px;background:var(--surface);border-right:1px solid var(--border);padding:9px;overflow-y:auto;font-size:12.5px;flex-shrink:0}.colL .hd{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:9px 0 4px}.tree div{padding:3px 4px;border-radius:4px;cursor:pointer}.tree div:hover{background:var(--bg)}.tree .sel{background:#dbeafe;color:var(--primary)}.colM{flex:1;display:flex;flex-direction:column;min-width:0}.sptabs{display:flex;align-items:center;gap:2px;background:#eef2f7;padding:5px 8px 0}.viewer{flex:1;background:#f1f5f9;position:relative;overflow:hidden}.hud{position:absolute;background:var(--hud-bg);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid var(--border);border-radius:10px;padding:8px 11px;font-size:12px;box-shadow:0 2px 8px #0f172a1f}.hud input{width:50px;border:none;border-bottom:1.5px solid var(--primary);background:transparent;text-align:right;font-size:12px;font-family:inherit}.vtoolbar{background:var(--surface);border-top:1px solid var(--border);display:flex;gap:6px;align-items:center;padding:6px 10px;font-size:12px}.colR{width:250px;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;font-size:12.5px;flex-shrink:0}.colR .body{flex:1;overflow-y:auto;padding:9px}.pgrp{margin-bottom:9px}.pgrp .gh{font-weight:600;font-size:11.5px;color:#475569;display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid #f1f5f9}.total{border-top:2px solid var(--text);padding:9px;background:#f8fafc}.total .tt{display:flex;justify-content:space-between;font-weight:700;font-size:14px}.isoWrap{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%)}.split{display:flex;height:100%;flex:1}.split .v3{width:42%;position:relative;background:#f1f5f9;border-right:1px solid var(--border);flex-shrink:0}.lvl1 td{font-weight:700;background:#f8fafc}.lvl2 td{font-weight:600}.ind1{padding-left:22px!important}.ind2{padding-left:40px!important}.stickytotal{background:#0f172a;color:#fff;padding:9px 14px;font-size:12.5px;display:flex;gap:16px;align-items:center}.stickytotal b{font-size:14px}.modal{max-width:560px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px #0f172a2e;overflow:hidden}.modal .mh{padding:13px 16px;border-bottom:1px solid var(--border);font-weight:600}.modal .mb{padding:16px}.modal .mf{padding:11px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:#f8fafc}.backdrop{background:#0f172a59;padding:34px 18px;border-radius:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tico{width:76px;height:76px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0f172a12;transition:transform .1s}.tile:hover .tico{transform:translateY(-3px);box-shadow:0 5px 14px #0f172a21;border-color:var(--primary)}.tsub{font-size:10.5px;color:var(--dim);margin-top:1px}.warnlist li{list-style:none;padding:7px 10px;border:1px solid #fde68a;background:#fffbeb;border-radius:7px;margin-bottom:7px;display:flex;justify-content:space-between;align-items:center;font-size:12.5px}.settingrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:13px}.settingrow .sl{width:230px;color:#475569}.split{display:flex;height:470px}.preliminary{position:relative;display:flex;flex-direction:column;height:520px;overflow:hidden}.split .colR{flex:1;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;font-size:12.5px;min-width:0;overflow:hidden}.split .tblwrap{flex:1;overflow:auto;background:var(--surface)}.bomPlaceholder{border-top:1px solid var(--border);display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.bomPlaceholder__bar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;padding:7px 9px}.bomSpreadsheet,.bomSpreadsheet__loading{border-top:1px solid var(--border);display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.bomSpreadsheet__loading{align-items:center;color:var(--dim);justify-content:center}.bomSpreadsheet__bar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:7px 9px}.bomSpreadsheet__toolbarSpacer{flex:1}.bomSpreadsheet__bar b{font-size:12px;white-space:nowrap}.bomSpreadsheet__bar .btn.danger{border-color:#fecaca;color:#b91c1c}.bomIconButton{align-items:center;display:inline-flex;flex:0 0 34px;font-size:14px;height:34px;justify-content:center;min-width:34px;padding:0}.bomSpreadsheet__filter{border:1px solid var(--border);border-radius:6px;flex:0 1 180px;font:inherit;min-width:92px;padding:4px 7px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.bomSpreadsheet__grid{flex:1;min-height:0;position:relative}.bomGridInlineAdd{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-top:1px solid #e2e8f0;display:flex;height:36px;left:0;padding:0 10px;pointer-events:auto;position:absolute;right:0;z-index:3}.bomGridInlineAdd button{background:transparent;border:0;color:#2563eb;cursor:pointer;font:inherit;padding:4px 0;text-align:left}.bomTabs{border-top:1px solid var(--border);overflow:hidden;padding:5px 6px 0}.bomTab{border:0;cursor:pointer;font:inherit;padding:6px 8px;white-space:nowrap}.bomSummaryTab{background:var(--surface);border-top:1px solid var(--border);flex:1;min-height:0;overflow:auto}.bomSummaryTable{width:100%}.bomSummaryTable th,.bomSummaryTable td{text-align:center}.bomSummaryTable th:first-child,.bomSummaryTable td:first-child{text-align:left}.bomSummaryTable__row{cursor:pointer}.bomSummaryTable__row:hover{background:#f8fafc}.bomSummaryTable__total{background:#f8fafc;font-weight:700}.bomStickyTotal{flex-shrink:0}.bomIncompleteBanner{background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;color:#92400e;flex-shrink:0;font-size:12px;font-weight:600;margin-block-end:8px;padding:8px 12px}.bomGrid{block-size:100%;border:0;font-size:12px}.bomGrid .rdg-cell{align-items:center;display:flex;justify-content:center;outline-color:var(--primary);text-align:center}.bomGrid .rdg-header-row .rdg-cell{justify-content:center;text-align:center}.bomGrid .bomGrid__cell--left{justify-content:flex-start;text-align:left}.bomGrid__row--active{background:#e0f2fe;animation:bomRowPulse .9s ease-out 1}.bomTreeGrid .rdg-cell[aria-selected=true]{box-shadow:inset 0 0 0 1px var(--primary)}.bomTreeGrid__row--folder{background:#f8fafc;color:#0f172a;font-weight:650}.bomTreeGrid__row--part{color:#334155}.bomTreeGrid__name{align-items:center;display:flex;gap:5px;height:100%;min-width:0}.bomTreeGrid__name[draggable=true]{cursor:grab}.bomTreeGrid__name--dropTarget{background:#dbeafe;box-shadow:inset 0 0 0 1px #2563eb}.bomTreeGrid__rootDrop{border-style:dashed}.bomTreeGrid__rootDrop--active{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.bomTreeGrid__caret{align-items:center;background:transparent;border:0;color:#475569;cursor:pointer;display:inline-flex;flex:0 0 18px;font:inherit;height:22px;justify-content:center;padding:0;width:18px}.bomTreeGrid__caret:focus-visible{border-radius:4px;outline:2px solid var(--primary);outline-offset:-2px}.bomTreeGrid__spacer{flex:0 0 18px;width:18px}.bomTreeGrid__icon{color:#64748b;flex:0 0 14px;text-align:center}.bomTreeGrid__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bomTreeGrid__sourceBadge{border:1px solid #bae6fd;border-radius:999px;color:#0369a1;flex:0 0 auto;font-size:10px;font-weight:600;line-height:1;padding:2px 5px}.bomTreeGrid__sourceBadge--override{background:#fffbeb;border-color:#fde68a;color:#92400e}.bomTreeGrid__number{display:block;font-variant-numeric:tabular-nums;text-align:center;width:100%}.bomTreeGrid__cellValue{align-items:center;display:inline-flex;height:100%;justify-content:center;min-width:0;padding:0 5px;width:100%}.bomTreeGrid__cellValue--edited{background:#fef3c7;box-shadow:inset 0 -2px #f59e0b}.bomTreeGrid__dimensionCell{cursor:grab}.bomTreeGrid__dimensionCell:active{cursor:grabbing}.bomTreeGrid__dimensionCell--dropTarget{background:#dbeafe;box-shadow:inset 0 0 0 1px #2563eb}.bomTreeGrid__quantityCell{align-items:center;display:inline-flex;gap:4px;min-width:0;width:100%}.bomTreeGrid__quantityBadge{align-items:center;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;color:#475569;display:inline-flex;flex:0 0 16px;font-size:10px;height:16px;justify-content:center;line-height:1;width:16px}.bomTreeGrid__quantityBadge--notice{background:#fffbeb;border-color:#f59e0b;color:#92400e;font-weight:700}.bomTreeGrid__quantityBadge--locked{background:#f1f5f9}.bomTreeGrid__quantityBadge--linked{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.bomTreeGrid__editor{border:0;font:inherit;height:100%;outline:0;padding:0 6px;width:100%}.bomTreeGrid__filter{flex:0 1 220px;min-width:130px}.bomTreeGrid__filter .bomSpreadsheet__filter{width:100%}.bomTreeGrid__filterStatus{align-items:center;color:var(--dim);display:inline-flex;gap:6px;white-space:nowrap}.bomTreeGrid__clearFilter{background:transparent;border:0;color:var(--primary);cursor:pointer;font:inherit;padding:2px 0}.bomTreeContextMenu{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px #0f172a2e;display:flex;flex-direction:column;min-width:170px;padding:5px;position:fixed;z-index:20}.bomTreeContextMenu button{background:transparent;border:0;border-radius:5px;color:var(--text);cursor:pointer;font:inherit;padding:7px 9px;text-align:left}.bomTreeContextMenu button:hover{background:#f1f5f9}.bomTreeContextMenu button.danger{color:#b91c1c}.bomTreeTable{border-collapse:separate;border-spacing:0;min-width:1180px;width:100%}.bomTreeTable th{background:#f8fafc;border-bottom:1px solid var(--border);font-size:11px;position:sticky;top:0;z-index:1}.bomTreeTable td,.bomTreeTable th{border-right:1px solid #e2e8f0;height:32px;padding:0 6px;white-space:nowrap}.bomTreeTable tr{cursor:default}.bomTreeTable__input{background:transparent;border:0;color:inherit;font:inherit;min-width:0;outline:0;padding:3px 2px;width:100%}.bomTreeTable__input:focus{background:#fff;box-shadow:inset 0 0 0 1px var(--primary)}.bomTreeTable__input--name{flex:1 1 120px}.bomTreeTable__input--number{font-variant-numeric:tabular-nums;text-align:center}.bomSource{border:1px solid #cbd5e1;border-radius:999px;color:#475569;display:inline-flex;font-size:11px;line-height:1;padding:3px 6px}.bomSourceWrap{align-items:center;display:inline-flex;gap:5px;min-width:0}.bomSource--auto{background:#ecfeff;border-color:#67e8f9;color:#0e7490}.bomSource--auto-override{background:#fffbeb;border-color:#facc15;color:#a16207}.bomSource--missingScene{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.bomSourceRestore{background:transparent;border:0;color:var(--primary);cursor:pointer;font:inherit;font-size:11px;padding:0}.bomFillHandle{background:var(--primary);border:1px solid var(--surface);bottom:8px;box-shadow:0 0 0 1px var(--primary);cursor:crosshair;height:9px;padding:0;position:absolute;right:8px;width:9px;z-index:3}.bomFillHandle--dragging{box-shadow:0 0 0 4px #0ea5e92e}@keyframes bomRowPulse{0%{background:#bae6fd}to{background:#e0f2fe}}.sptabs{display:flex;align-items:center;gap:2px;background:#eef2f7;padding:5px 8px 0;flex-shrink:0}.sptab{background:#e2e8f0;border-radius:7px 7px 0 0;padding:6px 13px;font-size:12.5px;color:#475569;display:flex;gap:6px;align-items:center}.sptab.on{background:var(--surface);font-weight:600;color:var(--text);box-shadow:inset 0 -2px 0 var(--primary)}.viewer{flex:1;background:#f1f5f9;position:relative;overflow:hidden;min-height:0}.viewer>*{width:100%;height:100%}.viewer .boc-kl-sceneViewport,.v3 .boc-kl-sceneViewport{height:100%!important;border-radius:0;border:none}.viewer .boc-kl-sceneViewport canvas,.v3 .boc-kl-sceneViewport canvas{width:100%!important;height:100%!important;display:block}.vp-grid{position:absolute;inset:0;background-image:linear-gradient(#e2e8f0 1px,transparent 1px),linear-gradient(90deg,#e2e8f0 1px,transparent 1px);background-size:26px 26px;opacity:.6}.hud{position:absolute;background:var(--hud-bg, rgba(255, 255, 255, .92));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid var(--border);border-radius:10px;padding:8px 11px;font-size:12px;box-shadow:0 2px 8px #0f172a1f;z-index:2}.hud .row{gap:5px;margin:2px 0}.axis{position:absolute;left:10px;bottom:34px;font-size:10px;color:var(--dim)}.vtoolbar{background:var(--surface);border-top:1px solid var(--border);display:flex;gap:6px;align-items:center;padding:6px 10px;font-size:12px;flex-shrink:0}.v3{flex:0 0 30%;position:relative;background:#f1f5f9;border-right:1px solid var(--border);flex-shrink:0;overflow:hidden}.v3>.react-three-fiber,.v3>div:first-child{width:100%;height:100%}.bomOwnerPicker__backdrop{align-items:center;background:#0f172a57;display:flex;inset:0;justify-content:center;position:fixed;z-index:40}.bomOwnerPicker{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 18px 40px #0f172a3d;max-height:70vh;max-width:min(420px,92vw);overflow:auto;padding:16px}.bomOwnerPicker__title{font-weight:600;margin-bottom:4px}.bomOwnerPicker__hint{color:var(--muted);font-size:13px;margin-bottom:10px}.bomOwnerPicker__list{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.bomOwnerPicker__option{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:7px 8px}.bomOwnerPicker__option:hover{background:var(--surface-2, rgba(148, 163, 184, .16))}.bomOwnerPicker__actions{display:flex;gap:8px;justify-content:flex-end}.bomOwnerPicker__actions button{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;padding:7px 12px}.bomOwnerPicker__actions .bomOwnerPicker__confirm{background:var(--accent, #2563eb);border-color:transparent;color:#fff}.boc-kl-workspace{display:grid;gap:20px}.boc-kl-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.boc-kl-heroMetrics{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px;width:min(420px,100%)}.boc-kl-heroMetrics div,.boc-kl-gridCandidate{padding:14px 16px;border:1px solid rgba(24,49,45,.08);border-radius:18px;background:#f5eee1b8}.boc-kl-heroMetrics span,.boc-kl-gridCandidate span,.boc-kl-gridMeta span,.boc-kl-footnote,.boc-kl-muted{color:#18312db3}.boc-kl-heroMetrics strong{display:block;margin-top:6px;font-size:1.15rem}.boc-kl-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr);gap:20px}.boc-kl-layout--peekSidebar{position:relative;grid-template-columns:minmax(0,1fr) minmax(342px,28vw);gap:20px}.boc-kl-sceneCard,.boc-kl-panelCard{display:grid;gap:16px}.boc-kl-formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.boc-kl-formGrid label{color:#6d6258;display:grid;font-size:.78rem;gap:4px}.boc-kl-formGrid input,.boc-kl-formGrid select{border:1px solid rgba(85,76,67,.22);border-radius:6px;color:#2f2a25;font:inherit;min-width:0;padding:6px 8px}.boc-kl-sceneViewport{position:relative;overflow:hidden;border-radius:20px;border:1px solid rgba(24,49,45,.08);background:linear-gradient(180deg,#ffffff8c,#efe6d8c7);height:clamp(560px,74vh,860px)}.boc-kl-sceneCard{align-self:start;position:sticky;top:20px;z-index:1}.boc-kl-sceneViewport canvas{display:block;width:100%!important;height:100%!important}.boc-kl-sceneViewport.is-placing canvas{cursor:crosshair}.boc-kl-sceneViewport.is-placing{border-color:#e98f3cbf;box-shadow:0 0 0 3px #e98f3c40}.boc-kl-partInsertBar{background:#e98f3c24;border:1px solid rgba(233,143,60,.4);border-radius:12px;padding:6px 8px}.boc-kl-framePlacementBar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;max-width:min(640px,calc(100% - 28px));background:#e98f3c24;border:1px solid rgba(233,143,60,.4);border-radius:12px;padding:6px 8px}.boc-kl-pushPullBar{position:fixed;left:var(--boc-kl-scene-center-x, 50%);bottom:calc(var(--boc-kl-scene-bottom, 0px) + 16px);transform:translate(-50%);z-index:59;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(var(--boc-kl-scene-width, 100vw) - 28px));padding:12px 14px 14px;background:#ebf0eef5;border:1px solid rgba(40,89,79,.35);border-radius:12px}.boc-kl-pushPullHint{font-size:.76rem;color:#18312dbf}.boc-kl-pushPullHint--sub{color:#18312d99}.boc-kl-pushPullNotice{color:#9f2f16;font-size:.76rem;line-height:1.25}.boc-kl-pushPullStepper{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.boc-kl-pushPullAmount{width:100%}.boc-kl-pushPullAmount input{width:100%;text-align:center}.boc-kl-pushPullActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.boc-kl-pushPullActions .boc-kl-chip{text-align:center}.boc-kl-numInput{width:64px;padding:6px 8px;border:1px solid rgba(24,49,45,.2);border-radius:8px;background:#ffffffe6;color:inherit;font:inherit}.boc-kl-slatPanel{position:fixed;left:var(--boc-kl-scene-center-x, 50%);bottom:calc(var(--boc-kl-scene-bottom, 0px) + 16px);transform:translate(-50%);z-index:59;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(var(--boc-kl-scene-width, 100vw) - 28px));padding:12px 14px 14px;background:#ebf0eef5;border:1px solid rgba(40,89,79,.35);border-radius:12px}.boc-kl-slatPanel--form{top:var(--boc-kl-scene-center-y, 50%);bottom:auto;transform:translate(-50%,-50%);max-height:calc(var(--boc-kl-scene-height, 100vh) - 40px);overflow-y:auto;box-shadow:0 20px 48px #00000052}.boc-kl-slatPanelTitle{font-size:.85rem;font-weight:700;color:#18312deb}.boc-kl-slatPanelGroupLabel{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#18312dbf;margin-top:2px}.boc-kl-slatPanelGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 8px;align-items:start}.boc-kl-slatField{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:#18312dbf}.boc-kl-slatField--wide{grid-column:span 2}.boc-kl-slatField select{padding:6px 8px;border:1px solid rgba(24,49,45,.2);border-radius:8px;background:#ffffffe6;color:inherit;font:inherit}.boc-kl-slatFieldInput{position:relative;display:flex}.boc-kl-slatFieldInput input{width:100%;padding:6px 30px 6px 8px;border:1px solid rgba(24,49,45,.2);border-radius:8px;background:#ffffffe6;color:inherit;font:inherit}.boc-kl-slatFieldUnit{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.68rem;color:#18312d73;pointer-events:none}.boc-kl-slatPanelHint{font-size:.72rem;color:#18312db3;background:#ffffff80;border-radius:8px;padding:6px 8px}.boc-kl-slatPanelCta{margin-top:2px;width:100%;padding:9px;font:inherit;font-weight:600;color:#fff7ef;background:#28594ff2;border:none;border-radius:8px;cursor:pointer}.boc-kl-slatPanelCta:hover{background:#28594f}.boc-kl-slatPanel--active{flex-direction:row;align-items:center;gap:10px;inset:16px 16px auto auto;transform:none;width:min(330px,calc(100vw - 32px))}.boc-kl-slatPanelCta--inline{width:auto;margin-top:0;padding:7px 14px;background:#5a2e2ed9}.boc-kl-slatPanelCta--inline:hover{background:#5a2e2e}.boc-kl-webglRecovery{position:absolute;inset:16px auto auto 50%;transform:translate(-50%);z-index:30;padding:10px 14px;border:1px solid rgba(130,66,20,.55);border-radius:10px;background:#fff3defa;color:#5f3010;box-shadow:0 4px 16px #00000029}.boc-kl-webglRecovery button{margin-left:8px;border:0;border-radius:6px;padding:5px 8px;color:#fff;background:#7b451d;cursor:pointer}.boc-kl-planeBoxPopup{position:fixed;display:flex;flex-direction:column;gap:12px;width:min(294px,calc(100% - 32px));padding:24px 28px 10px;color:#111827;background:#f7f1e6f5;border:1px solid rgba(45,57,51,.12);border-radius:0 0 10px 10px;box-shadow:0 18px 42px #2632382e}.boc-kl-planeBoxTitle{font-size:15px;font-weight:700;line-height:1.2}.boc-kl-planeBoxField{display:flex;flex-direction:column;gap:10px}.boc-kl-planeBoxField span{color:#1f2937;font-size:16px;line-height:1}.boc-kl-planeBoxField input{min-height:50px;padding:0 18px;color:#111827;font:inherit;font-size:16px;background:#fff;border:1px solid rgba(31,41,55,.16);border-radius:16px;box-shadow:inset 0 1px 1px #1f29370a;outline:none}.boc-kl-planeBoxField input:focus{border-color:#2e7d6f8c;box-shadow:0 0 0 3px #2e7d6f1f}.boc-kl-planeBoxErrors{margin:0}.boc-kl-planeBoxActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:2px}.boc-kl-planeBoxButton{min-height:32px;padding:4px 14px;color:#1f2937;cursor:pointer;background:#fff;border:0;border-radius:999px;font:inherit;font-size:16px}.boc-kl-planeBoxButton--primary{color:#fff;background:#2f6f66}.boc-kl-sideColumn{display:grid;gap:20px}.boc-kl-layout--peekSidebar .boc-kl-sceneCard{padding-right:0}.boc-kl-layout--peekSidebar .boc-kl-sceneViewport{height:clamp(620px,82vh,980px)}.boc-kl-layout--peekSidebar .boc-kl-sideColumn{position:relative;top:auto;right:auto;z-index:5;display:grid;grid-template-columns:22px minmax(320px,28vw);gap:0;width:100%;max-height:none;transform:none;transition:box-shadow .18s ease;align-self:start}.boc-kl-sideColumnHandle{display:flex;justify-content:center;padding:14px 0;border-radius:18px 0 0 18px;background:linear-gradient(180deg,#1c2b34f5,#1f4540eb);color:#f5eee1;box-shadow:-12px 16px 28px #18312d2e}.boc-kl-sideColumnHandle span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.9}.boc-kl-sideColumnBody{display:grid;gap:20px;max-height:none;padding-left:10px;overflow:visible;overscroll-behavior:auto}.boc-kl-layout--peekSidebar .boc-kl-sideColumnBody>*{min-width:320px}.boc-kl-panelHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.boc-kl-fieldGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.boc-kl-field{display:grid;gap:8px}.boc-kl-field span{font-size:.92rem}.boc-kl-field input,.boc-kl-field select{padding:12px 14px;border:1px solid rgba(24,49,45,.14);border-radius:14px;background:#ffffffeb;color:inherit}.boc-kl-metricList{display:grid;gap:12px;margin:0}.boc-kl-metricList div{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(24,49,45,.08)}.boc-kl-metricList dt,.boc-kl-metricList dd{margin:0}.boc-kl-primaryButton,.boc-kl-blockButton{border:0;border-radius:16px}.boc-kl-primaryButton{padding:14px 16px;background:linear-gradient(135deg,#28594f,#9a6134);color:#fff7ef}.boc-kl-blockList{display:grid;gap:10px}.boc-kl-blockButton{display:grid;gap:4px;padding:14px 16px;text-align:left;background:#f6f0e5c7;color:inherit;border:1px solid rgba(24,49,45,.08)}.boc-kl-blockButton.is-active{border-color:#9a613459;background:#e996521f}.boc-kl-tag,.boc-kl-dimTag{pointer-events:none}.boc-kl-htmlPassthrough,.boc-kl-htmlPassthrough *{pointer-events:none!important}.boc-kl-tag{display:grid;gap:2px;min-width:180px;padding:8px 10px;border-radius:12px;background:#18312de0;color:#fff7ef;font-size:.78rem;box-shadow:0 10px 24px #18312d38}.boc-kl-dimTag{display:inline-flex;align-items:baseline;gap:4px;padding:1px 4px;border:0;border-radius:4px;background:#0c100f61;color:#f5d94f;font-size:11px;line-height:1;letter-spacing:.01em;white-space:nowrap;box-shadow:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;transition:background .12s ease,color .12s ease}.boc-kl-dimTag--summary{font-weight:600}.boc-kl-dimTag--summary:hover{background:#0c100f8f;color:#ffe97d}.boc-kl-dimTextValue{font-variant-numeric:tabular-nums}.boc-kl-dimTextUnit{opacity:.86;font-size:10px;letter-spacing:.02em}.boc-kl-dimEditor{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;border:1px solid rgba(245,217,79,.4);background:#0c100fd1;box-shadow:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.boc-kl-dimInput{width:58px;border:0;outline:0;background:transparent;color:#f8e484;font:inherit;font-size:11px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.boc-kl-dimInput::-webkit-outer-spin-button,.boc-kl-dimInput::-webkit-inner-spin-button{margin:0}.boc-kl-dimUnit{color:#f8e484d6;font-size:10px;font-weight:600;letter-spacing:.02em}.boc-kl-sceneHud{position:absolute;top:14px;left:14px;z-index:2;display:grid;gap:8px;max-width:min(420px,calc(100% - 28px));pointer-events:none}.boc-kl-sceneHud button{pointer-events:auto}.boc-kl-cameraMiniBar{top:14px;left:14px;right:auto}.boc-kl-boqList{display:grid;gap:6px}.boc-kl-boqRow{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:baseline;padding:8px 10px;border:1px solid rgba(24,49,45,.1);border-radius:10px;background:#ffffffb3;text-align:left;width:100%}button.boc-kl-boqRow{cursor:pointer}button.boc-kl-boqRow.is-active{border-color:#28594fb3;background:#28594f14}.boc-kl-boqRowName{font-weight:600;grid-column:1}.boc-kl-boqRowDims{grid-column:2;color:#18312db3;font-size:.82rem}.boc-kl-boqRowMaterial{grid-column:1 / -1;color:#18312d99;font-size:.78rem}.boc-kl-quickSpecPanel{gap:8px}.boc-kl-quickSpecSyncNotice{margin:-2px 0 2px;color:#28594fb8;font-size:.74rem}.boc-kl-quickSpecList{display:grid;gap:4px}.boc-kl-quickSpecRow{display:grid;grid-template-columns:minmax(0,1.2fr) 34px 48px repeat(3,minmax(0,.7fr));gap:4px;align-items:center;padding:3px 0}.boc-kl-quickSpecTotalRow{grid-template-columns:minmax(0,1.2fr) 34px repeat(3,minmax(0,.7fr))}.boc-kl-quickSpecCornerLRow{grid-template-columns:minmax(0,1.2fr) 18px repeat(4,minmax(0,.62fr))}.boc-kl-quickSpecRow.is-active .boc-kl-quickSpecRowName{color:#28594fe6;font-weight:600}.boc-kl-quickSpecTotalRow{padding-bottom:6px;margin-bottom:2px;border-bottom:1px solid rgba(24,49,45,.12)}.boc-kl-quickSpecTotalRow .boc-kl-quickSpecRowName{font-weight:700}.boc-kl-quickSpecTotalRow input{font-weight:600}.boc-kl-quickSpecSetRow{background:#28594f0d;border-radius:4px;grid-template-columns:minmax(0,1fr) 18px minmax(72px,.75fr) repeat(3,minmax(0,.62fr));padding-inline:4px}.boc-kl-quickSpecSetRow .boc-kl-quickSpecRowName{color:#28594ff2}.boc-kl-quickSpecRowName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.boc-kl-quickSpecRow input,.boc-kl-quickSpecRow select{width:100%;min-width:0;padding:2px 4px;font-size:.8rem;border:1px solid rgba(24,49,45,.15);border-radius:4px}.boc-kl-plateJoinOverlay{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:grid;gap:8px;max-width:min(520px,calc(100% - 28px));z-index:5}.boc-kl-dragHandle{cursor:grab;touch-action:none}.boc-kl-dragHandle:active{cursor:grabbing}.boc-kl-fixedActionMenu{position:fixed;z-index:42}.boc-kl-blockActionMenu{display:flex;gap:4px;padding:5px;border-radius:12px;background:#18312deb;box-shadow:0 6px 18px #00000038;white-space:nowrap}.boc-kl-blockActionMenu .boc-kl-chip{padding:6px 9px;font-size:.78rem;background:#ffffffeb}.boc-kl-blockActionMenu .boc-kl-iconButton{color:#fff7ef}.boc-kl-blockActionMenu .boc-kl-iconButton:hover:not(:disabled){background:#ffffff29}.boc-kl-blockActionMenu .boc-kl-iconButton.is-active{background:#fff7ef;color:#18312df2}.boc-kl-doorQuickAdd{display:inline-grid;grid-template-columns:32px 18px;gap:1px}.boc-kl-doorStyleCaret{width:18px;font-size:.72rem}.boc-kl-doorStylePopover{position:absolute;top:calc(100% + 8px);left:0;z-index:43;width:224px;padding:12px;border-radius:8px;background:#fff7ef;color:#18312deb;box-shadow:0 14px 34px #00000042}.boc-kl-iconButton{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#18312dd9}.boc-kl-iconButton[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 8px;border-radius:6px;background:#181818eb;color:#fff7ef;font-size:.72rem;line-height:1.3;white-space:nowrap;pointer-events:none;z-index:20}.boc-kl-iconButton:hover:not(:disabled){background:#18312d14}.boc-kl-iconButton:disabled{opacity:.35;cursor:default}.boc-kl-iconButton.is-active{background:#28594ff2;border-color:#28594ff2;color:#fff7ef}.boc-kl-iconButton svg{transition:transform .12s ease}.boc-kl-iconButton:hover:not(:disabled) svg{transform:scale(1.15)}.boc-kl-iconButton--labeled{width:auto;padding:0 8px;font-size:.72rem}@keyframes boc-kl-eyeBlink{0%,to{transform:scaleY(1)}40%{transform:scaleY(.05)}70%{transform:scaleY(.05)}}.boc-kl-eyeToggle--blink svg{animation:boc-kl-eyeBlink .5s ease-in-out;transform-origin:center;transform-box:fill-box}.boc-kl-sceneToolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;border-radius:16px;background:#ffffffeb;border:1px solid rgba(24,49,45,.08)}.boc-kl-subToolbar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:#28594f1f;border:1px solid rgba(40,89,79,.35)}.boc-kl-sceneToolbarGroup{display:flex;align-items:center;gap:6px;padding-right:14px;border-right:1px solid rgba(24,49,45,.1)}.boc-kl-sceneToolbarGroup:last-child{border-right:none;padding-right:0}.boc-kl-sidebarControls{display:grid;gap:10px}.boc-kl-sidebarControls .boc-kl-chipRow,.boc-kl-sidebarControls .boc-kl-sceneStats{gap:10px}.boc-kl-sceneHint{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#18312db8;color:#fff7ef;font-size:.76rem}.boc-kl-quickSpecCategory{margin:8px 0 2px;color:#18312da6;font-size:.72rem;font-weight:700;text-transform:uppercase}.boc-kl-quickSpecQty{color:#18312db3;font-size:.8rem;text-align:center}.boc-kl-quickSpecActions{display:inline-flex;gap:2px;justify-content:center}.boc-kl-quickSpecAction{width:22px;height:22px;border-radius:4px}.boc-kl-doorStylePanel{display:grid;gap:10px}.boc-kl-doorStylePanel.is-compact{padding:10px 0 2px;border-bottom:1px solid rgba(24,49,45,.12)}.boc-kl-doorStyleSelect{display:grid;gap:6px}.boc-kl-doorStyleSelect span{color:#18312db8;font-size:.78rem;font-weight:700}.boc-kl-doorStyleSelect select{width:100%;min-width:0;padding:7px 8px;border:1px solid rgba(24,49,45,.16);border-radius:6px;background:#fffffff0;color:#18312deb;font-size:.82rem}.boc-kl-doorStyleScopes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.boc-kl-doorStyleScopes .boc-kl-chip{justify-content:center;min-width:0;padding:7px 8px;border-radius:6px;font-size:.76rem}.boc-kl-doorStyleParamsPanel{display:grid;gap:8px;padding:10px 0 2px;border-bottom:1px solid rgba(24,49,45,.12)}.boc-kl-doorStyleParamGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}.boc-kl-doorStyleParamField{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 6px}.boc-kl-doorStyleParamField>span:first-child{grid-column:1 / -1;color:#18312db8;font-size:.74rem;font-weight:700}.boc-kl-doorStyleParamField input{min-width:0;padding:6px 8px;border:1px solid rgba(24,49,45,.16);border-radius:6px;background:#fffffff0;color:#18312deb;font-size:.82rem}.boc-kl-doorStyleParamUnit{color:#18312d80;font-size:.72rem}.boc-kl-doorStyleParamNotice{margin:0;color:#a4401f;font-size:.76rem}.boc-kl-layerPanel{display:grid;gap:8px;min-width:190px;max-height:min(460px,calc(100vh - 190px));margin-top:6px;padding:10px;border:1px solid rgba(24,49,45,.15);border-radius:10px;background:#fffffffa;color:#18312df2;box-shadow:0 6px 18px #0000002e;font-size:.78rem;overflow:auto;overscroll-behavior:contain}.boc-kl-fixedActionMenu.is-panelAbove .boc-kl-layerPanel{margin-top:6px}.boc-kl-layerPanel--centered{position:fixed;left:50%;top:50%;z-index:59;width:min(294px,calc(100vw - 32px));max-height:calc(100vh - 88px);margin-top:0;transform:translate(-50%,-50%)}.boc-kl-layerPanel label,.boc-kl-layerDimensions{display:grid;gap:5px}.boc-kl-layerPanel button{padding:5px 9px;border:0;border-radius:6px;background:#28594ff2;color:#fff7ef}.boc-kl-layerPanel button:disabled{opacity:.45}.boc-kl-layerPanel small{color:#18312da6;line-height:1.35}.boc-kl-fpsHint{display:inline-flex;align-items:center;color:#18312d73;font-size:.7rem}.boc-kl-gridDropdown{position:relative}.boc-kl-gridDropdownMenu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:8px;background:#fffffffa;border:1px solid rgba(24,49,45,.12);box-shadow:0 4px 12px #18312d2e}.boc-kl-gridDropdownMenu .boc-kl-iconButton--labeled{justify-content:flex-start}.boc-kl-partVisibilityMenu{min-width:132px}.boc-kl-partVisibilityGroupLabel{font-size:.68rem;font-weight:600;letter-spacing:.02em;opacity:.6;padding:4px 6px 2px;text-transform:uppercase}.boc-kl-partVisibilityMenu .boc-kl-chip{justify-content:flex-start;width:100%;white-space:nowrap}.boc-kl-chipRow{display:flex;gap:8px;flex-wrap:wrap}.boc-kl-chip{padding:5px 11px;border:1px solid rgba(24,49,45,.1);border-radius:6px;background:#ffffffd6;color:inherit}.boc-kl-chip:disabled{opacity:.45;cursor:default}.boc-kl-chip.is-active{background:#28594ff2;border-color:#28594ff2;color:#fff7ef}.boc-kl-paletteRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.boc-kl-paletteItem{display:grid;gap:2px;padding:12px 14px;border:1px dashed rgba(40,89,79,.4);border-radius:14px;background:#f6f0e5c7;cursor:grab;-webkit-user-select:none;user-select:none}.boc-kl-paletteItem span{font-size:.78rem;opacity:.7}.boc-kl-errorList{margin:0;padding:10px 14px 10px 30px;border-radius:12px;background:#b23a281a;color:#8a2c1d;font-size:.88rem;display:grid;gap:4px}.boc-kl-outlinerActions{display:flex;gap:8px;flex-wrap:wrap}.boc-kl-outlinerActions button{padding:8px 12px;border:1px solid rgba(24,49,45,.14);border-radius:999px;background:#ffffffe6;color:inherit}.boc-kl-outlinerActions button:disabled{opacity:.45}.boc-kl-outlinerTree{display:grid;gap:8px}.boc-kl-outlinerGroup{display:grid;gap:6px;padding:10px;border:1px solid rgba(24,49,45,.1);border-radius:14px;background:#f6f0e580}.boc-kl-outlinerGroupHead{display:flex;align-items:center;gap:6px;padding:4px 2px}.boc-kl-outlinerGroupSelect{flex:1;display:flex;justify-content:space-between;gap:8px;font-size:.85rem;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.boc-kl-lockBtn{border:1px solid rgba(24,49,45,.12);border-radius:8px;background:#fff9;padding:2px 6px;cursor:pointer;font-size:.9rem;line-height:1}.boc-kl-lockBtn.is-locked{background:#e996522e;border-color:#e9965280}.boc-kl-outlinerRow{display:grid;gap:2px;padding:10px 12px;text-align:left;border:1px solid rgba(24,49,45,.08);border-radius:12px;background:#ffffffd1;color:inherit}.boc-kl-outlinerRow span{font-size:.78rem;opacity:.7}.boc-kl-outlinerRow.is-active{border-color:#9a613459;background:#e9965224}.boc-kl-arrayEditor{display:grid;gap:8px}.boc-kl-arrayEditor--idle{grid-template-columns:1fr auto;align-items:center;padding:10px 12px;border:1px dashed rgba(154,97,52,.28);border-radius:14px;background:#fff7ef99}.boc-kl-arrayEditor--idle p{margin:0;font-size:.82rem;color:#18312db8}.boc-kl-arrayEditorHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.boc-kl-arrayModeSwitch{display:inline-flex;padding:3px;border-radius:999px;background:#18312d14}.boc-kl-arrayModeSwitch button,.boc-kl-arrayGhostBtn,.boc-kl-arrayOrientationBtn,.boc-kl-arrayEditor--idle button{border:1px solid rgba(24,49,45,.14);border-radius:999px;background:#ffffffeb;color:inherit;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.boc-kl-arrayModeSwitch button{min-width:72px;padding:8px 12px}.boc-kl-arrayModeSwitch button.is-active{border-color:#9a613452;background:#e996522e}.boc-kl-arrayGhostBtn,.boc-kl-arrayEditor--idle button{padding:8px 12px}.boc-kl-arrayOrientationBtn{width:100%;padding:8px 12px;border-radius:12px}.boc-kl-arrayModeSwitch button:hover,.boc-kl-arrayGhostBtn:hover,.boc-kl-arrayOrientationBtn:hover,.boc-kl-arrayEditor--idle button:hover{transform:translateY(-1px);border-color:#9a613452}.boc-kl-arrayEditorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.boc-kl-arrayDetachPanel{display:grid;gap:10px;padding:12px;border:1px solid rgba(24,49,45,.1);border-radius:14px;background:#f8f4eec7}.boc-kl-arrayDetachHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.boc-kl-arrayDetachHead strong{font-size:.84rem}.boc-kl-arrayDetachHead span,.boc-kl-arrayDetachEmpty{margin:0;font-size:.76rem;color:#18312dad}.boc-kl-arrayDetachGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.boc-kl-arrayDetachActions{display:flex;gap:8px}.boc-kl-arrayDetachActions button{padding:8px 12px;border:1px solid rgba(24,49,45,.14);border-radius:12px;background:#ffffffeb;color:inherit;cursor:pointer}.boc-kl-arrayDetachList{display:flex;flex-wrap:wrap;gap:8px}.boc-kl-arrayDetachChip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(154,97,52,.22);border-radius:999px;background:#ffffffeb;color:inherit;cursor:pointer;font-size:.76rem}.boc-kl-arrayDetachChip span{opacity:.72}.boc-kl-arrayEditor label{display:grid;gap:4px;font-size:.78rem}.boc-kl-arrayEditor input,.boc-kl-arrayEditor select{padding:8px 10px;border:1px solid rgba(24,49,45,.14);border-radius:10px;background:#ffffffeb;color:inherit}@media(max-width:640px){.boc-kl-arrayEditor--idle,.boc-kl-arrayEditorGrid,.boc-kl-arrayDetachGrid{grid-template-columns:1fr}.boc-kl-arrayEditorHead,.boc-kl-arrayDetachHead,.boc-kl-arrayDetachActions{flex-direction:column;align-items:stretch}}.boc-kl-rotateBar{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:#18312deb;color:#fff7ef;box-shadow:0 12px 28px #18312d4d;font-size:.88rem}.boc-kl-rotateBar button{width:42px;height:42px;border:1px solid rgba(255,247,239,.35);border-radius:50%;background:#fff7ef1f;color:#fff7ef;font-weight:700;font-size:1rem}.boc-kl-rotateBar button:hover{background:#e996528c}.boc-kl-rotateBarHint{opacity:.65;font-size:.76rem}.boc-kl-protractorLabel,.boc-kl-protractorAngleButton{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:18px;padding:0 8px;border:0;border-radius:999px;background:#14221fc7;color:#f7fbf5;cursor:pointer;font-size:10px;font-weight:700;line-height:1;box-shadow:0 6px 14px #0c191624}.boc-kl-protractorAngleButton:hover{background:#f5c84beb;color:#172522}.boc-kl-protractorButton{border:1px solid rgba(34,199,169,.35);border-radius:999px;background:#11211ed1;color:#f7fbf5;cursor:pointer;font-size:11px;font-weight:800;padding:6px 9px;white-space:nowrap;box-shadow:0 8px 18px #0c191629}.boc-kl-sceneStats{display:flex;gap:8px;flex-wrap:wrap}.boc-kl-contextMenuBackdrop{position:fixed;inset:0;z-index:58}.boc-kl-contextMenu{position:fixed;z-index:59;min-width:168px;padding:6px;border-radius:12px;background:#1c2b28;color:#f4efe4;box-shadow:0 12px 32px #00000052;display:grid;gap:2px}.boc-kl-contextMenu--centered{left:50%;top:50%;transform:translate(-50%,-50%)}.boc-kl-contextMenuTitle{font-size:.72rem;opacity:.65;padding:4px 10px 6px;border-bottom:1px solid rgba(255,247,239,.12);margin-bottom:2px}.boc-kl-contextMenuItem{text-align:left;border:0;background:transparent;color:inherit;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.86rem}.boc-kl-contextMenuItem:hover:not(:disabled){background:#e9965266}.boc-kl-contextMenuItem:disabled{opacity:.4;cursor:default}.boc-kl-alignMenuBackdrop{position:fixed;inset:0;z-index:58;background:#121e1b73}.boc-kl-alignMenu{position:fixed;top:var(--boc-kl-scene-center-y, 50%);left:var(--boc-kl-scene-center-x, 50%);transform:translate(-50%,-50%);z-index:59;width:max-content;max-width:calc(var(--boc-kl-scene-width, 100vw) - 40px);padding:10px;border-radius:14px;background:#fff7ef;box-shadow:0 20px 48px #00000052;gap:8px}.boc-kl-alignMenu .boc-kl-panelHead{gap:8px}.boc-kl-alignMenu .boc-kl-panelHead strong{font-size:.9rem}.boc-kl-alignMenuItem{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:76px;padding:10px 6px;border:1px solid rgba(24,49,45,.12);border-radius:10px;background:#fff9;color:inherit;text-align:center;cursor:pointer;font:inherit}.boc-kl-alignMenu .boc-kl-chipRow{gap:8px}.boc-kl-alignMenuItem:hover{background:#e9965229;border-color:#e9965266}.boc-kl-alignMenuItem[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);width:max-content;max-width:180px;padding:4px 8px;border-radius:6px;background:#181818eb;color:#fff7ef;font-size:.7rem;line-height:1.3;pointer-events:none;z-index:20}.boc-kl-alignMenuItemTitle{font-size:.76rem;font-weight:600}.boc-kl-saveLibForm{display:flex;flex-direction:column;gap:10px;min-width:240px}.boc-kl-saveLibField{display:flex;flex-direction:column;gap:4px;font-size:.76rem;font-weight:600}.boc-kl-saveLibField input,.boc-kl-saveLibField select{padding:7px 9px;border:1px solid rgba(24,49,45,.24);border-radius:8px;background:#ffffffd9;color:inherit;font:inherit;font-weight:400}.boc-kl-saveLibHint{margin:0;max-width:240px;font-size:.78rem;line-height:1.4;opacity:.8}.boc-kl-sceneStats span{padding:7px 10px;border-radius:999px;background:#18312db8;color:#fff7ef;font-size:.74rem}.boc-kl-marqueeRect{position:absolute;z-index:3;border:1px solid rgba(40,89,79,.95);border-radius:10px;background:linear-gradient(180deg,#fff7ef1a,#28594f14),#28594f14;box-shadow:inset 0 0 0 1px #fff7ef3d;pointer-events:none}.boc-kl-gridFloor{display:grid;gap:18px}.boc-kl-gridCandidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.boc-kl-gridCandidate{display:grid;gap:8px}.boc-kl-gridMeta{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px}.boc-kl-gridBenchBar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.boc-kl-benchButton{padding:10px 18px;border:none;border-radius:14px;background:#18312d;color:#f5eee1;font-weight:600;cursor:pointer}.boc-kl-benchButton:disabled{opacity:.6;cursor:wait}.boc-kl-benchFilter{flex:1 1 220px;padding:10px 14px;border:1px solid rgba(24,49,45,.16);border-radius:14px;background:#ffffffe0}.boc-kl-benchResult{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:14px;border:1px solid rgba(24,49,45,.12)}.boc-kl-benchResult.is-pass{background:#4c9b6829}.boc-kl-benchResult.is-fail{background:#bf4e3c29}.boc-kl-gridScroll{height:420px;overflow:auto;border-radius:18px;background:#ffffffe0}.boc-kl-gridStickyHead{position:sticky;top:0;z-index:1;display:block;background:#f5eee1f7}.boc-kl-gridStickyHead tr{display:flex}.boc-kl-gridStickyHead th{flex:1 1 0}.boc-kl-gridStickyHead th:first-child{flex:0 0 80px}.boc-kl-gridPreview table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:18px;background:#ffffffe0}.boc-kl-gridPreview th,.boc-kl-gridPreview td{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(24,49,45,.08)}.boc-kl-gridPreview th{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:#18312db8}@media(max-width:1180px){.boc-kl-layout{grid-template-columns:1fr}.boc-kl-sideColumn{grid-template-columns:repeat(2,minmax(0,1fr))}.boc-kl-layout--peekSidebar{gap:20px}.boc-kl-layout--peekSidebar .boc-kl-sceneCard{padding-right:24px}.boc-kl-layout--peekSidebar .boc-kl-sceneViewport{height:clamp(560px,74vh,860px)}.boc-kl-layout--peekSidebar .boc-kl-sideColumn{position:static;grid-template-columns:repeat(2,minmax(0,1fr));width:auto;max-height:none;transform:none}.boc-kl-sideColumnHandle{display:none}.boc-kl-sideColumnBody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;padding-left:0;overflow:visible}.boc-kl-layout--peekSidebar .boc-kl-sideColumnBody>*{min-width:0}}@media(max-width:860px){.boc-kl-hero,.boc-kl-panelHead,.boc-kl-gridMeta{grid-auto-flow:row;display:grid}.boc-kl-heroMetrics,.boc-kl-fieldGrid,.boc-kl-gridCandidates,.boc-kl-sideColumn,.boc-kl-sideColumnBody{grid-template-columns:1fr}.boc-kl-sceneViewport{min-height:360px}}.boc-kl-inspectorRoot{display:flex;flex-direction:column;gap:10px;width:100%;height:100%;min-height:0}.boc-kl-inspectorLayout{display:flex;width:100%;flex:1;min-height:0}.boc-kl-inspectorScene{position:relative;flex:1;min-width:0}.boc-kl-inspectorAside{flex:0 0 300px;display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto;border-left:1px solid var(--border, rgba(0, 0, 0, .1));background:var(--surface, #fff)}.boc-kl-moduleAccessoryPicker{display:grid;gap:8px;margin-top:12px}.boc-kl-moduleAccessoryList{display:grid;gap:6px;max-height:180px;overflow:auto}.boc-kl-moduleAccessoryItem{align-items:center;display:grid;gap:8px;grid-template-columns:16px minmax(0,1fr);min-height:28px}.boc-kl-moduleAccessoryItem span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--primary: #2563eb;--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--warn: #d97706;--text: #0f172a;--dim: #94a3b8;--ok: #16a34a;--err: #dc2626;--selected: #2563eb;--snap: #f59e0b;--hud-bg: rgba(255, 255, 255, .92);--radius-md: 6px;--radius-lg: 10px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .07);--shadow-md: 0 2px 10px rgba(15, 23, 42, .08);--shadow-lg: 0 8px 30px rgba(15, 23, 42, .18);--bg-nav: #0f172a;--bg-nav-hover: #1e293b;--border-nav: #1e293b;--text-nav-muted: #64748b;--text-nav-bright: #cbd5e1;--text-muted: #64748b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;font-size:14px;color:var(--text);background:#e9edf3}code{font-family:ui-monospace,monospace;font-size:12px;background:var(--border);border-radius:4px;padding:0 4px}.shell{display:flex;height:100vh;overflow:hidden;padding-left:56px}.navrail{width:56px;background:var(--bg-nav);color:var(--text-nav-bright);padding:14px 0;overflow-y:auto;overflow-x:hidden;white-space:nowrap;flex-shrink:0;position:absolute;top:0;left:0;height:100vh;z-index:100;transition:width .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;box-shadow:2px 0 10px #0000}.navrail:hover{width:220px;box-shadow:4px 0 20px #0000004d}.navrail h1{font-size:14px;color:#fff;padding:0 16px 4px}.navrail .ver{font-size:11px;color:var(--text-nav-muted);padding:0 16px 12px;border-bottom:1px solid var(--border-nav);margin-bottom:8px;line-height:1.5}.navrail button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text-nav-bright);padding:7px 16px;font-size:13px;cursor:pointer;font-family:inherit}.navrail button:hover{background:var(--bg-nav-hover)}.navrail button.active{background:var(--primary);color:#fff}.navrail .grp{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-nav-muted);padding:12px 16px 4px}.appbar{background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px}.logo{font-weight:700;color:var(--primary)}.sep{color:var(--border)}.muted{color:var(--text-muted)}.cap{font-size:11.5px;color:var(--text-muted);margin-top:8px;line-height:1.6}.drop{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md, 6px);padding:5px 10px;font-size:12.5px}.drop:after{content:" ▾";color:var(--text-muted)}.tile{width:110px;text-align:center;cursor:pointer}.tico{width:76px;height:76px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:transform .1s}.tile:hover .tico{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary)}.tlbl{font-size:12.5px;font-weight:600;margin-top:7px}.tsub{font-size:10.5px;color:var(--text-muted);margin-top:1px}.pline{display:flex;justify-content:space-between;padding:2px 0;color:#475569;font-size:12px}.stage{flex:1!important;height:100%!important;overflow-y:hidden!important;padding:20px 24px;display:flex!important;flex-direction:column!important}.stage>*{flex:1!important;min-height:100%!important;height:100%!important;display:flex!important;flex-direction:column!important}.screen{flex:1!important;display:flex!important;flex-direction:column!important;min-height:0!important}.screen>*:last-child{flex:1!important;min-height:0!important}.note{display:none;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 14px;font-size:12.5px;margin-bottom:14px;line-height:1.55;flex-shrink:0}.note b{color:#92400e}.frame{background:var(--bg);border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0f172a14;display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important}.frame>*:last-child{flex:1!important;min-height:0!important;overflow-y:auto!important}.framebar{background:#e2e8f0;padding:6px 12px;font-size:11px;color:#64748b;display:flex;gap:6px;align-items:center}.dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1}.placeholder{padding:60px 24px;text-align:center;color:var(--dim);font-size:13px}
