.product-template-modal{width:min(900px,100%)}.product-composition-section,.product-brand-section{border:1px solid var(--line);background:#fbfdff;border-radius:10px;padding:14px}.product-composition-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.product-composition-heading>div{gap:4px;display:grid}.product-composition-heading strong{color:var(--ink);font-size:15px}.product-composition-heading span{color:var(--muted);font-size:12px;font-weight:760;line-height:1.5}.product-composition-heading>b{border-radius:999px;flex:none;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.product-composition-heading>b.complete{color:#16794a;background:#2fbf7124}.product-composition-heading>b.incomplete{color:#a65300;background:#f28c2824}.product-composition-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.product-composition-strip article{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;min-width:0;min-height:64px;padding:10px;display:grid}.product-composition-strip article>span{background:var(--surface-soft);width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.product-composition-strip article.complete{background:#f3fcfb;border-color:#33bdb86b}.product-composition-strip article.complete>span{background:var(--primary);color:#fff}.product-composition-strip article div{min-width:0}.product-composition-strip article strong,.product-composition-strip article small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.product-composition-strip article strong{color:var(--ink);font-size:12px}.product-composition-strip article small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:750}.product-composition-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.product-brand-section .modal-tabs{max-width:520px}.product-flow-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.product-flow-step{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;min-height:58px;padding:10px;display:grid}.product-flow-step span{background:var(--surface-soft);width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;font-weight:900;display:grid}.product-flow-step strong{overflow-wrap:anywhere}.product-flow-step.active{background:#f3fcfb;border-color:#33bdb873}.product-flow-step.active span{background:var(--primary);color:#fff}.product-workspace{grid-template-columns:minmax(330px,.38fr) minmax(0,1fr);gap:16px;padding:16px;display:grid}.product-library-panel,.product-detail-workspace{min-width:0}.product-library-panel{border-right:1px solid var(--line);flex-direction:column;gap:12px;padding-right:16px;display:flex}.compact-toolbar{align-items:stretch}.product-library-panel .compact-toolbar{grid-template-columns:minmax(0,1fr) auto;display:grid}.product-library-panel .search{width:100%;min-width:0}.compact-toolbar .button{white-space:nowrap;flex:none}.product-category-tree{border:1px solid var(--line);background:#fbfdff;border-radius:8px;gap:8px;padding:10px;display:grid}.product-category-tree-head{color:var(--ink);justify-content:space-between;align-items:center;font-size:13px;font-weight:900;display:flex}.product-category-tree-head span,.product-category-tree-row b{border:1px solid var(--line);min-width:26px;height:24px;color:var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:900;display:inline-flex}.product-category-tree-list{gap:4px;display:grid}.product-category-tree-row{width:100%;min-width:0;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;display:grid}.product-category-tree-row.root{grid-template-columns:24px minmax(0,1fr)}.product-category-tree-expander{width:24px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.product-category-tree-expander:hover{background:var(--surface-soft);color:var(--ink)}.product-category-tree-node,.product-category-tree-row.product{min-width:0;min-height:36px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 7px;display:grid}.product-category-tree-row.category{grid-template-columns:24px minmax(0,1fr)}.product-category-tree-row.product{grid-template-columns:18px 18px minmax(0,1fr) auto 34px;padding-left:7px}.product-category-tree-node:hover,.product-category-tree-row.product:hover,.product-category-tree-row.active .product-category-tree-node,.product-category-tree-row.product.active{background:#f3fcfb;border-color:#33bdb85c}.product-category-tree-node svg,.product-category-tree-row.product svg{color:var(--primary-dark)}.product-category-tree-node span,.product-category-tree-row.product span:not(.tree-branch){min-width:0}.product-category-tree-node strong,.product-category-tree-row.product strong,.product-category-tree-node small,.product-category-tree-row.product small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.product-category-tree-node small,.product-category-tree-row.product small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:800}.product-category-tree-children{border-left:1px solid #33bdb840;gap:4px;margin-left:12px;padding-left:12px;display:grid}.product-category-product-children{border-left:1px solid #33bdb82e;gap:4px;margin-left:24px;padding-left:14px;display:grid}.product-category-tree-group{gap:4px;display:grid}.tree-branch{background:#33bdb873;width:18px;height:1px}.product-tree-label{min-width:0}.product-tree-counts{justify-content:flex-end;gap:4px;min-width:46px;display:inline-flex}.product-tree-counts small{border:1px solid var(--line);width:22px;height:22px;color:var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:11px;font-weight:900;display:inline-flex}.product-category-tree-row.product .row-action-cell{justify-content:center;align-items:center;width:34px;height:32px;display:flex}.product-category-tree-row.product .row-menu{width:28px;height:28px}.product-category-tree-empty{border:1px dashed var(--line);min-height:36px;color:var(--muted);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.product-empty-under-category{margin-left:18px}.compact-taxonomy{grid-template-columns:1fr;margin-bottom:0}.product-workbench-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.product-workbench-header h2{overflow-wrap:anywhere;margin:2px 0 3px;font-size:24px;line-height:1.2}.product-workbench-header small{color:var(--muted);overflow-wrap:anywhere;font-weight:800}.product-workbench-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.product-editor-board,.serial-management-board{border:1px solid var(--line);background:#fbfdff;border-radius:8px;margin-bottom:12px;padding:12px}.product-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.product-stat-card{border:1px solid var(--line);background:#fbfdff;border-radius:8px;gap:8px;min-height:78px;padding:12px;display:grid}.product-stat-card span{color:var(--muted);font-size:12px;font-weight:850}.product-stat-card strong{font-size:28px;line-height:1}.product-stat-card.ok{border-color:#2fbf7152}.product-stat-card.warn{border-color:#f28c2852}.product-stat-card.bad{border-color:#ef444452}.product-detail-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px;display:grid}.endpoint-board{border:1px solid var(--line);background:#fbfdff;border-radius:8px;margin-bottom:0;padding:12px}.endpoint-board-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.endpoint-board-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;min-height:96px;padding:12px;display:grid}.endpoint-board-card span{color:var(--muted);font-size:12px;font-weight:850}.endpoint-board-card strong,.endpoint-board-card small{overflow-wrap:anywhere}.endpoint-board-card small{color:var(--muted);font-weight:760}.endpoint-board-card.power{border-left:4px solid var(--amber)}.endpoint-board-card.network{border-left:4px solid #2a7ecb}.endpoint-board-card.rs485{border-left:4px solid var(--green)}.endpoint-board-card.io{border-left:4px solid #8d6bff}.serial-binding-panel{border:1px solid var(--line);border-left:4px solid var(--line-strong);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.serial-binding-panel.bound{border-left-color:var(--green)}.serial-binding-panel.unbound{border-left-color:var(--primary)}.serial-binding-panel.disabled{border-left-color:#ef4444}.serial-binding-panel.empty{min-height:180px;color:var(--muted);align-content:center}.serial-binding-panel.empty strong{color:var(--ink)}.serial-binding-panel p{color:var(--muted);margin:0;font-weight:800;line-height:1.45}.serial-binding-head{gap:3px;display:grid}.serial-binding-head strong{font-size:22px}.serial-binding-head small{color:var(--muted);overflow-wrap:anywhere;font-weight:850}.serial-binding-grid{gap:8px;display:grid}.empty-state{min-height:86px;color:var(--muted);text-align:center;background:#fbfdff;border:1px dashed #cdddeb;border-radius:8px;place-items:center;padding:16px;display:grid}.device-sensor-section{gap:10px;padding:8px 0 0 30px;display:grid}.device-sensor-section-head{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.device-sensor-section-head strong{color:var(--ink);font-size:13px}.device-sensor-section-head .button{min-height:32px;padding:0 10px}.product-empty-state{gap:14px;min-height:360px}.taxonomy-panel{border:1px solid var(--line);background:#fbfdff;border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid;overflow:hidden}.taxonomy-panel-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.taxonomy-panel-head>div{gap:3px;display:grid}.taxonomy-panel-head strong{color:var(--ink);font-size:17px}.taxonomy-panel-head small{color:var(--muted);font-size:12px;font-weight:750}.product-section-head>strong{font-size:14px}.taxonomy-inline-action{border:1px solid var(--line);min-height:28px;color:var(--primary-dark);background:#fff;border-radius:8px;align-items:center;gap:5px;max-width:100%;padding:0 8px;font-size:12px;font-weight:900;display:inline-flex}.taxonomy-summary{grid-template-columns:repeat(3,minmax(0,150px));gap:8px;display:grid}.taxonomy-summary span{border:1px solid var(--line);min-height:50px;color:var(--muted);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:800;display:flex}.taxonomy-summary strong{color:var(--ink);font-size:22px}.taxonomy-search{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex}.taxonomy-search:focus-within{border-color:var(--line-strong);box-shadow:0 0 0 3px #33bdb81f}.taxonomy-search input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0}.taxonomy-table-head{color:var(--muted);grid-template-columns:minmax(200px,.8fr) minmax(260px,1.5fr) 90px 100px 64px;gap:10px;padding:0 10px;font-size:11px;font-weight:900;display:grid}.taxonomy-chip-list{gap:6px;display:grid}.taxonomy-row{grid-template-columns:minmax(0,1fr) 64px;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;display:grid}.taxonomy-chip{border:1px solid var(--line);min-height:58px;color:var(--muted);text-align:left;background:#fff;border-radius:8px;grid-template-columns:minmax(200px,.8fr) minmax(260px,1.5fr) 90px 100px;align-items:center;gap:10px;min-width:0;padding:8px 10px;font-size:12px;display:grid}.taxonomy-identity{gap:4px;min-width:0;display:grid}.taxonomy-identity strong{overflow-wrap:anywhere}.taxonomy-identity code{text-overflow:ellipsis;white-space:nowrap;width:fit-content;max-width:100%;color:var(--muted);font-size:11px;overflow:hidden}.taxonomy-description{min-width:0;color:var(--muted);overflow-wrap:anywhere;line-height:1.4}.taxonomy-chip.has-count .taxonomy-identity strong{color:var(--primary-dark)}.taxonomy-chip.disabled{color:var(--muted);background:#f1f5f9}.taxonomy-chip.active{color:var(--primary-dark);background:#f1fbfa;border-color:#33bdb859;box-shadow:inset 0 0 0 1px #33bdb833}.taxonomy-usage{align-items:baseline;gap:5px;display:flex}.taxonomy-usage b{color:var(--ink);font-size:18px}.taxonomy-usage small{color:var(--muted);font-size:11px}.taxonomy-status{border-radius:999px;align-items:center;width:fit-content;min-height:26px;padding:0 9px;font-size:11px;font-weight:900;display:inline-flex}.taxonomy-status.active{color:#16794a;background:#2fbf711f}.taxonomy-status.disabled{color:var(--muted);background:#e9eef5}.taxonomy-row-actions{align-items:center;gap:3px;display:inline-flex}.taxonomy-row-actions button{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);background:#fff;border-radius:8px;place-items:center;display:grid}.taxonomy-row-actions button:hover{color:var(--primary-dark);border-color:var(--line-strong)}.taxonomy-row-actions button:disabled{cursor:not-allowed;opacity:.45}.taxonomy-empty{border:1px dashed var(--line);min-height:88px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;padding:16px;display:grid}.catalog-workspace{gap:18px;display:grid}.catalog-page-head{border:1px solid #0ea5e938;border-radius:16px;justify-content:space-between;align-items:center;padding:18px;display:flex}.catalog-page-head h2{margin:2px 0 4px}.catalog-page-symbol{background:linear-gradient(135deg, var(--primary), #547cff);color:#fff;border-radius:12px;width:48px;height:48px;padding:10px}.catalog-definition-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.catalog-definition-grid article{border:1px solid var(--line);border-left:4px solid var(--primary);background:#fbfdff;border-radius:8px;min-height:98px;padding:14px}.catalog-definition-grid strong{color:var(--ink);font-size:13px}.catalog-definition-grid p{color:var(--muted);margin:8px 0 0;font-size:13px;font-weight:750;line-height:1.55}.catalog-single-panel{min-width:0}@media (max-width:1040px){.catalog-definition-grid{grid-template-columns:1fr}.taxonomy-table-head{display:none}.taxonomy-chip{grid-template-columns:minmax(0,1fr) auto}.taxonomy-description{grid-column:1/-1}.taxonomy-usage,.taxonomy-status{grid-row:3}}@media (max-width:680px){.taxonomy-panel-head{flex-direction:column;align-items:stretch}.taxonomy-inline-action{justify-content:center}.taxonomy-summary{grid-template-columns:1fr}.taxonomy-row{grid-template-columns:minmax(0,1fr)}.taxonomy-row-actions{justify-content:flex-end}}.product-section-head{color:var(--muted);margin:10px 0;font-size:13px;font-weight:850}.endpoint-chips{flex-wrap:wrap;gap:7px;display:flex}.endpoint-chip{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.endpoint-chip.power{color:#b75a00;border-color:#f28c2852}.endpoint-chip.network{color:#1b63a4;border-color:#2a7ecb52}.endpoint-chip.rs485{color:#16794a;border-color:#2fbf7152}.endpoint-chip.io{color:#6f50c8;border-color:#8d6bff52}@media (max-width:760px){.product-composition-heading{display:grid}.product-composition-heading>b{width:fit-content}.product-composition-strip,.product-composition-fields{grid-template-columns:1fr}}.product-workspace{grid-template-columns:minmax(270px,310px) minmax(0,1fr)}.pico-kit-studio{border:1px solid var(--line);background:#fbfdff;border-radius:12px;margin-bottom:12px;overflow:hidden}.pico-studio-heading{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f2fbfb 0%,#f7f9ff 100%);justify-content:space-between;align-items:flex-start;gap:18px;padding:16px;display:flex}.pico-studio-heading h3{color:var(--ink);margin:4px 0 5px;font-size:19px;line-height:1.3}.pico-studio-heading p,.pico-stage-title p,.pico-handoff-note p{color:var(--muted);margin:0;font-size:12px;font-weight:750;line-height:1.55}.pico-studio-save{flex:none;justify-items:end;gap:7px;display:grid}.pico-save-state{color:var(--muted);font-size:11px;font-weight:850}.pico-save-state.saved{color:#16794a}.pico-save-state.error{color:#c62828}.pico-studio-steps{background:var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;display:grid}.pico-studio-steps button{min-width:0;min-height:58px;color:var(--muted);text-align:left;cursor:pointer;background:#fff;border:0;grid-template-columns:22px 18px minmax(0,1fr);align-items:center;gap:7px;padding:9px 10px;font-size:12px;font-weight:900;display:grid}.pico-studio-steps button b{background:var(--surface-soft);border-radius:7px;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.pico-studio-steps button.active{color:var(--primary-dark);box-shadow:inset 0 -3px 0 var(--primary);background:#f1fbfa}.pico-studio-steps button.active b{background:var(--primary);color:#fff}.pico-stage{padding:16px}.pico-stage-title{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.pico-stage-title strong{color:var(--ink);font-size:15px}.pico-stage-title p{margin-top:4px}.pico-count{min-height:28px;color:var(--primary-dark);white-space:nowrap;background:#33bdb821;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.pico-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.pico-summary-grid article,.pico-delivery-grid article{border:1px solid var(--line);background:#fff;border-radius:9px;min-width:0;padding:12px}.pico-summary-grid span,.pico-summary-grid strong,.pico-summary-grid small{overflow-wrap:anywhere;display:block}.pico-summary-grid span{color:var(--muted);font-size:11px;font-weight:850}.pico-summary-grid strong{color:var(--ink);margin-top:7px;font-size:14px}.pico-summary-grid small{color:var(--muted);margin-top:4px;font-weight:750}.pico-role-boundary{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:8px;margin-top:12px;display:grid}.pico-role-boundary>div{background:#f4fcfb;border:1px solid #33bdb847;border-radius:9px;grid-template-columns:24px minmax(0,1fr);align-content:center;gap:4px 8px;min-height:86px;padding:12px;display:grid}.pico-role-boundary svg{color:var(--primary-dark)}.pico-role-boundary span{color:var(--muted);grid-column:2;font-size:11px;font-weight:750;line-height:1.4}.pico-role-boundary i{color:var(--muted);text-align:center;font-style:normal;font-weight:900}.pico-inline-field{width:min(260px,100%);color:var(--ink);grid-template-columns:minmax(0,1fr) 90px;align-items:center;gap:10px;margin-top:12px;font-size:12px;font-weight:850;display:grid}.pico-inline-field input,.pico-binding-row input,.pico-binding-row select,.pico-preview-select select{border:1px solid var(--line);width:100%;min-width:0;min-height:36px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:0 9px}.pico-driver-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.pico-communication-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pico-communication-grid>article{border:1px solid var(--line);background:#fff;border-radius:9px;align-content:start;gap:9px;min-width:0;min-height:190px;padding:12px;display:grid}.pico-communication-grid>article.selected{box-shadow:inset 4px 0 0 var(--primary);border-color:#33bdb88c}.pico-communication-grid>article.blocked{background:#fff9f9;border-color:#ef444440}.pico-communication-grid article>p{color:var(--muted);margin:0;font:750 11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.pico-communication-grid article>.button{width:fit-content;margin-top:auto}.pico-sensor-layout{grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);gap:12px;display:grid}.pico-sensor-catalog,.pico-sensor-bindings{align-content:start;gap:8px;min-width:0;display:grid}.pico-sensor-catalog>strong,.pico-sensor-bindings>strong{color:var(--ink);font-size:12px}.pico-sensor-catalog>article,.pico-binding-card{border:1px solid var(--line);background:#fff;border-radius:9px;gap:8px;min-width:0;padding:10px;display:grid}.pico-sensor-catalog>article.selected{background:#f5fcfb;border-color:#33bdb880}.pico-sensor-catalog>article.blocked{background:#fff9f9;border-color:#ef444440}.pico-sensor-catalog article>div:first-child strong,.pico-sensor-catalog article>div:first-child small{display:block}.pico-sensor-catalog article>div:first-child small{color:var(--muted);margin-top:3px;font-size:10px;font-weight:750}.pico-sensor-catalog article>.button{width:fit-content}.pico-binding-card header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pico-binding-card header strong,.pico-binding-card header code{overflow-wrap:anywhere;display:block}.pico-binding-card header code{color:var(--muted);margin-top:3px;font-size:10px}.pico-binding-card header>span{color:#16794a;white-space:nowrap;background:#2fbf711f;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:10px;font-weight:900;display:inline-flex}.pico-binding-fields{grid-template-columns:minmax(180px,1.4fr) 100px 100px minmax(140px,1fr);gap:7px;display:grid}.pico-binding-fields label{min-width:0;color:var(--muted);gap:4px;font-size:10px;font-weight:900;display:grid}.pico-binding-fields input,.pico-binding-fields select{border:1px solid var(--line);width:100%;min-width:0;min-height:36px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:0 8px}.pico-driver-grid>article{border:1px solid var(--line);background:#fff;border-radius:9px;align-content:start;gap:9px;min-width:0;padding:12px;display:grid}.pico-driver-grid>article.selected{box-shadow:inset 4px 0 0 var(--primary);border-color:#33bdb88c}.pico-driver-grid>article.blocked{background:#fff8f8;border-color:#ef444447}.pico-driver-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pico-driver-head strong,.pico-driver-head small{display:block}.pico-driver-head small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:750}.pico-driver-head>span{white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:10px;font-weight:900;display:inline-flex}.pico-driver-head>span.ready{color:#16794a;background:#2fbf7121}.pico-driver-head>span.blocked{color:#b42318;background:#ef44441f}.pico-driver-grid article>p{color:var(--muted);margin:0;font:750 11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.pico-driver-note{min-height:36px;color:var(--muted);font-size:11px;font-weight:730;line-height:1.5}.pico-driver-grid article>.button{width:fit-content}.pico-measurement-chips{flex-wrap:wrap;gap:5px;display:flex}.pico-measurement-chips code{border:1px solid var(--line);color:var(--primary-dark);background:#f7fafc;border-radius:6px;padding:3px 6px;font-size:10px}.pico-channel-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.pico-channel-strip article{background:#f3fcfb;border:1px solid #33bdb84d;border-radius:9px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:9px;padding:11px;display:grid}.pico-channel-strip svg{color:var(--primary-dark)}.pico-channel-strip strong,.pico-channel-strip span{display:block}.pico-channel-strip span{color:var(--muted);margin-top:3px;font-size:11px;font-weight:760}.pico-binding-list{gap:7px;display:grid}.pico-binding-row{border:1px solid var(--line);background:#fff;border-radius:9px;grid-template-columns:minmax(170px,1.2fr) 85px 110px 105px minmax(150px,1fr);align-items:end;gap:8px;min-width:0;padding:10px;display:grid}.pico-binding-name{align-self:center;min-width:0}.pico-binding-name strong,.pico-binding-name code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.pico-binding-name code{color:var(--muted);margin-top:4px;font-size:10px}.pico-binding-row label{min-width:0;color:var(--muted);gap:4px;font-size:10px;font-weight:900;display:grid}.pico-issues,.pico-valid{border-radius:9px;align-items:flex-start;gap:9px;margin-top:10px;padding:11px 12px;font-size:12px;font-weight:800;display:flex}.pico-issues{color:#a61b1b;background:#fff7f7;border:1px solid #ef444447}.pico-valid{color:#16794a;background:#f3fcf7;border:1px solid #2fbf7147}.pico-issues p{margin:0 0 4px}.pico-issues p:last-child{margin-bottom:0}.pico-preview-select{color:var(--muted);gap:4px;font-size:10px;font-weight:900;display:grid}.pico-preview-select select{min-width:220px}.pico-json-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pico-json-grid article{border:1px solid var(--line);background:#10213b;border-radius:9px;min-width:0;overflow:hidden}.pico-json-grid header{color:#fff;background:#18304f;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:8px 10px;font-size:11px;display:flex}.pico-json-grid header span{color:#9ec6dd;font-size:9px;font-weight:800}.pico-json-grid pre{color:#d7eef7;white-space:pre;height:360px;margin:0;padding:11px;font:10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.pico-delivery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.pico-delivery-grid article{align-content:start;gap:8px;min-height:126px;display:grid}.pico-delivery-grid article.ready{border-top:4px solid var(--green)}.pico-delivery-grid article.blocked{background:#fff9f9;border-top:4px solid #ef4444}.pico-delivery-grid article.ready svg{color:#16794a}.pico-delivery-grid article.blocked svg{color:#b42318}.pico-delivery-grid article span{color:var(--muted);font-size:11px;font-weight:750;line-height:1.45}.pico-burn-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.pico-handoff-note{background:#f5faff;border:1px solid #2a7ecb47;border-radius:9px;grid-template-columns:24px minmax(0,1fr);gap:10px;margin-top:12px;padding:12px;display:grid}.pico-handoff-note svg{color:#1b63a4}.pico-handoff-note strong{color:var(--ink)}.pico-handoff-note p{margin-top:4px}@media (max-width:1280px){.product-workspace{grid-template-columns:280px minmax(0,1fr)}.pico-summary-grid,.pico-delivery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pico-binding-row{grid-template-columns:minmax(180px,1fr) 85px 110px 105px}.pico-binding-row label:last-child{grid-column:1/-1}.pico-json-grid{grid-template-columns:1fr}.pico-json-grid pre{height:260px}.pico-communication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pico-sensor-layout{grid-template-columns:1fr}}@media (max-width:980px){.product-workspace{grid-template-columns:1fr}.product-library-panel{border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px}.pico-studio-steps{grid-template-columns:1fr}.pico-studio-steps button{min-height:44px}.pico-driver-grid,.pico-channel-strip,.pico-communication-grid{grid-template-columns:1fr}.pico-binding-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.pico-studio-heading,.pico-stage-title{flex-direction:column;align-items:stretch}.pico-studio-save{justify-items:stretch}.pico-summary-grid,.pico-delivery-grid,.pico-role-boundary{grid-template-columns:1fr}.pico-role-boundary i{transform:rotate(90deg)}.pico-binding-row{grid-template-columns:1fr}.pico-binding-row label:last-child{grid-column:auto}.pico-binding-fields{grid-template-columns:1fr}.pico-preview-select select{min-width:0}}.product-configuration-summary{border:1px solid var(--line);background:var(--surface-raised);box-shadow:var(--shadow-soft);border-radius:12px;margin-bottom:12px;overflow:hidden}.product-configuration-summary.ready{border-color:color-mix(in srgb, var(--green) 38%, var(--line))}.product-configuration-summary.missing{border-color:color-mix(in srgb, var(--amber) 38%, var(--line))}.product-configuration-summary-head{border-bottom:1px solid var(--line);background:var(--surface-soft);justify-content:space-between;align-items:flex-start;gap:18px;min-width:0;padding:16px;display:flex}.product-configuration-summary-title{align-items:flex-start;gap:12px;min-width:0;display:flex}.product-configuration-summary-icon{border:1px solid color-mix(in srgb, var(--primary) 48%, var(--line));background:var(--surface-selected);width:40px;height:40px;color:var(--primary-dark);border-radius:10px;flex:none;place-items:center;display:grid}.product-configuration-summary-title h3{color:var(--ink);margin:3px 0 4px;font-size:17px}.product-configuration-summary-title p,.product-serial-section-head small,.product-configuration-empty span{color:var(--muted);margin:0;font-size:12px;font-weight:750;line-height:1.5}.product-configuration-summary-actions{flex:none;justify-content:flex-end;align-items:center;gap:10px;display:flex}.product-configuration-status,.product-serial-context-lock{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:0 10px;font-size:11px;font-weight:900;display:inline-flex}.product-configuration-status.ready{background:var(--status-success-surface);color:var(--status-success-ink)}.product-configuration-status.missing{background:var(--status-warning-surface);color:var(--status-warning-ink)}.product-configuration-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 16px 16px;display:grid}.product-configuration-summary-grid article{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:4px 8px;min-width:0;min-height:96px;padding:12px;display:grid}.product-configuration-summary-grid article svg{color:var(--primary-dark);grid-row:1/span 3}.product-configuration-summary-grid article span,.product-configuration-summary-grid article strong,.product-configuration-summary-grid article small{overflow-wrap:anywhere;min-width:0}.product-configuration-summary-grid article span,.product-configuration-summary-grid article small{color:var(--muted);font-size:11px;font-weight:760}.product-configuration-summary-grid article strong{color:var(--ink);font-size:18px}.product-configuration-empty{border:1px dashed var(--line-strong);background:var(--surface-soft);color:var(--primary-dark);border-radius:10px;align-items:center;gap:12px;margin:14px 16px 16px;padding:14px;display:flex}.product-configuration-empty strong,.product-configuration-empty span{display:block}.product-configuration-empty strong{color:var(--ink)}.product-serial-section-head{align-items:flex-start}.product-serial-section-head>div:first-child{gap:3px;min-width:0;display:grid}.product-serial-section-actions{flex:none;justify-content:flex-end;align-items:center;gap:10px;display:flex}.product-serial-configuration-gate{border:1px solid color-mix(in srgb, var(--amber) 38%, var(--line));background:var(--status-warning-surface);color:var(--status-warning-ink);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;font-size:12px;display:flex}.product-configuration-modal,.product-serial-modal{flex-direction:column;padding:0;display:flex;overflow:hidden}.product-configuration-modal{width:min(1240px,100%)}.product-serial-modal{width:min(820px,100%)}.product-configuration-modal>h3,.product-serial-modal>h3{border-bottom:1px solid var(--line);background:var(--surface-soft);flex:none;margin:0;padding:18px 20px}.product-configuration-modal-body{flex:auto;min-height:0;display:flex;overflow:hidden}.product-configuration-modal-body>.pico-kit-studio{overscroll-behavior:contain;border:0;border-radius:0;flex:auto;min-height:0;margin:0;overflow:auto}.product-configuration-loading{width:100%;min-height:280px;color:var(--muted);align-content:center;place-items:center;gap:12px;display:grid}.product-configuration-loading svg{color:var(--primary-dark);animation:.9s linear infinite product-configuration-spin}@keyframes product-configuration-spin{to{transform:rotate(360deg)}}.pico-modal-actions,.product-serial-modal-actions{z-index:5;border-top:1px solid var(--line);background:var(--surface-raised);box-shadow:0 -10px 24px color-mix(in srgb, var(--bg) 42%, transparent);margin:18px 0 0;padding:12px 16px;position:sticky;bottom:0}.product-serial-modal-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:18px 20px 0;overflow:auto}.product-serial-product-context{border:1px solid color-mix(in srgb, var(--primary) 38%, var(--line));background:var(--surface-soft);border-radius:12px;margin-bottom:16px;padding:14px}.product-serial-product-context-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.product-serial-product-context-head strong,.product-serial-product-context-head small{overflow-wrap:anywhere;display:block}.product-serial-product-context-head strong{color:var(--ink);margin-top:3px;font-size:17px}.product-serial-product-context-head small{color:var(--muted);margin-top:2px;font-weight:800}.product-serial-context-lock{background:var(--surface-selected);color:var(--primary-dark)}.product-serial-product-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.product-serial-product-context-grid>div{border:1px solid var(--line);background:var(--surface-raised);border-radius:9px;min-width:0;padding:10px}.product-serial-product-context-grid span,.product-serial-product-context-grid strong,.product-serial-product-context-grid small{overflow-wrap:anywhere;display:block}.product-serial-product-context-grid span,.product-serial-product-context-grid small{color:var(--muted);font-size:11px;font-weight:760}.product-serial-product-context-grid strong{color:var(--ink);margin-top:4px;font-size:13px}.product-serial-fields{align-items:start}.form-submit-error{border:1px solid color-mix(in srgb, var(--red) 42%, var(--line));background:var(--status-danger-surface);color:var(--status-danger-ink);border-radius:9px;margin-top:12px;padding:10px 12px;font-size:12px;font-weight:800;line-height:1.5}@media (max-width:1080px){.product-configuration-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.product-configuration-summary-head,.product-configuration-summary-actions,.product-serial-section-head,.product-serial-section-actions,.product-serial-configuration-gate,.product-serial-product-context-head{flex-direction:column;align-items:stretch}.product-configuration-summary-actions .button,.product-serial-section-actions .button,.product-serial-configuration-gate .button{width:100%}.product-configuration-summary-grid,.product-serial-product-context-grid{grid-template-columns:1fr}:is(.modal-backdrop:has(.product-configuration-modal),.modal-backdrop:has(.product-serial-modal)){padding:0}.product-configuration-modal,.product-serial-modal{border-radius:0;width:100%;height:100dvh;max-height:100dvh}.product-configuration-modal>h3,.product-serial-modal>h3{padding:14px 16px;font-size:19px}.product-configuration-modal .pico-studio-steps{overscroll-behavior-x:contain;scroll-snap-type:x proximity;display:flex;overflow-x:auto}.product-configuration-modal .pico-studio-steps button{scroll-snap-align:start;flex:0 0 min(230px,72vw);min-width:min(230px,72vw)}.product-serial-modal-body{padding:14px 16px 0}.pico-modal-actions,.product-serial-modal-actions{margin-inline:-16px;padding:12px 16px}.pico-modal-actions .button,.product-serial-modal-actions .button{flex:1 1 0;min-height:44px}}
.status-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:24px 4px minmax(200px,1.25fr) repeat(auto-fit,minmax(145px,1fr));align-items:start;gap:14px;min-height:78px;padding:12px 14px 12px 10px;display:grid}.org-row{grid-template-columns:24px 4px minmax(300px,1.65fr) minmax(160px,.8fr) minmax(190px,1fr) minmax(110px,.55fr) 1px}.org-row.context-row{background:#fbfdff}.status-row:hover,.device-card:hover,.node:hover{border-color:var(--line-strong);box-shadow:0 10px 20px #1d2b4e12}.status-row>*{min-width:0}.status-row>div{overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.row-menu{width:24px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-self:center;place-items:center;padding:0;display:grid}.row-menu:hover,.row-menu.active{color:var(--primary-dark);background:#edf5fb}.row-action-cell{place-self:center;place-items:center;min-width:24px;display:grid;position:relative}.row-action-placeholder{width:24px;height:34px}.row-action-menu{z-index:40;border:1px solid var(--line);min-width:152px;box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:6px;position:absolute;top:0;left:calc(100% + 8px)}.row-action-menu button{width:100%;min-height:34px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 9px;font-weight:850;display:flex}.row-action-menu button:hover{background:var(--surface-soft)}.row-action-menu button:disabled{cursor:not-allowed;color:var(--muted);opacity:.58}.row-action-menu button.danger{color:var(--red)}.position-fixed{position:fixed}.top-0{top:0}.end-0{right:0}.p-3{padding:16px}.toast-container{z-index:90;pointer-events:none;gap:10px;width:min(390px,100vw - 24px);display:grid}.toast{pointer-events:auto;border:1px solid var(--line);border-left:4px solid var(--primary);background:#fffffffa;border-radius:8px;overflow:hidden;box-shadow:0 16px 36px #0f172a2b}.toast.show{display:block}.toast-success{border-left-color:var(--green)}.toast-warning{border-left-color:var(--amber)}.toast-danger{border-left-color:var(--red)}.toast-info{border-left-color:var(--primary)}.toast-header{border-bottom:1px solid var(--line);min-height:40px;color:var(--ink);align-items:center;gap:9px;padding:8px 10px;font-size:13px;font-weight:900;display:flex}.toast-status-dot{background:currentColor;border-radius:50%;width:9px;height:9px}.toast-success .toast-status-dot{color:var(--green)}.toast-warning .toast-status-dot{color:var(--amber)}.toast-danger .toast-status-dot{color:var(--red)}.toast-info .toast-status-dot{color:var(--primary)}.me-auto{margin-right:auto}.btn-close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:8px;flex:none;position:relative}.btn-close:hover{background:var(--surface-soft);color:var(--ink)}.btn-close:before,.btn-close:after{content:"";background:currentColor;border-radius:99px;width:12px;height:2px;position:absolute;top:13px;left:8px}.btn-close:before{transform:rotate(45deg)}.btn-close:after{transform:rotate(-45deg)}.toast-body{color:var(--muted);overflow-wrap:anywhere;padding:10px 12px 12px;font-size:13px;font-weight:800;line-height:1.45}.rail{border-radius:99px;align-self:stretch}.rail.ok{background:var(--green)}.rail.warn{background:var(--amber)}.rail.bad{background:var(--red)}.cell-title{overflow-wrap:anywhere;font-weight:900}.cell-sub,.cell-label{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.cell-label{color:#4a5871;font-weight:850;display:block}.org-tree-cell{--depth:0;min-width:0;padding-left:calc(var(--depth) * 26px);align-items:flex-start;gap:10px;display:flex;position:relative}.org-tree-cell:not(.root):before{content:"";left:calc((var(--depth) * 26px) - 14px);background:#d7e4ef;width:1px;position:absolute;top:-13px;bottom:-13px}.org-tree-cell:not(.root):after{content:"";left:calc((var(--depth) * 26px) - 14px);background:#d7e4ef;width:14px;height:1px;position:absolute;top:18px}.org-tree-toggle{color:#1b84b9;background:#f4faff;border:1px solid #cfe1ef;border-radius:8px;flex:0 0 28px;place-items:center;width:28px;height:28px;padding:0;display:grid}.org-tree-toggle:not(.spacer):hover{border-color:var(--primary);color:var(--primary-dark)}.org-tree-toggle.spacer{background:0 0;border-color:#0000}.org-path{color:#50627b;overflow-wrap:anywhere;margin-top:4px;font-size:12px;font-weight:760}.org-path span{color:var(--muted);margin-right:6px}.muted-path{color:#7a8798;font-weight:720}.form-note{color:#4a5871;overflow-wrap:anywhere;background:#f7fbfe;border:1px solid #d9e8f4;border-radius:8px;min-height:34px;padding:9px 11px;font-size:13px;font-weight:780}.sort-select{min-height:var(--control-height);border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:auto minmax(96px,1fr);align-items:center;gap:8px;min-width:190px;padding:0 12px;display:grid}.sort-select span{color:var(--muted);font-size:12px;font-weight:850}.sort-select select{min-width:0;height:var(--action-height);color:var(--ink);font:inherit;background:0 0;border:0;outline:none;font-weight:850}.status-pill{overflow-wrap:normal;font-weight:900}.status-pill.ok{color:var(--green)}.status-pill.warn{color:var(--amber)}.status-pill.bad{color:var(--red)}
.device-grid{grid-template-columns:230px minmax(560px,1fr) 280px;gap:14px;min-height:620px;display:grid}.device-scope-grid{grid-template-columns:300px minmax(620px,1fr);align-items:stretch;gap:14px;min-height:660px;display:grid}.device-scope-panel,.device-context-panel,.device-workspace{min-width:0}.device-scope-panel{grid-template-rows:repeat(2,minmax(0,1fr));align-self:stretch;gap:12px;height:100%;min-height:0;display:grid}.scope-section,.site-summary,.site-device-list{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px}.scope-section{grid-template-rows:auto auto minmax(0,1fr);gap:10px;min-height:0;display:grid;overflow:hidden}.scope-title{color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.scope-title svg{color:var(--primary-dark)}.scope-title strong{font-size:14px}.scope-title span{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;place-items:center;min-width:28px;min-height:24px;font-weight:900;display:inline-grid}.scope-search{width:100%;height:var(--control-height);border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);border-radius:8px;padding:0 11px;font-weight:750}.scope-list{flex-direction:column;gap:8px;min-height:0;padding-right:2px;display:flex;overflow:auto}.scope-row{--depth:0;border:1px solid var(--line);width:100%;min-height:54px;color:var(--ink);text-align:left;padding:8px 10px 8px calc(10px + var(--depth) * 16px);cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;display:grid}.scope-row.organization{padding-left:calc(8px + var(--depth) * 16px);grid-template-columns:26px 12px minmax(0,1fr)}.scope-row.site{grid-template-columns:4px minmax(0,1fr) auto}.scope-row.active{border-color:var(--primary);background:#33bdb814}.scope-row:focus-visible,.scope-tree-toggle:focus-visible{outline-offset:2px;outline:2px solid #33bdb873}.scope-row strong,.scope-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.scope-row strong{font-size:14px;font-weight:950}.scope-row small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:800}.scope-row em{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;place-items:center;min-width:28px;min-height:24px;font-style:normal;font-weight:950;display:inline-grid}.scope-branch{border-left:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong);width:9px;height:22px}.scope-tree-toggle{border:1px solid var(--line);background:var(--surface-soft);width:26px;height:26px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:grid}.scope-tree-toggle:not(.spacer):hover{border-color:var(--primary);color:var(--primary-dark);background:#f3fcfb}.scope-tree-toggle.spacer{pointer-events:none;background:0 0;border-color:#0000}.scope-empty{border:1px dashed var(--line-strong);min-height:76px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;padding:12px;font-weight:850;display:grid}.site-manager{gap:14px;display:grid}.site-manager-list{gap:10px;display:grid}.site-manager-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.site-manager-row.active{border-color:var(--primary);background:#33bdb814}.site-manager-select{min-width:0;min-height:54px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0;display:grid}.site-manager-select strong,.site-manager-select small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.site-manager-select strong{font-size:14px;font-weight:950}.site-manager-select small{color:var(--muted);font-size:12px;font-weight:800}.site-manager-select em{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;place-items:center;min-width:28px;min-height:24px;font-style:normal;font-weight:950;display:inline-grid}.site-manager-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.site-manager-actions>span{min-height:32px;color:var(--primary-dark);background:#33bdb81a;border:1px solid #33bdb84d;border-radius:8px;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.device-workspace{grid-template-rows:auto auto;align-content:stretch;gap:12px;height:100%;min-height:0;display:grid}.selected-scope-bar{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:12px;display:flex}.selected-scope-bar span,.selected-scope-bar strong,.selected-scope-bar small{display:block}.selected-scope-bar span,.selected-scope-bar small{color:var(--muted);font-size:12px;font-weight:850}.selected-scope-bar strong{margin-top:2px;font-size:18px;font-weight:950}.selected-scope-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.file-input-hidden{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.button.disabled{opacity:.5;pointer-events:none}.device-context-panel{flex-direction:column;gap:12px;min-height:0;display:flex}.site-summary>strong,.site-device-list>strong{margin-bottom:10px;font-size:14px;display:block}.site-device-list{min-height:180px}.device-card.compact{min-height:82px;padding:8px}.device-bottom-rail{grid-column:1/-1;grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:stretch;gap:12px;min-width:0;display:grid}.device-bottom-summary,.device-bottom-list-panel{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:12px}.device-bottom-summary>strong,.device-bottom-title>strong{color:var(--ink);font-size:14px;font-weight:950;display:block}.device-bottom-summary-grid{grid-template-columns:1fr;gap:6px;margin-top:10px;display:grid}.device-bottom-list-panel{grid-template-rows:auto minmax(0,1fr);gap:10px;display:grid}.device-bottom-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.device-bottom-title span{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;place-items:center;min-width:28px;min-height:24px;font-size:12px;font-weight:950;display:inline-grid}.device-bottom-list{flex-direction:column;gap:10px;min-width:0;padding-right:2px;display:flex;overflow:auto}.device-card.bottom{width:100%;min-height:74px;max-height:260px;overflow:auto}.device-bottom-card-body{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px;min-width:0;display:grid}.device-bottom-card-body>*{min-width:0}.device-card.bottom .device-card-head{align-items:center;min-width:0}.device-card.bottom .device-sensor-section{grid-column:1/-1;padding-left:30px}.device-card.bottom .device-card-head>span{min-width:0;display:grid;overflow:hidden}.device-card.bottom .cell-title,.device-card.bottom .cell-sub{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.device-card.bottom .sensor-inline-summary{white-space:nowrap;align-items:center;gap:10px;min-width:0;margin-top:0;display:flex}.device-card.bottom .sensor-inline-summary span,.device-card.bottom .sensor-inline-summary.empty{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.device-card.bottom .device-sensor-rows,.device-card.bottom .device-sensor-empty{grid-column:1/-1}.device-workspace-list{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:560px;padding:12px;overflow:auto}.device-list,.device-detail{padding:12px}.device-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;grid-template-columns:4px minmax(0,1fr);gap:12px;min-height:74px;padding:10px;display:grid}.device-card-head{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:6px;padding:0;display:grid}.device-card-head span{min-width:0}.device-card.active{border-color:var(--amber);background:#fffaf0}.device-expand-item{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:8px;display:grid}.device-expand-item .device-status-row{box-shadow:none;border:0;padding:0}.device-expand-toggle{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);cursor:pointer;border-radius:8px;justify-self:start;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:900;display:inline-flex}.sensor-inline-summary{color:#446176;gap:3px;margin-top:6px;font-size:12px;font-weight:800;display:grid}.sensor-inline-summary span,.sensor-inline-summary.empty{overflow-wrap:anywhere;display:block}.sensor-inline-summary b,.sensor-inline-summary small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.sensor-inline-summary b{font:inherit;font-weight:900}.sensor-inline-summary small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:850}.sensor-inline-summary.empty{color:var(--muted)}.device-sensor-rows{gap:8px;margin-top:8px;display:grid}.device-sensor-row,.device-sensor-empty{border:1px solid var(--line);background:#f7fbfc;border-left:4px solid #139a8f;border-radius:8px;padding:9px 10px}.device-sensor-row{grid-template-columns:minmax(0,1fr) minmax(150px,.9fr) 32px;align-items:center;gap:10px;display:grid}.device-sensor-row .icon-button{justify-self:end}.device-sensor-row span,.device-sensor-row strong,.device-sensor-row small,.device-sensor-row p{overflow-wrap:anywhere;display:block}.device-sensor-row span{color:var(--muted);font-size:12px;font-weight:900}.device-sensor-row strong,.device-sensor-row p{font-weight:900}.device-sensor-row small,.device-sensor-empty{color:var(--muted)}.device-sensor-row p{margin:0}.device-sensor-row p strong,.device-sensor-row p small{display:block}.device-sensor-row p small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:850}.scene{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:520px;position:relative;overflow:hidden}.floorplan-scene{grid-template-rows:auto minmax(0,1fr);display:grid}.floorplan-toolbar{border-bottom:1px solid var(--line);grid-template-rows:auto auto;gap:12px;padding:12px 16px;display:grid}.floorplan-title-row{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.floorplan-title{min-width:0}.floorplan-title strong,.floorplan-title span{display:block}.floorplan-action-row{justify-content:flex-end;min-width:0;display:flex}.floorplan-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.floorplan-actions .file-input-hidden+.button{margin-left:0}.floorplan-title strong{overflow-wrap:anywhere;font-size:17px}.floorplan-title span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:800}.floorplan-canvas{color:#343a45;-webkit-user-select:none;user-select:none;background:#fbfdff 50%/contain no-repeat;min-height:460px;position:relative;overflow:hidden}.floorplan-canvas:not(.has-background){background-color:#fbfdff;background-image:linear-gradient(90deg,#51779729 1px,#0000 1px),linear-gradient(0deg,#51779729 1px,#0000 1px),linear-gradient(90deg,#849cb114 1px,#0000 1px),linear-gradient(0deg,#849cb114 1px,#0000 1px),none;background-position:50%;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:96px 96px,96px 96px,24px 24px,24px 24px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box}.floorplan-canvas.preview{cursor:default}.floorplan-canvas.editing{cursor:crosshair;touch-action:none}.scene-edit-mode-toggle{min-height:40px}.scene-edit-mode-toggle button{min-width:70px}.floor-shape-toolbar{z-index:10;border:1px solid var(--line);background:#ffffffeb;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;width:min(640px,100% - 32px);min-height:46px;padding:8px 10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #21344f1f}.floor-shape-toolbar strong{color:var(--muted);font-size:12px;font-weight:900}.floor-shape-toolbar .floor-shape-library{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.floor-shape-toolbar button{border:1px solid var(--line);background:var(--surface-soft);min-height:32px;color:var(--ink);border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-weight:850;display:inline-flex}.floor-shape-toolbar button:hover{border-color:var(--primary);color:var(--primary-dark)}.site-empty-workspace{min-height:620px}.site-empty-canvas{background-color:#fbfdff;background-image:linear-gradient(90deg,#bed3e547 1px,#0000 1px),linear-gradient(0deg,#bed3e547 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;min-height:560px;padding:28px;display:grid}.site-empty-message{border:1px dashed var(--line-strong);width:min(480px,100%);min-height:190px;color:var(--muted);text-align:center;background:#ffffffeb;border-radius:8px;align-content:center;place-items:center;gap:10px;padding:24px;font-weight:850;display:grid}.site-empty-message strong{color:var(--ink);font-size:18px;font-weight:950}.site-empty-message svg{color:var(--primary)}.floorplan-canvas.has-background:before{content:"";pointer-events:none;background:#ffffff42;position:absolute;inset:0}.floorplan-canvas.has-background .floorplan-lines{opacity:.25}.scene-shape{--shape-content-scale-x:1;--shape-content-scale-y:1;color:#111827;font:inherit;cursor:move;z-index:2;-webkit-user-select:none;user-select:none;background:#ffffff8a;border:2px solid #89919e;place-items:center;padding:0;font-weight:900;display:grid;position:absolute;overflow:visible}.scene-shape.locked{cursor:default}.scene-shape.editable:focus-visible{outline-offset:3px;outline:4px solid #33bdb840}.scene-shape.flip-x{--shape-content-scale-x:-1}.scene-shape.flip-y{--shape-content-scale-y:-1}.scene-shape-label{pointer-events:none;transform:scale(var(--shape-content-scale-x), var(--shape-content-scale-y))}.scene-shape.selected{border-color:var(--primary);z-index:11;box-shadow:0 0 0 2px #1db4c62e,0 10px 22px #21344f29}.scene-shape.room{border-style:solid}.scene-shape.area{background:#b9dfae5c;border-color:#98c68d}.scene-shape.wall{background:#707784;border-color:#707784;min-height:5px}.scene-shape.wall.selected{background:#4b5563;border-color:#4b5563}.scene-shape.door{background:0 0;border-color:currentColor #b78353 #b78353;border-top-style:none;border-top-width:0;border-radius:0 0 999px 999px}.scene-shape-actions{transform:translateX(-50%) scale(var(--shape-content-scale-x), var(--shape-content-scale-y));border:1px solid var(--line);pointer-events:auto;background:#fffffff5;border-radius:8px;align-items:center;gap:4px;min-height:30px;padding:4px;display:inline-flex;position:absolute;bottom:calc(100% + 12px);left:50%;box-shadow:0 10px 24px #21344f29}.scene-shape-actions button{width:28px;height:28px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;padding:0;display:inline-grid}.scene-shape-actions button:hover{border-color:var(--line);background:var(--surface-soft);color:var(--primary-dark)}.scene-shape-actions button.danger{color:#e5484d}.scene-shape-handles{pointer-events:none;position:absolute;inset:-8px}.scene-shape-resize-handle{background:var(--primary);border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;box-shadow:0 1px 6px #21344f38;pointer-events:auto!important}.scene-shape-resize-handle.nw{cursor:nwse-resize;top:0;left:0}.scene-shape-resize-handle.n{cursor:ns-resize;top:0;left:50%;transform:translate(-50%)}.scene-shape-resize-handle.ne{cursor:nesw-resize;top:0;right:0}.scene-shape-resize-handle.e{cursor:ew-resize;top:50%;right:0;transform:translateY(-50%)}.scene-shape-resize-handle.se{cursor:nwse-resize;bottom:0;right:0}.scene-shape-resize-handle.s{cursor:ns-resize;bottom:0;left:50%;transform:translate(-50%)}.scene-shape-resize-handle.sw{cursor:nesw-resize;bottom:0;left:0}.scene-shape-resize-handle.w{cursor:ew-resize;top:50%;left:0;transform:translateY(-50%)}.scene-shape-measure{transform:translateX(-50%) scale(var(--shape-content-scale-x), var(--shape-content-scale-y));color:#fff;pointer-events:none;background:#111827;border-radius:999px;min-width:72px;padding:3px 7px;font-size:11px;font-weight:900;position:absolute;bottom:calc(100% + 8px);left:50%}.scene-shape-menu{border:1px solid var(--line);width:min(330px,100% - 24px);box-shadow:var(--shadow);z-index:16;background:#fffffffa;border-radius:8px;gap:10px;padding:10px;display:grid;position:absolute}.scene-shape-menu-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.scene-shape-menu-head strong,.scene-shape-menu-head small{display:block}.scene-shape-menu-head strong{color:var(--ink);font-size:14px;font-weight:950}.scene-shape-menu-head small,.scene-shape-menu>small{color:var(--muted);font-size:11px;font-weight:850}.scene-shape-menu-head button{border:1px solid var(--line);background:var(--surface-soft);width:26px;height:26px;color:var(--ink);border-radius:7px;place-items:center;padding:0;display:inline-grid}.scene-shape-menu-field,.scene-shape-menu-grid label{gap:5px;min-width:0;display:grid}.scene-shape-menu-field span,.scene-shape-menu-grid span{color:var(--muted);font-size:12px;font-weight:850}.scene-shape-menu-field input,.scene-shape-menu-grid input{border:1px solid var(--line);background:var(--surface-soft);min-height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-weight:850}.scene-shape-menu-field input[type=color]{width:100%;padding:4px}.scene-shape-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.scene-shape-menu-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.scene-shape-menu-actions .button{min-height:36px}.floorplan-scale-panel{z-index:7;-webkit-user-select:none;user-select:none;touch-action:manipulation;justify-items:start;gap:7px;display:grid;position:absolute;bottom:18px;left:18px}.floorplan-scale{border:1px solid var(--line);color:var(--muted);background:#ffffffe6;border-radius:8px;align-items:end;gap:8px;padding:7px 9px;font-size:12px;font-weight:900;display:inline-flex;box-shadow:0 8px 20px #21344f14}.floorplan-scale span{border-left:2px solid var(--ink);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:78px;height:12px}.floorplan-scale-actions{border:1px solid var(--line);background:#ffffffeb;border-radius:8px;gap:6px;padding:4px;display:inline-flex;box-shadow:0 8px 18px #21344f14}.floorplan-scale-actions button{background:var(--surface-soft);width:30px;height:28px;color:var(--ink);border:1px solid #0000;border-radius:7px;place-items:center;padding:0;display:inline-grid}.floorplan-scale-actions button:disabled{opacity:.38;cursor:not-allowed}.floorplan-scale-actions button:not(:disabled):hover{border-color:var(--primary);color:var(--primary-dark)}.floorplan-lines{color:#3c414b;opacity:.64;width:84%;height:78%;position:absolute;top:11%;left:2%}.connection-layer{pointer-events:auto;--wire-power:#f28c28;--wire-signal:#1d7bd8;--wire-io:#8b5cf6;width:84%;height:78%;position:absolute;top:11%;left:2%;overflow:visible}.connection-line{fill:none;stroke-width:.8px;vector-effect:non-scaling-stroke;pointer-events:none}.connection-line.power{stroke:var(--wire-power)}.connection-line.network{stroke:var(--wire-signal)}.connection-line.rs485{stroke:var(--wire-signal);stroke-dasharray:5 4}.connection-line.io{stroke:var(--wire-io);stroke-dasharray:2 3}.connection-node{stroke:#fff;stroke-width:.8px}.connection-node.power{fill:var(--wire-power)}.connection-node.network{fill:var(--wire-signal)}.connection-node.io{fill:var(--wire-io)}.connection-node.rs485{fill:var(--wire-signal)}.building-tag{color:#102315;cursor:move;z-index:3;background:#b9dfae;border:1px solid #98c68d;border-radius:2px;place-items:center;min-width:78px;min-height:34px;font-weight:900;display:inline-grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 14px #12441814}.scene-label-tag{appearance:none;z-index:6;border:1px solid #98c68d}.floor-device{border:1px solid var(--line-strong);width:38px;height:38px;color:var(--ink);box-shadow:var(--shadow-soft);cursor:move;touch-action:none;z-index:5;background:#fffffff0;border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.floor-device span{display:none}.floor-device svg{flex:none}.floor-device.humidityHigh svg{color:#26a9df}.floor-device.humidityLow svg{color:#8cb7d8}.floor-device.temperatureHigh svg{color:#e74c3c}.floor-device.temperatureLow svg{color:#60b9df}.floor-device.warning svg,.legend-item.warning svg{color:#d97706}.floor-device.critical svg,.legend-item.critical svg{color:#dc2626}.floor-device.active{border-color:var(--primary);outline:4px solid #33bdb82e}.scene-node{border:1px solid var(--line-strong);min-height:34px;color:var(--ink);box-shadow:var(--shadow-soft);cursor:move;z-index:8;background:#fffffff5;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.scene-node svg{color:var(--primary-dark)}.scene-node.locked,.scene-label-tag.locked,.connection-note.locked{cursor:default}.scene-node.active{border-color:var(--primary);outline:4px solid #33bdb82e}.scene-node.custom{background:#ffffffeb;border-style:dashed}.scene-node-menu{border:1px solid var(--line);min-width:178px;box-shadow:var(--shadow);z-index:12;background:#fffffffa;border-radius:8px;gap:4px;padding:6px;display:grid;position:absolute}.scene-node-menu button{min-height:34px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:0 9px;font-weight:900;display:inline-flex}.scene-node-menu button:hover{background:var(--surface-soft)}.scene-node-menu button.danger{color:#e5484d}.scene-node-menu small{color:var(--muted);overflow-wrap:anywhere;padding:4px 9px 2px;font-weight:800}.connection-line.user-connection{stroke-width:.55px;cursor:pointer;pointer-events:stroke;stroke-linecap:round;stroke-linejoin:round}.connection-line.user-connection.active{stroke-width:1.4px;filter:drop-shadow(0 0 3px #33bdb880)}.scene-endpoint-handle{cursor:crosshair;z-index:10;border:2px solid #fff;border-radius:999px;width:13px;height:13px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 12px #0f172a38}.scene-endpoint-handle.locked{cursor:default;opacity:.58}.scene-endpoint-handle.power{background:#f28c28}.scene-endpoint-handle.signal{background:#1d7bd8}.scene-endpoint-handle.io{background:#8b5cf6}.scene-endpoint-handle.active{outline:4px solid #33bdb857}.connection-note{border:1px solid var(--line);max-width:240px;min-height:26px;box-shadow:var(--shadow-soft);color:var(--ink);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;z-index:5;overflow-wrap:anywhere;background:#fffffff0;border-radius:7px;padding:5px 9px;font-size:12px;font-weight:900;position:absolute;transform:translate(-50%,-50%)}.connection-note.power{border-left:4px solid #f28c28}.connection-note.signal{border-left:4px solid #1d7bd8}.connection-note.io{border-left:4px solid #8b5cf6}.connection-info-panel{border:1px solid var(--line);border-left:4px solid var(--primary);width:min(430px,100% - 32px);box-shadow:var(--shadow-soft);z-index:15;background:#fffffff0;border-radius:8px;gap:8px;padding:10px 12px;display:grid;position:absolute;top:16px;left:16px}.connection-info-panel>div:first-child{align-items:center;gap:7px;min-width:0;display:inline-flex}.connection-info-panel>div:first-child svg{color:var(--primary-dark)}.connection-info-panel dl{gap:6px;margin:0;display:grid}.connection-info-panel dl>div{grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.connection-info-panel dt{color:var(--muted);font-size:12px;font-weight:850}.connection-info-panel dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:900}.connection-info-panel p{color:var(--ink);margin:0;font-weight:900}.connection-info-panel small{color:var(--muted);font-weight:800}.connection-endpoint-grid{gap:8px;display:grid}.connection-endpoint-card{border:1px solid var(--line);background:#f8fbff;border-radius:8px;gap:5px;padding:9px;display:grid}.connection-endpoint-card>span{color:var(--muted);font-size:12px;font-weight:850}.connection-endpoint-card strong,.connection-endpoint-card p,.connection-endpoint-card small{overflow-wrap:anywhere}.connection-endpoint-card>div{gap:5px;display:grid}.connection-endpoint-card p.active{border-color:var(--primary);background:#ecfeff}.connection-note-editor{gap:5px;display:grid}.connection-note-editor span{color:var(--muted);font-size:12px;font-weight:850}.connection-note-editor textarea{resize:vertical;min-height:58px}.connection-style-editor{grid-template-columns:minmax(0,1fr) 86px;gap:8px;display:grid}.connection-style-editor label{color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.connection-style-editor select,.connection-style-editor input{border:1px solid var(--line);background:var(--surface-soft);min-height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-weight:850}.connection-endpoint-card p{border-top:1px dashed var(--line);gap:2px;padding-top:5px;display:grid}.connection-endpoint-card em{color:var(--muted);font-style:normal;font-weight:800}.scene-node-inspector{border:1px solid var(--line);border-left:4px solid var(--amber);width:min(330px,100% - 32px);box-shadow:var(--shadow-soft);z-index:7;background:#fffffff2;border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute;top:16px;right:16px}.scene-node-edit-panel{border:1px solid var(--line);border-left:4px solid var(--primary);width:min(380px,100% - 32px);box-shadow:var(--shadow-soft);z-index:13;background:#fffffff7;border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute;top:16px;right:16px}.floating-scene-panel{touch-action:none;max-width:calc(100% - 24px);max-height:calc(100% - 24px);padding:0;display:block;position:absolute;right:auto;overflow:hidden}.floating-scene-panel.connection-info-panel,.floating-scene-panel.scene-node-inspector,.floating-scene-panel.scene-node-edit-panel,.floating-scene-panel.scene-device-detail-panel{padding:0;top:auto;right:auto}.floating-scene-panel.connection-info-panel{z-index:18}.floating-scene-panel.scene-node-inspector{z-index:19}.floating-scene-panel.scene-node-edit-panel{z-index:20}.floating-scene-panel.scene-device-detail-panel{z-index:17}.floating-panel-header{border-bottom:1px solid var(--line);cursor:grab;background:#f8fcfff5;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;min-width:0;min-height:44px;padding:9px 10px;display:grid}.floating-panel-header:active{cursor:grabbing}.floating-panel-header>span{color:var(--primary-dark);justify-content:center;align-items:center;display:inline-flex}.floating-panel-header strong,.floating-panel-header small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.floating-panel-header strong{font-size:14px}.floating-panel-header small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:800}.floating-panel-body{gap:10px;max-height:min(520px,100vh - 250px);padding:12px;display:grid;overflow:auto}.floating-scene-panel.collapsed{width:min(280px,100% - 24px)!important}.floating-scene-panel.collapsed .floating-panel-header{border-bottom:0}.scene-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.scene-edit-grid label{color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.scene-edit-grid input,.scene-edit-grid select{border:1px solid var(--line);min-height:38px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:0 10px;font-weight:850}.scene-node-header strong,.scene-node-header small{display:block}.scene-node-header strong{font-size:15px}.scene-node-header small{color:var(--muted);margin-top:2px;font-weight:800}.scene-node-meta{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:1fr;gap:6px;padding:8px;display:grid}.scene-node-meta .detail-row{grid-template-columns:86px minmax(0,1fr);gap:8px;font-size:12px}.scene-node-meta .detail-row strong{overflow-wrap:anywhere;min-width:0}.scene-registration-form{gap:8px;display:grid}.scene-custom-endpoints{gap:8px;max-height:260px;display:grid;overflow:auto}.scene-registration-form label{color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.scene-registration-form input{border:1px solid var(--line);min-height:38px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:0 10px;font-weight:850}.scene-bound-state{min-height:34px;color:var(--success);background:#2fbf711a;border:1px solid #2fbf7152;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-weight:900;display:inline-flex}.component-library{overscroll-behavior:contain;border:1px solid var(--line);width:min(460px,100% - 32px);max-height:min(520px,100% - 32px);box-shadow:var(--shadow-soft);z-index:12;background:#ffffffed;border-radius:8px;padding:10px;position:absolute;bottom:16px;left:16px;overflow-y:auto}.component-library>strong{margin-bottom:8px;font-size:13px;display:block}.component-library>strong.library-subtitle{border-top:1px solid var(--line);margin-top:10px;margin-bottom:7px;padding-top:8px}.component-library>div{flex-wrap:wrap;gap:7px;display:flex}.component-library button{border:1px solid var(--line);background:var(--surface-soft);min-height:34px;color:var(--ink);border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-weight:850;display:inline-flex}.component-library button.active{border-color:var(--primary);color:var(--primary-dark);background:#ecfeff}.component-library button svg{color:var(--primary-dark)}.floor-shape-library .shape-preview{background:#ffffffa6;border:2px solid #89919e;width:20px;height:14px}.floor-shape-library .shape-preview.wall{background:#707784;border-color:#707784;height:4px}.floor-shape-library .shape-preview.door{background:0 0;border-color:currentColor #b78353 #b78353;border-top-style:none;border-top-width:0;border-radius:0 0 999px 999px;height:12px}.floor-shape-library .shape-preview.area{background:#b9dfae73;border-color:#98c68d}.component-library .library-item-config{border-top:1px solid var(--line);gap:10px;margin-top:10px;padding-top:10px;display:grid}.library-item-config .section-head.compact{justify-content:space-between;align-items:center;gap:10px;display:flex}.library-item-config .section-head.compact strong,.library-item-config .section-head.compact small{display:block}.library-item-config .section-head.compact small{color:var(--muted);font-size:11px;font-weight:800}.custom-object-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.custom-object-grid label{color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.custom-object-grid .custom-object-note{grid-column:1/-1}.custom-object-grid input,.custom-object-grid select{border:1px solid var(--line);background:var(--surface-soft);min-height:36px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-weight:850}.scene-connection-controls{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px;margin-top:10px;padding-top:10px;display:grid}.component-library .scene-connection-controls{display:grid}.scene-connection-controls label{color:var(--muted);gap:5px;font-size:12px;font-weight:850;display:grid}.scene-connection-controls select,.scene-connection-controls input{border:1px solid var(--line);background:var(--surface-soft);min-height:38px;color:var(--ink);border-radius:8px;padding:0 10px}.scene-connection-controls .button{min-height:38px}.scene-connection-controls small{color:var(--muted);align-self:center;font-weight:850}.connection-legend{border:1px solid var(--line);background:#ffffffe6;border-radius:8px;gap:8px;width:176px;padding:12px 14px;display:grid;position:absolute;top:86px;right:22px}.connection-legend-item{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;font-size:13px;display:grid}.connection-legend-item>span{border-top:3px solid #f28c28;height:0}.connection-legend-item.network>span{border-color:#1d7bd8}.connection-legend-item.rs485>span{border-color:#1d7bd8;border-top-style:dashed}.connection-legend-item.io>span{border-color:#8b5cf6;border-top-style:dotted}.sensor-legend{border:1px solid var(--line);background:#ffffffe6;border-radius:8px;gap:8px;padding:12px 14px;display:grid;position:absolute;bottom:24px;right:22px}.legend-item{grid-template-columns:22px minmax(0,1fr);align-items:center;gap:7px;font-size:14px;font-weight:850;display:grid}.legend-item svg{justify-self:center}.legend-item.humidityHigh svg{color:#26a9df}.legend-item.humidityLow svg{color:#8cb7d8}.legend-item.temperatureHigh svg{color:#e74c3c}.legend-item.temperatureLow svg{color:#60b9df}.topology{border:1px solid var(--line);background-color:#f4f9fd;background-image:linear-gradient(#d9e7f4 1px,#0000 1px),linear-gradient(90deg,#d9e7f4 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:44px 44px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:8px;height:620px;position:relative}.node{border:1px solid var(--line-strong);min-width:158px;box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;padding:10px 12px;position:absolute}.node:before{content:"";background:var(--green);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.node.warn:before{background:var(--amber)}.node.bad:before{background:var(--red)}.connector{transform-origin:0;background:#9fbad4;height:2px;position:absolute}.device-detail{border:1px solid var(--line);background:#fff;border-radius:8px}.device-detail h3{margin:4px 0 18px;font-size:19px}.detail-list{gap:11px;display:grid}.detail-row{grid-template-columns:94px minmax(0,1fr);gap:12px;font-size:14px;display:grid}.detail-row span:first-child{color:var(--muted);font-weight:850}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.endpoint-detail{gap:9px;margin-top:18px;display:grid}.endpoint-detail>strong{font-size:14px}.endpoint-detail-row{border:1px solid var(--line);border-left:4px solid var(--violet);background:var(--surface-soft);border-radius:8px;padding:9px 10px}.endpoint-detail-row.power{border-left-color:#f28c28}.endpoint-detail-row.network{border-left-color:#2a7ecb}.endpoint-detail-row.rs485{border-left-color:#2fbf71}.endpoint-detail-row span,.endpoint-detail-row p,.endpoint-detail-row small{overflow-wrap:anywhere;display:block}.endpoint-detail-row span{color:var(--muted);font-size:12px;font-weight:900}.endpoint-detail-row p{margin:3px 0;font-weight:900}.endpoint-detail-row small{color:var(--muted)}.sensor-device-detail{gap:9px;margin-top:18px;display:grid}.sensor-device-detail>strong{font-size:14px}.sensor-device-row,.sensor-device-empty{border:1px solid var(--line);background:var(--surface-soft);border-left:4px solid #139a8f;border-radius:8px;padding:10px}.sensor-device-row{gap:8px;display:grid}.sensor-device-row span,.sensor-device-row strong,.sensor-device-row small,.sensor-device-row p{overflow-wrap:anywhere;display:block}.sensor-device-row span{color:var(--muted);font-size:12px;font-weight:900}.sensor-device-row strong{margin-top:3px;font-size:14px}.sensor-device-row small,.sensor-device-empty{color:var(--muted)}.sensor-device-row p{margin:0;font-weight:900}.sensor-accordion-item{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;overflow:hidden}.sensor-accordion-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;padding:10px;display:grid}.sensor-accordion-trigger span,.sensor-accordion-trigger strong,.sensor-accordion-trigger small,.sensor-accordion-trigger b,.sensor-accordion-reading{overflow-wrap:anywhere;min-width:0;display:block}.sensor-accordion-trigger small{color:var(--muted);font-size:12px}.sensor-accordion-reading{grid-column:2;gap:3px;display:grid}.sensor-accordion-reading b{color:#0f766e;font-size:12px}.sensor-accordion-reading small{color:var(--muted);font-size:11px;font-weight:800}.sensor-accordion-body{border-top:1px solid var(--line);background:#fff;gap:8px;padding:10px;display:grid}.sensor-value-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.sensor-value-chip,.sensor-value-empty{border:1px solid var(--line);background:#f7fbfc;border-radius:8px;padding:8px}.sensor-value-chip span,.sensor-value-chip strong{overflow-wrap:anywhere;display:block}.sensor-value-chip span,.sensor-value-empty{color:var(--muted);font-size:12px;font-weight:800}.sensor-value-chip strong{margin-top:3px}.access-panel{gap:10px;padding:16px;display:grid}.access-grid{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(180px,.7fr) repeat(3,minmax(190px,1fr));align-items:stretch;gap:10px;padding:12px;display:grid}.access-head{background:var(--surface-soft)}.permission-cell{flex-wrap:wrap;align-content:flex-start;gap:7px;display:flex}.permission-toggle{border:1px solid var(--line);background:var(--surface-soft);min-height:30px;color:var(--muted);border-radius:8px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.permission-toggle svg{opacity:.34}.permission-toggle.active{color:var(--primary-dark);background:#33bdb81a;border-color:#33bdb86b}.permission-toggle.active svg{opacity:1}.user-row{grid-template-columns:24px 4px minmax(170px,1fr) minmax(190px,1fr) minmax(190px,1fr) minmax(110px,.55fr) minmax(105px,.55fr)}.audit-row{grid-template-columns:24px 4px minmax(180px,1.1fr) repeat(auto-fit,minmax(150px,1fr))}.split .device-status-row{grid-template-columns:24px 4px minmax(170px,1fr) minmax(120px,.7fr) minmax(170px,.9fr);min-height:96px}.split .device-status-row>:nth-child(4){grid-column:4}.split .device-status-row>:nth-child(5){grid-column:5}.split .device-status-row>:nth-child(6){grid-area:2/3}.split .device-status-row>:nth-child(7){grid-area:2/4}.split .device-status-row>:nth-child(8){grid-area:2/5}.device-grid>.row-list .device-status-row{grid-template-columns:24px 4px minmax(0,1fr);min-height:auto}.device-grid>.row-list .device-status-row>:nth-child(n+4){grid-column:3;padding-left:0}
.site-map-overview{isolation:isolate;grid-template-rows:auto minmax(540px,1fr);min-height:620px;display:grid}.site-map-toolbar{z-index:4;background:#fff;position:relative}.site-map-canvas,.site-location-map{background:#e9f0f4;width:100%;min-height:100%}.site-map-overview .maplibregl-map,.site-location-picker .maplibregl-map{font-family:inherit}.site-map-loading,.site-map-empty,.site-location-callout,.site-map-unlocated{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border:1px solid #64748b3d;position:absolute;box-shadow:0 12px 34px #0f172a24}.site-map-loading{color:var(--muted);border-radius:8px;padding:10px 14px;font-weight:900;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.site-map-empty{width:min(420px,100% - 40px);min-height:180px;color:var(--muted);text-align:center;border-style:dashed;border-radius:8px;align-content:center;place-items:center;gap:10px;padding:22px;display:grid;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.site-map-empty strong{color:var(--ink);font-size:18px}.site-map-unlocated{color:#7c4a03;border-radius:8px;align-items:center;gap:8px;max-width:min(520px,100% - 28px);min-height:38px;padding:8px 12px;font-size:12px;font-weight:850;display:flex;bottom:30px;right:14px}.site-map-marker{--site-marker-color:#147b77;appearance:none;color:inherit;cursor:pointer;filter:drop-shadow(0 7px 10px #0f172a33);background:0 0;border:0;justify-items:center;gap:3px;padding:0;display:grid}.site-map-marker-pin{background:var(--site-marker-color);color:#fff;border:3px solid #fff;border-radius:50% 50% 50% 12px;place-items:center;width:42px;height:42px;transition:transform .16s,box-shadow .16s;display:grid;transform:rotate(-45deg)}.site-map-marker-pin svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px;transform:rotate(45deg)}.site-map-marker:hover .site-map-marker-pin,.site-map-marker.selected .site-map-marker-pin{box-shadow:0 0 0 5px color-mix(in srgb, var(--site-marker-color) 24%, transparent);transform:rotate(-45deg)scale(1.12)}.site-map-marker-label{border:2px solid var(--site-marker-color);color:#15283b;text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:999px;max-width:190px;padding:4px 9px;font-size:12px;font-weight:950;overflow:hidden}.maplibregl-popup-content{border-radius:8px;padding:0;overflow:hidden;box-shadow:0 18px 48px #0f172a3d}.maplibregl-popup-close-button{z-index:2;color:#fff;width:30px;height:30px;font-size:21px}.site-map-popup{--site-marker-color:#147b77;border-top:5px solid var(--site-marker-color);gap:10px;min-width:250px;padding:15px;display:grid}.site-map-popup-heading{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;display:grid}.site-map-popup-heading>span{background:var(--site-marker-color);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.site-map-popup-heading svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.site-map-popup-heading strong{color:var(--ink);overflow-wrap:anywhere;padding-right:18px;font-size:15px}.site-map-popup p{color:var(--muted);overflow-wrap:anywhere;margin:0;line-height:1.55}.site-map-popup-count{background:color-mix(in srgb, var(--site-marker-color) 12%, white);min-height:34px;color:var(--site-marker-color);border-radius:8px;align-items:center;padding:0 10px;font-weight:950;display:flex}.site-map-popup .button{justify-content:center}.site-location-modal{width:min(1120px,100%)}.site-location-section{position:relative}.site-form-hint{color:var(--muted);font-size:13px;font-weight:800}.site-location-picker{border:1px solid var(--line);border-radius:8px;min-height:390px;position:relative;overflow:hidden}.site-location-map{min-height:390px}.site-location-callout{width:max-content;max-width:calc(100% - 120px);color:var(--primary-dark);text-align:center;pointer-events:none;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:900;inset:16px auto auto 50%;transform:translate(-50%)}.site-coordinate-readout{z-index:5;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#fffffff2;border:1px solid #64748b42;border-radius:8px;grid-template-columns:repeat(2,minmax(112px,1fr));gap:8px 14px;min-width:340px;max-width:calc(100% - 24px);padding:10px 12px;display:grid;position:absolute;bottom:24px;left:12px;box-shadow:0 12px 32px #0f172a29}.site-coordinate-readout span,.site-coordinate-readout small,.site-coordinate-readout strong{display:block}.site-coordinate-readout small{color:var(--muted);font-size:10px;font-weight:850}.site-coordinate-readout strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.site-coordinate-readout em{color:var(--primary-dark);grid-column:1/-1;font-size:11px;font-style:normal;font-weight:900}.site-marker-style-grid{grid-template-columns:minmax(260px,.7fr) minmax(420px,1.3fr);gap:18px;display:grid}.site-marker-style-grid>div{gap:8px;display:grid}.site-marker-style-label{color:var(--muted);font-size:12px;font-weight:900}.site-marker-color-options,.site-marker-icon-options{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.site-marker-color-options button{--marker-option-color:#147b77;background:var(--marker-option-color);width:40px;height:40px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:3px solid #fff;border-radius:50%}.site-marker-color-options button.active{box-shadow:0 0 0 3px color-mix(in srgb, var(--marker-option-color) 42%, white);transform:scale(1.08)}.site-marker-icon-options button{border:1px solid var(--line);background:var(--surface-soft);min-height:40px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-weight:850;display:inline-flex}.site-marker-icon-options button.active{border-color:var(--primary);color:var(--primary-dark);background:#33bdb81c;box-shadow:0 0 0 2px #33bdb821}@media (max-width:900px){.site-map-overview{grid-template-rows:auto minmax(480px,1fr)}.site-marker-style-grid{grid-template-columns:1fr}}@media (max-width:620px){.site-location-modal{padding:16px}.site-location-picker,.site-location-map{min-height:340px}.site-coordinate-readout{min-width:0}.site-location-callout{border-radius:8px;max-width:calc(100% - 32px)}.site-map-marker-label{max-width:126px}}
.modal-backdrop{z-index:50;background:#0f172a94;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:min(720px,100%);max-height:min(860px,100vh - 48px);padding:24px;overflow:auto;box-shadow:0 30px 80px #0f172a47}.modal h3{margin:0 0 18px;font-size:24px}.modal-backdrop.drawer-backdrop{background:#0f172a57;place-items:stretch end;padding:0;animation:.22s ease-out both drawer-backdrop-in;overflow:hidden}.modal-backdrop.drawer-backdrop.is-closing{animation:.22s ease-in both drawer-backdrop-out}.modal.drawer{border-radius:18px 0 0 18px;flex-direction:column;width:min(820px,100vw - 72px);height:100%;max-height:100vh;padding:0;animation:.26s cubic-bezier(.22,1,.36,1) both product-master-drawer-in;display:flex;overflow:hidden;box-shadow:-24px 0 64px #0f172a3d}.modal.drawer.is-closing{animation:.22s ease-in both product-master-drawer-out}.drawer-modal-header{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f1fbfa 0%,#f7f9ff 100%);flex:none;justify-content:space-between;align-items:center;gap:18px;min-height:82px;padding:18px 22px;display:flex}.drawer-modal-header span{color:var(--primary-dark);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900;display:block}.drawer-modal-header h3{margin:4px 0 0;font-size:22px}.drawer-collapse-button{flex:none}.drawer-modal-body{overscroll-behavior:contain;min-height:0;padding:20px 22px 24px;overflow:auto}.drawer-modal-body .modal-actions{z-index:3;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;margin:20px -22px -24px;padding:14px 22px;position:sticky;bottom:-24px}@keyframes product-master-drawer-in{0%{opacity:.72;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes product-master-drawer-out{0%{opacity:1;transform:translate(0)}to{opacity:.72;transform:translate(100%)}}@keyframes drawer-backdrop-in{0%{background:#0f172a00}to{background:#0f172a57}}@keyframes drawer-backdrop-out{0%{background:#0f172a57}to{background:#0f172a00}}@media (max-width:760px){.modal.drawer{border-radius:0;width:100%}.drawer-modal-header{align-items:flex-start;padding:16px}.drawer-modal-body{padding:16px}.drawer-modal-body .modal-actions{margin:18px -16px -16px;padding:12px 16px;bottom:-16px}}@media (max-width:520px){.drawer-collapse-button{min-width:42px;padding-inline:10px;font-size:0}}@media (prefers-reduced-motion:reduce){.modal-backdrop.drawer-backdrop,.modal-backdrop.drawer-backdrop.is-closing,.modal.drawer,.modal.drawer.is-closing{animation-duration:1ms}}.organization-create-modal{width:min(840px,100%)}.organization-create-intro{color:#234057;background:#f0fbfa;border:1px solid #b8e3e1;border-radius:10px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.organization-create-intro>svg{color:#118b87;flex:none;margin-top:2px}.organization-create-intro>div{gap:5px;display:grid}.organization-create-intro strong{color:#102a43;font-size:15px}.organization-create-intro p{color:#45627a;margin:0;font-size:13px;font-weight:730;line-height:1.55}.organization-create-intro span{color:#5a6b7e;font-size:12px;font-weight:800}.organization-create-intro span b{color:#c4322e;font-size:15px}.organization-create-intro span i{color:#64748b;margin-left:12px;font-style:normal}.confirm-message{color:var(--muted);margin:0;font-weight:800;line-height:1.6}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.form-section{gap:12px;margin-top:16px;display:grid}.form-section:first-child{margin-top:0}.form-section>strong{color:var(--ink);font-size:15px}.organization-form-section-heading{border-bottom:1px solid #e5edf5;justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:8px;display:flex}.organization-form-section-heading strong{color:var(--ink);font-size:15px}.organization-form-section-heading span{color:var(--muted);text-align:right;font-size:12px;font-weight:760}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head>div{gap:3px;display:grid}.section-head small{color:var(--muted);font-size:12px;font-weight:760}.count-pill{border:1px solid var(--line);background:#fff;border-radius:999px;place-items:center;min-width:28px;height:24px;padding:0 8px;font-weight:900;display:inline-grid}.endpoint-editor{border-top:1px solid var(--line);padding-top:16px}.endpoint-row{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;padding:10px;display:grid}.form-field{align-content:start;align-self:start;gap:6px;min-width:0;display:grid;position:relative}.form-field.full{grid-column:1/-1}.selected-admin-summary{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;align-items:center;gap:10px;min-height:54px;padding:10px 12px;display:flex}.selected-admin-summary.full{grid-column:1/-1}.selected-admin-summary svg{color:var(--primary-dark);flex:none}.selected-admin-summary div{gap:2px;min-width:0;display:grid}.selected-admin-summary strong,.selected-admin-summary span{overflow-wrap:anywhere}.selected-admin-summary span{color:var(--muted);font-size:13px;font-weight:800}.form-field label,.form-field>span{color:#475a78;font-size:13px;font-weight:850}.form-label-row{min-height:var(--control-label-height);justify-content:space-between;align-items:center;gap:8px;display:flex}.form-label-row label{align-items:center;gap:5px;min-width:0;display:inline-flex}.form-field>span:first-child{min-height:var(--control-label-height);align-items:center;display:flex}.required-mark{color:#c4322e;font-size:17px;font-weight:950;line-height:1}.optional-mark{color:#64748b;background:#edf2f7;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:850}.field-help{z-index:4;flex:none;display:inline-grid;position:relative}.field-help-trigger{color:#667a96;cursor:help;background:0 0;border:0;border-radius:999px;place-items:center;width:24px;height:24px;padding:0;display:grid}.field-help-trigger:hover,.field-help-trigger:focus-visible{color:#087f7b;background:#e2f5f3;outline:none}.field-help-tooltip{color:#fff;opacity:0;pointer-events:none;visibility:hidden;z-index:80;background:#102a43;border-radius:8px;width:min(330px,100vw - 64px);padding:10px 12px;font-size:12px;font-weight:720;line-height:1.55;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px);box-shadow:0 12px 30px #0f172a38}.field-help-tooltip:after{content:"";border:6px solid #0000;border-top-color:#102a43;position:absolute;top:100%;right:7px}.field-help:hover .field-help-tooltip,.field-help:focus-within .field-help-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.field-helper,.field-validation-error{font-size:11px;font-weight:760;line-height:1.45}.field-helper{color:#64748b}.field-validation-error{color:#b42318}.form-field.has-error input,.form-field.has-error textarea,.form-field.has-error .searchable-select-control input{background:#fff8f7;border-color:#dc665f}.organization-submit-error{margin-top:16px}.input-wrap{height:var(--control-height);position:relative}.input-wrap .field-leading-icon{color:var(--primary-dark);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-wrap input{width:100%}.legacy-native-select{display:none}.form-field input,.form-field select,.form-field textarea{min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-soft);color:var(--ink);padding:10px var(--control-padding-inline)}.form-field input:not([type=checkbox]):not([type=radio]):not([type=color]),.form-field select,.searchable-select-control{height:var(--control-height)}.checkbox-field{align-content:start}.inline-check{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-weight:850;display:flex}.inline-check input{width:18px;height:18px;min-height:18px;accent-color:var(--primary)}.searchable-select{z-index:2}.searchable-select:focus-within{z-index:30}.searchable-select-control{position:relative}.searchable-select-control input{cursor:pointer;width:100%;padding-right:44px}.searchable-select-toggle{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.searchable-select-toggle:hover{color:var(--primary-dark);background:#eaf2fb}.searchable-select-menu{z-index:60;border:1px solid var(--line-strong);max-height:240px;box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}.searchable-select-search{border:1px solid var(--line);background:var(--surface-soft);min-height:38px;color:var(--primary-dark);border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:0 10px;display:flex}.searchable-select-search input{width:100%;min-height:36px;color:var(--ink);background:0 0;border:0;outline:none;padding:0}.searchable-select-search input::placeholder{color:var(--muted)}.searchable-select-options{max-height:184px;overflow:auto}.searchable-select-options button{width:100%;min-height:38px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;padding:0 10px;font-weight:850;display:flex}.searchable-select-options button:hover,.searchable-select-options button.active{color:var(--primary-dark);background:#edf5fb}.searchable-multi-select .searchable-select-options button{gap:8px}.multi-select-chip-list{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.multi-select-chip{max-width:100%;min-height:28px;color:var(--primary-dark);background:#eefbfe;border:1px solid #b9e7f1;border-radius:8px;align-items:center;gap:6px;padding:4px 7px 4px 9px;font-size:12px;font-weight:900;display:inline-flex}.multi-select-chip button{width:20px;height:20px;color:var(--primary-dark);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.multi-select-chip button:hover:not(:disabled){background:#d9f4fa}.multi-select-chip button:disabled{opacity:.38;cursor:not-allowed}.searchable-select-empty{min-height:38px;color:var(--muted);align-items:center;padding:0 10px;font-weight:800;display:flex}.input-wrap input{padding-left:40px}.input-wrap.has-password input{padding-right:44px}.password-toggle{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:var(--primary-dark);background:#eaf2fb}.password-toggle:focus-visible{outline:3px solid #33bdb82e}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.search:focus{border-color:var(--primary);outline:3px solid #33bdb829}.form-field textarea{resize:vertical;height:auto;min-height:92px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.empty{min-height:320px;color:var(--muted);border:1px dashed var(--line-strong);background:var(--surface-soft);border-radius:8px;place-items:center;display:grid}
.ops-grid{gap:16px;margin-top:16px;display:grid}.ops-grid.two{grid-template-columns:minmax(0,1fr) minmax(360px,.85fr)}.ops-grid.single{grid-template-columns:minmax(0,1fr)}.telemetry-metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.ops-panel{min-width:0;padding:16px}.ops-row-list{flex-direction:column;gap:10px;display:flex}.ops-row-list.compact{max-height:520px;overflow:auto}.ops-record-row{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:12px minmax(180px,.8fr) minmax(0,1.6fr);align-items:start;gap:12px;min-width:0;padding:12px;display:grid}.ops-record-row.route,.ops-record-row.cluster{grid-template-columns:minmax(180px,1fr) minmax(120px,.45fr)}.ops-record-row>*{min-width:0}.ops-record-row.service{grid-template-columns:12px minmax(150px,.8fr) minmax(260px,1.6fr) auto}.system-service-actions{justify-content:flex-end;gap:6px;display:flex}.service-status-pill,.telemetry-time-status{margin-top:8px;display:inline-flex}.ops-record-main{min-width:0}.ops-section-title,.ops-record-row strong,.ops-record-row small,.ops-record-row span{overflow-wrap:anywhere}.ops-record-row small{color:var(--muted);margin-top:4px;font-weight:750;display:block}.ops-dot{background:var(--muted);border-radius:999px;width:10px;height:10px;margin-top:5px}.ops-dot.ok{background:var(--green)}.ops-dot.warn{background:var(--amber)}.ops-dot.bad{background:var(--red)}.ops-status-text{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.ops-detail{margin:0}.ops-detail dt{color:var(--muted);font-size:12px;font-weight:850;line-height:1.25;display:block}.ops-detail dd{overflow-wrap:anywhere;margin-top:4px;margin-left:0;font-size:13px;font-weight:850;line-height:1.35;display:block}.ops-detail-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px 12px;min-width:0;display:grid}.ops-state{border:1px dashed var(--line-strong);min-height:58px;color:var(--muted);background:#f8fbfc;border-radius:8px;align-items:center;gap:10px;margin-top:12px;padding:12px;display:flex}.ops-state.error{color:var(--red);background:#fff7f7;border-style:solid;border-color:#e5484d47;justify-content:space-between}.ops-state.error div{gap:4px;min-width:0;display:grid}.ops-state.error span{color:var(--ink);overflow-wrap:anywhere}.system-version-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.system-metric.warn:before{background:var(--amber)}.telemetry-metric:before{background:var(--blue)}.telemetry-details .ops-detail:last-child{grid-column:1/-1}.operations-scope-panel{margin-top:16px;padding:16px}.operations-org-tree{grid-template-columns:minmax(0,1fr);gap:8px;max-height:280px;display:grid;overflow:auto}.operations-org-tree .scope-row.organization{padding-left:calc(8px + var(--depth) * 20px)}.operations-org-tree .scope-row.organization>span:last-child{min-width:0}.notification-groups-workspace .ops-record-row{cursor:pointer}.notification-group-row{grid-template-columns:12px minmax(160px,.7fr) minmax(0,1.2fr) 44px}.notification-group-row.active{border-color:#2a7bdd6b;box-shadow:0 0 0 2px #2a7bdd14}.notification-group-detail{align-content:start;gap:16px;display:grid}.notification-group-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.notification-group-form label{gap:6px;min-width:0;display:grid}.notification-group-form label span{color:var(--muted);font-size:12px;font-weight:850}.notification-group-form input,.notification-group-form textarea,.member-add-row select{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:var(--surface);font:inherit;border-radius:8px;padding:10px 12px}.notification-group-form input:not([type=checkbox]):not([type=radio]),.member-add-row select{min-height:var(--control-height)}.notification-group-form textarea{resize:vertical}.notification-group-form .full,.notification-group-form .form-actions{grid-column:1/-1}.notification-group-form .toggle-line{align-items:center;gap:10px;min-height:42px;display:flex}.notification-group-form .toggle-line input{width:18px;height:18px}.notification-members{border-top:1px solid var(--line);gap:12px;padding-top:16px;display:grid}.member-add-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.member-row{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto 40px;align-items:center;gap:10px;padding:10px;display:grid}.member-row strong,.member-row small{overflow-wrap:anywhere}.member-row small{color:var(--muted);margin-top:3px;display:block}.status-pill.neutral{color:var(--ink);background:#eef3f8}.status-pill.bad{color:var(--red);background:#fff2f2}.operations-runtime{margin-top:16px}.operations-runtime-toolbar{align-items:end}.operations-runtime-toolbar h3{margin:0}.ops-runtime-scope{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;font-weight:850;display:block}.ops-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.runtime-summary{margin-top:12px}.runtime-metric{grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:14px;display:grid}.runtime-metric svg{color:var(--blue)}.runtime-metric span{color:var(--muted);overflow-wrap:anywhere;font-size:12px;font-weight:850}.runtime-metric strong{font-size:22px;line-height:1}.runtime-workspace{grid-template-columns:minmax(320px,1.05fr) minmax(280px,.8fr) minmax(300px,.9fr);align-items:start}.runtime-panel{gap:12px;display:grid}.runtime-form{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;padding:12px;display:grid}.runtime-form label{gap:6px;min-width:0;display:grid}.runtime-form label span{color:var(--muted);font-size:12px;font-weight:850}.runtime-form input,.runtime-form select,.runtime-form textarea,.runtime-panel select{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:var(--surface);font:inherit;border-radius:8px;padding:9px 10px}.runtime-form input:not([type=checkbox]):not([type=radio]),.runtime-form select,.runtime-panel select{min-height:var(--control-height)}.runtime-form .full,.runtime-actions.full{grid-column:1/-1}.runtime-form .toggle-line{align-items:center;gap:10px;min-height:40px;display:flex}.runtime-form .toggle-line input{width:18px;height:18px}.code-area{resize:vertical;min-height:96px;font-family:var(--font-mono,"Cascadia Mono", Consolas, monospace);font-size:12px;line-height:1.45}.runtime-actions,.runtime-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.button.compact{min-height:32px;padding:6px 10px}.runtime-list{max-height:620px}.runtime-row{cursor:pointer;grid-template-columns:12px minmax(150px,.8fr) minmax(0,1.2fr) minmax(80px,auto)}.runtime-row.active{border-color:#2a7bdd6b;box-shadow:0 0 0 2px #2a7bdd14}@media (max-width:1080px){.ops-grid.two,.ops-grid.three,.runtime-workspace{grid-template-columns:1fr}}@media (max-width:720px){.operations-scope-panel>.toolbar{flex-direction:column;align-items:stretch}.operations-scope-panel>.toolbar .search{width:100%;min-width:0}.ops-record-row,.ops-record-row.route,.ops-record-row.cluster,.ops-record-row.service,.notification-group-row,.runtime-row,.member-row,.member-add-row,.notification-group-form,.runtime-form,.runtime-metric{grid-template-columns:1fr}.ops-dot{display:none}.system-version-grid{grid-template-columns:1fr}.telemetry-details .ops-detail:last-child{grid-column:auto}}
.content-page-actions{grid-template-columns:minmax(220px,260px) max-content max-content;align-items:end;gap:10px;display:grid}.content-page-actions .button{white-space:nowrap}.content-scope-select{gap:4px;min-width:min(260px,100%);display:grid}.content-scope-select span{color:var(--muted);font-size:11px;font-weight:850}.content-scope-select select,.content-filter-bar select{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);font:inherit;border-radius:8px;padding:0 11px;font-weight:750}.content-metrics{margin-bottom:16px}.content-tabs{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;gap:4px;margin-bottom:16px;padding:4px;display:inline-flex}.content-tabs button{min-height:var(--action-height);color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;padding:0 13px;font-weight:850;display:inline-flex}.content-tabs button:hover{color:var(--ink);background:var(--surface-hover)}.content-tabs button.active{background:var(--surface-selected);color:var(--primary-dark);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 52%, var(--line))}.content-workspace{grid-template-columns:minmax(380px,.9fr) minmax(440px,1.1fr);align-items:stretch;gap:16px;display:grid}.content-list-panel,.content-detail-panel{min-width:0;padding:16px}.content-filter-bar{grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr) minmax(140px,.45fr);align-items:start;gap:8px;margin-bottom:14px;display:grid}.content-search{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface-soft);min-width:0;color:var(--primary-dark);border-radius:8px;align-items:center;gap:8px;padding:0 11px;display:flex}.content-search input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none}.content-record-list{gap:8px;max-height:690px;padding-right:2px;display:grid;overflow:auto}.content-record{border:1px solid var(--line);background:var(--surface-soft);width:100%;min-width:0;color:var(--ink);text-align:left;border-radius:8px;grid-template-columns:5px minmax(150px,1fr) auto;align-items:center;gap:11px;padding:11px;display:grid}.content-record:hover{border-color:var(--line-strong);background:var(--surface-hover)}.content-record.active{border-color:color-mix(in srgb, var(--primary) 62%, var(--line));background:var(--surface-selected);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 10%, transparent)}.content-status-marker{background:var(--muted);border-radius:4px;width:5px;height:42px}.content-status-marker.pendingreview{background:var(--amber)}.content-status-marker.approved{background:var(--green)}.content-status-marker.rejected{background:var(--red)}.content-record-copy,.content-record-meta{min-width:0}.content-record-copy strong,.content-record-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.content-record-copy small{color:var(--muted);margin-top:4px;font-size:12px;font-weight:720}.content-record-copy .content-record-audience{color:var(--ink)}.content-record-meta{justify-content:flex-end;align-items:center;gap:7px;display:flex}.content-record-meta small{color:var(--muted);align-items:center;gap:4px;font-weight:800;display:inline-flex}.content-detail-panel{min-height:0}.content-announcement-detail,.content-category-detail{gap:18px;display:grid}.content-detail-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:16px;display:flex}.content-detail-head>div{min-width:0}.content-detail-head h3{overflow-wrap:anywhere;margin:5px 0 0;font-size:20px;line-height:1.3}.content-eyebrow{color:var(--primary-dark);font-size:12px;font-weight:900}.content-detail-badges,.content-detail-actions,.content-secondary-actions{flex-wrap:wrap;gap:8px;display:flex}.content-detail-badges{margin-top:10px}.content-detail-actions{justify-content:flex-end}.content-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.content-detail-grid>div{border-left:3px solid var(--line-strong);min-width:0;padding-left:10px}.content-detail-grid .content-detail-audience{border:1px solid color-mix(in srgb, var(--primary) 34%, var(--line));border-left:3px solid var(--primary);background:var(--surface-soft);border-radius:10px;grid-column:1/-1;padding:9px 11px}.content-detail-grid dt{color:var(--muted);font-size:11px;font-weight:850}.content-detail-grid dd{overflow-wrap:anywhere;margin:4px 0 0;font-weight:850}.content-body-copy{gap:8px;display:grid}.content-body-copy p{border:1px solid var(--line);background:var(--surface-soft);max-height:230px;color:var(--ink);white-space:pre-wrap;border-radius:8px;margin:0;padding:14px;line-height:1.65;overflow:auto}.content-reject-note{border:1px solid color-mix(in srgb, var(--red) 32%, var(--line));background:var(--status-danger-surface);color:var(--status-danger-ink);border-radius:8px;gap:4px;padding:11px 12px;display:grid}.content-tag-list{color:var(--ink);flex-wrap:wrap;align-items:center;gap:7px;display:flex}.content-tag-list span{border:1px solid color-mix(in srgb, var(--primary) 38%, var(--line));background:var(--surface-selected);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:850}.content-tag-list small{color:var(--muted)}.content-attachments{border-top:1px solid var(--line);gap:10px;padding-top:16px;display:grid}.content-attachment-list{gap:7px;display:grid}.content-attachment-row{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:24px minmax(0,1fr) 40px;align-items:center;gap:8px;padding:9px;display:grid}.content-attachment-row strong,.content-attachment-row small{overflow-wrap:anywhere;display:block}.content-attachment-row small{color:var(--muted);margin-top:2px}.content-inline-empty,.content-state{color:var(--muted);font-weight:750}.content-inline-empty{border:1px dashed var(--line-strong);border-radius:8px;padding:12px}.content-state{text-align:center;place-content:center;justify-items:center;gap:8px;min-height:220px;padding:24px;display:grid}.content-state svg{color:var(--primary-dark)}.content-state span{max-width:340px;font-size:13px}.content-secondary-actions{border-top:1px solid var(--line);justify-content:flex-end;padding-top:14px}.content-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed}.review-actions{flex-wrap:wrap}.announcement-audience{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;grid-column:1/-1;gap:12px;padding:14px;display:grid}.announcement-audience-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.announcement-audience-head>div{gap:3px;min-width:0;display:grid}.announcement-audience-head strong{color:var(--ink);font-size:14px}.announcement-audience-head small{color:var(--muted);line-height:1.45}.announcement-audience-modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.announcement-audience-card{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:92px;color:var(--muted);text-align:left;border-radius:9px;grid-template-columns:26px minmax(0,1fr);align-content:start;gap:9px;padding:12px;display:grid}.announcement-audience-card:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-hover);color:var(--ink)}.announcement-audience-card.active{border-color:color-mix(in srgb, var(--primary) 68%, var(--line));background:var(--surface-selected);color:var(--primary-dark);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 10%, transparent)}.announcement-audience-card:disabled{cursor:not-allowed;opacity:.5}.announcement-audience-card>span{gap:4px;min-width:0;display:grid}.announcement-audience-card strong,.announcement-audience-card small{overflow-wrap:anywhere}.announcement-audience-card strong{color:var(--ink);font-size:13px}.announcement-audience-card small{color:var(--muted);font-size:11px;line-height:1.4}.announcement-group-target-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;display:grid}.announcement-group-load-error{grid-column:1/-1;margin:0}.announcement-audience-owner-lock{min-width:0;min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:4px;padding:9px 11px;display:grid}.announcement-audience-owner-lock span{color:var(--muted);font-size:11px;font-weight:850}.announcement-audience-owner-lock strong{min-width:0;color:var(--ink);overflow-wrap:anywhere}@media (max-width:1180px){.content-workspace{grid-template-columns:1fr}.content-record-list{max-height:480px}}@media (max-width:720px){.content-page-actions{width:100%}.page-head:has(.content-page-actions) .actions{width:100%}.content-page-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.content-page-actions .content-scope-select{grid-column:1/-1}.content-page-actions .button,.content-scope-select,.content-scope-select select,.content-tabs,.content-tabs button,.content-detail-actions,.content-detail-actions .button,.content-secondary-actions,.content-secondary-actions .button{width:100%}.content-filter-bar,.content-record,.content-detail-grid,.content-attachment-row{grid-template-columns:1fr}.content-record-meta,.content-detail-actions{justify-content:flex-start}.content-status-marker{width:42px;height:5px}.content-record-copy strong,.content-record-copy small{white-space:normal;overflow-wrap:anywhere}.content-detail-head{flex-direction:column}.content-attachment-row .icon-button{justify-self:end}.announcement-audience-head{flex-direction:column}.announcement-audience-modes,.announcement-group-target-grid{grid-template-columns:1fr}}
