:root{font-family:IBM Plex Sans,system-ui,sans-serif;color:#1a1a1a;background:#f6f4f1;color-scheme:light}*{box-sizing:border-box}body{margin:0}.app-root,.app-main,#root,html,body{height:100%}.app-root{display:flex;flex-direction:column;height:100%;min-height:0}.app-main{display:block;flex:1 1 auto;min-height:0;overflow:hidden}.app-main-module{height:100%;overflow:auto;padding:12px}.app-main-qf{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.app-new-version-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#1a6e46;color:#fff;font-size:13px;font-weight:600}.app-module-nav{height:56px;padding:10px 12px 10px 60px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #d6d2c6;background:#fff;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;background-image:linear-gradient(to right,#fff 40%,#fff0),linear-gradient(to left,#fff 40%,#fff0),linear-gradient(to right,#0f172a2e,#0f172a00),linear-gradient(to left,#0f172a2e,#0f172a00);background-repeat:no-repeat;background-size:24px 100%,24px 100%,10px 100%,10px 100%;background-position:left center,right center,left center,right center;background-attachment:local,local,scroll,scroll}.app-module-nav::-webkit-scrollbar{display:none}body.editor-zen .app-module-nav,body.module-nav-collapsed .app-module-nav{display:none}.app-module-nav.dev-build{background-color:#fff}.app-module-nav-tabs{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.app-module-nav-tabs>button{flex-shrink:0}.app-module-nav-meta{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.app-module-build{font-size:13px;font-weight:700;color:#4d463a;letter-spacing:.02em;white-space:nowrap;background:#f4efe6;border:1px solid #d8d1c4;border-radius:999px;padding:7px 14px;cursor:pointer}.app-module-build.localhost{color:#fff;background:#dc2626;border-color:#b91c1c}.app-global-user-menu .header-user-dropdown{z-index:60}.module-root{display:grid;gap:12px}.module-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.crm-sticky-header{position:sticky;top:0;z-index:5;background:#f6f4f1;padding-bottom:8px}.module-header-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px}.module-header-grid>.module-actions,.module-header-grid>.module-tabs{justify-self:end}.module-tabs{display:inline-flex;gap:6px;flex-wrap:wrap}.module-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.module-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.module-card{border:1px solid #e2dfd8;border-radius:10px;background:#fff;padding:10px;display:grid;gap:8px}.module-card-inline{border:1px dashed #d9d4c9;border-radius:8px;background:#faf9f6;padding:8px;display:grid;gap:4px}.module-form-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.module-field{display:grid;gap:4px;min-width:220px;flex:1}.module-list{display:grid;gap:4px;max-height:320px;overflow:auto}.module-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid #efece6;border-radius:8px;background:#faf9f6;padding:6px 8px}.module-list-row.active{border-color:#1f2a44;background:#eef2ff}.stock-product-row{grid-template-columns:auto minmax(0,1fr) minmax(0,10ch) minmax(0,12ch) minmax(0,12ch) minmax(0,12ch) auto auto auto}.crm-project-row{grid-template-columns:minmax(0,1fr) auto;gap:6px}.crm-project-name{min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;justify-content:flex-start;padding-inline:8px}.crm-project-status{width:44px;text-align:left;white-space:nowrap}.crm-project-empty-action{width:80px;height:28px;display:inline-block}.crm-project-actions{display:grid;width:170px;grid-template-columns:44px 80px 38px;align-items:center;justify-items:start;gap:2px}.crm-project-row-inline-actions{display:inline-flex;align-items:center;gap:6px}.crm-projects-shell{max-width:1600px;width:100%}.crm-list-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.crm-project-group{margin-top:8px;border:1px solid #e4ddd0;border-radius:12px;overflow:visible;background:#fcfaf6;box-shadow:inset 0 1px #fff9}.crm-project-group-head{background:#f5efe4;overflow:visible}.user-overview-list{display:grid;gap:10px}.user-overview-filter{display:inline-flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:12px;color:#554d40}.user-overview-card{border:1px solid #e1ddd3;border-radius:10px;background:#fffdfa;overflow:hidden}.user-overview-header{width:100%;border:0;background:#fbf8f1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;text-align:left;padding:12px 14px;cursor:pointer}.user-overview-header.expanded{background:#f6f1e7}.user-overview-header-main{display:grid;gap:6px;min-width:0}.user-overview-header-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:700;color:#2f2920}.user-overview-caret{flex:0 0 auto;color:#7a6a4d}.user-overview-header-meta{display:flex;flex-wrap:wrap;gap:6px 12px;min-width:0}.user-overview-header-side{display:grid;gap:8px;justify-items:end;align-items:center}.user-overview-role{min-width:88px}.user-overview-projects{display:grid;gap:8px;padding:10px 14px 14px 34px;background:#fffdfa}.user-project-detail{border:1px solid #dfd8c9;border-radius:8px;background:#fcfaf5;padding:9px 11px;display:grid;gap:5px}.user-project-detail-title{font-size:14px;font-weight:700;color:#2e2a22}.user-project-detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.user-project-detail-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.user-project-detail-stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:#5a5346}.user-project-detail-lines{font-size:12px;color:#4d473c;white-space:normal;word-break:break-word;display:grid;gap:6px}.user-project-line-list{display:grid;gap:4px}.user-project-line-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e3ddcf;border-radius:6px;background:#f7f2e8;padding:4px 8px}.user-project-detail-empty{padding-top:2px}.crm-project-header-grid{display:grid;gap:4px 10px;grid-template-columns:repeat(2,minmax(0,1fr));font-size:13px}.crm-project-header-grid-mobile{grid-template-columns:1fr;gap:8px}.crm-mobile-list{display:grid;gap:10px}.crm-mobile-card{display:grid;gap:8px;padding:12px;border:1px solid #e6e1d7;border-radius:10px;background:#fff}.crm-mobile-project-card.priority,.crm-mobile-simple-row.in-progress{border-color:#d4b26a;box-shadow:inset 3px 0 #c88b2f}.crm-mobile-project-card.in-progress{border-color:#b7c6ea;box-shadow:inset 3px 0 #4f6fb3}.crm-mobile-card-title,.crm-mobile-workorder-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #e6e1d7;background:#fff;text-align:left}.crm-mobile-workorder-card.active{background:#eef2ff;border-color:#c7d2fe}.crm-mobile-card-title{border:0;padding:0;background:transparent;color:#1f2a44;font-size:16px;font-weight:700;cursor:pointer}.crm-mobile-card-title-text{color:#1f2a44;font-size:15px;font-weight:700;line-height:1.3}.crm-mobile-card-copy{color:#1f2a44;font-size:14px;line-height:1.4}.crm-mobile-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-mobile-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.crm-mobile-card-grid>div{display:grid;gap:3px}.crm-mobile-card-grid strong{color:#1f2a44;font-size:13px;line-height:1.25}.crm-mobile-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-mobile-project-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.crm-mobile-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.crm-mobile-row-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:1px solid #e6e1d7;background:#fff;color:inherit;text-align:left;cursor:pointer}.crm-mobile-simple-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:10px}.crm-mobile-simple-row.active{background:#eef2ff;border-color:#c7d2fe}.crm-mobile-static-row{cursor:default}.crm-mobile-asset-row{grid-template-columns:minmax(0,1fr)}.crm-mobile-asset-row .crm-mobile-simple-row-title{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word}.crm-mobile-simple-row-main{min-width:0;display:grid;gap:3px}.crm-mobile-simple-row-title{color:#1f2a44;font-size:14px;font-weight:700;line-height:1.3}.crm-mobile-simple-row-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.crm-mobile-check{display:inline-flex;align-items:center;justify-content:center}.crm-mobile-check input{width:18px;height:18px;margin:0;accent-color:#16a34a}.crm-mobile-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 8px}.crm-workorder-card-mobile{display:grid;gap:12px}.crm-workorder-card-mobile .crm-workorder-section summary{font-size:14px;font-weight:700;color:#1f2a44}.crm-workorder-card-mobile .crm-workorder-meta-row,.crm-workorder-card-mobile .crm-workorder-form-row,.crm-workorder-card-mobile .module-form-row,.crm-workorder-card-mobile .module-grid-2,.crm-workorder-card-mobile .crm-basic-meta{display:grid;grid-template-columns:1fr;gap:8px}.crm-workorder-card-mobile .crm-workorder-section,.crm-workorder-card-mobile .crm-workorder-section>section,.crm-workorder-card-mobile>.crm-workorder-section{padding:10px;border:1px solid #e6e1d7;border-radius:10px;background:#fcfbf8}.crm-workorder-card-mobile .crm-table-row,.crm-workorder-card-mobile .crm-table-workorders .crm-table-row,.crm-workorder-card-mobile .crm-table-project-todos .crm-table-row{grid-template-columns:1fr;gap:6px;align-items:start}.crm-workorder-card-mobile .crm-table-actions,.crm-workorder-card-mobile .module-actions{justify-content:flex-start;flex-wrap:wrap}.crm-table{border:1px solid #e6e1d7;border-radius:8px;overflow:hidden;background:#fff}.crm-table-projects{padding:8px 10px 10px;overflow:visible}.crm-table-projects .crm-table-row{grid-template-columns:30px minmax(220px,1fr) 118px 360px 74px;gap:10px}.crm-project-group-head .qf-tree-toggle.qf-tree-toggle-expandable.collapsed{border-color:#c6d7e9;background:linear-gradient(180deg,#eff7ff,#dfeefe);box-shadow:0 1px 2px #37639129}.crm-project-group-head .qf-tree-toggle.qf-tree-toggle-expandable.collapsed .qf-tree-toggle-glyph{border-color:#426a94}.crm-project-child-row{background:#fcfbf8;grid-template-columns:30px minmax(0,1fr);gap:10px;width:100%;border:0;text-align:left;padding:6px 8px;cursor:pointer}.crm-project-child-main{grid-column:2 / 3;min-width:0;width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px}.crm-project-child-grid{display:grid;grid-template-columns:minmax(0,1fr) 56px 52px 120px 96px 124px 52px 60px 24px 136px;align-items:center;column-gap:16px;min-width:0;width:100%;white-space:nowrap}.crm-project-child-qty{display:inline-block;font-size:11px;line-height:1.25;color:#35506d;text-align:right;min-width:22px}.crm-project-child-uom{display:inline-block;font-size:11px;line-height:1.25;color:#6f6a7d;flex:0 0 auto}.crm-project-child-date{display:inline-block;font-size:11px;line-height:1.25;color:#6e6659;text-align:left}.crm-project-child-state{display:inline-block;font-size:11px;line-height:1.25;color:#4f5d70;text-align:left}.crm-project-child-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:16px;padding:0 6px;border-radius:999px;border:1px solid #d7d4cb;background:#f5f3ee;font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.crm-project-child-state-open{border-color:#d7c594;background:#fff1cf;color:#5f4a16}.crm-project-child-state-done,.crm-project-child-state-payed,.crm-project-child-state-settled{border-color:#bfd9c2;background:#ecf7ee;color:#2f6b38}.crm-project-child-state-stateless,.crm-project-child-state-init{border-color:#d3d7dc;background:#f2f4f6;color:#5f6873}.crm-project-child-state-in-progress,.crm-project-child-state-finished,.crm-project-child-state-supplied{border-color:#d7d0b5;background:#f8f2df;color:#705f1f}.crm-project-child-state-ordered{border-color:#c9d7ea;background:#edf4fd;color:#34567b}.crm-project-child-state-invoiced{border-color:#d8c9ea;background:#f4edfb;color:#65428c}.crm-project-child-ref{display:inline-block;font-size:11px;line-height:1.25;color:#6a6174;text-align:left;overflow:hidden;text-overflow:ellipsis}.crm-project-child-completed{display:inline-flex;align-items:center;justify-content:center;min-width:18px;font-size:14px;line-height:1;color:transparent}.crm-project-child-completed.done{color:#2f8a3e}.crm-table-projects .crm-workorder-nested-row{grid-template-columns:30px minmax(0,1fr)}.crm-workorder-nested-row{background:#fcfbf8}.crm-workorder-nested-row .crm-workorder-nested-title{font-size:12px;line-height:1.25}.crm-quicktodo-nested-row{background:#fff8ea}.crm-job-nested-row{background:#eef7ff}.crm-material-nested-row{background:#f4efe8}.crm-material-job-child{border-left:3px solid #c0d8ec;background:#f1ece4}.crm-quicktodo-nested-row .crm-workorder-nested-title{font-size:12px;line-height:1.25}.crm-workorder-nested-title{padding-left:0;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.crm-note-expand-row{padding:8px 12px 8px 36px;border-top:1px solid #efebe2;background:#faf8f3}.crm-note-expand-content{font-size:12px;color:#52493c;white-space:pre-wrap;word-break:break-word}.crm-note-expand-content a{color:#3a5f9e;text-decoration:underline}.crm-record-timestamps{margin-top:8px}.crm-note-tag,.crm-note-mention{cursor:pointer;border-radius:4px;padding:0 3px;font-weight:500}.crm-note-tag{color:#2f7d5c;background:#2f7d5c1a}.crm-note-mention{color:#6080b0;background:#6080b01f}.crm-note-tag:hover,.crm-note-mention:hover{text-decoration:underline}.crm-kind-badge{display:inline-flex;align-items:center;justify-content:center;width:68px;min-width:68px;border-radius:999px;padding:1px 8px;margin-right:8px;font-size:10px;letter-spacing:.05em;font-weight:700;text-transform:uppercase;border:1px solid #c8c2b7;color:#3a372f;background:#f2eee5}.crm-kind-badge-workorder{background:#e8eef9;border-color:#b4c2df;color:#243659}.crm-kind-badge-crm{background:#eef6eb;border-color:#bfd4b5;color:#34562c}.crm-kind-badge-kukugya{background:#fff1cf;border-color:#d7c594;color:#5f4a16}.crm-kind-badge-job{background:#e6f3ff;border-color:#adcbe3;color:#1f5677}.crm-kind-badge-material{background:#f2ebe2;border-color:#d7c2ab;color:#6f4c25}.crm-kind-badge-sub{background:#edf2fe;border-color:#b6c8fa;color:#2f52b0}.crm-kind-badge-asset{background:#f0fdf4;border-color:#86efac;color:#166534}.crm-mobile-header-project-title{min-width:0;flex:1 1 auto;overflow:hidden}.crm-mobile-header-2row{display:flex;flex-wrap:wrap;row-gap:6px}.crm-mobile-header-2row>*:first-child{flex:1 1 100%}.crm-mobile-header-2row>.module-actions{flex:1 1 100%;justify-content:flex-start}.crm-mobile-header-row1{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.crm-mobile-header-collapse-toggle{width:28px;height:28px;flex-shrink:0;padding:0;border-radius:999px;border:1px solid #ddd7ca;background:#fff;display:flex;align-items:center;justify-content:center;color:#1f2a44}.crm-mobile-header-collapse-toggle svg{width:16px;height:16px}.crm-title-pills{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;overflow:hidden;vertical-align:middle}.crm-title-pill{display:inline-flex;align-items:center;min-width:0;flex:0 1 auto;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid transparent}.crm-title-pill-city{background:#e6f3ff;border-color:#a8cbe8;color:#1f5c85}.crm-title-pill-customer{background:#f3ebfc;border-color:#cbb2e8;color:#5b2d8a}.crm-title-pill-description{background:#f2f1ee;border-color:#d7d2c6;color:#4b463c;font-weight:500;font-style:italic}.crm-expired-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;background:#c0392b;color:#fff;white-space:nowrap}.crm-mobile-modal-card{width:min(960px,calc(100vw - 24px))}.free-items-detected-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;background:#c0392b;color:#fff;white-space:nowrap}@media(max-width:900px){.crm-mobile-modal-card{width:calc(100vw - 12px);max-width:none;min-height:calc(100dvh - 24px);max-height:calc(100dvh - 24px)}}.crm-quicktodo-title{word-break:break-word}.crm-quicktodo-meta{color:#5d5749;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.crm-status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:52px;border-radius:999px;padding:1px 8px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border:1px solid #cfc7b8}.crm-status-pill-open{background:#fff1cf;border-color:#d7c594;color:#5f4a16}.crm-status-pill-done{background:#e6f4e8;border-color:#b8d7bd;color:#2f5e3a}.crm-status-pill-overdue{background:#fdeceb;border-color:#e0b6b4;color:#7a2b27}.crm-workorder-nested-assignees{grid-column:5 / 6}.crm-workorder-summary-row{background:#f7f5ef;cursor:pointer}.crm-workorder-summary-content{grid-column:1 / 9;padding-left:26px;display:grid;gap:6px;padding-top:4px;padding-bottom:4px}.crm-workorder-summary-hint{font-size:11px;color:#6d675d}.crm-workorder-summary-block{display:grid;gap:4px}.crm-workorder-summary-mini-table{display:grid;gap:2px}.crm-workorder-summary-mini-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 140px;gap:8px;align-items:center;font-size:12px}.crm-table-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 90px 56px;gap:4px;align-items:center;padding:6px 8px;border-top:1px solid #efebe2}.crm-table-row:first-child{border-top:0}.crm-table-head{background:#f3f0ea;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#6d675d;font-weight:700}.crm-table-projects .crm-table-head{padding-inline:14px;border-radius:10px;background:transparent}.crm-table-projects .crm-table-head>div{padding-inline:4px}.crm-project-selector-head{grid-template-columns:minmax(0,1fr) 110px 86px 100px 160px!important}.crm-project-group-header{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#7a6550;border-top:1px solid #6a5642;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600;color:#f5ead8}.crm-project-group-header:hover{background:#6e5a46}.crm-project-group-header-mobile{margin:0}.crm-project-group-caret{font-size:10px;opacity:.7;flex-shrink:0}.crm-project-group-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-project-group-count{background:#d6cfc3;color:#5c5246;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600;flex-shrink:0}.crm-table-projects .crm-project-selector-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 86px 100px 160px;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid #efebe2;text-align:left;cursor:pointer;width:100%;background:none;border-left:none;border-right:none;border-bottom:none;font:inherit;color:inherit}.crm-table-projects .crm-project-selector-row:hover{background:#f1ede5}.crm-project-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end;width:auto}.crm-mobile-card-actions{display:flex;gap:6px;padding-top:4px;border-top:1px solid #efebe2;margin-top:2px}.crm-project-owner{font-size:12px;color:#7a6a4f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-table-projects .crm-table-row>div:nth-child(5),.crm-table-projects .crm-table-row>div:nth-child(6){text-align:right}.crm-table-projects .crm-project-child-row{grid-template-columns:30px minmax(0,1fr);gap:10px}.crm-table-projects .crm-project-child-main{grid-column:2 / 3;min-width:0;width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px}.crm-table-projects .crm-project-child-grid{display:grid;grid-template-columns:minmax(0,1fr) 56px 52px 120px 96px 124px 52px 60px 24px 136px;align-items:center;column-gap:16px;min-width:0;width:100%;white-space:nowrap}.crm-sort-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;padding:0 6px;justify-self:start;cursor:pointer;white-space:nowrap}.crm-table-button{width:100%;border:0;background:#fff;text-align:left;cursor:pointer}.crm-table-button.active{background:#eef2ff}.crm-table-button:hover{background:#f8f6f1}.crm-table-workorders .crm-table-row{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr)}.crm-table-assigned-assets .crm-table-row{grid-template-columns:minmax(0,1fr) 64px 110px 44px}.crm-table-project-todos .crm-table-row{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr) 70px 70px}.crm-table-project-jobs{overflow:visible}.crm-project-materials-row{grid-template-columns:minmax(0,1.7fr) 64px 64px 64px 80px 104px}.crm-project-assets-row{grid-template-columns:minmax(0,1fr)}.crm-project-materials-table,.crm-project-assets-table{border-radius:12px;overflow:hidden}.crm-project-block-header{border-radius:12px;padding:10px 12px;margin-bottom:8px}.crm-project-block-header .panel-subtitle,.crm-project-block-header>div:first-child{margin:0}.crm-project-block-header-tasks{background:#e8f0df;border:1px solid #c8d7bc}.crm-project-block-header-workorders{background:#ece6da;border:1px solid #d3c7b2}.crm-project-block-header-materials{background:#f3ead4;border:1px solid #dec99b}.crm-project-block-header-assets{background:#e5ecee;border:1px solid #bfced2}.crm-project-materials-table .crm-project-block-header,.crm-project-assets-table .crm-project-block-header{border-radius:0;margin-bottom:0;border-left:0;border-right:0;border-top:0}.crm-project-view .panel-subtitle{font-size:14px;line-height:1.2}.crm-project-view,.crm-project-view .crm-project-header-grid{font-size:13px;line-height:1.35}.crm-project-view .crm-project-block-header .panel-subtitle,.crm-project-view .crm-project-block-header>div:first-child{font-size:13px;line-height:1.15;font-weight:700}.crm-project-view .crm-mobile-simple-row-title,.crm-project-view .crm-quicktodo-title{font-size:13px;line-height:1.25;font-weight:600}.crm-project-view .crm-table-row{font-size:12px}.crm-project-view .crm-table-head{font-size:10px}.crm-project-view .panel-help{font-size:11px;line-height:1.3}.crm-project-view .tool-input,.crm-project-view .tool-select,.crm-project-view .tool-button{font-size:12px}.crm-detail-section{border:1px solid #e4ddd0;border-radius:12px;background:#fff;overflow:hidden;margin-top:16px}.crm-detail-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;flex-wrap:wrap}.crm-detail-section-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;flex-shrink:0}.crm-detail-section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-detail-section-tasks .crm-detail-section-head{background:#e8f0df;border-bottom:1px solid #c4d4b5}.crm-detail-section-tasks .crm-detail-section-title{color:#3a5930}.crm-detail-section-jobs .crm-detail-section-head{background:#deeaf8;border-bottom:1px solid #a8c4e2}.crm-detail-section-jobs .crm-detail-section-title{color:#1a4a6e}.crm-detail-section-materials .crm-detail-section-head{background:#f5e9cb;border-bottom:1px solid #dcc485}.crm-detail-section-materials .crm-detail-section-title{color:#5c3e10}.crm-detail-section-subs .crm-detail-section-head{background:#edf2fe;border-bottom:1px solid #b6c8fa}.crm-detail-section-subs .crm-detail-section-title{color:#2a3f9c}.crm-detail-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid #f0ece4;width:100%;background:#fff;color:inherit;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-left:0;border-right:0;border-bottom:0;cursor:pointer;min-width:0}.crm-detail-item:hover{background:#faf7f3}.crm-detail-item[role=button]:focus-visible{outline:2px solid #3b5bdb;outline-offset:-2px}.crm-detail-item-body{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0}.crm-detail-item-text{flex:1;min-width:0}.crm-detail-item-title{font-size:13px;font-weight:600;color:#1f2a44;line-height:1.3;word-break:break-word}.crm-detail-item-sub{font-size:11px;color:#7a7468;line-height:1.3;margin-top:2px}.crm-detail-item-side{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.crm-detail-item-nested{background:#faf7f2;padding-left:32px}.crm-detail-item-nested:hover{background:#f4f0e8}.crm-detail-item-stateless{background:#fdfcf9}.crm-detail-stateless-head{padding:5px 14px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a8278;background:#f8f5f0;border-top:1px solid #ede8de}.crm-detail-empty{padding:14px;font-size:12px;color:#9a9286}.crm-detail-rows .crm-project-child-row{display:grid;grid-template-columns:1fr;align-items:center;gap:0;padding:6px 12px;border-top:1px solid #efebe2}.crm-detail-rows .crm-project-child-row:hover{filter:brightness(.97)}.crm-detail-rows .crm-project-child-grid{grid-template-columns:minmax(0,1fr) 56px 52px 120px 96px 124px 52px 60px 24px}.crm-detail-rows .crm-project-child-ref{text-align:right}.crm-detail-rows .crm-sub-nested-row .crm-project-child-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 120px 96px 124px 52px 60px 24px}.crm-supplied-btn{font-size:10px;padding:2px 5px;white-space:nowrap;opacity:.55;align-self:center;justify-self:center}.crm-supplied-btn.active{opacity:1;background:#d4edda;color:#155724;border-color:#b8dacc}.crm-packed-check{display:flex;align-items:center;justify-content:center;cursor:pointer;align-self:center;justify-self:center}.crm-packed-check input{width:18px;height:18px;margin:0}.crm-detail-rows .crm-project-child-row.crm-selectable-row{display:flex;align-items:center;gap:8px}.crm-detail-rows .crm-project-child-row.crm-selectable-row>.crm-project-child-grid{flex:1;min-width:0}.crm-select-check{display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.crm-select-check input{width:16px;height:16px;margin:0;accent-color:#64748b}.crm-select-check-spacer{display:inline-block;width:16px;flex-shrink:0}.crm-search-input-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:0}.crm-search-input-wrap .tool-input{width:100%;padding-right:24px}.crm-search-clear-btn{position:absolute;right:4px;background:none;border:none;cursor:pointer;color:#999;font-size:16px;line-height:1;padding:0 4px}.crm-search-clear-btn:hover{color:#333}@media(max-width:900px){.crm-detail-rows .crm-project-child-row{grid-template-columns:1fr;gap:0;padding:4px 6px}.crm-detail-rows .crm-project-child-grid{grid-template-columns:minmax(0,1fr) 56px 24px}.crm-detail-rows .crm-project-child-qty,.crm-detail-rows .crm-project-child-uom,.crm-detail-rows .crm-project-child-ref,.crm-detail-rows .crm-project-child-date,.crm-detail-rows .crm-child-col7,.crm-detail-rows .crm-supplied-btn,.crm-detail-rows .crm-child-col8,.crm-detail-rows .crm-material-nested-row .crm-project-child-completed{display:none}.crm-detail-rows .crm-material-nested-row:not(.crm-sub-nested-row) .crm-project-child-grid{grid-template-columns:minmax(0,1fr) 36px 24px 56px 24px}.crm-detail-rows .crm-material-nested-row:not(.crm-sub-nested-row) .crm-project-child-qty,.crm-detail-rows .crm-material-nested-row:not(.crm-sub-nested-row) .crm-project-child-uom{display:inline-block}.crm-detail-rows .crm-sub-nested-row .crm-project-child-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) 56px 24px}}.crm-detail-item.crm-detail-item-priced{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:4px 8px}.crm-detail-item-price-area{display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin-left:auto;flex-shrink:0}.crm-detail-item-price-unit,.crm-detail-item-price-total{font-size:11px;color:#5a5449;white-space:nowrap}.crm-detail-item-actions{display:flex;align-items:center;justify-content:flex-end}.crm-loading-pill{display:inline-block;padding:2px 8px;border-radius:10px;background:#e8f0fe;color:#3b5bdb;font-size:11px;font-weight:600;letter-spacing:.02em;animation:crm-loading-pulse 1.4s ease-in-out infinite}@keyframes crm-loading-pulse{0%,to{opacity:1}50%{opacity:.5}}.crm-status-multiselect{position:relative}.crm-status-multiselect summary{list-style:none;cursor:pointer;white-space:nowrap}.crm-status-multiselect summary::-webkit-details-marker{display:none}.crm-status-multiselect-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border:1px solid #d4cfc4;border-radius:6px;padding:6px 10px;display:grid;gap:4px;min-width:200px;box-shadow:0 4px 12px #0000001a;font-size:12px}.tool-button.preset{border-color:#0d9488;color:#0d9488;background:#f0fdfa}.tool-button.preset.active{background:#0f766e;border-color:#0f766e;color:#fff}.crm-filter-group-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9a9286;padding:2px 0 0}.crm-project-view .crm-project-materials-row .panel-help,.crm-project-view .crm-project-assets-row .panel-help{font-size:.78rem}.crm-project-materials-group-row{grid-template-columns:1fr;background:#f8f5ee}.crm-project-materials-group-row>*{min-width:0}.crm-users-table .crm-table-row{grid-template-columns:minmax(0,1fr) 140px 120px 110px}.invite-policy-table .crm-table-row>*{min-width:0}.invite-policy-table .panel-help{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-policy-select{width:100%;min-width:0;max-width:100%}.invite-policy-select.policy-disabled{background:#f8e3e2;border-color:#ddb3b0;color:#742b27}.invite-policy-select.policy-read-only{background:#fff4d6;border-color:#e2c98b;color:#6a4f0f}.invite-policy-select.policy-enabled{background:#e7f4e8;border-color:#b4d8b8;color:#245835}.invite-policy-select.policy-neutral{background:#f1efe9;border-color:#d8d2c6;color:#3c3a34}.invite-policy-group-row{background:#ece7dc;color:#4c463b}.crm-table-actions{display:inline-flex;justify-content:flex-end;align-items:center;gap:6px}.crm-modal-wide{width:min(92vw,980px);max-width:980px}.crm-modal-workspace{width:min(94vw,1280px);max-width:1280px}.crm-workspace-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px}.crm-workspace-grid details{border:1px solid #e8e3d8;border-radius:8px;background:#fff;padding:8px;margin-top:8px}.crm-workspace-grid summary{cursor:pointer;font-weight:600;color:#2c364f}.crm-workorder-card{gap:12px}.crm-workorder-section{display:grid;gap:8px;margin-top:2px}.crm-workorder-section .panel-subtitle{margin:0 0 2px}.crm-workorder-meta-row{margin-bottom:4px}.crm-basic-meta{display:grid;gap:4px;margin-bottom:2px}.crm-workorder-form-row{margin-bottom:8px}.crm-section-action{margin:6px 0 10px}.crm-project-create-actions{margin-top:10px}.crm-workorder-create-form{gap:10px;padding:10px}.crm-workorder-create-header{display:flex;align-items:center;justify-content:flex-end}.crm-workorder-state-radios{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.crm-inline-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#2f2920}.crm-workorder-sku-table{display:grid;gap:4px}.crm-workorder-sku-row{display:grid;grid-template-columns:80px minmax(0,1fr) 42px;gap:8px;align-items:center;border:1px solid #ece7db;border-radius:8px;background:#faf8f3;padding:6px 8px}.crm-workorder-sku-head{background:transparent;border:0;padding:0 8px 2px;color:#6b6b6b;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.crm-workorder-sku-table-rich .crm-workorder-sku-row{grid-template-columns:minmax(0,1.8fr) 64px 72px 72px 84px 112px 42px}.crm-workorder-sku-table-rich .crm-workorder-sku-row .tool-input{min-width:0;padding:4px 6px;font-size:12px}.crm-workorder-sku-input{text-align:center;font-variant-numeric:tabular-nums}.crm-workorder-sku-input-qty{background:#fffdfa;border-color:#c9a94b;box-shadow:inset 0 0 0 1px #c9a94b2e}.crm-workorder-sku-input-picked{background:#fffdf8;border-color:#b88a2f;box-shadow:inset 0 0 0 1px #b88a2f2e}.crm-workorder-sku-input-used{background:#fbfefb;border-color:#5a9a63;box-shadow:inset 0 0 0 1px #5a9a6329}.crm-workorder-sku-cell-qty .tool-input{border-color:#c9a94b;box-shadow:inset 0 0 0 1px #c9a94b3d}.crm-workorder-sku-cell-picked .tool-input{border-color:#b88a2f;box-shadow:inset 0 0 0 1px #b88a2f3d}.crm-workorder-sku-cell-used .tool-input{border-color:#5a9a63;box-shadow:inset 0 0 0 1px #5a9a6338}.crm-workorder-sku-stat{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:6px;border:1px solid transparent;font-variant-numeric:tabular-nums;padding:0 4px}.crm-workorder-sku-stat-qty{background:#f7f1df;border-color:#c9a94b}.crm-workorder-sku-stat-picked{background:#efe7cf;border-color:#b88a2f}.crm-workorder-sku-stat-used{background:#e3f0e2;border-color:#5a9a63}.crm-asset-master-form{margin-bottom:12px}.custom-prop-editor{display:grid;gap:8px;margin-top:8px}.custom-prop-quick-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.custom-prop-table{display:grid;gap:6px}.custom-prop-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px 38px;gap:6px;align-items:center}.module-list-button{border:1px solid #efece6;border-radius:8px;background:#faf9f6;padding:8px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.module-list-button.active{border-color:#1f2a44;background:#eef2ff}.module-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-module{display:grid;gap:12px;min-height:0}.qf-module{display:flex;flex-direction:column;height:100%;overflow:hidden}.qf-module>.qf-quote-editor-page,.qf-module>.qf-masterdata-section,.qf-module>.qf-project-panel,.qf-module>.panel-help{min-height:0}.qf-module .crm-toolbar{position:static;top:auto}.crm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:5;padding:4px 0 8px;background:linear-gradient(180deg,#f6f4f1,#f6f4f1 78%,#f6f4f100)}.qf-masterdata-section{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:10px;min-height:0;flex:1 1 auto;height:auto;overflow:hidden}.qf-table-editor-shell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;overflow:hidden}.qf-masterdata-actions{flex:0 0 auto;padding:8px 0 2px;background:#f7f4ee;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;overflow:visible;min-height:42px;position:relative;z-index:20}.qf-masterdata-actions-group{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:4px 8px;min-height:38px;border:1px solid #ddd6c7;border-radius:10px;background:#fffaf0eb;overflow:visible;position:relative;z-index:21}.qf-masterdata-actions-group-history{flex:0 0 auto}.qf-masterdata-actions-group-snapshots{flex:0 1 auto;min-width:0}.qf-masterdata-save-state{margin-left:auto;padding:6px 10px;border-radius:999px;border:1px solid #ddd6c7;background:#f5f3ef;color:#6e655a;font-size:11px;line-height:1}.qf-masterdata-save-state-dirty{background:#fff4d6;border-color:#e2c680;color:#7a5a18}.qf-masterdata-save-state-saving{background:#edf4ff;border-color:#bdd3f5;color:#2f5ea6}.qf-masterdata-save-state-saved{background:#eef7ea;border-color:#bfd7b7;color:#42673d}.qf-masterdata-save-state-error{background:#fff1f1;border-color:#e2b2b2;color:#8b2d2d}.qf-masterdata-snapshot-select{width:260px;min-width:0;flex:0 1 260px}.qf-masterdata-actions .tool-button.compact{min-height:28px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1;text-align:center}.qf-masterdata-actions .tool-input,.qf-masterdata-actions .qf-masterdata-snapshot-select{min-height:28px}.qf-masterdata-bulkbar{flex:0 0 auto;display:grid;grid-template-columns:max-content minmax(320px,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #ddd6c7;border-radius:10px;background:#fffaf0}.qf-masterdata-selection-count{width:130px;flex:0 0 130px;white-space:nowrap}.qf-masterdata-filter-input{min-width:0}.qf-masterdata-selectbar{min-width:0;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:8px;align-items:center;padding-right:12px;border-right:1px solid #d7cfbf}.qf-masterdata-bulkeditbar{display:grid;grid-template-columns:auto auto 112px 112px 112px auto;gap:8px;align-items:center}.qf-masterdata-hierarchy{flex:1 1 auto;min-height:0;overflow:hidden;border:1px solid #e3ddd2;border-radius:14px;background:linear-gradient(180deg,#fffdfa,#f8f4ed);padding:14px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px}.qf-masterdata-row-selected{background:#eef2ff}.qf-masterdata-textarea{height:36px;min-height:36px;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto}.qf-masterdata-input-empty{background:#f1f0ec;color:#6e655a}.qf-masterdata-hierarchy-filled{background:#f8f1e4;border-color:#d7cfbf}.qf-masterdata-required-empty{background:#ffdfe4;border-color:#c9344d;color:#8e1730;box-shadow:inset 0 0 0 999px #ffdfe4f5}.qf-masterdata-optional-muted{background:#f5f3ef;border-color:#ddd6c7;color:#6e655a}.qf-masterdata-key-empty{background:#ffe9cf;border-color:#d59b41;color:#835314;box-shadow:inset 0 0 0 999px #ffe9cff5}.qf-masterdata-editor-field .tool-input.qf-masterdata-optional-muted,.qf-masterdata-editor-field-note .tool-input.qf-masterdata-optional-muted{background:#f5f3ef;border-color:#ddd6c7;color:#6e655a;box-shadow:inset 0 0 0 999px #f5f3eff5}.qf-masterdata-editor-field .tool-input.qf-masterdata-key-empty,.qf-masterdata-editor-field-material .tool-input.qf-masterdata-key-empty{background:#ffe9cf;border-color:#d59b41;color:#835314;box-shadow:inset 0 0 0 999px #ffe9cff5}.qf-masterdata-editor-field .tool-input.qf-masterdata-hierarchy-filled,.qf-masterdata-editor-field-label .tool-input.qf-masterdata-hierarchy-filled{background:#f8f1e4;border-color:#d7cfbf;box-shadow:inset 0 0 0 999px #f8f1e4eb}.qf-tree-node{display:flex;flex-direction:column;align-items:stretch;width:100%;margin-left:calc(var(--qf-depth, 0) * 16px)}.qf-masterdata-tree-shell .qf-tree-node{margin-left:0}.qf-tree-row{min-height:34px;display:grid;grid-template-columns:74px 22px minmax(96px,max-content) max-content minmax(180px,1fr) max-content;align-items:center;gap:8px;width:100%;padding:5px 8px;border-radius:10px;color:#2c261e;background:#ffffff94;border:1px solid rgba(219,210,192,.65)}.qf-tree-row-masterdata{grid-template-columns:max-content minmax(220px,1fr) max-content;margin-left:calc(var(--qf-depth, 0) * 16px);width:calc(100% - (var(--qf-depth, 0) * 16px))}.qf-tree-row-masterdata.qf-tree-row-depth-0{background:linear-gradient(180deg,#fbf3e7f5,#f6ecddf5)}.qf-tree-row-masterdata.qf-tree-row-depth-1{background:linear-gradient(180deg,#f8f4ecf5,#f1ece4f5)}.qf-tree-row-masterdata.qf-tree-row-depth-2{background:linear-gradient(180deg,#f5f3eff5,#eeebe6f5)}.qf-tree-row-masterdata.qf-tree-row-depth-3{background:linear-gradient(180deg,#f3f2eff5,#eceae6f5)}.qf-tree-masterdata-left{min-width:0;display:inline-flex;align-items:center;gap:8px}.qf-tree-masterdata-center{min-width:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}.qf-tree-masterdata-select{min-width:0;display:inline-flex;align-items:center;gap:8px}.qf-tree-masterdata-select input[type=checkbox]{margin:0;flex:0 0 auto}.qf-tree-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qf-tree-count{flex:0 0 auto;width:max-content;padding:2px 7px;border-radius:999px;border:1px solid #ddd6c7;background:#f8f1e4f5;color:#7a6f61;font-size:11px;line-height:1;text-align:center}.qf-tree-left-actions{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.qf-tree-right-actions{display:inline-flex;align-items:center;gap:4px;justify-self:end;flex:0 0 auto}.qf-tree-path-pill{min-width:0;width:auto;max-width:min(100%,520px);padding:3px 9px;border-radius:999px;border:1px solid #ddd6c7;background:#faf6eef5;color:#7a6f61;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qf-tag-badge-list{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.qf-tag-badge-list.compact{gap:4px}.qf-tag-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid #d8cfbe;background:#eef4ff;color:#3f5d8e;font-size:11px;line-height:1;white-space:nowrap}.qf-tag-badge-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;padding:0;margin:0;cursor:pointer;font-size:12px;line-height:1}.qf-tree-mini-action,.qf-tree-delete{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #d4c8b6;border-radius:8px;background:#fffdfa;color:#5f5548;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 1px 2px #5e4c2d14;font-size:12px;font-weight:700}.qf-tree-mini-action:disabled,.qf-tree-delete:disabled,.qf-tree-toggle:disabled{cursor:default;opacity:.42;box-shadow:none}.qf-tree-delete{color:#fff;border-color:#b42318;background:#b42318}.qf-tree-mini-action-wide{width:auto;min-width:28px;padding:0 4px}.qf-tree-md-push-action:not(:disabled){background:#f5820a;border-color:#d06800;color:#fff;box-shadow:0 1px 3px #b4500038}.qf-tree-md-push-action:not(:disabled):hover{background:#e07408;border-color:#b85e00}.qf-table-editor-grid{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;gap:4px}.qf-masterdata-tree-shell{max-height:100%;overflow:auto;display:flex;flex-direction:column;gap:4px;margin-top:0;padding-top:0;padding-right:2px;min-height:0;overscroll-behavior:contain}.qf-masterdata-table-head,.qf-masterdata-table-row{display:grid;grid-template-columns:24px 30px 24px 24px 24px 24px 24px 24px 24px 28px 100px minmax(160px,.8fr) 24px 56px 248px 40px 72px 72px 120px minmax(180px,.9fr);gap:6px;align-items:center}.qf-quote-table-head,.qf-quote-table-row{display:grid;grid-template-columns:24px 30px 24px 24px 24px 24px 24px 24px 24px 24px 28px 24px 28px 90px minmax(190px,.8fr) 56px 140px 140px 72px 72px 120px minmax(180px,.9fr);gap:6px;align-items:center}.qf-masterdata-table-head{position:static;min-height:34px;padding:0 8px;margin-top:0;border:1px solid #e0d8ca;border-radius:10px;background:#f2ece1;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#655b4f}.qf-quote-table-head{position:sticky;top:0;z-index:2;min-height:34px;padding:0 8px;border:1px solid #e0d8ca;border-radius:10px;background:#ece8f7;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#544f69}.qf-masterdata-table-row{height:42px;min-height:42px;padding:4px 8px;border:1px solid #e2dbcf;border-radius:10px;background:#fff;overflow:visible}.qf-masterdata-table-row.hier.qf-masterdata-table-row-depth-even{background:linear-gradient(180deg,#dcece9,#cbe0dc);border-color:#a9c9c2}.qf-masterdata-table-row.hier.qf-masterdata-table-row-depth-odd{background:linear-gradient(180deg,#bfdcd5,#a6cec4);border-color:#8fb8ae}.qf-masterdata-table-row.material.qf-masterdata-table-row-depth-even{border-style:dashed;border-color:#d7cabb;background:linear-gradient(180deg,#f8f2e6,#f2e9d5)}.qf-masterdata-table-row.material.qf-masterdata-table-row-depth-odd{border-style:dashed;border-color:#cbb68f;background:linear-gradient(180deg,#f1e6cc,#ead9b6)}.qf-masterdata-table-row.work.qf-masterdata-table-row-depth-even{border-color:#d8ccbe;background:linear-gradient(180deg,#f8f2e6,#f3ebdc)}.qf-masterdata-table-row.work.qf-masterdata-table-row-depth-odd{border-color:#c2a97e;background:linear-gradient(180deg,#f0e5cf,#e9dabc)}.qf-quote-table-row{height:42px;min-height:42px;padding:4px 8px;border:1px solid #ddd8eb;border-radius:10px;background:#fff;overflow:visible}.qf-quote-table-row.hier.qf-quote-table-row-depth-even{background:linear-gradient(180deg,#e9e4f5,#dad0ee)}.qf-quote-table-row.hier.qf-quote-table-row-depth-odd{background:linear-gradient(180deg,#d6c8ec,#c3aee2)}.qf-quote-table-row.material.qf-quote-table-row-depth-even{border-style:dashed;border-color:#d9cfbf;background:linear-gradient(180deg,#f8f2e6,#f2e9d5)}.qf-quote-table-row.material.qf-quote-table-row-depth-odd{border-style:dashed;border-color:#cbb68f;background:linear-gradient(180deg,#f1e6cc,#ead9b6)}.qf-quote-table-row.work.qf-quote-table-row-depth-even{border-color:#ccd9ea;background:linear-gradient(180deg,#edf4fc,#e2edf9)}.qf-quote-table-row.work.qf-quote-table-row-depth-odd{border-color:#9fbfe0;background:linear-gradient(180deg,#dceaf8,#cbdff3)}.qf-masterdata-table-select{display:inline-flex;align-items:center;justify-content:center;min-height:30px}.qf-row-effectively-disabled{opacity:.45}.qf-branch-separator{margin-top:16px;box-shadow:0 -9px 0 -1px #bca98b}.qf-row-reparent-target{outline:2px solid #2f7a4f;outline-offset:-1px}.qf-tree-reparent-target-active{background:#2f7a4f;color:#fff;border-color:#2f7a4f}.qf-masterdata-table-head-select{min-height:34px}.qf-tooltip-target{position:relative;z-index:1}.qf-tooltip-target:hover,.qf-tooltip-target:focus-visible{z-index:80}.qf-tooltip-target:after{content:attr(data-qf-tooltip);position:absolute;left:0;bottom:calc(100% + 10px);transform:translate(0) translateY(4px);min-width:max-content;max-width:280px;padding:7px 10px;border-radius:10px;border:1px solid rgba(128,106,67,.18);background:linear-gradient(180deg,#fff9edfa,#f7efdcfa);box-shadow:0 8px 22px #4a3a1e29;color:#4f4332;font-size:11px;font-weight:600;line-height:1.35;letter-spacing:.01em;text-transform:none;white-space:normal;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,transform .12s ease,visibility .12s ease;z-index:60}.qf-tooltip-target:before{content:"";position:absolute;left:11px;bottom:calc(100% + 4px);transform:translate(0) translateY(4px);width:8px;height:8px;border-right:1px solid rgba(128,106,67,.18);border-bottom:1px solid rgba(128,106,67,.18);background:#f7efdcfa;rotate:45deg;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,transform .12s ease,visibility .12s ease;z-index:59}.qf-tooltip-target:hover:after,.qf-tooltip-target:hover:before,.qf-tooltip-target:focus-visible:after,.qf-tooltip-target:focus-visible:before{opacity:1;visibility:visible;transform:translate(0) translateY(0)}.qf-tooltip-align-left:after{left:0;transform:translate(0) translateY(4px);text-align:left}.qf-tooltip-align-left:before{left:11px;transform:translate(0) translateY(4px)}.qf-tooltip-align-left:hover:after,.qf-tooltip-align-left:hover:before,.qf-tooltip-align-left:focus-visible:after,.qf-tooltip-align-left:focus-visible:before{transform:translate(0) translateY(0)}.qf-tooltip-below:after{bottom:auto;top:calc(100% + 10px);transform:translate(0) translateY(-4px)}.qf-tooltip-below:before{bottom:auto;top:calc(100% + 4px);transform:translate(0) translateY(-4px);border-right:0;border-bottom:0;border-left:1px solid rgba(128,106,67,.18);border-top:1px solid rgba(128,106,67,.18)}.qf-tooltip-below:hover:after,.qf-tooltip-below:hover:before,.qf-tooltip-below:focus-visible:after,.qf-tooltip-below:focus-visible:before{transform:translate(0) translateY(0)}.qf-tooltip-below.qf-tooltip-align-left:after{left:0;top:calc(100% + 10px);bottom:auto;transform:translate(0) translateY(-4px);text-align:left}.qf-tooltip-below.qf-tooltip-align-left:before{left:11px;top:calc(100% + 4px);bottom:auto;transform:translate(0) translateY(-4px)}.qf-tooltip-below.qf-tooltip-align-left:hover:after,.qf-tooltip-below.qf-tooltip-align-left:hover:before,.qf-tooltip-below.qf-tooltip-align-left:focus-visible:after,.qf-tooltip-below.qf-tooltip-align-left:focus-visible:before{transform:translate(0) translateY(0)}.qf-masterdata-table-level{min-width:0;min-height:30px;display:flex;align-items:center;font-size:11px;font-weight:700;color:#6b6256;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qf-masterdata-table-level-select{width:100%;min-width:0;height:30px;padding:0 24px 0 8px;font-size:11px;font-weight:700;color:#6b6256;text-transform:uppercase;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.qf-masterdata-table-value,.qf-masterdata-table-row>.tool-input{min-width:0;height:30px}.qf-masterdata-table-qtyval{height:30px;display:inline-flex;align-items:center;justify-content:flex-end;padding:0 8px;border:1px solid #ded6c8;border-radius:8px;background:#f7f3ea;color:#5f5548;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qf-masterdata-table-empty-cell{min-width:0;height:30px}.qf-masterdata-table-number{text-align:right;font-variant-numeric:tabular-nums}.qf-masterdata-table-row .qf-tree-toggle,.qf-masterdata-table-row .qf-tree-mini-action,.qf-masterdata-table-row .qf-tree-delete,.qf-quote-table-row .qf-tree-toggle,.qf-quote-table-row .qf-tree-mini-action,.qf-quote-table-row .qf-tree-delete{height:24px;min-height:24px}.qf-masterdata-table-row .qf-tree-toggle.qf-tree-toggle-expandable{border-color:#c79b51;background:linear-gradient(180deg,#fff3dc,#f3ddaf);box-shadow:0 0 0 1px #c79b511f,0 1px 2px #5e4c2d1f}.qf-masterdata-table-row .qf-tree-toggle.qf-tree-toggle-expandable .qf-tree-toggle-glyph{border-color:#8b6221}.qf-quote-table-row .qf-tree-toggle.qf-tree-toggle-expandable{border-color:#7064b3;background:linear-gradient(180deg,#efeaff,#d9d0ff);box-shadow:0 0 0 1px #7064b31f,0 1px 2px #463c6e1f}.qf-quote-table-row .qf-tree-toggle.qf-tree-toggle-expandable .qf-tree-toggle-glyph{border-color:#5546a3}.qf-tree-mini-action.qf-tree-import-available:not(:disabled){border-color:#4e73b8;background:linear-gradient(180deg,#eef4ff,#dce8ff);color:#294f93;box-shadow:0 0 0 1px #4e73b81f,0 1px 2px #294f931a}.qf-import-modal{width:min(900px,calc(100vw - 48px))}.qf-import-list{max-height:52dvh;overflow:auto;margin-top:12px;border:1px solid #e2dbcf;border-radius:12px;background:#fffdfa;padding:8px;display:grid;gap:4px}.qf-import-row{display:grid;grid-template-columns:18px 64px minmax(0,1fr);gap:8px;align-items:center;min-height:32px;padding:4px 8px;border-radius:8px;background:#f8f4ed}.qf-import-row-level{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6a6154}.qf-import-row-label{min-width:0;font-size:13px;color:#2d271f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qf-token-picker-modal{width:min(720px,92vw)}.qf-token-picker-table{max-height:56dvh;overflow:auto;margin-top:10px;border:1px solid #e2dbcf;border-radius:12px;background:#fffdfa;display:grid;gap:2px;padding:6px}.qf-token-picker-head{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;padding:4px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6a6154}.qf-token-picker-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start;width:100%;padding:8px;border:1px solid transparent;border-radius:8px;background:#f8f4ed;text-align:left;cursor:pointer;font:inherit}.qf-token-picker-row:hover,.qf-token-picker-row:focus-visible{background:#f1e6cc;border-color:#d7c397}.qf-token-picker-token{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:#5a4c39;word-break:break-word}.qf-token-picker-description{font-size:12px;color:#4b4338;min-width:0}.qf-masterdata-table-qtyval.error{color:#9a2d3c;background:#fff0f2;border-color:#e1bcc4}.qf-masterdata-editor-row{display:grid;gap:8px;margin:6px 0 8px calc(var(--qf-depth, 0) * 16px);width:calc(100% - (var(--qf-depth, 0) * 16px));padding:10px 12px;border:1px solid #e2dbcf;border-radius:12px;background:#fff}.qf-masterdata-editor-row-root{margin-left:0}.qf-masterdata-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}.qf-masterdata-editor-grid-node,.qf-masterdata-editor-grid-material{grid-template-columns:minmax(0,1fr) 120px 96px 120px 120px 120px 220px}.qf-masterdata-editor-field{display:grid;gap:4px;min-width:0}.qf-tag-editor{display:grid;gap:6px}.qf-tag-suggestions{display:inline-flex;flex-wrap:wrap;gap:6px}.qf-tag-suggestion{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #d8cfbe;background:#f7f3ea;color:#6f6454;border-radius:999px;padding:3px 8px;cursor:pointer;font-size:11px;line-height:1}.qf-masterdata-formula-preview{font-size:10px;line-height:1.2;color:#756b5d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;text-align:right}.qf-masterdata-formula-preview.error{color:#9a2d3c}.qf-masterdata-editor-field-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.qf-masterdata-editor-field>span{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b6256}.qf-masterdata-editor-field-label,.qf-masterdata-editor-field-material,.qf-masterdata-editor-field-note{min-width:0}.qf-masterdata-material-row{border-style:dashed;background:#fcfbf7}.qf-masterdata-material-head{display:flex;align-items:center;justify-content:flex-end;gap:0;padding:0;margin:0;min-height:28px}.qf-tree-row+.qf-tree-node,.qf-tree-node+.qf-tree-node{margin-top:4px}.qf-tree-toggle,.qf-tree-toggle-spacer{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.qf-tree-toggle{border:1px solid #d4c8b6;border-radius:999px;background:#fffdfa;cursor:pointer;padding:0;box-shadow:0 1px 2px #5e4c2d14}.qf-tree-toggle:disabled{border-color:#ddd6c7;background:#f3efe7}.qf-tree-toggle-glyph{width:7px;height:7px;border-right:2px solid #655946;border-bottom:2px solid #655946;transform:rotate(45deg) translateY(-1px);transition:transform .14s ease}.qf-tree-toggle.collapsed .qf-tree-toggle-glyph{transform:rotate(-45deg) translate(-1px)}.qf-tree-toggle:disabled .qf-tree-toggle-glyph{border-color:#a79b8a}.qf-tree-label{min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qf-tree-count{min-width:30px;text-align:right;font-size:11px;font-weight:700;color:#685d4f;background:#efe6d6;border:1px solid #dbceba;border-radius:999px;padding:4px 8px}.qf-quote-tree-head,.qf-quote-tree-row{display:grid;grid-template-columns:minmax(0,1fr) 92px 110px 110px minmax(220px,.85fr) auto;gap:8px;align-items:center}.qf-quote-tree-head{padding:10px 12px;background:#efe8db;border-bottom:1px solid #ddd3c3;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#615648}.qf-quote-tree-head>div:nth-child(n+2){text-align:right}.qf-quote-tree-head>div:nth-child(5),.qf-quote-tree-head>div:nth-child(6){text-align:left}.qf-quote-tree-shell{max-height:640px;overflow:auto;padding:8px;display:grid;gap:6px}.qf-quote-tree-node{display:grid;gap:6px}.qf-quote-tree-row{border:1px solid #e3ddd1;border-radius:10px;background:#fffdfa;padding:8px 10px}.qf-quote-tree-node-row{background:#f6f2ea;border-color:#d8cfbe}.qf-quote-tree-node-main,.qf-quote-tree-leaf-main{min-width:0;display:grid;grid-template-columns:22px 18px minmax(0,1fr);align-items:center;gap:8px;padding-left:calc(var(--qf-depth, 0) * 14px)}.qf-quote-tree-node-text,.qf-quote-tree-leaf-text{min-width:0;display:grid;gap:2px}.qf-quote-tree-node-label,.qf-quote-tree-leaf-label{min-width:0;font-size:14px;font-weight:700;color:#231f18}.qf-quote-tree-node-meta,.qf-quote-tree-leaf-meta{min-width:0;font-size:11px;color:#685e52;white-space:normal;overflow-wrap:anywhere}.qf-quote-tree-total{text-align:right;font-size:13px;font-weight:700;color:#2b3a4d;font-variant-numeric:tabular-nums}.qf-quote-tree-node-summary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-start}.qf-quote-tree-summary-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;border:1px solid #d8cfbe;background:#fff9ef;color:#5f5548;font-size:11px;font-weight:700}.qf-quote-tree-leaf-row.active{border-color:#cfd6e4;background:#fbfaf6}.qf-quote-tree-manual-row{background:#f8fbff;border-style:dashed}.qf-quote-tree-leaf-actions{display:flex;justify-content:flex-end;gap:6px}.qf-quote-tree-row .tool-input{width:100%}.qf-quote-tree-row>div:nth-child(2),.qf-quote-tree-row>div:nth-child(3),.qf-quote-tree-row>div:nth-child(4){justify-self:stretch}.qf-quote-tree-row>div:nth-child(2) .tool-input,.qf-quote-tree-row>div:nth-child(3) .tool-input{text-align:right;font-variant-numeric:tabular-nums}.qf-quote-tree-head>div:nth-child(2),.qf-quote-tree-head>div:nth-child(3),.qf-quote-tree-head>div:nth-child(4){justify-self:end}.qf-project-list-item{display:grid;gap:6px}.qf-project-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;max-height:calc(100dvh - 116px);overflow:hidden}.qf-project-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.qf-project-list-scroll{min-height:0;overflow:auto;align-content:start;padding-right:4px}.qf-project-group-header{display:flex;align-items:center;gap:6px;padding:7px 10px;margin-bottom:4px;background:#7a6550;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:700;color:#f5ead8}.qf-project-group-header:hover{background:#6e5a46}.qf-project-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:1px solid #d8cfbe;border-radius:10px;background:linear-gradient(180deg,#f7f0e4,#efe5d4);color:inherit;text-align:left;cursor:pointer;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;box-shadow:inset 0 1px #ffffff8c}.qf-project-row.active{border-color:#bda989;background:linear-gradient(180deg,#efe2cb,#e5d3b4)}.qf-project-row-main{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;text-align:left;padding:0;margin:0;cursor:pointer;min-width:0;display:grid;gap:4px}.qf-project-row-title-wrap{min-width:0;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.qf-project-row-title{font-size:15px;font-weight:800;color:#2c261d;letter-spacing:.01em}.qf-project-status-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:3px;border:1px solid #d8cfbe;background:#fff9eff2;color:#665744;font-size:11px;line-height:1;font-weight:700;white-space:nowrap;text-transform:uppercase}.qf-project-status-init{background:#f5f1e7;color:#6f6454}.qf-project-status-in_progress{background:#eef4ff;border-color:#bfd0f0;color:#305c9f}.qf-project-status-done{background:#eef7ea;border-color:#bfd7b7;color:#42673d}.qf-project-status-cancelled{background:#2c2c2c;border-color:#1a1a1a;color:#e0e0e0}.qf-project-row-meta{font-size:11px;color:#6e6558;white-space:normal}.qf-project-row-side{display:inline-flex;align-items:center;gap:8px}.qf-project-row-count{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;border:1px solid #cdbb9d;background:#fff9eff2;color:#665744;font-size:11px;line-height:1;font-weight:700;white-space:nowrap}.qf-project-row-caret{font-size:14px;line-height:1;color:#665744;transition:transform .14s ease}.qf-project-row-caret.expanded{transform:rotate(180deg)}.qf-project-row-actions{display:flex;justify-content:flex-end;padding:0 2px}.project-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.project-form-col{display:grid;gap:10px;align-content:start}.project-form-timestamps{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:4px}.project-form-box{border:1px solid #e5ddd0;border-radius:8px;padding:12px;display:grid;gap:10px}.project-form-separator{border:none;border-top:1px solid #e5ddd0;margin:0}.project-actions-full{display:flex;gap:6px}.project-actions-full>button{flex:1}.qf-project-quote-list{display:grid;gap:6px;padding:0 0 8px 18px}.qf-project-quote-node{display:grid;gap:6px;margin-left:calc(var(--qf-quote-depth, 0) * 18px)}.qf-project-quote-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;border:1px solid #e2ddd3;border-radius:8px;background:#faf8f3;padding:7px 10px}.qf-project-quote-card.active{border-color:#c9d7f2;background:#eef4ff}.qf-project-quote-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0;display:grid;gap:2px;min-width:0}.qf-project-quote-row:hover{background:transparent}.qf-project-quote-title-wrap{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.qf-project-quote-title{font-size:13px;font-weight:700;color:#2e2a22}.qf-project-quote-meta{font-size:11px;color:#6a6256;white-space:normal}.qf-project-quote-totals,.qf-project-quote-branches,.qf-project-quote-tags{display:inline-flex;flex-wrap:wrap;gap:6px;margin-top:4px}.qf-project-quote-branch-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid #d7cfbf;background:#f7f4ee;color:#62584b;font-size:11px;line-height:1;white-space:nowrap}.qf-project-quote-branch-pill-0{background:#eef4ff;border-color:#bfd0f0;color:#305c9f}.qf-project-quote-branch-pill-1{background:#eef7ea;border-color:#bfd7b7;color:#42673d}.qf-project-quote-branch-pill-2{background:#fff4d6;border-color:#e2c680;color:#7a5a18}.qf-project-quote-branch-pill-3{background:#f5eefc;border-color:#d1c0ea;color:#65468f}.qf-project-quote-branch-pill-4{background:#fff0eb;border-color:#e3c0b1;color:#8d4f37}.qf-project-quote-branch-pill-5{background:#eef6f4;border-color:#bdd6d0;color:#3f6d66}.qf-new-quote-card{margin-top:18px}.qf-new-quote-title{display:inline-flex;align-items:center;padding:6px 10px;border-radius:8px;background:#efe2cb;color:#5a4630;border:1px solid #d7c1a0;width:fit-content}.qf-new-quote-modal{width:min(720px,92vw)}.qf-new-quote-tree-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.qf-new-quote-tree-scroll{max-height:280px;overflow-y:auto;border:1px solid #e4ddd0;border-radius:8px;background:#faf7f2;padding:6px 0}.qf-new-quote-tree-row{display:flex;align-items:center;gap:8px;padding-block:3px;padding-right:10px;cursor:pointer;font-size:13px}.qf-new-quote-tree-row:hover{background:#f0ebe2}.qf-new-quote-modal-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.qf-new-quote-modal-grid{display:grid;grid-template-columns:minmax(0,1fr) 140px 160px;gap:12px;align-items:end}.qf-new-quote-modal-grid .tool-input{height:36px;box-sizing:border-box}.qf-new-quote-modal-actions{justify-content:flex-end}.qf-property-editor-modal{width:min(1120px,94vw);display:grid;gap:14px}.qf-tag-manager-modal{width:min(760px,92vw);display:grid;gap:14px}.qf-tag-manager-list{display:grid;gap:8px;max-height:min(58dvh,620px);overflow:auto;padding-right:4px}.qf-tag-manager-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e1dbcf;border-radius:10px;background:#faf7f1;padding:8px 10px}.qf-tag-manager-main{min-width:0;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.qf-tag-manager-meta{font-size:11px;color:#756b5d}.qf-tag-manager-actions{display:inline-flex;align-items:center;gap:8px}.qf-property-editor-list{display:grid;gap:8px;max-height:min(58dvh,620px);overflow:auto;padding-right:4px}.qf-property-editor-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(160px,1fr) 120px 120px minmax(0,1.1fr) 36px;gap:8px;align-items:center}.qf-quote-properties-card{display:grid;gap:10px}.qf-block-collapse-head{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.qf-block-collapse-summary{margin-left:4px;font-size:11px;font-weight:400;color:#8a7a65;white-space:nowrap}.qf-quote-properties-list{display:grid;gap:6px}.qf-quote-property-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px;align-items:center}.qf-quote-property-meta{min-width:0;display:inline-flex;align-items:baseline;gap:8px}.qf-quote-property-label{font-size:13px;font-weight:700;color:#2f2920;flex:0 0 auto}.qf-quote-property-key{font-size:11px;color:#756b5d;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qf-quote-property-input{text-align:right;font-variant-numeric:tabular-nums}.qf-quote-property-row--textarea{grid-template-columns:1fr;align-items:start}.qf-quote-property-row--textarea textarea{width:100%;resize:vertical;box-sizing:border-box}.qf-project-quote-total-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid #ddd6c7;background:#f5f1e7;color:#665c4e;font-size:11px;line-height:1;font-variant-numeric:tabular-nums}.qf-project-quote-total-pill.strong{background:#ece7da;color:#2f2920;border-color:#d2c7b0;font-weight:700}.qf-project-quote-actions{display:inline-flex;align-items:center;gap:6px}.qf-project-quote-children{display:grid;gap:6px}.qf-project-quote-fork-form{display:grid;gap:8px;border:1px dashed #d9d2c4;border-radius:8px;background:#faf7f1;padding:8px 10px}.qf-quote-editor-page{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-height:0;flex:1 1 auto;height:auto;overflow:hidden}.qf-quote-editor-body{min-height:0;overflow:hidden;padding-top:2px}.qf-quote-editor-card{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;min-height:0;height:100%}.qf-quote-editor-card>:nth-child(3){min-height:0}.qf-quote-project-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.qf-quote-project-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;text-align:right}.qf-quote-edit-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.qf-quote-edit-fields{min-width:0}.qf-quote-totals-head>div,.qf-quote-totals-row>div,.qf-quote-totals-grand>div{font-size:12px}.qf-quote-totals-head>div:nth-child(n+2){text-align:right}.qf-quote-totals-branch{font-size:12px;font-weight:700}.qf-quote-totals-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.qf-quote-totals-grand{background:#efe8f7;color:#3f355c}.qf-quote-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}.qf-quote-save-state{margin-left:auto;min-width:88px;text-align:center;padding:6px 10px;border-radius:999px;border:1px solid transparent;font-size:11px;line-height:1;color:transparent}.qf-quote-save-state-saving{background:#edf4ff;border-color:#bdd3f5;color:#2f5ea6}.qf-quote-save-state-saved{background:#eef7ea;border-color:#bfd7b7;color:#42673d}.qf-quote-save-state-error{background:#fff1f1;border-color:#e2b2b2;color:#8b2d2d}@media(max-width:900px){.qf-new-quote-modal-grid,.qf-quote-project-head,.qf-quote-edit-head{grid-template-columns:1fr}.qf-quote-project-meta{justify-content:flex-start;text-align:left}.qf-project-panel{max-height:none}.qf-property-editor-row,.qf-quote-property-row{grid-template-columns:1fr}}.qf-quote-hierarchy-section{height:auto;min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:visible}.module-textarea{min-height:80px}.stock-foldable-table{border:1px solid #e2dfd8;border-radius:10px;background:#fff;overflow:hidden;display:block;margin-top:0}.stock-table-group+.stock-table-group{border-top:1px solid #eee9df}.stock-table-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 28px;gap:8px;align-items:center;width:100%;padding:8px 10px;text-align:left;font-size:14px}.stock-table-header{background:#f2eee5;border-bottom:1px solid #dfd8ca;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5f584c}.stock-table-main{border:0;background:#fbfaf7;cursor:pointer;font-size:15px;font-weight:600}.stock-table-main.active{background:#eef2ff}.stock-table-children{border-top:1px solid #e7e1d4}.stock-table-child{background:#f1ede4;padding-left:20px;font-size:13px;font-weight:500}.stock-col-product{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-col-qty{text-align:right;font-variant-numeric:tabular-nums}.stock-col-toggle{text-align:center;color:#686052}@media(max-width:1100px){.module-grid-2,.module-grid-3{grid-template-columns:1fr}.crm-workorder-sku-row{grid-template-columns:72px minmax(0,1fr) 38px;gap:6px}.crm-workorder-sku-table-rich .crm-workorder-sku-row{grid-template-columns:minmax(0,1.5fr) 56px 64px 64px 78px 96px 38px}.crm-project-materials-row{grid-template-columns:minmax(0,1.4fr) 52px 52px 52px 72px 92px}.crm-project-assets-row{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.crm-project-materials-row{grid-template-columns:minmax(0,1fr) 50px 50px 50px 72px;gap:8px;padding:6px 8px}.crm-project-assets-row{grid-template-columns:minmax(0,1fr);gap:3px;padding:6px 4px}.crm-projects-shell.crm-project-view{margin-left:-12px;margin-right:0;width:calc(100% + 24px);padding-left:0;padding-right:0;border:none;border-radius:0}.crm-projects-shell.crm-project-view:first-child{margin-top:-12px;padding-top:0}.crm-projects-shell.crm-project-view .crm-project-detail-header,.crm-projects-shell.crm-project-view .module-form-row{padding-left:12px;padding-right:12px}.crm-list-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 16px 4px}.crm-list-filters{padding:8px 16px 4px;gap:8px}.crm-list-filters .crm-search-input-wrap{flex:0 0 100%}.crm-mobile-list{gap:0;margin-top:8px}.crm-mobile-project-card{border:none;border-radius:0;border-top:1px solid #ede9e0;padding:14px 16px;background:transparent}.crm-mobile-project-card.priority{border-top-color:#d4b26a;box-shadow:inset 3px 0 #c88b2f}.crm-mobile-project-card.in-progress{border-top-color:#b7c6ea;box-shadow:inset 3px 0 #4f6fb3}.crm-mobile-card-actions{border-top:none;margin-top:0;padding-top:0}.crm-detail-section{margin-top:8px;border-radius:0;border-left:none;border-right:none}.crm-detail-section-head{padding:8px 12px;gap:6px}.crm-detail-item{padding:10px 12px}.crm-detail-item-nested{padding-left:22px}.crm-detail-item-title{font-size:12px}.crm-detail-item-sub{font-size:10px}.crm-detail-item-side{gap:4px}.crm-detail-item.crm-detail-item-priced{grid-template-columns:minmax(0,1fr) 44px;gap:3px 6px}.crm-project-block-header{padding:8px 10px;margin-bottom:6px}.crm-project-view .panel-subtitle{font-size:13px}.crm-project-view,.crm-project-view .crm-project-header-grid{font-size:12px}.crm-project-view .crm-project-block-header .panel-subtitle,.crm-project-view .crm-project-block-header>div:first-child{font-size:12px}.crm-project-view .crm-mobile-simple-row-title,.crm-project-view .crm-quicktodo-title{font-size:12px;line-height:1.25}.crm-project-view .crm-table-row{font-size:11px}.crm-project-view .panel-help{font-size:10px}.crm-project-view .tool-input,.crm-project-view .tool-select,.crm-project-view .tool-button{font-size:11px}.crm-project-materials-row .panel-help{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.crm-project-assets-row .panel-help,.crm-project-assets-row .crm-project-asset-name,.crm-project-materials-row .crm-project-asset-name{overflow:visible;text-overflow:clip;white-space:normal;word-break:break-word}.custom-prop-quick-row{grid-template-columns:minmax(0,1fr)}.custom-prop-quick-row .tool-button{width:100%}.crm-workorder-sku-table-rich .crm-workorder-sku-row{grid-template-columns:repeat(5,minmax(0,1fr)) 70px 34px;grid-template-areas:"desc desc desc desc desc desc desc" "qty picked used invoiced invoicedOn invoicedOn delete";align-items:start}.crm-workorder-sku-head{display:none}.crm-workorder-sku-cell-desc{grid-area:desc}.crm-workorder-sku-cell-qty{grid-area:qty}.crm-workorder-sku-cell-picked{grid-area:picked}.crm-workorder-sku-cell-used{grid-area:used}.crm-workorder-sku-cell-invoiced{grid-area:invoiced}.crm-workorder-sku-cell-invoiced-on{grid-area:invoicedOn;align-self:center}.crm-workorder-sku-cell-delete{grid-area:delete}.crm-workorder-sku-cell-desc{font-size:12px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.crm-workorder-sku-table-rich .crm-workorder-sku-row .tool-input{padding:3px 4px;font-size:11px}.crm-workorder-sku-stat{min-height:22px;font-size:11px}}.app-loading-screen{display:grid;place-items:center;font-size:14px;color:#4f4a3f}.user-gate-root{min-height:100%;display:grid;place-items:center;padding:24px}.user-gate-card{width:min(440px,100%);background:#fff;border:1px solid #e2dfd8;border-radius:12px;box-shadow:0 10px 24px #0f172a14;padding:16px;display:grid;gap:10px}.user-gate-brand{display:flex;align-items:center;gap:10px;padding-bottom:4px;border-bottom:1px solid #ece8df}.user-gate-logo{width:44px;height:44px;object-fit:contain}.user-gate-entry{font-size:12px;letter-spacing:.08em;color:#6a6459;text-transform:uppercase;font-weight:700}.user-gate-title{font-size:18px;font-weight:700;color:#1f2a44}.user-gate-subtitle{font-size:13px;color:#605a50}.user-gate-label{font-size:12px;font-weight:600;color:#4f4a3f}.user-gate-select{width:100%;min-height:32px}.user-gate-row{display:flex;align-items:center;gap:8px}.user-gate-input{flex:1;min-height:32px}.user-gate-divider{height:1px;background:#e2dfd8;margin:6px 0 2px}.user-gate-error{font-size:12px;color:#b42318}.user-gate-info{font-size:12px;color:#0f5132}.user-gate-switch{background:none;border:none;padding:4px 0;font-size:12px;color:#3a5ccc;cursor:pointer;text-align:left;text-decoration:underline}.user-gate-switch:disabled{opacity:.6;cursor:default}.qf-masterdata-editor-row>.qf-tag-badge-list.compact,.qf-tree-node>.qf-tag-badge-list.compact{margin:0 0 6px}.qf-masterdata-material-head-left{display:inline-flex;align-items:center;gap:6px;min-width:0}.qf-masterdata-table-row:focus,.qf-quote-table-row:focus{outline:2px solid rgba(69,95,140,.28);outline-offset:-2px}.debug-component-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#0f1623;color:#7ecfec;font-family:IBM Plex Mono,monospace;font-size:12px;padding:6px 16px;border-radius:6px;z-index:999999;pointer-events:none;box-shadow:0 2px 12px #00000080;white-space:nowrap}.app-main-capture{overflow:auto;height:100%}.app-main-knxproj{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.capture-root{max-width:480px;margin:0 auto;padding:16px 16px 32px;display:flex;flex-direction:column;min-height:100%}.capture-screen{display:flex;flex-direction:column;gap:10px;flex:1}.capture-header{display:flex;align-items:center;gap:10px;margin-bottom:2px}.capture-title{font-size:20px;font-weight:700;color:#1c1a17}.capture-project-chip{background:#ece4d6;border:1px solid #d1c6b5;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;color:#5a4c39;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capture-search{min-height:48px;font-size:16px;padding:10px 12px}.capture-list{flex:1;overflow-y:auto;max-height:calc(100dvh - 240px);border:1px solid #e6e1d7;border-radius:10px;background:#fff}.capture-list-row{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:56px;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid #eeebe6;cursor:pointer;text-align:left;gap:2px}.capture-list-row:last-child{border-bottom:none}.capture-list-row:active{background:#f5f0e8}.capture-list-row-name{font-size:15px;font-weight:600;color:#1c1a17}.capture-list-row-sub{font-size:12px;color:#8a7d6c}.capture-combobox-wrap{position:relative}.capture-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #d1c6b5;border-radius:10px;box-shadow:0 4px 16px #0000001f;overflow-y:auto;max-height:280px;z-index:100}.capture-dropdown-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid #eeebe6;cursor:pointer;text-align:left;gap:8px}.capture-dropdown-row:last-child{border-bottom:none}.capture-dropdown-row:active{background:#f5f0e8}.capture-dropdown-name{font-size:14px;color:#1c1a17;flex:1}.capture-dropdown-unit{font-size:12px;color:#8a7d6c;background:#f0ede8;border-radius:4px;padding:1px 6px;white-space:nowrap}.capture-review-chip{background:#f5f0e8;border:1px solid #d8cec0;border-radius:10px;padding:10px 14px;font-size:14px;color:#4b4338;line-height:1.4}.capture-review-project{font-weight:600;color:#1c1a17}.capture-review-sep{color:#a89b8a;margin:0 4px}.capture-review-material{color:#3a5a8a;font-weight:500}.capture-qty-input{font-size:36px!important;font-weight:700!important;text-align:right!important;min-height:72px!important;letter-spacing:-1px;color:#1c1a17!important;padding:12px 16px!important}.capture-uom-row{display:flex;align-items:center;gap:10px}.capture-uom-label{font-size:13px;color:#6b6054;white-space:nowrap}.capture-uom-input{width:100px;font-size:15px}.capture-ean-row{display:flex;gap:8px;align-items:center;margin-top:6px}.capture-ean-input{flex:1;min-width:0}.capture-note-input{width:100%;margin-top:6px;font-size:13px}.capture-actions{display:flex;align-items:center;gap:10px;margin-top:4px}.capture-toggle-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b6054;cursor:pointer;-webkit-user-select:none;user-select:none}.capture-footer-toggle{padding-top:4px}.capture-error{color:#b94a48}.capture-success-flash{position:fixed;top:56px;left:50%;transform:translate(-50%);background:#2e7d52;color:#fff;font-size:15px;font-weight:600;padding:10px 28px;border-radius:20px;z-index:9999;pointer-events:none;box-shadow:0 4px 16px #0000002e;animation:capture-flash-in .15s ease-out}@keyframes capture-flash-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.capture-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.capture-pending{margin-top:10px;padding-top:12px;border-top:1px solid #e6e1d6;display:flex;flex-direction:column;gap:8px}.capture-pending-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6b6054}.capture-pending-list{display:flex;flex-direction:column;gap:4px}.capture-pending-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fbfaf7;border:1px solid #e6e1d6;border-radius:8px}.capture-pending-name{flex:1;font-size:14px;color:#1c1a17;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.capture-pending-note{margin-left:6px;font-size:11px;color:#888;font-style:italic}.capture-pending-qty-pill{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#fff;border:1px solid #d4cfc8;border-radius:6px;font-size:14px;font-weight:600;color:#1c1a17;padding:3px 8px;min-width:42px;text-align:right;cursor:pointer;flex-shrink:0}.capture-pending-qty-pill:active{background:#f0ece4}.capture-pending-qty{width:58px;font-size:14px;font-weight:600;padding:3px 6px;border:1.5px solid #2563eb;border-radius:6px;background:#fff;color:#1c1a17;text-align:right;flex-shrink:0}.capture-pending-uom{font-size:12px;color:#8a7f74;min-width:26px;flex-shrink:0}.capture-pending-del{flex-shrink:0;font-size:11px;color:#9a5050!important;opacity:.7}.capture-pending-del:hover{opacity:1}.capture-scanner-wrap{position:relative;width:100%;border-radius:10px;overflow:hidden;background:#000}.capture-scanner-video{width:100%;height:200px;object-fit:cover;display:block}.capture-scanner-frame{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid rgba(255,200,80,.8);border-radius:10px;pointer-events:none}.qf-doc-editor-body{display:flex;gap:8px;flex:1;min-height:400px;margin-top:12px}.qf-doc-textarea{flex:1;min-height:400px;resize:vertical;font-family:IBM Plex Mono,Fira Mono,Courier New,monospace;font-size:13px;line-height:1.6}.qf-doc-preview{flex:1;overflow-y:auto;padding:10px 14px;background:#faf8f4;border:1px solid #ddd2c2;border-radius:4px;font-size:13px;line-height:1.6;color:#1c1a17}.qf-doc-preview-content h1{font-size:18px;font-weight:700;margin:14px 0 4px}.qf-doc-preview-content h2{font-size:15px;font-weight:700;margin:10px 0 4px}.qf-doc-preview-content h3{font-size:13px;font-weight:700;margin:8px 0 2px}.qf-doc-preview-content p{margin:4px 0}.qf-doc-preview-content ul,.qf-doc-preview-content ol{margin:4px 0 4px 20px}.qf-doc-preview-content li{margin:2px 0}.qf-doc-modal-textarea{min-height:180px;resize:vertical;font-family:IBM Plex Mono,Fira Mono,Courier New,monospace;font-size:12px}.stock-type-select{flex:0 0 130px;min-width:0}.stock-type-select .searchable-select-trigger{font-size:12px;padding:5px 8px;height:32px}.app-main-solar,.solar-module{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.solar-body{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--solar-sidebar-w, 280px);gap:0;flex:1;min-height:0;overflow:hidden;margin-top:8px}.solar-side-resize{cursor:col-resize;background:transparent}.solar-side-resize:hover{background:#cbd5e1}.solar-side-restore{margin:6px 8px 8px;flex:0 0 auto}.solar-map{position:relative;overflow:hidden;background:#f1eee6;border-right:1px solid #e2dfd8}.solar-upload-area{position:absolute;top:24px;right:24px;bottom:24px;left:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#605a50;border:2px dashed #ccc8c0;border-radius:12px;padding:40px;transition:background .12s,border-color .12s}.solar-upload-area:hover{background:#ede9e0;border-color:#aaa49c}.solar-upload-icon{font-size:36px;line-height:1}.solar-draw-hint{position:absolute;top:0;left:0;right:0;z-index:10;padding:6px 12px;font-size:12px;background:#000000a6;color:#ffe800;text-align:center;pointer-events:none}.solar-snap-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:10;padding:5px 12px;border-radius:999px;font-size:11px;background:#000000a6;color:#fff;white-space:nowrap;pointer-events:none}.solar-view-mode-toggle{position:absolute;top:12px;left:12px;z-index:200;background:#1f2a44;color:#fff;border:1px solid #0f172a;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 16px #0003}.solar-view-mode-toggle:hover:not(:disabled){background:#29365a}.solar-view-mode-toggle.active{background:#6366f1;border-color:#4338ca}.solar-view-mode-toggle:disabled{opacity:.45;cursor:not-allowed}.modal-card.solar-shadow-modal{width:98vw;max-width:none;height:96dvh;max-height:96dvh;grid-template-rows:auto minmax(0,1fr)}.modal-card.solar-shadow-modal>.modal-scroll{min-height:0}.solar-shadow-mode-toggle{display:flex;gap:4px;margin-left:auto}.solar-shadow-scroll{display:flex;flex-direction:column;min-height:0;height:100%;max-height:none}.solar-shadow-viewport-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;min-height:0;overflow:hidden}.solar-shadow-viewport{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid #e2dfd8;border-radius:8px;overflow:hidden;background:#f1eee6}.solar-shadow-viewport-label{flex:0 0 auto;padding:6px 10px;font-size:12px;font-weight:700;color:#605a50;background:#ede9e0;border-bottom:1px solid #e2dfd8}.solar-shadow-viewport .three-d-view-root{flex:1;min-height:0}.solar-shadow-viewport-footer{flex:0 0 auto;padding:4px 10px;font-size:11px;color:#605a50;background:#ede9e0;border-top:1px solid #e2dfd8;text-align:center}.solar-shadow-time-controls{flex:0 0 auto;margin-top:14px;min-height:180px}.solar-shadow-timeline{display:flex;flex-direction:column;gap:6px;padding:0 28px}.solar-shadow-marker-rows{position:relative;display:flex;flex-direction:column;gap:2px}.solar-shadow-cursor-line{position:absolute;top:26px;bottom:0;width:2px;transform:translate(-1px);background:#dc1e1e;pointer-events:none;z-index:2}.solar-shadow-current-time{position:absolute;top:0;left:50%;transform:translate(-50%);font-size:12px;font-weight:700;color:#dc1e1e;white-space:nowrap}.solar-shadow-current-time-tz{font-weight:500;color:#a34444}.solar-shadow-season-row,.solar-shadow-ruler{position:relative;height:34px}.solar-shadow-ruler-tick{position:absolute;top:0;transform:translate(-50%);width:1px;background:#ccc8c0}.solar-shadow-ruler-tick-quarter{height:5px}.solar-shadow-ruler-tick-half{height:9px;background:#a39d92}.solar-shadow-ruler-tick-hour{height:14px;width:2px;background:#605a50}.solar-shadow-ruler-tick-label{position:absolute;top:18px;left:50%;transform:translate(-50%);font-size:9px;font-weight:600;color:#605a50;white-space:nowrap}.solar-shadow-slider{width:100%;display:block;margin:6px 0 0;padding:0;border:0;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}.solar-shadow-slider::-webkit-slider-runnable-track{height:4px;background:#ccc8c0;border-radius:2px}.solar-shadow-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#dc1e1e;margin-top:-6px;cursor:pointer}.solar-shadow-slider::-moz-range-track{height:4px;background:#ccc8c0;border-radius:2px}.solar-shadow-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#dc1e1e;border:none;cursor:pointer}.solar-shadow-controls-row{display:flex;gap:8px;margin-top:12px}.solar-shadow-tick-item{position:absolute;top:0;bottom:0;transform:translate(-50%);width:0}.solar-shadow-tick{position:absolute;bottom:0;left:0;width:2px;height:8px;transform:translate(-1px);background:#6366f1}.solar-shadow-tick-text{position:absolute;top:0;display:flex;flex-direction:column}.solar-shadow-tick-text-center{left:50%;transform:translate(-50%);align-items:center}.solar-shadow-tick-text-left{left:0;align-items:flex-start}.solar-shadow-tick-text-right{right:0;align-items:flex-end}.solar-shadow-tick-time{font-size:10px;font-weight:700;color:#1f2a44;white-space:nowrap}.solar-shadow-tick-label{font-size:9px;white-space:nowrap;color:#605a50}.solar-shadow-legend{flex:0 0 auto;margin-top:14px;display:flex;align-items:center;gap:12px}.solar-shadow-legend-bar-row{position:relative;flex:1;max-width:700px;padding-bottom:16px}.solar-shadow-legend-bar{width:100%;height:16px;border-radius:6px;background:linear-gradient(to right,#dc1414,#ffd200,#1e3cdc)}.solar-shadow-legend-tick{position:absolute;top:20px;transform:translate(-50%);font-size:9px;color:#605a50;white-space:nowrap}.solar-location-modal{width:min(720px,92vw)}.solar-location-map{width:100%;height:420px;border-radius:8px;overflow:hidden}.solar-location-marker-dot{width:16px;height:16px;border-radius:50%;background:#dc1e1e;border:2px solid #ffffff;box-shadow:0 0 4px #00000080}.solar-fit-btn{position:absolute;bottom:10px;right:10px;z-index:10;font-size:16px;line-height:1;padding:4px 7px;background:#ffffffe0;border:1px solid #ccc8c0}.solar-fit-btn:hover{background:#fff}.solar-viewport{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.solar-sidebar{overflow-y:auto;display:flex;flex-direction:column;gap:0;background:#fff}.solar-section{padding:14px 14px 10px;border-bottom:1px solid #e2dfd8;display:flex;flex-direction:column;gap:6px}.solar-section .panel-title{margin-bottom:2px}.solar-section.collapsed{padding-bottom:0}.solar-section.collapsed>:not(.solar-section-title){display:none}.solar-section-title{display:flex;align-items:center;gap:8px;width:calc(100% + 28px);margin:-14px -14px 10px;padding:10px 14px;text-align:left;background:#ece4d3;border:none;border-bottom:1px solid #d8cbac;cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#5a4c39}.solar-section-title:hover{background:#e3d7bb}.solar-section.collapsed>.solar-section-title{margin-bottom:0;background:#f4f1ea;border-bottom-color:#e2dfd8;color:#8a8072}.solar-section.collapsed>.solar-section-title:hover{background:#ece7db}.solar-section-caret{display:inline-block;font-size:11px;font-weight:700;color:#a8824a;transition:transform .15s ease}.solar-section-caret.open{transform:rotate(90deg);color:#5a4c39}.solar-field-row{display:grid;grid-template-columns:1fr 92px 32px;align-items:center;gap:4px}.solar-field-row .tool-input{width:100%;box-sizing:border-box}.solar-field-stack{display:flex;flex-direction:column;gap:4px}.solar-field-stack-input{display:flex;align-items:center;gap:4px}.solar-field-stack-input .tool-input{flex:1;min-width:0}.solar-field-stack-input .panel-help{flex:0 0 32px}.solar-field-missing>label{color:#c0392b;font-weight:700}.solar-field-missing .tool-input{border-color:#c0392b;background:#fdf2f0}.solar-field-missing .tool-input:focus{outline-color:#c0392b}.solar-check-row{display:flex;gap:16px;font-size:12px;color:#605a50}.solar-btn-row{display:flex;flex-wrap:wrap;gap:6px}.solar-opacity-row{display:flex;align-items:center;gap:6px;margin-top:4px}.solar-plane-list{display:flex;flex-direction:column;gap:4px}.solar-plane-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#3a3530}.solar-plane-item>span:first-child{flex:1 1 auto}.solar-align-badge{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-variant-numeric:tabular-nums;background:#fff3e0;border:1px solid #ff8c00;color:#b35c00;border-radius:3px;padding:0 4px 0 6px;height:18px;flex-shrink:0}.solar-align-badge button{background:none;border:none;cursor:pointer;font-size:12px;color:#b35c00;padding:0 1px;line-height:1;opacity:.7}.solar-align-badge button:hover{opacity:1}.solar-results{background:#f8f6f2}.solar-results-total{font-size:15px;color:#1a2a1a;margin-top:4px}.solar-error{font-size:12px;color:#c0392b;background:#fdf2f0;border:1px solid #f5c6c0;border-radius:6px;padding:6px 8px}.solar-project-row{display:flex;gap:6px;align-items:center}.solar-drop-zone{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1.5px dashed #d9d4c9;border-radius:8px;margin-top:4px;transition:border-color .15s,background .15s}.solar-drop-zone-active{border-color:#b8a84a;background:#fffbe6}.solar-drop-hint{font-style:italic}.solar-plane-item .solar-tilt-input{width:44px;min-width:44px;max-width:44px;padding:2px 4px;text-align:right;flex-shrink:0}.solar-block-list{display:flex;flex-direction:column;gap:8px}.solar-block-item{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid #e2dfd8;border-radius:6px}.solar-block-item-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#3a3530}.solar-block-name-input{flex:1 1 auto;min-width:0;font-weight:600;padding:2px 6px}.solar-upload-label{cursor:pointer;display:inline-flex;align-items:center}.solar-block-simulation{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #e2dfd8}.solar-clearsky-note{font-style:italic;color:#8a6d3b;background:#fdf6e3;border:1px solid #f0e2b6;border-radius:6px;padding:6px 8px}.modal-overlay.solar-chart-overlay{right:var(--solar-sidebar-w, 280px)}.modal-card.solar-chart-modal{width:calc(100% - 32px);max-width:calc(100% - 32px);height:min(1040px,96dvh);max-height:96dvh;display:flex;flex-direction:column}.modal-scroll.solar-chart-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:none}.solar-chart-draghandle{cursor:move;-webkit-user-select:none;user-select:none}.solar-chart-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.solar-chart-stat{flex:1 1 140px;padding:8px 12px;border:1px solid #e2dfd8;border-radius:8px;background:#f8f6f2}.solar-chart-stat-label{font-size:11px;color:#605a50}.solar-chart-stat-value{font-size:18px;font-weight:600;color:#2f2b27}.solar-chart-stat-featured{flex-basis:220px;border:1.5px solid #c0392b;background:#fdf2f0}.solar-chart-stat-featured .solar-chart-stat-label{color:#8a2a20;font-weight:600}.solar-chart-stat-featured .solar-chart-stat-value{font-size:22px;color:#c0392b}.solar-block-item-header .panel-help{font-weight:400;flex-shrink:0}.solar-block-item-fields{display:flex;gap:10px;flex-wrap:wrap}.solar-block-item-fields label{display:flex;align-items:center;gap:4px;font-size:11px;color:#605a50}.solar-block-item-fields input{width:48px;padding:2px 4px;text-align:right;flex-shrink:0}.solar-save-status{flex-shrink:0;white-space:nowrap}.solar-dsm-row{display:flex;gap:6px;align-items:center;margin-top:6px}.solar-dsm-required{color:#c07000}.photo-measure-hotspot{visibility:visible!important;width:14px;height:14px;transform:translate(-50%,-50%);border-radius:50%;background:#34d399;border:2px solid #064e3b;box-shadow:0 0 0 2px #fff9;pointer-events:none}.photo-measure-hotspot-wallbase{visibility:visible!important;width:14px;height:14px;transform:translate(-50%,-50%);border-radius:50%;background:#f87171;border:2px solid #7f1d1d;box-shadow:0 0 0 2px #fff9;pointer-events:none}.photo-measure-hotspot-line{visibility:visible!important;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:#34d399;pointer-events:none}.photo-measure-hotspot-line-wallbase{visibility:visible!important;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:#f87171;pointer-events:none}.photo-measure-hotspot-line-draft{visibility:visible!important;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:#6ee7b7;opacity:.55;pointer-events:none}.photo-measure-crosshair{position:relative;width:36px;height:36px;pointer-events:none}.photo-measure-crosshair:before,.photo-measure-crosshair:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-size:contain}.photo-measure-crosshair:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-18 -18 36 36'%3E%3Ccircle cx='0' cy='0' r='5' fill='none' stroke='%23000000' stroke-width='2'/%3E%3Cline x1='-12' y1='0' x2='-3' y2='0' stroke='%23000000' stroke-width='2'/%3E%3Cline x1='3' y1='0' x2='12' y2='0' stroke='%23000000' stroke-width='2'/%3E%3Cline x1='0' y1='-12' x2='0' y2='-3' stroke='%23000000' stroke-width='2'/%3E%3Cline x1='0' y1='3' x2='0' y2='12' stroke='%23000000' stroke-width='2'/%3E%3C/svg%3E");animation:photo-measure-crosshair-pulse-black 1s step-end infinite}.photo-measure-crosshair:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-18 -18 36 36'%3E%3Ccircle cx='0' cy='0' r='5' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cline x1='-12' y1='0' x2='-3' y2='0' stroke='%23ffffff' stroke-width='2'/%3E%3Cline x1='3' y1='0' x2='12' y2='0' stroke='%23ffffff' stroke-width='2'/%3E%3Cline x1='0' y1='-12' x2='0' y2='-3' stroke='%23ffffff' stroke-width='2'/%3E%3Cline x1='0' y1='3' x2='0' y2='12' stroke='%23ffffff' stroke-width='2'/%3E%3C/svg%3E");animation:photo-measure-crosshair-pulse-white 1s step-end infinite}@keyframes photo-measure-crosshair-pulse-black{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes photo-measure-crosshair-pulse-white{0%,49%{opacity:0}50%,to{opacity:1}}.photo-viewer-measuring .pnlm-controls-container{display:none}.photo-viewer-locked-frame{position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 3px #dc2626;pointer-events:none;z-index:15}.photo-viewer-measuring .pnlm-container,.photo-viewer-measuring .pnlm-render-container,.photo-viewer-measuring .pnlm-grab,.photo-viewer-measuring .pnlm-grabbing{cursor:none!important}.editor-root{display:flex;flex-direction:column;height:100%;min-height:0}body.editor-zen .editor-header,body.editor-zen .routing-toolbar,body.editor-zen .mobile-view-toggle-corner,body.desktop-header-collapsed .editor-header,body.desktop-header-collapsed .routing-toolbar,body.mobile-header-collapsed .mobile-view-toggle-corner,body.mobile-header-collapsed .editor-header{display:none}.mobile-view-toggle-corner{position:fixed;top:10px;left:10px;z-index:5000;width:40px;height:40px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid #16213f;border-radius:8px;background:#1f2a44;color:#fff;cursor:pointer;box-shadow:0 1px 3px #1f2a4459}.mobile-view-toggle-corner:hover{background:#26335a}.mobile-view-toggle-corner svg{width:18px;height:18px}.desktop-header-expand-strip{width:100%;border:none;border-bottom:1px solid #16213f;background:#1f2a44;color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em;padding:8px 0;cursor:pointer}.desktop-header-expand-strip:hover{background:#26335a}.editor-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #e2dfd8;background:#fff}.editor-header-mobile-field{grid-template-columns:1fr}.header-left{display:flex;align-items:center;position:relative}.header-title{font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#1f2a44;text-align:center}.header-center{display:grid;justify-items:center;gap:6px;min-width:0}.project-switcher{border:1px solid #e2dfd8;background:#fff;border-radius:8px;padding:6px 10px;display:inline-flex;align-items:center;gap:10px;font-size:12px;color:#1f2a44;cursor:pointer;box-shadow:0 1px #0f172a0a;transition:border-color .15s ease,background .15s ease;width:430px;justify-content:space-between}.project-switcher-name{max-width:calc(100% - 24px);overflow:hidden;font-weight:600;display:inline-flex;align-items:center;gap:6px;min-width:0}.project-switcher-date{font-weight:400;color:#6b6b6b;white-space:nowrap;flex-shrink:0}.project-switcher-caret{font-size:16px;transition:transform .15s ease;color:#6b6b6b}.project-switcher-caret.open{transform:rotate(180deg)}.project-switcher:hover{border-color:#c9c4b8;background:#f8f6f1}.project-menu{position:absolute;top:calc(100% + 8px);left:0;width:430px;background:#fff;border:1px solid #e2dfd8;border-radius:10px;box-shadow:0 12px 24px #0f172a1f;z-index:250;padding:10px;display:grid;gap:8px}.project-menu-header{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b}.project-menu-list{display:grid;gap:6px;max-height:260px;overflow:auto}.project-menu-item{border:1px solid #e2dfd8;background:#f9f7f2;border-radius:8px;padding:7px 8px;display:grid;align-items:start;gap:8px;text-align:left;cursor:pointer}.project-menu-item-main{display:grid;grid-template-rows:auto auto;gap:4px;min-width:0}.project-menu-item-title{display:block;min-width:0;overflow:hidden}.project-menu-item-subline{min-height:20px;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.project-menu-item:hover{border-color:#c9c4b8;background:#f1ede5}.project-menu-search{display:flex;align-items:center;gap:4px}.project-menu-search .tool-input{flex:1;min-width:0}.header-right{display:flex;justify-content:flex-end;gap:10px;align-items:center}.header-group{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:999px;background:#f1eee8}.header-history-button,.header-history-button-label{white-space:nowrap}.header-separator{width:1px;height:22px;background:#d8d3c8;display:inline-block}.modal-eventlog{max-width:880px;width:min(90vw,880px)}.modal-history{max-width:1040px;width:min(94vw,1040px)}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.history-column-title{font-size:13px;font-weight:700;color:#1f2a44;margin-bottom:8px}.history-item{width:100%;border:1px solid #e2dfd8;border-radius:8px;background:#fff;padding:10px;margin-bottom:8px;display:grid;gap:6px;text-align:left}.history-item.redo{background:#fbfaf6}.history-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:600;color:#1f2a44}.history-jump{font-size:12px;font-weight:700;color:#7a6f61;background:#f2ede3;border-radius:999px;padding:2px 8px}.history-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6d665c;font-size:12px}.event-log-item{border:1px solid #e2dfd8;border-radius:8px;padding:10px;background:#fff;display:grid;gap:6px;margin-bottom:10px}.event-log-meta{display:flex;justify-content:space-between;font-size:12px;color:#6b6b6b}.event-log-body{margin:0;font-size:12px;background:#f7f4ef;border-radius:6px;padding:8px;max-height:240px;overflow:auto;white-space:pre-wrap}.event-log-search{margin-bottom:8px}.event-log-search input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid #e2dfd8;font-size:12px}.header-user{width:28px;height:28px;border-radius:999px;border:1px solid transparent;background:#1f2a44;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.04em;cursor:pointer}.header-user.mode-integrator{box-shadow:0 0 0 4px #bc2929f2,0 0 10px #bc2929d9,0 0 24px #bc2929b3}.header-user.mode-client{box-shadow:0 0 0 4px #1e9c5efa,0 0 10px #1e9c5ee0,0 0 24px #1e9c5eb8}.header-user-menu{position:relative}.header-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;max-height:300px;overflow:auto;background:#fff;border:1px solid #d9d3c7;border-radius:10px;box-shadow:0 10px 20px #0f172a1f;padding:8px;display:grid;gap:6px;z-index:40}.header-user-dropdown-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#756e61;margin-bottom:2px}.header-user-mode-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#1f2a44;padding:5px 6px 7px;border-bottom:1px solid #e6dfd3;margin-bottom:2px}.header-user-mode-toggle input{margin:0}.header-user-empty{font-size:12px;color:#8a8478;padding:6px 8px}.header-user-option{width:100%;border:1px solid transparent;border-radius:8px;background:#f5f2eb;color:#1f2a44;font-size:12px;text-align:left;padding:7px 9px;cursor:pointer}.header-user-option:hover{background:#ece7de}.header-user-option.active{border-color:#1f2a44;background:#e8e3d7;font-weight:600}.header-user-option-manage{margin-top:4px;border-top:1px solid #dfd8cb;border-radius:0 0 8px 8px;padding-top:9px}.editor-shell{display:grid;grid-template-columns:var(--editor-sidebar-left-width, 280px) var(--editor-sidebar-gutter-left-width, 14px) minmax(0,1fr) var(--editor-sidebar-gutter-right-width, 14px) var(--editor-sidebar-right-width, 320px);grid-template-rows:minmax(0,1fr);gap:0;flex:1 1 auto;min-height:0;overflow:hidden;padding:12px;box-sizing:border-box}.editor-canvas.filter-active-canvas{box-shadow:inset 0 0 0 2px #b05812d9;border-radius:12px}.editor-canvas.filter-active-canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid rgba(176,88,18,.9);border-radius:inherit;pointer-events:none;z-index:60;box-sizing:border-box;box-shadow:0 0 0 1px #fff8eb99}.editor-canvas.movements-locked-canvas{box-shadow:inset 0 0 0 2px #b91c1cd9}.editor-canvas.movements-locked-canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed rgba(185,28,28,.9);border-radius:inherit;pointer-events:none;z-index:60;box-sizing:border-box}.editor-shell.full-window-tool{padding-top:2px}.editor-shell.zen-mode{grid-template-columns:1fr}.editor-shell.zen-mode .editor-canvas{grid-column:1}.zen-status-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #e2dfd8;background:#f8f6f2;overflow-x:auto}.zen-status-item{font-size:12px;color:#605a50;background:#fff;border:1px solid #dfd9cd;border-radius:999px;padding:4px 10px;white-space:nowrap}.zen-status-item strong{color:#1f2a44}.zen-status-exit-btn{margin-left:auto;border:1px solid #1f2a44;background:#1f2a44;color:#fff;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.zen-status-exit-btn:hover{background:#2a3a5c}.zen-status-item.save.pending,.zen-status-item.save.saving{border-color:#efb26e;background:#fff5e9}.zen-status-item.save.error{border-color:#ef4444;background:#fee2e2}.routing-toolbar{display:flex;align-items:center;gap:12px;padding:4px 16px;border-bottom:1px solid #e2dfd8;background:#fcfaf6;flex-wrap:wrap}.routing-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px}.routing-item label{font-size:12px;color:#485066;font-weight:600}.routing-item-controls{display:flex;align-items:center;gap:8px}.routing-item .tool-select{min-width:200px}.routing-floor-step-actions{display:inline-flex;flex-direction:column;gap:1px}.routing-floor-step-actions .tool-button.compact{width:18px;height:15px;min-width:18px;min-height:15px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:9px}.routing-item-cabinet .tool-select{min-width:280px}.routing-item-checkbox .panel-inline{margin:0}.routing-item-lock-all{margin-left:auto}.editor-root.no-project .editor-shell{grid-template-columns:1fr}.editor-empty{display:flex;align-items:center;justify-content:center;min-height:0;background:#f7f4ef;border-radius:12px;border:1px dashed #d6d0c6}.editor-empty-card{background:#fff;border:1px solid #e2dfd8;border-radius:12px;padding:20px 24px;max-width:420px;text-align:center;display:grid;gap:12px}.editor-empty-title{font-weight:600;font-size:16px;color:#1f2a44}.editor-empty-body{font-size:13px;color:#5a6478;line-height:1.4}.editor-loading-spinner{width:28px;height:28px;border:3px solid #e2dfd8;border-top-color:#1f2a44;border-radius:50%;animation:editor-spin .8s linear infinite;margin:0 auto}.editor-empty-loading{border-style:solid}.editor-empty-card-loading{padding:32px 40px}.editor-empty-card-loading .editor-empty-title{font-size:19px}.editor-loading-spinner-large{width:56px;height:56px;border-width:5px}@keyframes editor-spin{to{transform:rotate(360deg)}}.editor-empty-recents{background:#fff;border:1px solid #e2dfd8;border-radius:12px;padding:16px 20px;width:min(920px,94vw);display:grid;gap:10px}.editor-empty-recents-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6f675a}.editor-empty-recents-list{display:grid;gap:6px;max-height:50dvh;overflow:auto}.editor-empty-recents-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #e2dfd8;border-radius:8px;background:#f7f4ef}.editor-empty-recents-item:hover{border-color:#c9c4b8;background:#f1ede5}.editor-empty-recents-title{text-align:left;background:none;border:none;padding:0;color:#1f2a44;font-size:13px;cursor:pointer;min-width:0;flex:1 1 auto;overflow:hidden}.editor-empty-recents-title:hover{text-decoration:underline}.editor-empty-recents-modules{display:flex;gap:4px;flex:0 0 auto}.panel-left,.panel-right{background:#fff;border:1px solid #e2dfd8;border-radius:10px;padding:12px;display:grid;gap:12px;align-content:start;min-height:0;min-width:0;max-height:none;overflow:auto;overscroll-behavior:contain}.panel-right{display:flex;flex-direction:column;align-content:stretch;overflow:hidden}.panel-right>*{flex:0 0 auto}.panel-right-body{display:flex;flex-direction:column;gap:12px;overflow-y:auto;overflow-x:hidden;min-height:0;flex:1 1 auto;padding-bottom:36px;scroll-padding-bottom:36px}.sidebar-expand-btn{width:100%;background:none;border:none;cursor:pointer;font-size:14px;color:#9a9489;padding:10px 0;display:flex;align-items:center;justify-content:center;border-radius:4px}.sidebar-expand-btn:hover{color:#1a1a1a;background:#0000000d}.sidebar-collapse-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:4px}.sidebar-collapse-row .save-status{flex:1;min-width:0;text-align:left;padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-strip-save-dot{width:8px;height:8px;border-radius:999px;margin:8px auto 2px;background:#cfc8ba}.sidebar-strip-save-dot.saved{background:#16a34a}.sidebar-strip-save-dot.saving,.sidebar-strip-save-dot.pending{background:#e6a817}.sidebar-strip-save-dot.error{background:#ef4444}.panel-right .accordion-section{flex:0 0 auto}.panel-right .accordion-section:last-child{margin-bottom:18px}.accordion-section{border:1px solid #e2dfd8;border-radius:10px;background:#fff;overflow:hidden;flex-shrink:0}.accordion-header{width:100%;border:0;background:#f7f4ef;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1f2a44;cursor:pointer}.panel-right .accordion-header,.library-sidebar-accordion .accordion-header{background:#7d8478;color:#f5f2ea;border-bottom:1px solid #70776b}.panel-right .accordion-header:hover,.library-sidebar-accordion .accordion-header:hover{background:#848c7f}.panel-right .accordion-section.open .accordion-header,.library-sidebar-accordion .accordion-section.open .accordion-header{background:#8a9285}.panel-right .accordion-section.selection-active .accordion-header{background:#1a6e46;color:#fff;border-bottom-color:#145536}.panel-right .accordion-section.selection-active .accordion-header:hover{background:#17643f}.panel-right .accordion-section.selection-active .accordion-summary{color:#eafff2}.accordion-summary{font-size:11px;font-weight:500;text-transform:none;color:#6b6b6b}.panel-right .accordion-summary{color:#f0ede4}.panel-right .accordion-summary .tool-button{opacity:1;color:#1f2a44;background:#f7f4ef;border-color:#d9d4c9;cursor:pointer}.panel-right .accordion-summary .tool-button:hover{background:#ece7dd}.panel-right .accordion-summary{display:inline-flex;align-items:center;gap:6px}.device-properties-summary-pill-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;max-width:260px}.device-properties-summary-pill{display:inline-flex;align-items:center;max-width:260px;border:0;border-radius:999px;background:#000;color:#fff;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1.2;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.knx-accordion-summary{display:inline-flex;align-items:center;gap:6px}.accordion-body{padding:10px 12px}.entity-match-field-pills{display:flex;flex-wrap:wrap;gap:6px}.entity-match-field-pill{background:#eef1f6;color:#3a4256;border:1px solid #d7dce6;padding:2px 8px;border-radius:999px;font-size:11px;font-family:SFMono-Regular,Menlo,monospace}.entity-match-field-pill-muted{color:#6b7280;font-style:italic;font-family:inherit}.entity-match-input{margin:4px 0}.entity-match-length-list{margin:2px 0 0;padding-left:18px}.entity-match-results-group{display:grid;gap:4px;margin-bottom:10px}.entity-match-results-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b}.entity-match-line-pill{display:inline-flex;align-items:center;min-height:20px;padding:1px 8px;border-radius:999px;color:#fff;border:1px solid;font-size:10px;font-weight:700;letter-spacing:.02em}.entity-match-detail-block{display:grid;gap:1px;margin-top:4px;padding-top:4px;border-top:1px dashed #e5e0d4}.entity-match-detail-block:first-of-type{margin-top:2px;padding-top:0;border-top:none}.entity-match-detail-row{display:flex;align-items:baseline;gap:6px}.entity-match-detail-label{flex:0 0 auto;min-width:100px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#8a8073}.entity-match-detail-value{font-size:12px;color:#2f2f2f}.entity-match-terminal-row,.entity-match-ga-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;padding-top:4px;border-top:1px dashed #e5e0d4}.entity-match-terminal-pair,.entity-match-ga-pair{display:inline-flex;align-items:center;gap:4px}.entity-match-terminal-label{display:inline-flex;align-items:center;min-height:16px;padding:0 6px;border-radius:999px;background:#f1ede4;color:#6b6250;font-size:10px;font-weight:700;letter-spacing:.02em}.entity-match-ga-pill{display:inline-flex;align-items:center;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid #f5c9c9;background:#fff1f1;color:#8f1d1d;font-size:10px;font-weight:700}.entity-match-minimap-dot{position:absolute;width:6px;height:6px;border-radius:999px;background:#64748b8c;border:1.5px solid #64748b;transform:translate(-50%,-50%)}.entity-match-minimap-dot.active{width:13px;height:13px;background:#ff2d78d9;border:2px solid #ff2d78;box-shadow:0 0 0 4px #ff2d7833}.tab-body .accordion-section{margin-bottom:10px}.tab-body .accordion-section:last-child{margin-bottom:0}.panel-left{display:flex;flex-direction:column;overflow:hidden;padding-bottom:20px;scroll-padding-bottom:20px;border-bottom:1px solid #d9d4c9}.panel-left>*{flex:0 0 auto}.tool-status{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6558;background:transparent;border:none;padding:2px 2px 0;text-align:left}.tool-status-label{flex:1}.tool-status-help{border:none;background:#1f2a44;color:#fff;padding:4px 8px;border-radius:999px;font-size:10px;text-transform:none;letter-spacing:0;cursor:pointer}.tool-status-help:hover{background:#243359}.save-status{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#1f2a44;background:#f7f4ef;border:1px solid #e2dfd8;border-radius:8px;padding:6px 8px;text-align:center}.save-status.saving,.save-status.pending{background:#fff7ed;border-color:#f2c185;color:#9a3412}.save-status.error{background:#fee2e2;border-color:#ef4444;color:#991b1b}.modal-projects{width:min(920px,94vw);height:min(90dvh,900px);grid-template-rows:auto minmax(0,1fr) auto}.modal-card.modal-projects .modal-scroll{max-height:none;display:flex;flex-direction:column}.modal-projects .modal-scroll>.panel-section{display:flex;flex-direction:column;flex:1;min-height:0}.project-search-input{width:100%;box-sizing:border-box;margin-bottom:10px;flex:0 0 auto}.project-list{display:grid;align-content:start;gap:8px;flex:1;min-height:120px;overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#948977 #ece7dc}.project-list::-webkit-scrollbar{width:12px}.project-list::-webkit-scrollbar-track{background:#ece7dc;border-left:1px solid #ddd4c7}.project-list::-webkit-scrollbar-thumb{background:#948977;border-radius:999px;border:2px solid #ece7dc}.project-list::-webkit-scrollbar-thumb:hover{background:#7f7463}.project-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e2dfd8;border-radius:8px;padding:10px;background:#fff;cursor:pointer}.project-row:hover{border-color:#c9c4b8;background:#f1ede5}.project-row-archived{background:#fbfaf7;border-color:#d8d0bf}.project-row-selected,.project-row-selected:hover{border-color:#1a6e46;background:#eaf4ee;box-shadow:0 0 0 1px #1a6e46 inset}.project-name{font-size:14px;font-weight:600;color:#1f2a44;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.project-todo-pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.project-status-pill{display:inline-flex;align-items:center;border-radius:3px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.project-status-init{background:#e5e7eb;color:#374151;border:1px solid #d1d5db}.project-status-in_progress{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.project-status-done{background:#dcfce7;color:#166534;border:1px solid #86efac}.project-status-cancelled{background:#2c2c2c;color:#e0e0e0;border:1px solid #1a1a1a}.project-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.project-manager-footer{border-top:1px solid #e6e2da;padding-top:10px;background:#fff}.cabinet-hw-editor-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid #e2dfd8;background:#fffdf9}.cabinet-hw-editor-body{display:grid;gap:10px}.cabinet-hw-editor-controls{display:grid;gap:8px;position:relative;z-index:3;background:#fff}.cabinet-hw-editor-line-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px;align-items:end}.cabinet-hw-editor-line-row .property-cell{display:grid;gap:6px;min-width:0}.cabinet-hw-editor-controls .searchable-select{z-index:4}.cabinet-hw-editor-controls .searchable-select-popover{z-index:40}.cabinet-hw-editor-list{align-content:start}.cabinet-only-table{border:1px solid #e2dfd8;border-radius:8px;overflow-x:auto;overflow-y:hidden;background:#fff}.cabinet-only-head,.cabinet-only-row{display:grid;grid-template-columns:92px minmax(160px,1.2fr) minmax(90px,1fr) minmax(100px,1fr) minmax(220px,2fr) 28px;align-items:center;gap:3px;padding:5px 6px;font-size:12px}.cabinet-only-head{background:#f7f4ef;font-weight:700;color:#1f2a44;border-bottom:1px solid #e2dfd8}.cabinet-only-row+.cabinet-only-row{border-top:1px solid #f0ece5}.cabinet-only-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cabinet-only-row .property-remove{justify-self:end;width:22px;min-width:22px;height:22px;font-size:14px;padding:0}.cabinet-only-addr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;color:#1f2a44}.modal-card.modal-wide.cabinet-hw-modal-card{width:calc(100vw - 8px);max-width:calc(100vw - 8px);height:90dvh;max-height:90dvh;display:grid;grid-template-rows:auto minmax(0,1fr)}.cabinet-hw-modal-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;height:100%;min-height:0}.cabinet-hw-panel{border:1px solid #e2dfd8;border-radius:10px;padding:10px;background:#fff;min-width:0;display:grid;gap:8px;overflow:hidden;min-height:0}.cabinet-hw-panel-left{grid-template-rows:auto auto minmax(0,1fr) auto minmax(0,1fr)}.cabinet-hw-panel-left.manual-only,.cabinet-hw-panel-right{grid-template-rows:auto auto minmax(0,1fr)}.cabinet-hw-table{border:1px solid #e8e3d7;border-radius:8px;overflow-x:auto;overflow-y:auto;background:#fffdfa;height:100%;max-height:none;min-width:0}.cabinet-hw-head,.cabinet-hw-row{display:grid;grid-template-columns:78px minmax(90px,1fr) minmax(120px,1.2fr) minmax(220px,2fr) 92px 120px;gap:6px;align-items:center;padding:6px 8px;font-size:12px;min-width:780px}.cabinet-hw-table-5 .cabinet-hw-head,.cabinet-hw-table-5 .cabinet-hw-row{grid-template-columns:78px minmax(72px,.65fr) minmax(96px,.85fr) minmax(300px,3.2fr) 52px 52px 44px;min-width:760px}.cabinet-hw-table-6 .cabinet-hw-head,.cabinet-hw-table-6 .cabinet-hw-row{grid-template-columns:112px minmax(72px,.65fr) minmax(148px,1.2fr) minmax(280px,3fr) 52px 44px;min-width:840px}.cabinet-hw-table-6 .cabinet-hw-row.cabinet-hw-row-field{grid-template-columns:112px minmax(72px,.65fr) minmax(148px,1.2fr) minmax(200px,2.2fr) 52px 44px minmax(80px,1fr)}.hardware-instance-room-tag{display:flex;align-items:center;font-size:11px;color:#5a6e8a;font-style:italic;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cabinet-hw-table-8 .cabinet-hw-head,.cabinet-hw-table-8 .cabinet-hw-row{grid-template-columns:112px minmax(72px,.6fr) minmax(148px,1.1fr) minmax(260px,2.8fr) 52px 32px 32px 44px;min-width:900px}.cabinet-hw-table-catalog .cabinet-hw-head,.cabinet-hw-table-catalog .cabinet-hw-row{grid-template-columns:64px minmax(90px,1fr) minmax(120px,1.05fr) minmax(320px,3fr) 42px 42px;min-width:700px}.hardware-instance-table .cabinet-hw-head,.hardware-instance-table .cabinet-hw-row{grid-template-columns:78px minmax(88px,.7fr) minmax(96px,.8fr) minmax(120px,1fr) minmax(220px,2fr) 92px 120px;min-width:940px}.cabinet-hw-head{font-weight:700;color:#1f2a44;background:#ece4d6;border-bottom:1px solid #d8ccbb;position:sticky;top:0;z-index:2}.cabinet-hw-row+.cabinet-hw-row{border-top:1px solid #efebe3}.cabinet-hw-row.cabinet-hw-row-recently-moved{box-shadow:inset 0 0 0 2px #1f2a4438;background:#e8efff;border-radius:8px}.cabinet-hw-row-expandable{cursor:pointer}.cabinet-hw-instance-row{background:#ece4d6;font-weight:700}.hardware-instance-summary-block{margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #e7dfd2}.hardware-instance-summary-block-selected{outline:2px solid #1a6e46;outline-offset:-1px;border-radius:4px}.hardware-instance-group.hardware-instance-group-card:has(.hardware-instance-summary-block-selected),.hardware-instance-summary-block-selected .cabinet-hw-allocation-list{content-visibility:visible}.hardware-instance-header-stack{display:flex;flex-direction:column;gap:0}.hardware-instance-header-actions-row{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;overflow-x:auto;padding:5px 8px 7px;background:#ece4d6;border-bottom:1px solid #d8ccbb}.hardware-instance-action-group{display:inline-flex;align-items:center;gap:4px}.hardware-instance-action-group+.hardware-instance-action-group{padding-left:8px;border-left:1px solid #ded7ca}.cabinet-hw-row-expandable:hover{background:#f8f5ef}.cabinet-hw-row.search-match{box-shadow:inset 0 0 0 1px #2b4f7a;background:#eaf2ff}.cabinet-hw-instance-row:hover{background:#efebe4}.cabinet-hw-expand-indicator{justify-self:end;color:#6b6b6b;font-size:12px}.cabinet-hw-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cabinet-hw-indaddr-input{width:100%;min-width:0;box-sizing:border-box;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.cabinet-hw-indaddr-na{display:inline-flex;align-items:center;min-height:28px;color:#667085}.cabinet-hw-ports{font-variant-numeric:tabular-nums;color:#344054;font-weight:600}.cabinet-hw-num{font-variant-numeric:tabular-nums;text-align:right;justify-self:end}.cabinet-hw-ports.ok{color:#067647}.cabinet-hw-allocation-list{display:grid;gap:4px;margin-top:2px;padding:6px 10px 8px;border-top:1px dashed #ddd4c7;background:#fffcf7;content-visibility:auto;contain-intrinsic-size:480px}.cabinet-hw-allocation-item{display:grid;grid-template-columns:52px 64px 82px minmax(0,.82fr) minmax(0,.82fr) minmax(0,.82fr) minmax(0,1.1fr);gap:6px;align-items:center;font-size:12px;padding:2px 4px;border-radius:6px}.cabinet-hw-allocation-item-summary{grid-template-columns:52px minmax(0,1fr)}.cabinet-hw-allocation-item.cabinet-hw-allocation-item-with-device{grid-template-columns:52px 64px minmax(0,.8fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.8fr)}.cabinet-hw-allocation-item.cabinet-hw-allocation-item-with-terminal{grid-template-columns:20px 52px 64px 82px minmax(0,.66fr) minmax(0,.66fr) minmax(0,.66fr) minmax(0,1.8fr) minmax(84px,.48fr) minmax(84px,.48fr) minmax(92px,.54fr)}.cabinet-hw-allocation-jump{display:flex;align-items:center;justify-content:center}.hardware-port-jump-btn{width:16px;height:16px;border-radius:999px;border:1px solid #66b462;background:#7fc37a;color:#0e2a1b;display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1;padding:0;cursor:pointer}.hardware-port-jump-btn:hover{background:#6cb466}.cabinet-hw-allocation-item.selectable{cursor:pointer}.cabinet-hw-allocation-item.disabled{opacity:.62}.cabinet-hw-allocation-item.selected{box-shadow:inset 0 0 0 1px #1f2a44;background:#e8efff}.cabinet-hw-allocation-item.free{background:#ecf9ef}.cabinet-hw-allocation-item.used{background:#f8f5ef}.cabinet-hw-allocation-item.search-match{box-shadow:inset 0 0 0 1px #2b4f7a;background:#eaf2ff}.cabinet-hw-allocation-item.is-minimap-selected{background:#eef2fb;box-shadow:inset 0 0 0 1px #ced7f0}.cabinet-hw-allocation-port{font-variant-numeric:tabular-nums;font-weight:600;color:#1f2a44;text-align:right;justify-self:end}.cabinet-hw-allocation-device{font-variant-numeric:tabular-nums;color:#1f2a44;justify-self:start;width:100%}.cabinet-hw-allocation-state{font-variant-numeric:tabular-nums;color:#4d4d4d;justify-self:end;text-transform:lowercase}.cabinet-hw-allocation-name{color:#4d4d4d;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.cabinet-hw-allocation-building,.cabinet-hw-allocation-floor,.cabinet-hw-allocation-room{color:#4d4d4d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cabinet-hw-allocation-lock{justify-self:start;width:auto}.cabinet-hw-allocation-terminal{min-width:0}.cabinet-hw-allocation-terminal-input{width:100%;min-width:0;height:28px;padding:0 8px;border:1px solid #d8d0c2;border-radius:8px;background:#fffdf9;color:#1f2a44;font-size:12px}.cabinet-hw-allocation-terminal-input:focus{outline:2px solid rgba(31,42,68,.14);outline-offset:0;border-color:#1f2a44}.cabinet-hw-editor-body{display:grid;height:100%;min-height:0;max-height:none}.modal-scroll.cabinet-hw-editor-body,.modal-scroll.chc-modal-body{max-height:none}.cabinet-hw-table-manual .cabinet-hw-head>span:last-child,.cabinet-hw-table-manual .cabinet-hw-row>button{position:sticky;right:0;z-index:3;background:#fffdfa;justify-self:end;width:auto}.cabinet-hw-table-manual .cabinet-hw-row>.property-remove{background:#b42318;color:#fff;border:none;width:28px;min-width:28px;height:24px;z-index:4;right:0}.cabinet-hw-table-manual .cabinet-hw-row>.cabinet-hw-move-button{display:inline-flex;align-items:center;justify-content:center;width:28px;min-width:28px;height:24px;padding:0;border-radius:6px;text-align:center;line-height:1;font-size:14px}.cabinet-hw-table-manual .cabinet-hw-row>.cabinet-hw-move-button:nth-last-child(2){right:34px}.cabinet-hw-table-manual .cabinet-hw-row>.cabinet-hw-move-button:nth-last-child(3){right:68px}.cabinet-hw-table-manual .cabinet-hw-head>span:last-child{background:#f7f4ef}.cabinet-hw-table-manual .cabinet-hw-head>span:nth-last-child(1){right:0}.cabinet-hw-table-manual .cabinet-hw-head>span:nth-last-child(2){right:34px}.cabinet-hw-table-manual .cabinet-hw-head>span:nth-last-child(3){right:68px}.cabinet-hw-table-catalog .cabinet-hw-head>span:first-child,.cabinet-hw-table-catalog .cabinet-hw-row>button:first-child{position:sticky;left:0;z-index:3;background:#fffdfa;justify-self:start;width:auto}.cabinet-hw-table-catalog .cabinet-hw-head>span:first-child{background:#f7f4ef}.cabinet-hw-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cabinet-hw-add-btn{min-width:40px;padding:3px 6px;text-align:center;justify-self:start}.project-edit-actions{display:flex;justify-content:flex-end;gap:8px}.panel-divider{height:1px;background:#e6e2da;margin:4px 0}.tab-header.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid #d9d4c9;border-radius:8px;overflow:hidden}.panel-left .tab-header.segmented{border-color:#c9c2b3;box-shadow:0 1px 2px #1f2a4414}.tab-body{display:block;overflow-y:auto;overflow-x:hidden;min-height:0;flex:1 1 auto;padding-bottom:16px}.panel-left .tab-body{padding-bottom:28px}.panel-left,.sidebar-strip-left{grid-column:1}.editor-sidebar-resizer-left{grid-column:2}.editor-canvas{grid-column:3}.editor-sidebar-resizer-right{grid-column:4}.panel-right,.sidebar-strip-right{grid-column:5}.sidebar-strip{background:#fff;border:1px solid #e2dfd8;border-radius:10px;display:flex;flex-direction:column;align-items:stretch;overflow:hidden}.editor-canvas{background:#f1eee6;border:1px solid #e2dfd8;border-radius:10px;display:block;overflow:hidden;position:relative;width:100%;height:100%;min-height:0;align-self:stretch;min-width:0}.three-d-view-root{width:100%;height:100%}.three-d-view-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.editor-sidebar-resizer{position:relative;border:0;background:#f6f4f1;padding:0;margin:0;min-width:var(--editor-sidebar-gutter-width, 18px);align-self:stretch;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.editor-sidebar-resizer:before{content:"";position:absolute;top:10px;bottom:10px;left:50%;width:2px;transform:translate(-50%);background:#b8b0a3;border-radius:999px;transition:background .12s ease,opacity .12s ease;box-shadow:0 0 0 1px #ffffff73}.editor-sidebar-resizer:hover:before,.editor-sidebar-resizer:active:before{background:#8f8779}.editor-sidebar-resizer-left{border-right:1px solid rgba(221,215,206,.95)}.editor-sidebar-resizer-right{border-left:1px solid rgba(221,215,206,.95)}.sidebar-footer{display:grid;gap:8px;margin-top:auto;padding-top:4px;width:100%}.sidebar-footer-actions{display:flex;justify-content:flex-end;width:100%}.sidebar-footer .tool-button.compact{min-height:32px;width:100%;justify-content:center}.panel-left .sidebar-footer{padding-top:10px}.panel-right .sidebar-footer{padding-top:10px;margin-top:0}.canvas-reference-scale{position:absolute;left:14px;bottom:12px;z-index:50;display:grid;gap:3px;pointer-events:none}.canvas-reference-label{font-size:11px;font-weight:700;color:#111827;background:#fff3b0f2;border:1px solid rgba(166,120,4,.8);border-radius:4px;padding:1px 6px;width:fit-content}.line-cloud-pill-stack{position:absolute;top:14px;right:14px;z-index:50;display:grid;gap:4px;justify-items:end;pointer-events:none}.line-cloud-pill{font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;font-weight:600;color:#e2e8f0;background:#0f172aeb;border:1.5px solid;border-radius:4px;padding:4px 10px;width:fit-content;box-shadow:0 2px 8px #00000040}.line-cloud-pill-devices{font-size:9px;font-weight:500;color:#94a3b8;margin-top:2px;white-space:nowrap}.canvas-reference-line{position:relative;height:0;border-top:3px solid #1e293b;filter:drop-shadow(0 0 2px rgba(0,0,0,.28))}.canvas-reference-line:before,.canvas-reference-line:after{content:"";position:absolute;top:-6px;width:0;height:12px;border-left:2px solid #12203c}.canvas-reference-line:before{left:0}.canvas-reference-line:after{right:0}.canvas-status{position:absolute;right:16px;bottom:46px;max-width:calc(100% - 32px);background:#1f2a44;color:#fff;font-size:12px;padding:6px 10px;border-radius:6px;letter-spacing:.02em;box-shadow:0 6px 16px #0003;pointer-events:auto;z-index:5}.canvas-view-mode-toggle{position:absolute;top:12px;left:12px;z-index:200;background:#1f2a44;color:#fff;border:1px solid #0f172a;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 16px #0003}.canvas-view-mode-toggle:hover{background:#29365a}.canvas-view-mode-toggle.active{background:#6366f1;border-color:#4338ca}.guided-route-legend{font-size:14px;line-height:1;margin:0 1px 0 6px}.guided-route-legend-wall{color:#0ea5e9}.guided-route-legend-cabinet{color:#f59e0b}.guided-route-legend-line{color:#a855f7}.zen-command-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a3d;display:flex;align-items:flex-start;justify-content:center;padding-top:5dvh;z-index:5500}.zen-command-card{width:min(640px,92vw);border:1px solid #ddd7ca;border-radius:12px;background:#fffdf9;box-shadow:0 24px 50px #0f172a3d;padding:14px;display:grid;gap:10px}.zen-command-card-commands{width:min(720px,94vw);max-height:90dvh;display:flex;flex-direction:column;overflow:hidden}.zen-command-card-commands>.zen-command-title,.zen-command-card-commands>.zen-command-input,.zen-command-card-commands>.zen-command-status-strip{flex:0 0 auto}.device-picker-card,.line-picker-card{max-height:90dvh;display:flex;flex-direction:column;overflow:hidden}.device-picker-card>.zen-command-title,.device-picker-card>.zen-command-input,.device-picker-card>.device-picker-favorites,.line-picker-card>.zen-command-title,.line-picker-card>.zen-command-input{flex:0 0 auto}.device-picker-card{width:min(760px,94vw)}.line-picker-card{width:min(700px,94vw)}.zen-command-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6f675a}.zen-command-input{font-size:14px}.zen-command-list{flex:1 1 auto;min-height:80px;overflow:auto;display:grid;gap:6px;align-content:start}.line-picker-group-header{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6f675a;padding:6px 4px 2px}.zen-command-row{width:100%;border:1px solid #e2dfd8;border-left:3px solid #e2dfd8;border-radius:8px;background:#fff;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;min-width:0;font-size:15px}.zen-command-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:flex;align-items:center}.zen-command-checkbox{display:inline-block;margin-right:8px;font-size:21px;line-height:1;font-weight:700}.zen-command-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6f675a;padding:6px 4px 0}.zen-command-row-grouped{margin-left:12px;width:calc(100% - 12px)}.zen-command-row.active,.zen-command-row:hover{border-color:#1f2a44;background:#f4f6fb}.zen-command-row-on{border-left-color:#15803d}.zen-command-row-on .zen-command-checkbox{color:#15803d}.zen-command-row-off{border-left-color:#b91c1c;background:#fdf7f2}.zen-command-row-off .zen-command-checkbox{color:#b91c1c}.zen-command-row-off.active,.zen-command-row-off:hover{background:#fbeee6}.zen-command-row-on.active,.zen-command-row-on:hover{background:#eef6f0}.zen-command-status-strip{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid #e2dfd8}.zen-command-status-filters{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-top:6px;border-top:1px dashed #e2dfd8}.zen-command-status-filters-header{display:flex;align-items:center;gap:8px}.zen-command-status-filters-toggle{display:flex;align-items:center;gap:4px;border:none;background:transparent;padding:0;cursor:pointer}.zen-command-status-filters-chevron{font-size:10px;color:#6f675a}.zen-command-status-filters-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6f675a}.zen-command-status-filters-body{display:flex;flex-direction:column;gap:4px;max-height:min(34dvh,320px);overflow-y:auto;padding-top:2px}.zen-command-status-group{display:flex;align-items:flex-start;gap:8px}.zen-command-status-group-label{flex:0 0 52px;padding-top:2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#8a8578}.zen-command-status-group-items{display:flex;flex-wrap:wrap;gap:3px 8px;min-width:0}.zen-command-status-subgroups{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}.zen-command-status-subgroup{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px}.zen-command-status-subgroup-label{flex:0 0 auto;border:none;background:transparent;padding:0;font-size:10px;font-weight:700;color:#4b7bec;cursor:pointer;text-decoration:underline dotted}.zen-command-status-subgroup-label:hover{color:#1f2a44}.zen-command-status-subgroup-label.static{color:#8a8578;cursor:default;text-decoration:none}.zen-command-status-dot{display:inline-flex;align-items:center;gap:3px;padding:1px 2px;border:none;background:transparent;cursor:pointer}.zen-command-status-dot-glyph{font-size:13px;line-height:1}.zen-command-status-dot-label{font-size:10px;line-height:1;white-space:nowrap}.zen-command-status-dot.on{color:#15803d}.zen-command-status-dot.off{color:#b91c1c;opacity:.65}.zen-command-status-dot:hover{transform:scale(1.08)}.opening-edit-popup-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.object-model-picker-trigger-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.object-model-picker-trigger-row .panel-help{flex:1;min-width:80px}.object-model-picker-card-modal{width:min(1080px,94vw);grid-template-rows:auto auto minmax(0,1fr)}.object-model-picker-search{display:flex;gap:6px;align-items:center}.object-model-picker-search .tool-input{flex:1}.object-model-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;align-content:start}.object-model-picker-card{display:grid;gap:6px;padding:8px;border:1px solid #e2dfd8;border-radius:8px;background:#fffdf9;cursor:pointer;text-align:center}.object-model-picker-card:hover{border-color:#b7ada0}.object-model-picker-card.selected{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.object-model-picker-card img{width:100%;aspect-ratio:1;object-fit:contain;background:#f4f2ed;border-radius:4px}.object-model-picker-card-fallback{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#f4f2ed;border-radius:4px;color:#8a8174;font-size:11px;padding:4px;text-align:center}.object-model-picker-card-name{font-size:11px;color:#3b362f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-model-picker-card-size{font-size:10px;color:#8a8174}.mobile-device-popup{z-index:30;width:min(280px,calc(100vw - 160px));max-height:calc(100dvh - 90px);overflow-y:auto;background:#fffdf9;border:1px solid #ddd7ca;border-radius:8px;box-shadow:0 10px 24px #0f172a2e;padding:0 10px 10px;display:grid;gap:8px}.mobile-device-popup-delete{width:100%;margin-top:4px}.mobile-device-popup-header{position:sticky;top:0;margin:0 -10px 2px;padding:8px 10px;border-bottom:1px solid #ddd7ca;border-radius:8px 8px 0 0;background:#f4efe5;font-size:12px;font-weight:700;color:#1f2a44;cursor:move;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:space-between}.mobile-device-popup-summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:11px;color:#6b6252;margin-top:-4px}.mobile-device-popup-close{border:none;background:transparent;color:#1f2a44;font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.mobile-device-count-row{display:flex;align-items:center;gap:10px}.mobile-device-count-value{min-width:24px;text-align:center;font-weight:700}.mobile-device-line-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12px}.mobile-device-line-row+.mobile-device-line-row{border-top:1px solid #ece7dd}.mobile-device-line-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.mobile-device-line-label{font-weight:600;flex-shrink:0}.mobile-device-line-type{color:#6b6b6b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-picker-favorites{display:flex;flex-wrap:wrap;gap:6px}.device-picker-favorite-chip{border:1px solid #d9d2c4;border-radius:999px;background:#f8f4ea;padding:3px 8px;display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:grab}.device-picker-favorite-chip:active{cursor:grabbing}.device-picker-row{width:100%;border:1px solid #e2dfd8;border-radius:8px;background:#fff;padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}.device-picker-row.active,.device-picker-row:hover{border-color:#1f2a44;background:#f4f6fb}.device-picker-main{display:inline-flex;align-items:center;gap:8px;min-width:0}.device-picker-icon{min-width:26px;width:26px;height:26px;border-width:1px;border-radius:8px;font-size:13px;flex:0 0 auto}.device-picker-icon-mini{width:20px;height:20px;border-radius:6px;border-width:1px;font-size:11px;flex:0 0 auto}.device-picker-actions{display:inline-flex;align-items:center;gap:6px}.device-picker-favorite-key{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:999px;border:1px solid #d8d0c0;background:#f3ede1;color:#5b5449;font-size:11px;font-weight:700}.line-picker-preview{width:56px;height:6px;flex:0 0 auto}.line-picker-chip-preview{width:18px;height:6px;flex:0 0 auto}.zen-command-hint{font-size:12px;font-weight:600;color:#7a7366;background:#f4efe5;border:1px solid #e2dbc9;border-radius:999px;padding:2px 9px;flex-shrink:0}.zen-quickmenu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2650;pointer-events:none}.zen-quickmenu{position:absolute;width:0;height:0;pointer-events:none}.zen-quickmenu-item{position:absolute;left:50%;top:50%;min-width:92px;border:1px solid #dad3c5;border-radius:10px;background:#fffcf6f5;color:#3d3a33;padding:6px 8px;display:grid;justify-items:center;gap:2px;pointer-events:auto;box-shadow:0 10px 28px #0f172a33}.zen-quickmenu-item small{font-size:10px;color:#7c7469}.zen-quickmenu-item.active{border-color:#1f2a44;background:#eef2ff;color:#1f2a44}.zen-quickmenu-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:999px;border:1px solid #1f2a44;background:#1f2a44eb;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 12px 28px #0f172a59}.quote-modal{width:min(98vw,1800px);max-width:none;max-height:calc(100dvh - 24px)}.quote-modal-body{display:grid;gap:12px;max-height:calc(100dvh - 170px)}.quote-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.quote-card{border:1px solid #e2dfd8;border-radius:10px;background:#fff;padding:10px;display:grid;gap:8px;align-content:start;justify-items:stretch}.quote-rate-grid{display:grid;gap:6px}.quote-rate-row{display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:center}.quote-rate-row input{border:1px solid #d9d4c9;border-radius:8px;padding:5px 7px;font-size:12px}.quote-summary{align-content:start}.quote-summary-row{display:flex;justify-content:space-between;gap:10px;font-size:13px}.quote-summary-row.total{padding-top:8px;border-top:1px solid #e7e2d9;font-weight:700;color:#1f2a44}.quote-summary-row.quote-summary-row-dashed{margin-top:2px;padding-top:8px;border-top:1px dashed #cdbfa7}.quote-table-wrap{overflow:auto}.quote-table{width:100%;border-collapse:collapse;font-size:12px}.quote-table th,.quote-table td{border:1px solid #e2dfd8;padding:6px 8px;text-align:left;vertical-align:top}.quote-table th{background:#f7f4ef;color:#514d46;font-weight:600}.quote-table tr.quote-table-total-row td{border-top:3px solid #c6b798;font-weight:700;color:#1f2a44}.quote-table tr.quote-table-subtotal-row td{border-top:0;box-shadow:inset 0 2px #d8cebc}.quote-missing-price{color:#a94400;font-weight:700}.quote-markdown-preview{margin:0;border:1px solid #e2dfd8;border-radius:8px;padding:10px;background:#f9f7f2;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow:auto;max-height:320px}.quote-num{text-align:right!important;font-variant-numeric:tabular-nums}.tool-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.tool-button-with-inline-control{display:grid;gap:6px}.note-tool-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.note-tool-row.note-buttons-row{grid-template-columns:1fr 1fr;align-items:stretch}.note-buttons-row .tool-button{display:flex;align-items:center}.panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b;margin-bottom:4px}.panel-subtitle{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b;margin:8px 0 4px}.panel-right .panel-subtitle{display:inline-flex;align-items:center;width:fit-content;border-radius:6px;padding:3px 8px;margin:8px 0 6px;background:#7a8275;color:#f5f2ea}.topology-launch-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfc9bb;background:#f7f4ef;color:#1f2a44;border-radius:8px;padding:3px 7px;font-size:12px;line-height:1;cursor:pointer;opacity:1}.topology-launch-pill:hover{background:#ece7dd}.topology-launch-pill:focus-visible{outline:2px solid #1f2a44;outline-offset:1px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-title-actions{display:flex;gap:6px}.panel-actions-row{display:flex;flex-wrap:wrap;gap:6px}.project-tools-actions{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin:0}.project-tools-actions .tool-button{width:100%;min-width:0;text-align:center}.project-tools-button-group{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;align-self:start;grid-column:span 2}.project-tools-divider{grid-column:1 / -1;margin:2px 0}.project-tools-body{display:grid;gap:8px;align-content:start}.icon-button{display:inline-flex;align-items:center;gap:6px}.icon-button .icon{font-size:13px;line-height:1}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-group:not(:first-child){border-left:1px solid #e2dfd8;padding-left:8px;margin-left:4px}.tool-button.compact{padding:4px 8px;font-size:12px}.tool-button.tiny{padding:3px 6px;font-size:12px;align-self:flex-start}.tool-button.delete-x{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;width:28px;min-width:28px;height:28px;padding:0;background:#b42318;border-color:#b42318;color:#fff;font-size:16px;line-height:1;text-align:center}.tool-button.delete-x:hover:not(:disabled){background:#99231a;border-color:#99231a}.tool-button{border:1px solid #d9d4c9;background:#f7f4ef;border-radius:8px;padding:8px 10px;text-align:left;font-size:14px;cursor:pointer}.tool-button.centered{text-align:center}button:active:not(:disabled){transform:translateY(1px);filter:brightness(.98)}.tool-button.danger{background:#b42318;border-color:#b42318;color:#fff}.tool-button.primary{background:#1a6e46;border-color:#1a6e46;color:#fff}.tool-button.primary:hover:not(:disabled){background:#155c3a;border-color:#155c3a}.tool-button.todo-alert-done{background:#1f7a3f;border-color:#1f7a3f;color:#fff}.project-todo-pill.todo-alert-done{background:#1f7a3f;color:#fff}.tool-button.todo-alert-open-other{background:#c46a16;border-color:#c46a16;color:#fff}.project-todo-pill.todo-alert-open-other{background:#c46a16;color:#fff}.tool-button.todo-alert-open-mine{background:#b42318;border-color:#b42318;color:#fff}.project-todo-pill.todo-alert-open-mine{background:#b42318;color:#fff}.tool-button.tool-button-export-ets{background:#2f8f46;border-color:#2f8f46;color:#fff}.tool-button.tool-button-export-ets:hover:not(:disabled){background:#26763a;border-color:#26763a}.tool-button.tool-button-export-ha{background:#1e64c8;border-color:#1e64c8;color:#fff}.tool-button.tool-button-export-ha:hover:not(:disabled){background:#1953a6;border-color:#1953a6}.link-button{background:none;border:none;padding:0;margin:0;font:inherit;color:#1f2a44;cursor:pointer;text-align:left}.link-button.topology-name{color:#b45309}.tool-button.active{background:#1f2a44;color:#fff;border-color:#1f2a44}.tool-button.module-kukugya{border-left:3px solid #3f8f5f}.tool-button.module-kukugya.active{background:#2c6b47;border-color:#2c6b47}.tool-button.module-stock{border-left:3px solid #b07d3a}.tool-button.module-stock.active{background:#8a5f24;border-color:#8a5f24}.tool-button.module-crm{border-left:3px solid #7c5cbf}.tool-button.module-crm.active{background:#5c4394;border-color:#5c4394}.tool-button.module-qf{border-left:3px solid #2f8f96}.tool-button.module-qf.active{background:#226b70;border-color:#226b70}.tool-button.module-solar{border-left:3px solid #d9531e}.tool-button.module-solar.active{background:#a83e15;border-color:#a83e15}.tool-button.module-hvac{border-left:3px solid #3a6ea5}.tool-button.module-hvac.active{background:#2a5075;border-color:#2a5075}.tool-button.locked{background:#f1ede5;color:#8a8174;border-color:#d4cec4;cursor:not-allowed}.tool-select{border:1px solid #d9d4c9;border-radius:8px;padding:6px 8px;background:#fff;font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141466;display:flex;align-items:center;justify-content:center;z-index:300;overscroll-behavior:contain}.pdf-export-blocking-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#14141473;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.pdf-export-blocking-card{background:#fff;border:1px solid #e2dfd8;border-radius:14px;padding:32px 40px;width:480px;height:220px;box-shadow:0 16px 40px #0000004d;display:flex;flex-direction:column;text-align:center}.pdf-export-title{font-size:20px;font-weight:700;color:#1f2a44}.pdf-export-subtitle{margin-top:8px;font-size:14px;color:#6b7280}.pdf-export-progress-section{margin-top:auto;padding-top:24px;border-top:1px solid #eee9de}.pdf-export-progress-row{margin-top:10px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px}.pdf-export-progress-count{flex:0 0 auto;font-weight:700;color:#1f2a44;font-variant-numeric:tabular-nums}.pdf-export-progress-label{flex:1 1 auto;min-width:0;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.pdf-export-progress-track{height:10px;border-radius:999px;background:#eee9de;overflow:hidden}.pdf-export-progress-fill{height:100%;background:#2563eb;border-radius:999px;transition:width .15s ease}.modal-card{background:#fff;border-radius:12px;border:1px solid #e2dfd8;padding:16px;width:min(820px,92vw);max-height:90dvh;overflow:hidden;display:grid;gap:12px;box-sizing:border-box;box-shadow:0 24px 50px #0f172a3d}.toast-stack{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:4000}.toast{background:#1f2a44;color:#fff;padding:10px 12px;border-radius:10px;font-size:12px;box-shadow:0 8px 20px #0003;max-width:280px}.toast.success{background:#2a6f4f}.toast.error{background:#a94442}.tool-block-notice-overlay{z-index:4100}.tool-block-notice-card{max-width:min(480px,90vw);animation:tool-block-notice-in .15s ease-out;border:2px solid #a94442}.tool-block-notice-message{color:#a94442;font-size:17px}.tool-block-notice-actions{justify-content:flex-end;gap:8px;flex-wrap:nowrap}@keyframes tool-block-notice-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.modal-card.modal-wide{width:min(980px,94vw)}.modal-card.modal-todos{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto minmax(0,1fr)}.modal-card.modal-ga-overview{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto minmax(0,1fr) auto}.ga-overview-minimap-slot{min-height:164px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e2dfd8;padding-top:10px}.ga-ets-leaf-row.is-minimap-selected{background:#eef2fb;border-radius:4px;outline:1px solid #ced7f0;outline-offset:-1px}.ga-ets-leaf-row.has-device-separator{border-bottom:1px solid #ddd7c9;padding-bottom:3px;margin-bottom:2px}.modal-header.ga-overview-header{flex-direction:column;align-items:stretch;gap:8px}.ga-overview-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ga-overview-header-row-search{justify-content:flex-start}.ga-overview-search-input{width:220px}.modal-card.search-modal{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto minmax(0,1fr)}.modal-card.knx-bridge-monitor-modal{width:98vw;height:96dvh;min-height:unset;border-radius:6px;grid-template-rows:auto auto minmax(0,1fr)}.modal-card.knx-bridge-monitor-modal .modal-actions{flex-wrap:nowrap}.modal-card.knx-bridge-monitor-modal .modal-scroll{scrollbar-gutter:stable}.modal-card.device-control-modal{width:min(76vw,980px);min-height:min(74dvh,660px);height:min(74dvh,660px);grid-template-rows:auto minmax(0,1fr)}.device-control-header-copy{display:grid;gap:2px;min-width:0}.modal-card.modal-hardware-instances{width:min(1260px,97vw);min-height:95dvh;height:95dvh;max-height:95dvh;grid-template-rows:auto minmax(0,1fr)}.modal-card.modal-hardware-instances.hardware-instances-move-open{grid-template-rows:auto minmax(0,1fr) auto}.modal-card.modal-terminal-metadata{width:min(1600px,98vw);min-height:min(88dvh,960px);height:min(88dvh,960px);grid-template-rows:auto minmax(0,1fr)}.terminal-metadata-body{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0}.terminal-metadata-toolbar{display:flex;align-items:center;gap:10px}.terminal-metadata-toolbar .tool-input{flex:1}.terminal-metadata-table-wrap{min-height:0;overflow:auto;border:1px solid #ddd7ca;border-radius:10px;background:#fffdf8}.terminal-metadata-groups{display:grid;gap:12px;min-width:1320px;padding:10px}.terminal-metadata-group{display:grid;gap:0}.terminal-metadata-port-list{border:1px solid #ddd7ca;border-top:none;border-radius:0 0 10px 10px;overflow:hidden}.terminal-metadata-port-head{background:#f5efe2;color:#6e6658;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.terminal-metadata-port-head,.terminal-metadata-port-row{grid-template-columns:52px 64px minmax(96px,.78fr) minmax(96px,.78fr) minmax(96px,.78fr) minmax(180px,1.15fr) 118px 118px 118px}.terminal-metadata-port-row{align-items:center}.terminal-device-badge{min-width:28px;height:20px;padding:0 5px}.terminal-metadata-extra{min-width:118px;display:flex;align-items:center}.terminal-metadata-input{min-width:110px;width:100%;font-size:12px;padding:5px 7px}.modal-card.modal-hardware-instances .modal-scroll{min-height:0;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden}.modal-card.modal-stats{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto auto minmax(0,1fr)}.modal-card.modal-stats .modal-scroll{min-height:0}.modal-card.modal-testlog{width:min(1300px,96vw);min-height:min(86dvh,900px);height:min(86dvh,900px);display:flex;flex-direction:column}.modal-card.modal-testlog .modal-scroll{flex:1;min-height:0;max-height:none}.modal-card.modal-wide.hardware-instances-move-open{width:min(1760px,98vw)}.modal-card.device-editor{width:90vw;max-width:1800px;min-height:86dvh;max-height:86dvh;display:flex;flex-direction:column;position:relative}.help-modal{display:flex;flex-direction:column;gap:12px}.help-modal-body{display:grid;gap:16px;flex:1 1 auto;min-height:0;max-height:none}.vg-section-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#1f2a44;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #e6e1d6}.vg-grid{display:grid;gap:6px}.vg-row{display:grid;grid-template-columns:180px 1fr;align-items:start;gap:12px;padding:8px 10px;background:#fbfaf7;border:1px solid #e6e1d6;border-radius:8px}.vg-visual{display:flex;align-items:center;justify-content:center;min-height:34px}.vg-label{font-size:12px;font-weight:700;color:#1f2a44;margin-bottom:2px}.vg-desc{font-size:11px;color:#4b5563;line-height:1.5}.vg-intro{font-size:12px;color:#4b5563;margin:0 0 8px;line-height:1.5}.help-search{display:flex;align-items:center;gap:12px}.help-search .tool-input{flex:1}.help-tabs{display:flex;align-items:stretch;gap:0;border:1px solid #c9c2b3;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #1f2a4414}.help-tabs .seg-button{flex:1;background:#ece7dc;padding:9px 8px;font-weight:600;letter-spacing:.05em;color:#575d6b}.help-tabs .seg-button:hover:not(.active){background:#e1dace;color:#1f2a44}.help-tabs .seg-button.active{background:#1f2a44;color:#fff;box-shadow:inset 0 -3px #4b7bc8}.help-layout{display:flex;align-items:flex-start;gap:18px}.help-toc{position:sticky;top:0;flex:0 0 172px;align-self:flex-start;max-height:68dvh;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding-right:10px;border-right:1px solid #e2dfd8}.help-toc-item{text-align:left;border:none;border-left:2px solid transparent;background:none;cursor:pointer;padding:4px 8px;border-radius:0 6px 6px 0;font-size:12px;line-height:1.3;color:#4a5163}.help-toc-item:hover{background:#f3f1eb;color:#1f2a44}.help-toc-item.active{background:#eef3fb;border-left-color:#4b7bc8;color:#1f2a44;font-weight:600}.help-content{display:grid;gap:12px;flex:1 1 auto;min-width:0}.help-heading{margin:8px 0 4px;font-size:16px;color:#1b2b3f}.help-heading-major{margin-top:24px;padding-top:12px;border-top:1px solid #e2dfd8;font-size:17px;font-weight:700;letter-spacing:.01em;color:#1f2a44;scroll-margin-top:8px}.help-content>.help-heading-major:first-child{margin-top:0;padding-top:0;border-top:none}.help-heading-sub{margin-top:12px;font-size:13px;font-weight:600;color:#3a4358}.help-paragraph{margin:0;color:#2b2b2b;line-height:1.5}.help-list{margin:0;padding-left:18px;display:grid;gap:6px;color:#2b2b2b}.help-list-ordered{list-style:decimal;padding-left:34px}.help-link{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.help-link:hover{color:#1e40af}.help-table-wrap{overflow-x:auto}.help-table{width:100%;border-collapse:collapse;font-size:13px;color:#2b2b2b}.help-table th,.help-table td{border:1px solid #ddd7cb;padding:6px 8px;text-align:left;vertical-align:top}.help-table th{background:#f3efe6;color:#1f2a44;font-weight:600}.help-code{background:#f4f1ec;padding:2px 6px;border-radius:6px;font-size:12px}.help-kbd{background:#fdecc3;border:1px solid #dcb663;box-shadow:inset 0 -1px #dcb663;color:#5a4108;font-weight:600}.help-code-block{margin:0;background:#f4f1ec;padding:12px;border-radius:8px;font-size:12px;overflow-x:auto}.help-image{display:block;max-width:100%;height:auto;border:1px solid #e2dfd8;border-radius:8px;margin:4px 0 12px}.help-highlight{background:#ffe1a6;border-radius:4px;padding:0 2px}.help-strong{font-weight:700;color:#1b2b3f}.modal-card.modal-preview{width:min(1200px,96vw);max-height:92dvh}.modal-card.modal-overview{width:min(96vw,2200px);height:min(94dvh,1400px);display:flex;flex-direction:column}.overview-scroll{flex:1;max-height:none}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:4px}.overview-card{border:1px solid #ddd8cb;border-radius:10px;background:#fbfaf7;padding:8px;display:grid;gap:8px;text-align:left;cursor:pointer}.overview-card.active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a44;background:#eef3ff}.overview-card-header{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:600;color:#1f2a44}.overview-minimap{border:1px solid #ddd8cb;border-radius:8px;background:#efebe3;overflow:hidden;min-height:160px}.overview-minimap svg{width:100%;height:100%;display:block}@keyframes overview-device-icon-pulse{0%{transform:scale(1);opacity:.95;fill:#111827;stroke:#fff}28%{transform:scale(1.9);opacity:.88;fill:#ff2d55;stroke:#111827}58%{transform:scale(1.2);opacity:1;fill:#111827;stroke:#fff}to{transform:scale(1);opacity:.95;fill:#111827;stroke:#fff}}.overview-device-icon-pulse{transform-box:fill-box;transform-origin:center;animation:overview-device-icon-pulse .45s linear infinite;pointer-events:none}@keyframes overview-pulse-motion{0%,to{opacity:.6;fill:#14532d}50%{opacity:1;fill:#22c55e}}@keyframes overview-pulse-alert{0%,to{opacity:.7;fill:#7f1d1d}50%{opacity:1;fill:#ef4444}}@keyframes overview-pulse-hvac{0%,to{opacity:.6;fill:#0c4a6e}50%{opacity:1;fill:#0ea5e9}}@keyframes overview-pulse-shutter{0%,to{opacity:.5;fill:#374151}50%{opacity:1;fill:#9ca3af}}.overview-device-pulse-motion{animation:overview-pulse-motion 1.2s ease-in-out infinite;pointer-events:none}.overview-device-pulse-alert{animation:overview-pulse-alert .5s ease-in-out infinite;pointer-events:none}.overview-device-pulse-hvac{animation:overview-pulse-hvac 1.5s ease-in-out infinite;pointer-events:none}.overview-device-pulse-shutter{animation:overview-pulse-shutter 2s ease-in-out infinite;pointer-events:none}.device-control-scroll{display:flex;flex-direction:column;gap:8px;align-items:stretch}.device-control-summary{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.35fr) auto;align-items:center;gap:8px;padding:6px 8px;border:1px solid #ddd8cb;border-radius:10px;background:#fbfaf7;min-height:0;width:100%;box-sizing:border-box;align-self:flex-start}.device-control-summary-stack{display:grid;gap:6px}.device-control-summary-inline{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;overflow:hidden;line-height:1;width:100%}.device-control-summary-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.device-control-summary-line.device-control-summary-inline{flex-wrap:nowrap}.device-control-summary-line.device-control-summary-inline strong{min-width:0;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1;max-width:220px}.device-control-summary>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.device-control-summary-indent-1{padding-left:12px}.device-control-summary-indent-2{padding-left:24px}.device-control-summary-indent-3{padding-left:36px}.device-control-location-inline{font-size:12px;color:#5e574d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto;line-height:1}.device-control-state-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;border:1px solid #ddd8cb;background:#f4efe4;color:#4d463d;white-space:nowrap;flex:0 0 auto;line-height:1;margin-left:auto}.device-control-state-pill.active{border-color:#1f2a4480;background:linear-gradient(90deg,#1f2a4424,#ff537b29);color:#172033}.device-control-state-pill.idle{border-color:#d7d1c6;background:#f4efe4}.device-control-state-pill.unknown{border-style:dashed;background:#faf7f1;color:#80796e}.device-control-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px}.device-control-layout{display:flex;flex-direction:column;gap:8px;align-items:start;min-height:0}.device-control-column{display:grid;gap:8px;min-width:0}.device-control-column-control{flex:0 0 auto}.device-control-column-feedback{flex:1 1 auto;min-height:0}.device-control-column-feedback .device-control-list{min-height:0}.device-control-list{display:grid;gap:6px}.device-control-feedback-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:7px 8px;border:1px solid #ddd8cb;border-radius:8px;background:#fff}.device-control-feedback-label{font-weight:700;min-width:0}.device-control-feedback-value{font-family:var(--mono-font, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;color:#111827}.device-control-row{display:grid;grid-template-columns:72px minmax(0,1.1fr) 112px minmax(0,1.3fr) minmax(240px,1fr);gap:8px;padding:7px 8px;border:1px solid #ddd8cb;border-radius:8px;background:#fff;align-items:center}.device-control-row-postfix{font-weight:700;color:#1f2a44;min-width:0;white-space:nowrap}.device-control-row-control{display:flex;justify-content:flex-end;align-items:center;min-width:0;width:100%}.device-control-inline-toggle,.device-control-inline-step,.device-control-inline-input{display:flex;align-items:center;gap:6px}.device-control-inline-input input{width:100px}.device-control-table-head{display:grid;grid-template-columns:72px minmax(0,1.1fr) 112px minmax(0,1.3fr) minmax(240px,1fr);gap:8px;padding:0 8px 2px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#736b5f}.device-control-table-head>:last-child{justify-self:end}.device-control-row-dpt,.device-control-row-semantic,.device-control-row-last-seen{font-size:12px;color:#534f47;background:#f4efe4;border:1px solid #ddd8cb;border-radius:999px;padding:2px 8px;white-space:nowrap}.device-control-unsupported{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.device-control-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}@media(max-width:1100px){.device-control-layout,.device-control-feedback-row,.device-control-row,.device-control-table-head{grid-template-columns:1fr}.device-control-row-control,.device-control-feedback-row{justify-content:flex-start}}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:nowrap;background:#fff;border-bottom:1px solid #e6e2da;padding-bottom:8px}.draggable-modal-header{cursor:grab;-webkit-user-select:none;user-select:none}.draggable-modal-header:active{cursor:grabbing}.modal-header-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;align-items:center}.modal-header-actions .tool-select{max-width:130px}.device-editor-hardware-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 0;margin-bottom:4px;border-bottom:1px solid #e6e2da}.modal-header-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#3b362f;white-space:nowrap}.modal-scroll{overflow:auto;max-height:calc(90dvh - 120px);padding-right:2px;overscroll-behavior:contain}.modal-scroll.device-editor-body{flex:1;max-height:none}.modal-scroll.line-groups-tab-body{display:grid;gap:14px;align-content:start}.panel-actions-row.line-groups-footer-row{justify-content:space-between}.line-groups-footer-actions{display:flex;gap:6px}.testlog-grid{display:grid;grid-template-columns:100px minmax(0,1.4fr) 110px 110px 110px minmax(0,1fr) 120px 170px;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e8e3d9;border-radius:10px;background:#fcfbf8;margin-bottom:8px}.testlog-add-row{display:grid;grid-template-columns:110px minmax(0,1.6fr) 120px 120px 120px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0 2px}.testlog-note-input{min-height:84px;resize:vertical}.testlog-grid-header{position:sticky;top:0;z-index:1;background:#f2ede4;border-color:#ddd6c7;font-size:12px;font-weight:700;color:#4c463b;text-transform:uppercase;letter-spacing:.04em}.testlog-header-button{border:0;background:transparent;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.testlog-header-button.active{color:#1f2a44}.testlog-area{font-size:11px;font-weight:700;letter-spacing:.05em;color:#5b5345}.testlog-title{font-size:13px;color:#232323}.planned-locked{background:#f6f3ec;border-color:#ddd6c7}.planned-locked .testlog-title,.planned-locked .testlog-area,.planned-locked .panel-help{color:#8e887d}.search-modal-body{display:flex;flex-direction:column;gap:16px;min-height:0}.search-modal-controls{display:flex;flex-direction:column;gap:10px}.search-input{width:100%}.search-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:#3d3d3d}.search-results{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-height:0;overflow:auto}.search-minimap{display:flex;flex-direction:column;align-items:center;gap:8px}.search-minimap-canvas{position:relative;width:260px;height:140px;border:1px solid #e2dfd8;border-radius:10px;background:#f5f1ea;background-repeat:no-repeat;overflow:hidden}.search-minimap-image{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.search-minimap-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}.search-minimap-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.search-minimap-dot{position:absolute;width:10px;height:10px;border-radius:999px;background:#ef444499;border:2px solid #ef4444;transform:translate(-50%,-50%)}.search-minimap-dot.active{background:#ef4444e6;box-shadow:0 0 0 4px #ef444433}.search-minimap-dot.variant-floor-note{background:#2563ebb3;border-color:#2563eb}.search-minimap-dot.variant-floor-note.active{background:#2563ebe6;box-shadow:0 0 0 4px #2563eb33}.search-result-row{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:#f6f1ea;border:1px solid #e2dfd8;border-radius:10px;padding:10px 12px}.search-result-content{flex:1 1 auto;min-width:0}.search-result-row:hover{background:#efe6da}.search-result-row.active{border-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.search-result-kind{font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding:4px 6px;border-radius:8px;background:#1f2a44;color:#fff}.search-result-kind.note{background:#c9a140;color:#1f2a44}.search-result-kind.device{background:#1f2a44;color:#fff}.search-result-line-preview{width:auto;min-width:54px;height:22px;padding:5px 12px;border:1px solid #d9d4c9;border-radius:999px;background:#faf8f5;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.search-result-line-preview .line-preview-bar{width:100%;max-width:100%;display:block;margin:0}.search-result-title{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#1f2a44}.search-result-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.search-result-title-row .search-result-title{flex:1 1 auto;min-width:0}.search-result-created-at{flex:0 0 auto;white-space:nowrap;font-size:11px;color:#7a6f61;margin-top:2px}.device-icon-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:22px;padding:0 7px;border-radius:6px;border:2px solid #353535;font-size:11px;font-weight:700;line-height:1}.search-result-device-icon{flex:0 0 auto}@media(max-width:900px){.modal-card.search-modal{width:min(100vw,100%);max-width:none;min-height:0;height:min(92dvh,calc(100dvh - 8px));margin-top:auto;border-radius:20px 20px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px))}.search-modal-body{gap:12px}.search-modal-controls{gap:8px}.search-minimap{gap:6px}.search-minimap-canvas{width:100%;max-width:none;height:min(180px,28dvh)}.search-results{gap:6px}.search-result-row{padding:10px;gap:10px}.search-result-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}}.note-modal-body{display:flex;flex-direction:column;gap:18px;min-height:0;height:100%}.modal-card.note-modal{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto minmax(0,1fr)}.modal-card.note-modal .modal-scroll{min-height:0;max-height:none;overflow:hidden}.notes-modal-header-filters{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0 0}.notes-status-filter{cursor:pointer;gap:8px;opacity:.65;transition:opacity .12s ease,transform .12s ease}.notes-status-filter input{margin:0}.notes-status-filter span{font-size:12px;font-weight:700}.notes-status-filter.active{opacity:1;box-shadow:0 0 0 1px #1f2a442e}.note-compose{display:flex;flex-direction:column;gap:10px}.tool-textarea{width:100%;border:1px solid #d8d3c9;border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13px;background:#fff}.note-checkbox{display:flex;gap:8px;align-items:center;font-size:12px;color:#3d3d3d}.note-thread{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding-right:2px}.note-entry{border:1px solid #e2dfd8;border-radius:10px;padding:10px 12px;background:#fbfaf8}.note-entry-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.note-entry-user{font-weight:600;color:#1f2a44}.note-entry-meta{display:inline-flex;align-items:center;gap:8px}.note-entry-text{margin:8px 0;white-space:pre-wrap;color:#2f2f2f}.note-entry-actions{display:flex;gap:8px;margin-bottom:6px}.note-entry-edit{display:grid;gap:8px;margin-bottom:8px}.photo-note-popover .note-checkbox{color:#e2e8f0}.photo-note-popover .note-entry{background:#1e293b;border-color:#334155}.photo-note-popover .note-entry-user{color:#e2e8f0}.photo-note-popover .note-entry-text{color:#cbd5e1}@media(max-width:900px){.modal-card.note-modal,.modal-card.note-message-modal{width:min(100vw,100%);max-width:none;min-height:0;height:min(92dvh,calc(100dvh - 8px));margin-top:auto;border-radius:20px 20px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px))}.modal-card.note-modal{grid-template-rows:auto minmax(0,1fr)}.modal-card.note-message-modal{display:grid;grid-template-rows:auto minmax(0,1fr)}.modal-card.note-modal .modal-scroll,.modal-card.note-message-modal .modal-scroll{max-height:none;min-height:0}.note-modal-body{gap:14px}.note-thread-header-copy .panel-title{font-size:18px}.note-thread-target-label,.note-modal-shortcut-help{font-size:12px}.note-tag-filter{gap:10px}.note-tag-filter .panel-field{max-width:none!important}.note-thread{gap:10px;padding-right:0}.note-entry{padding:10px;border-radius:12px}.note-entry-header{flex-direction:column;align-items:flex-start;gap:4px}.note-entry-meta{width:100%;justify-content:space-between}.note-entry-actions{flex-wrap:wrap}.note-entry-edit{gap:10px}.note-checkbox{font-size:13px}.note-thread-target-label{display:none}.modal-card.note-message-modal .tool-textarea,.modal-card.note-modal .tool-textarea{font-size:16px}}.hardware-port-lock-chip{display:inline-flex;align-items:center;gap:4px;min-width:78px;justify-content:center;padding:1px 6px;border:1px solid #d9d4c9;border-radius:999px;font-size:11px;color:#5b4630;background:#f7f3ea;cursor:pointer}.hardware-port-lock-chip input{margin:0}.note-tag{background:#facc1540;color:#7c5700;padding:2px 6px;border-radius:6px;font-weight:600;margin:0 2px;display:inline-block}.note-mention{background:#0f172a14;color:#0b1f33;border:1px solid rgba(15,23,42,.18);padding:2px 6px;border-radius:6px;font-weight:600;margin:0 2px;display:inline-block}.note-mention-user{background:#2563eb29;color:#0f172a;border:1px solid rgba(37,99,235,.34);padding:2px 6px;border-radius:6px;font-weight:600;margin:0 2px;display:inline-block}.note-tag-suggestions{display:flex;flex-wrap:wrap;gap:6px}.tag-suggestion{background:#f0ebe2;border:1px solid #d9d3c7;border-radius:999px;padding:4px 10px;font-size:12px}.note-tag-filter{display:flex;flex-direction:column;gap:6px}.tag-chip-row{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{background:#f0ebe2;border:1px solid #d9d3c7;border-radius:999px;padding:4px 10px;font-size:12px}.tag-chip.active{background:#1f2a44;color:#fff;border-color:#1f2a44}.notes-modal-body{display:flex;flex-direction:column;gap:16px;min-height:0;height:100%;overflow:hidden}.notes-modal-controls{display:flex;flex-direction:column;gap:10px}.notes-row-meta{display:inline-flex;align-items:center;gap:8px;margin-top:2px}.notes-result-content{flex:1 1 auto;min-width:0;display:grid;gap:2px}.notes-result-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.notes-result-title{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#1f2a44}.notes-result-created-at{flex:0 0 auto;white-space:nowrap;font-size:11px;color:#7a6f61;margin-top:2px}.notes-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;line-height:1.5}.notes-status-badge.open{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.notes-status-badge.resolved{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.notes-status-badge.stateless{background:#eef2f7;color:#334155;border:1px solid #cbd5e1}.line-type-editor-body{display:grid;gap:8px}.line-type-group-heading{margin-top:8px;padding:4px 2px 2px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6a6154;border-bottom:1px solid #e2dbcf}.line-type-group-heading:first-child{margin-top:0}.line-type-editor-card{display:grid;gap:8px;padding:10px;border:1px solid #d9d4c9;border-radius:10px;background:#faf8f5;transition:opacity .15s ease}.line-type-editor-card.faded{opacity:.4;pointer-events:none}.line-type-editor-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.line-type-editor-row-align-center{align-items:center}.line-type-editor-row>.tool-input,.line-type-editor-row>.tool-select{flex:1 1 140px;min-width:100px}.line-type-editor-row>.hierarchy-field{flex:1 1 140px;min-width:100px}.line-type-editor-row-actions{display:flex;align-items:center;gap:6px;height:36px;flex-wrap:nowrap}.line-type-editor-row>.hierarchy-field .line-type-preview-shell{height:36px}.line-type-color-swatch{width:36px;height:36px;border-radius:8px;border:1px solid #d9d4c9;flex:0 0 36px}.line-type-export-cell{display:inline-flex;align-items:center;gap:6px;min-height:36px;color:#3b362f;font-size:12px}.line-type-preview-shell{border:1px solid #d9d4c9;border-radius:8px;background:#faf8f5;min-height:36px;height:36px;padding:0 8px;display:flex;align-items:center}.line-type-preview-svg{width:100%;height:100%;display:block}.line-type-preview-shell-compact{flex:0 0 64px;width:64px;height:24px;min-height:24px}.notes-list{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding-right:2px;flex:1 1 auto}.modal-card.notes-modal{min-height:min(88dvh,900px);height:min(88dvh,900px);grid-template-rows:auto auto minmax(0,1fr)}.modal-card.notes-modal .modal-scroll{min-height:0;max-height:none;overflow:hidden}.note-tag-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.modal-card.modal-preview .modal-scroll{max-height:calc(92dvh - 120px)}.floorplan-lightbox{width:100%;height:70dvh;background:#f7f4ef;border-radius:10px;padding:12px;box-sizing:border-box}.floorplan-lightbox svg{width:100%;height:100%}.floorplan-lightbox-svg.editable{cursor:grab;touch-action:none}.floorplan-lightbox-svg.editable:active{cursor:grabbing}.floorplan-lightbox-header{position:relative}.floorplan-lightbox-reset-crop{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.modal-inline-help{font-size:11px;color:#6b6b6b}.todo-modal-table{display:grid;gap:6px;min-height:0}.todo-modal-controls{display:grid;gap:6px;margin-bottom:10px}.todo-modal-row{display:grid;grid-template-columns:72px minmax(0,1.6fr) 120px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;border:1px solid #e2dfd8;border-radius:8px;padding:8px 10px;background:#fbfaf7;text-align:left;font-size:12px;color:#2f2f2f}.todo-modal-device-cell{display:inline-flex;align-items:center;gap:8px;min-width:0}.todo-modal-device-icon.device-button{width:34px;height:22px;min-height:22px;font-size:11px;border-radius:5px;cursor:default;box-shadow:none;padding:0 2px;flex:0 0 auto}button.todo-modal-row{cursor:pointer}button.todo-modal-row:hover{border-color:#c9c2b2;background:#f6f3eb}button.todo-modal-row.active{border-color:#1f2a44;box-shadow:0 0 0 2px #1f2a4433;background:#f2efe8}.todo-modal-row.todo-modal-header{border:none;background:transparent;padding:0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;font-weight:600;cursor:default}.todo-sort-button{border:none;background:transparent;padding:0;margin:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;font-weight:inherit;cursor:pointer}.tool-input{width:100%;border:1px solid #d9d4c9;border-radius:8px;padding:8px 10px;font-size:13px;background:#fff;color:#2f2b27}input[type=number].tool-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number].tool-input::-webkit-outer-spin-button,input[type=number].tool-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.quick-property-armed{border-width:2px!important;border-color:#a16207!important;background:#fde047!important;color:#422006!important}.quick-property-armed::placeholder{color:#422006a6;opacity:1}.quick-property-select-wrap{position:relative;display:block}.quick-property-select-overlay{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:#a162072e;border-radius:inherit}.dialog-card{max-width:640px}.dialog-overlay{z-index:3000}.dialog-body{padding:0 20px 12px;display:grid;gap:6px}.dialog-label{font-size:12px;color:#4b4742}.dialog-actions{justify-content:flex-end;gap:8px;flex-wrap:nowrap}.dialog-shortcut-hint{margin-right:auto;font-size:11px;color:#7a7468;white-space:nowrap}.dialog-highlight{display:flex;width:100%;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600}.dialog-highlight-warning{background:#f59e0b1f;border:1px solid rgba(245,158,11,.34);color:#8a4b00}.dialog-highlight-info{background:#4d7cff1f;border:1px solid rgba(77,124,255,.34);color:#1f3f9a}.dialog-highlight-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px;opacity:.75}.dialog-highlight-value{font-size:14px;margin-left:auto}.dialog-secondary-button{border-color:#4d7cff59;background:#4d7cff1f;color:#1f3f9a}.dialog-secondary-button:hover{background:#4d7cff2e;border-color:#4d7cff80}.dialog-secondary-button-positive{border-color:#228b5766;background:#228b5724;color:#1b6e42}.dialog-secondary-button-positive:hover{background:#228b5738;border-color:#228b578c}.modal-device-property-import-preview{max-width:min(1280px,96vw)}.device-property-import-preview-scroll{display:grid;gap:12px}.device-property-import-preview-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.device-property-import-preview-stat{display:grid;gap:2px;padding:10px 12px;border:1px solid #d8d2c7;border-radius:12px;background:#f7f3eb}.device-property-import-preview-stat.selectable{cursor:pointer}.device-property-import-preview-stat-toggle{display:flex;justify-content:flex-end;align-items:center;min-height:18px}.device-property-import-preview-stat.status-neutral{background:#f1eee7;border-color:#d8d2c7}.device-property-import-preview-stat.status-applied{background:#dff3e3;border-color:#b9ddc3}.device-property-import-preview-stat.status-unmatched-port{background:#fff1d8;border-color:#efd6a3}.device-property-import-preview-stat.status-missing-address{background:#fde4dc;border-color:#efc1b3}.device-property-import-preview-stat.status-ambiguous-address{background:#e7e8ff;border-color:#c7caf7}.device-property-import-preview-stat strong{font-size:18px;line-height:1;color:#25324d}.device-property-import-preview-stat span{font-size:12px;color:#6a655c}.device-property-import-preview-table{display:grid;gap:0;border:1px solid #d8d2c7;border-radius:12px;overflow:hidden;background:#fff;max-height:min(58dvh,680px);overflow-y:auto}.device-property-import-preview-head,.device-property-import-preview-row{display:grid;grid-template-columns:58px 102px 70px minmax(180px,.9fr) 126px minmax(420px,1.8fr);gap:10px;align-items:start;padding:10px 12px;font-size:12px}.device-property-import-preview-head{background:#eee5d2;color:#24314a;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.device-property-import-preview-row{border-top:1px solid #eee6d8;color:#2f2b27}.device-property-import-preview-row>span:last-child{display:grid;gap:4px}.device-property-import-preview-values{display:grid;gap:4px}.device-property-import-preview-sort{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;padding:0;margin:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.device-property-import-preview-sort.active{color:#1f4f93}.device-property-import-preview-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 10px;border-radius:999px;font-weight:700;letter-spacing:.03em;white-space:nowrap}.device-property-import-preview-status-pill.status-applied{background:#dff3e3;color:#1f6b36}.device-property-import-preview-status-pill.status-unmatched-port{background:#fff1d8;color:#8b5a09}.device-property-import-preview-status-pill.status-missing-address{background:#fde4dc;color:#9e3d22}.device-property-import-preview-status-pill.status-ambiguous-address{background:#e7e8ff;color:#484eb0}.device-property-import-preview-row:nth-child(2n){background:#fcfaf6}@media(max-width:1100px){.device-property-import-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.device-property-import-preview-head,.device-property-import-preview-row{grid-template-columns:58px 102px 70px minmax(180px,.9fr) 126px minmax(280px,1.4fr)}}.dialog-message{margin-top:4px;white-space:pre-wrap}.ui-tooltip-overlay{position:fixed;left:0;top:0;z-index:4000;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .13s ease,transform .13s ease;background:#121822f5;color:#f8fafc;border-radius:8px;padding:7px 10px;box-shadow:0 8px 24px #00000047;max-width:320px}.floor-switch-toast{position:fixed;left:50%;top:40%;z-index:4000;pointer-events:none;transform:translate(-50%,-50%);background:#121822e0;color:#f8fafc;font-size:28px;font-weight:700;letter-spacing:.01em;border-radius:14px;padding:16px 28px;box-shadow:0 12px 36px #00000052;max-width:min(80vw,640px);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:floor-switch-toast-fade .75s ease forwards}@keyframes floor-switch-toast-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}60%{opacity:1}to{opacity:0}}.ui-tooltip-overlay.visible{opacity:1;transform:translateY(0)}.ui-tooltip-label{font-size:12px;line-height:1.3;font-weight:600;white-space:pre-line}.ui-tooltip-shortcut{margin-top:2px;font-size:11px;line-height:1.25;color:#cbd5e1}.topology-table{display:grid;gap:0;width:100%}.topology-table-header{display:grid;grid-template-columns:52px 74px 64px minmax(220px,1.85fr) 74px 56px 56px 56px 56px;gap:2px;padding:6px 2px 6px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6b6b6b;border-bottom:1px solid rgba(205,198,185,.75)}.topology-table-row{display:grid;grid-template-columns:52px 74px 64px minmax(220px,1.85fr) 74px 56px 56px 56px 56px;gap:2px;align-items:center;padding:5px 2px 5px 8px;border-bottom:1px solid rgba(205,198,185,.75)}.topology-muted{color:#6b6b6b;font-size:11px}.topology-table-row.backbone-row{background:#e0e8f5}.topology-table-row.area-row{background:#efe2c4}.topology-table-row.line-row{background:#f8f6f1}.topology-type-cell{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#5f5a4f}.topology-tree{position:relative;height:22px;--tree-x: 10px;--tree-prev: 10px;--tree-color: rgba(49, 67, 102, .9)}.topology-tree:after{content:"";position:absolute;top:-7px;bottom:-7px;left:8px;width:4px;background:#7871638f}.topology-tree.level-1{--tree-x: 26px;--tree-prev: 10px;--tree-color: rgba(121, 88, 22, .9)}.topology-tree.level-2{--tree-x: 42px;--tree-prev: 26px;--tree-color: rgba(82, 78, 70, .9)}.topology-tree-dot{position:absolute;top:50%;left:calc(var(--tree-x) - 5px);width:10px;height:10px;border-radius:999px;transform:translateY(-50%);background:var(--tree-color);box-shadow:0 0 0 2px #fffc}.topology-tree.variant-area:before,.topology-tree.variant-line:before{content:"";position:absolute;top:-7px;bottom:-7px;left:calc(var(--tree-prev) - 2px);width:4px;background:color-mix(in srgb,var(--tree-color) 82%,transparent)}.topology-action-cell{display:flex;justify-content:flex-end}.topology-action-cell .tool-button{white-space:nowrap;font-size:10px;padding:3px 5px}.topology-medium-stack{display:grid;gap:6px}.topology-medium-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.line-type-frame{display:grid;gap:6px;padding:8px;border:1px solid #ddd7ca;border-radius:8px;background:linear-gradient(180deg,#fcfaf5,#f7f3eb);box-shadow:inset 0 1px #ffffffbf}.line-preview{border:1px dashed #d9d4c9;border-radius:8px;padding:4px 1px;background:#faf8f5}.line-preview-bar{width:100%}.device-palette{display:grid;gap:10px}.device-category{display:grid;gap:6px}.device-category-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;background:none;border:none;padding:0;text-align:left;cursor:pointer}.device-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px}.device-button{color:#000;background-color:#ccc;border-radius:4px;border:2px solid #353535;font-size:var(--device-icon-font);width:var(--device-icon-width);height:var(--device-icon-height);display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;cursor:pointer;padding:0;font-family:inherit;position:relative}.device-button.active{outline:2px solid #1f2a44;outline-offset:2px}.device-button.device-hidden{opacity:.25}.device-button.device-disabled{opacity:.35;cursor:not-allowed;filter:grayscale(.4)}.device-shortcut-pill{position:absolute;right:0;top:0;transform:translate(50%,-50%);min-width:14px;height:14px;padding:0 4px;border-radius:999px;background:#1f2a44;color:#fff;border:1px solid #ffffff;font-size:9px;font-weight:700;line-height:12px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.tool-button-has-shortcut{position:relative;padding-right:34px}.tool-shortcut-pill{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-width:14px;height:16px;padding:0 5px;border-radius:999px;background:#1f2a44;color:#fff;border:1px solid #ffffff;font-size:10px;font-weight:700;line-height:14px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.device-filter-controls{display:grid;gap:6px}.device-filter-zone{display:grid;gap:8px;padding:8px 8px 8px 10px;border:1px solid #ddd7ca;border-left:3px solid #ddd7ca;border-radius:8px;background:#faf7f2}.device-filter-zone.filtering{border-color:#cdddf3;border-left-color:#3b6fb0;background:#f4f8ff}.device-filter-mode-banner{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;border:1px solid #c8d7ef;background:#edf4ff;color:#24456f;font-size:11px;font-weight:600;line-height:1.3}.device-filter-scope{display:grid;gap:6px;padding:8px;border:1px solid #ddd7ca;border-radius:8px;background:linear-gradient(180deg,#fcfaf5,#f7f3eb);box-shadow:inset 0 1px #ffffffbf}.panel-help.device-filter-scope-title{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#2c374d;background:#f1ede4;border:1px solid #ddd4c2;border-left:3px solid #8c9bb3;border-radius:8px;padding:5px 8px}.device-filter-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;pointer-events:none}.device-advanced-filters-button{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px}.device-advanced-filters-property-badge{font-size:10px;font-weight:600;color:#8a5a00;background:#ffe9b3;border-radius:4px;padding:1px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-advanced-filters-count-badge{font-size:11px;font-weight:600;color:#4a5a78;background:#e8ecf5;border-radius:4px;padding:2px 7px;white-space:nowrap;flex-shrink:0}.device-filter-popup-card{position:absolute;top:96px;left:300px;width:360px;max-height:66vh;pointer-events:auto;display:flex;flex-direction:column;border:1px solid #1f2a44;border-radius:12px;background:#fffdf9;box-shadow:0 24px 50px #0f172a52;overflow:hidden}.device-filter-popup-card>.modal-header{flex-shrink:0;padding:12px 14px;background:#1f2a44;border-bottom:none}.device-filter-popup-card>.modal-header .panel-title{color:#fff}.device-filter-popup-card>.modal-header .tool-button{background:#ffffff1f;border-color:#ffffff59;color:#fff}.device-filter-popup-card>.modal-header .tool-button:hover{background:#ffffff38}.device-filter-popup-tabs.tab-header.segmented{flex-shrink:0;grid-template-columns:repeat(2,1fr);margin:8px 14px 0}.device-filter-popup-scroll{flex:1 1 auto;overflow-y:auto;min-height:0;padding:10px 14px 14px;display:grid;gap:8px;align-content:start}.device-filter-line-focus{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 2px}.device-filter-line-focus-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid #c8d7ef;background:#edf4ff;color:#24456f;font-size:11px;font-weight:700;letter-spacing:.01em}.device-palette-hint{margin-top:6px;margin-bottom:4px;display:inline-flex;align-items:center;width:fit-content;border-radius:999px;padding:3px 9px;background:#b42318;color:#fff;font-weight:700;letter-spacing:.01em;border:1px solid #8f1e15}.panel-help.device-palette-hint{color:#fff}.device-filter-row{display:flex;flex-wrap:wrap;gap:6px}.device-filter-toggle-block{display:grid;gap:4px;width:100%}.device-filter-toggle-block .device-filter-row.segmented{width:100%}.device-filter-toggle-block .seg-button{min-width:0}.device-filter-light-type-grid{display:flex;flex-wrap:wrap;gap:4px 12px}.device-filter-opacity-control{display:grid;gap:4px;width:100%}.device-filter-opacity-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#6b6b6b}.device-filter-selection-actions{display:grid;gap:8px}.device-filter-terminal-metadata{display:grid;gap:6px;padding:8px 0;border-top:1px solid rgba(31,42,68,.1);border-bottom:1px solid rgba(31,42,68,.1)}.device-filter-divider{height:1px;background:#1f2a441f;width:100%}.panel-inline{display:flex;align-items:center;gap:8px;font-size:12px;color:#3c4356}.panel-inline.is-disabled{opacity:.4;color:#9a9589;cursor:not-allowed;transition:opacity .14s ease}.panel-inline.is-disabled input[type=checkbox]{cursor:not-allowed}.tool-row{display:flex;gap:6px}.tool-row.segmented,.device-filter-row.segmented{width:100%;gap:0;border:1px solid #d9d4c9;border-radius:8px;overflow:hidden}.device-filter-row.segmented.device-filter-lock-state{display:grid;grid-template-columns:.85fr 1fr 1.25fr}.device-filter-row.segmented.device-filter-lock-state .seg-button{min-width:0}.seg-button{flex:1;border:none;background:#f7f4ef;padding:6px 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#1f2a44;cursor:pointer}.seg-button.active{background:#1f2a44;color:#fff}.panel-left .tab-header.segmented .seg-button{background:#ece7dc;padding:9px 8px;font-size:12px;font-weight:600;letter-spacing:.05em;color:#575d6b}.panel-left .tab-header.segmented .seg-button:hover:not(.active):not(:disabled){background:#e1dace;color:#1f2a44}.panel-left .tab-header.segmented .seg-button.active{background:#1f2a44;color:#fff;box-shadow:inset 0 -3px #4b7bc8}.seg-button+.seg-button{border-left:1px solid #d9d4c9}.seg-button:disabled,.tool-button:disabled{opacity:.45;cursor:not-allowed}.seg-button[aria-disabled=true],.tool-button[aria-disabled=true]{opacity:.45;cursor:not-allowed}.seg-button:disabled{background:#f5f3ed;color:#756f63}.seg-button.active:disabled{background:#f5f3ed;color:#756f63}.device-filter-row .tool-button{flex:1;font-size:12px;padding:6px 8px;text-align:center}.device-button.lamp{color:#000;background-color:#fff8a0}.device-button.dimmer{color:#000;background-color:#f5ec7a}.device-button.dimmerlv{color:#000;background-color:#ece165}.device-button.dimmer110{color:#000;background-color:#efb84a}.device-button.tw{color:#000;background-color:#fca739}.device-button.rgb{color:#000;background-color:#fb8500}.device-button.rgbw{color:#000;background-color:#f77d00}.device-button.rgbcct{color:#000;background-color:#f27200}.device-button.da{color:#fff;background-color:#d95a02}.device-button.zig{color:#fff;background-color:#ec6c00}.device-button.lum{color:#000;background-color:#caca15}.device-button.output{color:#fff;background-color:#404040}.device-button.shutter{color:#fff;background-color:#2a9d8f}.device-button.thermostat{color:#000;background-color:#ade8f4}.device-button.valve{color:#000;background-color:#90e0ef}.device-button.fc2,.device-button.fc4{color:#000;background-color:#48caf4}.device-button.fan{color:#000;background-color:#00b4d8}.device-button.temp,.device-button.hum,.device-button.wea{color:#fff;background-color:#023e8a}.device-button.button1,.device-button.button2,.device-button.button3,.device-button.button4,.device-button.button6,.device-button.button8,.device-button.button10,.device-button.button12{color:#fff;background-color:#a020f0}.device-button.lcd,.device-button.lcd1,.device-button.lcd2{color:#fff;background-color:#de002b}.device-button.pwr{color:#fff;background-color:#342e2e}.device-button.usb{color:#fff;background-color:#202020}.device-button.pir{color:#000;background-color:#52b69a}.device-button.pre,.device-button.prew{color:#000;background-color:#76c893}.device-button.reed{color:#000;background-color:#99d98c}.device-button.gw,.device-button.di,.device-button.DI{color:#fc1;background-color:#35784d}.device-button.knx{color:#fff;background-color:#35784d}.device-button.smk{color:#fff;background-color:#666}.device-button.leak{color:#fff;background-color:#777}.device-button.tank{color:#000;background-color:#00dcfe}.device-button.eth{color:#fff;background-color:#00f}.device-button.hdmi{color:#fff;background-color:#4040e0}.device-button.tv{color:#fff;background-color:#6060f0}.device-button.cabinet{color:#fff;background-color:#995841}.device-button.dummy{color:#000;background-color:#aaa}.device-button.outlet{color:#000;background-color:#ced4da}.panel-section{display:grid;gap:10px}.shortcut-section-title{background:#e6ecf6;border:1px solid #b9c7de;border-radius:8px;padding:10px 10px 7px;margin-top:14px;margin-bottom:2px}.panel-field{display:grid;gap:6px;font-size:13px}.panel-field>label{font-weight:700;color:#1f2a44;letter-spacing:.01em}.panel-field-label-with-icon{display:inline-flex;align-items:center;gap:6px}.device-count-row{display:flex;align-items:stretch;gap:6px}.device-count-row input{flex:1 1 auto;min-width:0}.device-count-step{width:36px;flex:0 0 auto;font-size:16px;font-weight:700;line-height:1}.panel-type-icon-pill{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 6px;border-radius:999px;border:1px solid #d8d0c1;background:#f7f2e6;color:#1f2a44;font-size:12px;line-height:1;font-weight:700}.panel-type-icon-button{min-width:30px;height:30px;padding:0 8px;border-radius:6px;border:2px solid #353535;font-weight:700;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.section-order-meta{order:20}.section-order-hardware{order:30}.section-order-sensor-data{order:40}.section-order-wall-placement{order:60}.section-order-ga{order:50}.section-order-todo{order:70}.section-order-props{order:80}.section-order-atios{order:90}.panel-field.section-block{border:1px solid #ddd7cb;border-radius:10px;padding:8px;background:#f8f5ee}.panel-field.section-block>label{display:block;width:auto;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#2c374d;background:#f1ede4;border:1px solid #ddd4c2;border-radius:8px;padding:5px 8px;margin-bottom:2px;border-left-width:3px;border-left-color:#8c9bb3}.panel-field.section-block.section-accent-wall>label{border-left-color:#7f90aa}.panel-field.section-block.section-accent-ga>label{border-left-color:#8f7cae}.panel-field.section-block.section-accent-sensor>label{border-left-color:#6f9a8f}.panel-field.section-block.section-accent-todo>label{border-left-color:#b08d68}.panel-field.section-block.section-accent-props>label{border-left-color:#7b8b9e}.panel-field.section-block.section-accent-atios>label{border-left-color:#5a9a8a}.panel-field.section-block.section-accent-meta{background:#faf8f3;border-color:#e5e0d4}.panel-field.section-block.section-accent-meta>label{background:#f4f1e9;color:#4f596d;border-color:#e1dbcc;border-left-color:#9aa5b7}.panel-field.section-block.section-accent-hardware{gap:4px;padding:7px}.panel-field.section-block.section-accent-hardware .property-list{gap:6px}.panel-field.section-block.section-accent-hardware .property-row{gap:5px;padding:4px 6px}.panel-field.section-block.section-accent-hardware .options-checkbox-row{margin-top:0;padding:4px 6px}.wall-placement-subgroup{border:1px solid #d9d4c9;border-radius:8px;background:#fbfaf7;padding:4px}.panel-field input[type=file],.panel-field input[type=text],.panel-field input[type=number],.panel-field input[type=email],.panel-field select{border:1px solid #d9d4c9;padding:6px;border-radius:6px;background:#fff;width:100%;box-sizing:border-box}.panel-field input[type=range]{width:100%;min-width:0}.floorplan-slider-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:center;gap:8px;min-width:0}.floorplan-slider-row>input[type=range]{min-width:0}.floorplan-slider-value{min-width:0;text-align:right;white-space:nowrap}.floorplan-slider-help{min-width:0;overflow-wrap:anywhere}.device-meta-grid{display:grid;grid-template-columns:minmax(56px,.4fr) minmax(0,1.6fr);gap:8px}.device-meta-cell{min-width:0}.device-meta-cell .panel-help{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.options-group-box{display:grid;gap:6px;border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fff;margin-top:4px}.options-group-box .options-checkbox-row{margin-top:0}.options-checkbox-row{display:flex;align-items:center;gap:8px;margin-top:4px;padding:5px 8px;border:1px solid #ddd7cb;border-radius:8px;background:#f8f5ee;color:#5a544a;font-size:12px;font-weight:500}.options-checkbox-row input[type=checkbox],.options-checkbox-row input[type=radio]{width:14px;height:14px;accent-color:#1f2a44;cursor:pointer}.options-radio-group{display:flex;flex-direction:column;gap:4px}.dedicated-accent-label{color:#b0198f;font-weight:700}.options-checkbox-row.dedicated-accent-row{border-color:#d96cc4;background:#fff3fc;color:#7a255f}.options-list{display:grid;gap:4px;margin-top:4px}.options-list-section+.options-list-section{margin-top:10px}.options-list-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.options-inline-controls{margin:6px 0}.options-line-type-name{flex:1;min-width:0}.options-line-type-preview{width:64px;min-width:64px;border-top-style:solid;border-top-width:2px;transform:translateY(1px)}.dedicated-accent-dot{width:8px;height:8px;border-radius:999px;display:inline-block;margin-right:6px;background:#d322a2;box-shadow:0 0 0 1px #7a255f33}.floorplan-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.floorplan-preview-grid.single{grid-template-columns:1fr}.floorplan-preview{border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fff;display:grid;gap:6px;text-align:left;cursor:zoom-in}.floorplan-preview.floorplan-preview-secondary{cursor:default;align-content:start}.floorplan-preview svg{width:100%;height:220px;background:#f7f4ef;border-radius:6px}.allocation-list{display:grid;gap:8px}.cabinet-mini-preview{width:100%;height:120px;border:1px solid #d5cfbe;border-radius:8px;background:#fff}.allocation-row{border:1px solid #e2dfd8;border-radius:8px;padding:6px 8px;background:#fbfaf7;display:grid;gap:2px}.allocation-title{font-weight:600;font-size:12px}.property-list{display:grid;gap:8px}.todo-table{display:grid;gap:6px}.todo-row{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:6px;align-items:center;border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fbfaf7}.todo-row.todo-row-header{border:none;background:transparent;padding:0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;font-weight:600}.todo-row.is-active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a442e}.todo-actions{display:flex;justify-content:flex-start}.panel-field-properties{order:90}.panel-field-todos{order:100}.device-delete-button{order:110}.property-row{display:grid;grid-template-columns:1.2fr .7fr 1fr auto;gap:6px;align-items:center;border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fbfaf7}.property-row.ga-row{grid-template-columns:.7fr .7fr .8fr 1fr 1.3fr auto}.property-label-row{display:grid;grid-template-columns:1.2fr .7fr 1fr auto;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;padding:0 4px}.property-label-row.ga-label-row{grid-template-columns:.7fr .7fr .8fr 1fr 1.3fr auto}.property-label{font-weight:600;text-align:left}.property-remove{border:none;background:#b42318;color:#fff;width:28px;height:24px;border-radius:6px;cursor:pointer;font-size:16px;line-height:1}.device-property-card{position:relative;display:flex;flex-direction:column;gap:6px;border:1px solid #e2dfd8;border-radius:8px;padding:8px 40px 8px 8px;background:#fbfaf7}.device-property-field{display:flex;flex-direction:column;gap:2px}.device-property-field-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;font-weight:600}.device-property-card-delete{position:absolute;top:8px;right:8px}.device-property-field input:not([type=checkbox]),.device-property-field select{width:100%;box-sizing:border-box;border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px}.device-property-field input[type=checkbox]{align-self:flex-start;width:16px;height:16px}.property-cell input,.property-cell select{width:100%;border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px}.hardware-instance-list{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;height:100%}.hardware-instances-controls{align-items:center;justify-content:space-between;gap:8px;margin-bottom:0}.hardware-instance-list-body{display:grid;gap:12px;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:2px}.hardware-instances-controls-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.hardware-instances-terminal-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hardware-instances-search-input{min-width:220px;max-width:420px;width:100%;flex:1 1 260px}.hardware-instance-group{display:grid;gap:8px}.hardware-instance-group.hardware-instance-group-card{border:1px solid #d5cfbe;border-radius:10px;padding:10px;background:#fffdf8;content-visibility:auto;contain-intrinsic-size:320px}.cabinet-hw-instance-row:focus{outline:none}.hardware-instance-group.hardware-instance-group-card.hardware-instance-group-field{background:#f7f4ef}.hardware-instance-group-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #cfd8ea;border-radius:8px;background:#eef2ff}.hardware-instance-group-header.clickable{cursor:pointer}.hardware-instance-group-header.clickable:hover{background:#e6ecfb}.hardware-instance-group-header-main{display:grid;gap:4px;min-width:0}.hardware-instance-group-lines{display:flex;flex-wrap:wrap;gap:6px}.hardware-instance-group-line-pill{display:inline-flex;align-items:center;min-height:20px;padding:1px 8px;border-radius:999px;background:#2d5ea8;color:#fff;border:1px solid #244d88;font-size:10px;font-weight:700;letter-spacing:.02em}.hardware-instance-card{border:1px solid #e2dfd8;border-radius:10px;padding:10px;background:#fff;display:grid;gap:6px}.hardware-instance-card.hardware-instance-card-dummy{background:#fff4e5;border-color:#f2b266;box-shadow:inset 0 0 0 1px #d3842440}.hardware-instance-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.hardware-instance-address{font-weight:600;font-size:12px;color:#1f2a44}.hardware-instance-action-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.hardware-instance-action-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.hardware-instance-action-buttons-row{flex-wrap:nowrap;align-items:center;gap:3px}.hardware-instance-action-cell .tool-button{white-space:nowrap}.hardware-instance-inline-toggle,.hardware-instance-move-lock-row{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#44506a}.hardware-instance-inline-toggle{padding:3px 8px;border:1px solid #d9d4c9;border-radius:999px;background:#fbfaf7}.hardware-instance-inline-toggle.active{border-color:#c98b1d;background:#fff5dc;color:#8a5a00;font-weight:700}.hardware-instance-inline-toggle input,.hardware-instance-move-lock-row input{margin:0}.hardware-instance-meta-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.hardware-instance-meta-chip{display:inline-flex;align-items:center;min-height:20px;padding:1px 8px;border-radius:999px;border:1px solid #ded8cd;background:#f8f5ef;color:#5f5649;font-size:10px;font-weight:700;letter-spacing:.02em}.hardware-instance-meta-chip-accent{border-color:#d8a54a;background:#fff1c9;color:#7c5200}.hardware-instance-swap-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a2e;border-radius:inherit;z-index:30}.hardware-instance-swap-card{display:grid;width:min(560px,calc(100% - 32px));margin:40px auto;height:min(620px,calc(100% - 80px));max-height:min(620px,calc(100% - 80px));grid-template-rows:auto minmax(0,1fr) auto}.hardware-instance-swap-body{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-height:0;overflow:hidden;padding-right:2px}.hardware-instance-swap-list-wrap{display:grid;min-height:0;overflow:hidden}.hardware-instance-swap-list{display:grid;gap:6px;overflow:auto;border:1px solid #e2dfd8;border-radius:10px;padding:8px;background:#fbfaf7;min-height:0}.hardware-instance-swap-option{display:grid;gap:2px;text-align:left;border:1px solid #d9d4c9;border-radius:8px;padding:8px 10px;background:#fff;cursor:pointer}.hardware-instance-swap-option:hover{background:#f8f5ef}.hardware-instance-swap-option.active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a4426;background:#eef2ff}.hardware-instance-swap-option-main{font-size:12px;font-weight:700;color:#1f2a44}.hardware-instance-swap-option-desc{font-size:11px;color:#5b554d}.hardware-instance-swap-card .modal-footer{justify-content:flex-end}.hardware-instance-address-pill{background:#1f2a44;color:#fff;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;display:inline-flex;align-items:center;min-height:24px;gap:4px;width:fit-content;max-width:fit-content;justify-self:start}.hardware-instance-address-pill-default{background:#344560}.hardware-instance-address-pill-actuator{background:#c55a12}.hardware-instance-address-pill-shutter{background:#2a8f83}.hardware-instance-address-pill-dimmer{background:#d28b1f}.hardware-instance-address-pill-gateway{background:#35784d;color:#fff1b8}.hardware-instance-address-pill-power{background:#4a4039}.hardware-instance-address-pill-input{background:#9b59c3}.hardware-instance-address-pill-button{background:#8b3fe2}.hardware-instance-address-pill-lcd{background:#c7435f}.hardware-instance-address-pill-dummy{background:#8a8175;color:#f7f4ef}.hardware-instance-address-pill-editable{padding:2px 6px;gap:6px}.hardware-instance-label{font-size:13px}.hardware-instance-cabinet{margin-left:auto;font-size:11px;color:#5a6478;font-weight:600}.hardware-free-ports{color:#2a6f4f;font-weight:700}.hardware-dedicated-ports{color:#8a5a00;font-weight:700}.hardware-instance-address-prefix{font-weight:600;color:#1f2a44}.hardware-instance-address-pill-editable .hardware-instance-address-prefix{color:#e8eefc;font-weight:700}.hardware-address-input{width:56px;margin-left:6px;border:1px solid #d9d4c9;border-radius:6px;padding:2px 6px;font-size:12px}.hardware-address-input.hardware-address-input-inline{width:46px;height:20px;margin-left:0;border:1px solid #a7b3cb;background:#fff;color:#1f2a44;-webkit-text-fill-color:#1f2a44;font-weight:700;text-align:right;padding:1px 4px;border-radius:5px;font-size:12px}.hardware-address-input.hardware-address-input-inline:focus{outline:none;border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a4447}.hardware-instance-address-cell{display:flex;align-items:center;position:relative;gap:2px;min-width:0;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}.hardware-instance-type-inline{display:inline-flex;align-items:center;font-size:10px;line-height:1.2;color:#6b7280;font-weight:700;letter-spacing:.02em}.hardware-address-input.error{border-color:#b42318;box-shadow:0 0 0 1px #b423184d}.hardware-address-error{color:#b42318;font-weight:600}.hardware-address-error-inline{position:absolute;top:100%;left:0;z-index:3;margin-top:2px;padding:1px 6px;border-radius:4px;background:#fffdf8;box-shadow:0 1px 4px #00000026;white-space:nowrap;color:#b42318;font-weight:600;font-size:12px}.hardware-port-list{display:grid;gap:4px}.hardware-port-row{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:8px;border-radius:8px;padding:6px 8px}.hardware-port-row.hardware-port-free{background:#e6f6ea;border:1px solid #c6e7cf}.hardware-port-row.hardware-port-dedicated-locked{background:#f7f0dc;border:1px solid #e4d2a2}.hardware-port-row.hardware-port-used{background:#fbfaf7;border:1px solid #e2dfd8;cursor:pointer}.hardware-port-row.hardware-port-disabled{opacity:.5;cursor:not-allowed}.hardware-port-row.hardware-port-selected{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a44}.hardware-port-index{font-weight:600;font-size:12px;color:#1f2a44;background:#fff;border:1px solid #e2dfd8;border-radius:999px;text-align:center;padding:2px 0}.hardware-port-meta{display:grid;gap:2px}.hardware-port-ga-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.hardware-port-ga-chip{font-size:10px;border:1px solid #d3d9e5;background:#f4f7ff;color:#2e3c5c;border-radius:999px;padding:1px 6px}.ga-editor-list{display:grid;gap:8px;max-height:calc(90dvh - 170px);overflow-y:auto;padding-right:2px}.modal-card.modal-wide.modal-ga-editor{width:min(82vw,1540px);max-width:1540px;overflow:visible}.modal-card.modal-wide.modal-ga-editor .modal-scroll{overflow:visible;max-height:none}.modal-card.quick-ga-edit-modal{width:min(640px,94vw);max-width:640px;overflow-y:auto}.ga-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:center;border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fbfaf7}.ga-editor-address{display:grid;grid-template-columns:auto minmax(115px,.42fr) auto minmax(240px,1.05fr) auto 72px minmax(220px,.7fr) minmax(72px,.2fr);gap:4px;align-items:center;min-width:0}.ga-editor-address input[type=number]{text-align:center}.ga-editor-address input{width:100%;border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px}.ga-editor-address span{font-size:12px;color:#616161}.ga-editor-addr-readonly{border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;background:#f6f4ef;color:#1f2a44!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}.ga-editor-name{width:100%;border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px}.ga-editor-prefix-readonly{width:100%;border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px;background:#f6f4ef;color:#2f2f2f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ga-editor-main-select .searchable-select-label-main{white-space:nowrap}.ga-editor-main-select .searchable-select-label-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga-editor-dpt-select .searchable-select-label-main{white-space:nowrap}.ga-editor-dpt-select .searchable-select-label-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cabinet-editor-summary-pills{display:flex;flex-wrap:wrap;gap:6px}.cabinet-editor-summary-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid #d8d2c7;background:#faf7f0;color:#24314a;font-size:11px;font-weight:700;letter-spacing:.01em}.cabinet-editor-summary-pill-positive{background:#edf8ef;border-color:#b9e1c0;color:#1e5a2f}.cabinet-editor-summary-pill-muted{background:#f5f3ef;border-color:#ddd7ca;color:#5c564c}.cabinet-editor-summary-pill-accent{background:#f0f4ff;border-color:#c9d6f0;color:#2f4370}.cabinet-editor-summary-pill-neutral{background:#fbfaf7;border-color:#d8d2c7;color:#4b4b4b}.cabinet-editor-summary-pill-free{background:#ecf8f4;border-color:#b9e6d5;color:#1f6b52}.ga-editor-actions{display:inline-flex;gap:4px;flex-wrap:nowrap}.ga-editor-lock-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#425170;white-space:nowrap}.ga-editor-lock-toggle input{margin:0}.quick-ga-edit-summary{display:grid;gap:4px;padding:10px 12px;border:1px solid #d8d2c7;border-radius:10px;background:#faf7f0}.quick-ga-edit-summary-title{font-weight:700;color:#24314a}.quick-ga-edit-summary-line{display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#1f2a44}.quick-ga-edit-summary-postfix{font-family:inherit;color:#2f2f2f}.quick-ga-edit-summary-dpt{margin-left:auto;font-family:inherit;color:#4a5568}.quick-ga-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quick-ga-edit-grid label{display:grid;gap:6px;font-size:12px;color:#50493e;min-width:0}.quick-ga-edit-grid input[type=text]{width:100%;border:1px solid #d9d4c9;border-radius:8px;padding:8px 10px;font-size:14px;text-align:center;box-sizing:border-box}.quick-ga-edit-actions{align-items:center;justify-content:space-between}.quick-ga-edit-lock-row{display:flex;align-items:center;justify-content:center;height:34px;border:1px solid #d9d4c9;border-radius:8px;box-sizing:border-box}.quick-ga-edit-lock-row input{margin:0}.quick-ga-edit-error{color:#9e3d22}.quick-ga-edit-conflict-minimap{margin-top:4px}.ga-ets-address-button{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid #f5c9c9;background:#fff1f1;border-radius:999px;padding:0 6px;justify-self:start;cursor:pointer;text-align:left;font:inherit;color:#8f1d1d;display:inline-flex;align-items:center;gap:6px}.ga-ets-address-button.is-locked{border-style:dashed;border-width:2px}.ga-ets-lock-mark{margin-left:6px;display:inline-flex;align-items:center;min-height:16px;padding:0 6px;border-radius:999px;border:1px dashed #9aa4b6;color:#4a5568;background:#f7f9fc;font-size:10px;font-weight:700;letter-spacing:.02em}.ga-ets-address-button:hover{filter:brightness(.98)}.ga-ets-address-button:focus-visible{outline:2px solid #7c91c5;outline-offset:2px}.ga-summary-table{display:grid;border:1px solid #e2dfd8;border-radius:8px;overflow:hidden;background:#fff}.ga-summary-head,.ga-summary-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:center;padding:6px 8px}.ga-summary-head{background:#f6f4ef;border-bottom:1px solid #e2dfd8;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b6b6b;font-weight:600}.ga-main-groups-editor{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #e6e1d6}.ga-main-groups-editor-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#7a746a;font-weight:700}.ga-main-groups-list{display:grid;gap:6px}.ga-main-group-row{display:grid;grid-template-columns:42px minmax(0,.9fr) auto auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid #e1ddd3;border-radius:8px;background:#fbfaf7}.ga-main-group-value{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;border-radius:999px;background:#e9efe6;color:#2e5030;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700}.ga-main-group-label{min-width:0;color:#2f2f2f;font-size:13px}.ga-main-group-input{width:100%;min-width:0;border:1px solid #d9d4c9;border-radius:8px;padding:6px 8px;font-size:13px;background:#fff}.ga-main-group-built-in,.ga-main-group-custom{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.ga-main-group-built-in{background:#edf2ff;color:#355293}.ga-main-group-custom{background:#fef0dc;color:#9a5b17}.ga-main-group-actions{display:inline-flex;flex-direction:row;gap:4px;align-items:center}.ga-main-group-delete{margin-top:0}.ga-main-group-create{display:grid;grid-template-columns:minmax(92px,120px) minmax(0,1fr) auto;gap:8px;align-items:center}.modal-card.modal-wide.hierarchy-ga-options-modal{max-width:none;width:calc(100vw - 24px)}.hierarchy-ga-options-grid{display:grid;grid-template-columns:minmax(620px,.88fr) 76px minmax(820px,1.12fr);gap:20px;align-items:start}.hierarchy-ga-pane{display:grid;gap:10px}.hierarchy-ga-group-list,.hierarchy-ga-assignment-list{display:grid;gap:8px;max-height:56dvh;overflow:auto;padding-right:4px}.hierarchy-ga-group-row{display:grid;grid-template-columns:18px 56px 78px minmax(0,1fr) auto;gap:8px;align-items:center;cursor:pointer;border-radius:10px;padding:4px 6px}.hierarchy-ga-group-row.is-selected{background:#eef4fb;outline:1px solid #c9dbf0}.hierarchy-ga-group-create{display:grid;grid-template-columns:92px minmax(0,1fr) 100px minmax(0,1fr) auto;gap:8px;align-items:center}.hierarchy-ga-main-create{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:8px;align-items:center}.hierarchy-ga-main-bucket{display:grid;gap:8px;padding:10px 12px;border:1px solid #e1ddd3;border-radius:12px;background:#fbfaf7}.hierarchy-ga-main-header{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;min-width:0}.hierarchy-ga-main-header.is-selected{background:#eef4fb;outline:1px solid #c9dbf0;border-radius:10px;padding:4px 6px}.hierarchy-ga-main-header>.tool-input,.hierarchy-ga-group-row>.tool-input,.hierarchy-ga-group-create>.tool-input{min-width:0}.hierarchy-ga-main-number-input{flex:0 0 92px}.hierarchy-ga-main-label-input{flex:1 1 auto}.hierarchy-ga-main-header>.tool-button{flex:0 0 auto}.hierarchy-ga-middle-list{display:grid;gap:8px}.hierarchy-ga-group-indent{width:18px;height:1px;justify-self:center;background:#d8d2c5}.hierarchy-ga-main-number,.hierarchy-ga-middle-number{text-align:center}.hierarchy-ga-floor-block{display:grid;gap:8px;padding:10px 12px;border:1px solid #e1ddd3;border-radius:10px;background:#fbfaf7}.hierarchy-ga-building-block{display:grid;gap:10px}.hierarchy-ga-building-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#4d617d}.hierarchy-ga-transfer-pane{display:grid;align-content:center;justify-items:center;min-height:100%}.hierarchy-ga-transfer-button{width:48px;min-width:48px;height:40px;font-size:20px;line-height:1}.hierarchy-ga-floor-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f675a}.hierarchy-ga-assignment-device{font-size:13px;color:#2f2f2f}.hierarchy-ga-inline-actions{display:inline-flex;gap:4px;align-items:center}.hierarchy-ga-assigned-list{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:6px}.hierarchy-ga-assigned-chip{border:1px solid #cad8ee;background:#e9f0fb;color:#23456f;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.hierarchy-ga-target-selected{border-color:#3d6fb3!important;box-shadow:0 0 0 2px #3d6fb329}.hierarchy-ga-source-row{display:block;width:100%;text-align:left;border:1px solid #d7e2ef;background:#f1f6fb;border-radius:10px;padding:8px 10px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.hierarchy-ga-source-row:hover{background:#e8f0f8;border-color:#b8cae0}.hierarchy-ga-source-row.is-selected{background:#d8e8fb;border-color:#5f8fc5;transform:translate(-2px)}.hierarchy-ga-source-group{display:grid;gap:6px;padding:8px 10px;border:1px solid #dce7f3;border-radius:10px;background:#f6f9fd}.hierarchy-ga-source-group-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.hierarchy-ga-source-group-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#58779e}.hierarchy-ga-source-group-actions{display:inline-flex;gap:6px;align-items:center}.hierarchy-ga-group-create-inline{display:grid;grid-template-columns:18px 56px 78px minmax(0,1fr) auto;gap:8px;align-items:center}.hierarchy-ga-inline-actions-placeholder{visibility:hidden}.ga-summary-row+.ga-summary-row{border-top:1px solid #efece6}.ga-summary-address{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#1f2a44}.ga-summary-name{font-size:12px;color:#2f2f2f}.ga-ets-tree{display:grid;gap:8px;border:1px solid #e2dfd8;border-radius:8px;background:#fff;padding:10px}.ga-ets-main{display:grid;gap:4px}.ga-ets-main-row{font-weight:600;color:#1f2a44;font-size:13px;background:#eef3ff;border:1px solid #d7e2ff;border-radius:6px;padding:6px 8px}.ga-ets-toggle{width:100%;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.ga-ets-main-left{display:inline-flex;align-items:center;gap:6px;min-width:0}.ga-ets-main-left>span:first-child{min-width:14px;font-size:15px;line-height:1;font-weight:700;color:#2a3d69}.ga-ets-count-pill{font-size:11px;color:#374151;background:#f5f7fb;border:1px solid #d8dfef;border-radius:999px;padding:1px 8px;white-space:nowrap}.stats-scroll{max-height:none}.stats-tree-controls{display:flex;justify-content:flex-end;gap:6px}.stats-tree-controls-sticky{position:sticky;top:0;z-index:20;isolation:isolate;background:#f7f5ef;border:1px solid #e2dfd8;border-radius:8px;padding:6px;margin-bottom:10px;box-shadow:0 4px 10px #1f2a4414}.stats-project-total{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #d7e2ff;border-radius:8px;background:#f3f7ff;font-size:13px;font-weight:700;color:#1f2a44}.stats-project-total>span:last-child{text-align:right;justify-self:end;font-variant-numeric:tabular-nums}.stats-block{border:1px solid #e2dfd8;border-radius:8px;background:#fff;padding:8px;display:grid;gap:8px}.stats-block-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.stats-table{display:grid;gap:4px}.stats-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 6px;border:1px solid #efede8;border-radius:6px;background:#faf9f6}.stats-label{min-width:0;font-size:12px;color:#2f2f2f}.stats-value{font-size:12px;font-weight:700;color:#1f2a44;font-variant-numeric:tabular-nums}.stats-tree{display:grid;gap:8px}.stats-tree-node{border:1px solid #e2dfd8;border-radius:8px;background:#fff}.stats-tree-header{width:100%;border:0;background:#f7f5ef;border-radius:8px;padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}.stats-tree-header-building{background:#e4eaf7;padding-top:10px}.stats-tree-header-floor{background:#eaf3e9;padding-top:10px}.stats-tree-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#1f2a44;min-width:0}.stats-tree-content{display:grid;gap:8px;padding:8px}.stats-tree-content>.stats-tree-node{margin-left:10px;border-left:2px solid #ece8df;padding:4px 4px 4px 8px;border-radius:0}.stats-building-group{display:grid;gap:8px}.stats-building-title{font-size:12px;font-weight:700;color:#1f2a44;text-transform:uppercase;letter-spacing:.05em;padding:2px 4px}.stats-device-category+.stats-device-category{margin-top:8px}.stats-device-category-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b6b6b;margin-bottom:4px}.stats-device-rows{display:grid;gap:4px}.stats-device-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #efede8;border-radius:6px;padding:4px 6px;background:#faf9f6}.stats-device-header-row{border:0;background:transparent;padding:0 6px 2px}.stats-device-values{display:flex;align-items:center;gap:22px}.stats-device-values>.stats-value,.stats-device-values>.stats-device-col-label{min-width:68px;text-align:right}.stats-device-col-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8a8a8a}.stats-device-icon.device-button{width:34px;height:22px;min-height:22px;font-size:11px;border-radius:5px;cursor:default;box-shadow:none;padding:0 2px}.stats-device-label{font-size:12px;color:#2f2f2f;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-hardware-table{display:grid;gap:2px}.stats-hw-group-box{border:1px solid #e6e0d4;border-radius:8px;background:#fcfbf8;padding:8px;display:grid;gap:6px}.stats-hw-group-field{border-style:dashed}.stats-hw-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;color:#2e2e2e}.stats-hw-group-meta{font-size:11px;font-weight:600;color:#3f5d84}.stats-hw-group-meta.warning{color:#b42318}.stats-hw-header,.stats-hw-row{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(90px,.8fr) minmax(120px,1fr) minmax(180px,1.6fr) 64px 110px 110px;gap:6px;align-items:center}.stats-hw-header{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b6b6b;font-weight:600;padding:2px 6px}.stats-hw-row{font-size:12px;color:#2f2f2f;border:1px solid #efede8;border-radius:6px;background:#faf9f6;padding:4px 6px}.stats-hw-row-total{background:#eef3f9;border-color:#d4deea;font-weight:700}.stats-hw-header>span:nth-child(5),.stats-hw-header>span:nth-child(6),.stats-hw-header>span:nth-child(7),.stats-hw-row>span:nth-child(5),.stats-hw-row>span:nth-child(6),.stats-hw-row>span:nth-child(7){text-align:right;justify-self:end}.stats-lines-header,.stats-lines-row{grid-template-columns:minmax(88px,.8fr) 84px 50px 72px 56px 88px 88px}.stats-lines-header>span,.stats-lines-row>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-lines-header-all{grid-template-columns:minmax(160px,1.1fr) 90px minmax(100px,.9fr) 100px 100px}.stats-paths-header,.stats-paths-row{grid-template-columns:minmax(160px,1fr) 80px 110px}.stats-paths-header>span:nth-last-child(-n+2),.stats-paths-row>span:nth-last-child(-n+2){text-align:right;justify-self:end}.stats-lines-row-all{grid-template-columns:minmax(160px,1.1fr) 90px minmax(100px,.9fr) 100px 100px}.stats-lines-header>span:nth-last-child(-n+2),.stats-lines-row>span:nth-last-child(-n+2),.stats-lines-header-all>span:nth-last-child(-n+2),.stats-lines-row-all>span:nth-last-child(-n+2){text-align:right;justify-self:end}.stats-line-pattern{display:inline-block;width:96px;height:16px;vertical-align:middle;overflow:visible}.stats-lines-row-selectable{cursor:pointer}.stats-hw-row.is-minimap-selected{background:#eef2fb;border-color:#ced7f0}.stats-lines-minimap-slot{min-height:164px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e2dfd8;padding:10px 12px}.search-minimap-route{stroke:#ef4444;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ga-ets-count-number{min-width:88px;text-align:right;justify-self:end;font-size:12px;font-weight:700;color:#1f2a44;font-variant-numeric:tabular-nums}.ga-ets-middle{display:grid;gap:4px;padding-left:16px}.ga-ets-middle-row{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#27513a;font-size:12px;background:#eefaf2;border:1px solid #cdebd8;border-radius:6px;gap:10px;padding:6px 8px}.ga-ets-leaf-row{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:6px;align-items:center;padding-left:14px;padding-top:1px;padding-bottom:1px;font-size:12px}.ga-ets-leaf-row.has-location{grid-template-columns:14px 60px 84px 76px minmax(0,1fr) 16px}.tool-button.delete-x.ga-ets-delete{width:16px;min-width:16px;height:16px;font-size:11px;align-self:center}.ga-ets-leaf-row:has(.ga-ets-delete:hover){background:#fdecea;border-radius:4px}.ga-ets-device-ref{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;font-family:inherit;justify-self:start;min-width:24px;width:auto;height:18px;padding:0 4px;border-radius:3px;border:1px solid #353535;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.01em;line-height:1}.ga-ets-device-ref:hover{filter:brightness(.92)}.ga-ets-leaf-row.has-lock{grid-template-columns:14px 60px minmax(0,1fr) 16px}.ga-lock-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:none;padding:0;margin:0;color:#8f1d1d;opacity:.55;display:inline-flex;align-items:center;cursor:pointer;justify-self:center}.ga-lock-toggle:hover{opacity:1}.ga-ets-location{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:none;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;color:#9a9a9a;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga-ets-location:hover{color:#1f2a44;text-decoration:underline}.ga-ets-address{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#8f1d1d;background:#fff1f1;border:1px solid #f5c9c9;border-radius:999px;padding:0 6px;justify-self:start}.ga-ets-address-external{color:#62430f;background:#fff8df;border-color:#e9d79d}.ga-ets-desc{color:#2f2f2f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga-ets-gaid{justify-self:end;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#1f2a44;background:#eef2fb;border:1px solid #ced7f0;border-radius:999px;padding:0 6px;white-space:nowrap}.hardware-port-title{font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:6px;width:100%}.hardware-port-device-icon{min-width:24px;width:auto;height:18px;padding:0 4px;border-radius:3px;border:1px solid #353535;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.01em;line-height:1;box-shadow:none}.hardware-port-location{color:#5f6b82;font-weight:500}.hardware-port-type{color:#8a95aa;font-weight:500}.hardware-port-human-id{margin-left:auto;padding:1px 8px;border:1px solid #d0d6e2;border-radius:999px;background:#f5f7fb;color:#455169;font-size:11px;font-weight:600;letter-spacing:.01em}.hardware-move-panel{border-radius:12px;padding:12px;display:grid;gap:8px;align-content:start;margin-bottom:12px;border:1px solid #c9a227;background:#fff4d6;box-shadow:0 0 0 2px #c9a2272e}.hardware-move-source{border:1px solid rgba(31,42,68,.2);background:#fff9;border-radius:8px;padding:8px 10px;display:grid;gap:3px}.hardware-move-source-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1f2a44}.modal-scroll.hardware-move-open{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;overflow:hidden;height:100%;min-height:0}.modal-scroll.hardware-move-open>.hardware-instance-list,.modal-scroll.hardware-move-open>.panel-help{grid-column:1;max-height:none;height:100%;overflow:hidden;padding:12px;box-sizing:border-box;border:1px solid #d5cfbe;border-radius:12px;background:#fffdf8}.modal-scroll.hardware-move-open>.hardware-move-panel{grid-column:2;grid-row:1;margin-bottom:0;max-height:none;height:100%;overflow:auto;overscroll-behavior:contain;padding-bottom:12px;box-sizing:border-box}.modal-scroll.hardware-move-open .hardware-instance-group.hardware-instance-group-card{content-visibility:visible;contain-intrinsic-size:auto}.hardware-move-targets{display:grid;gap:10px;align-content:start}.hardware-move-mode-toggle{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hardware-move-mode-toggle .tool-button.active{background:#24324b;color:#fff;border-color:#24324b}.hardware-move-create{display:grid;gap:10px;align-content:start}.hardware-move-create-summary{border:1px solid rgba(31,42,68,.18);background:#ffffffb8;border-radius:10px;padding:8px 10px;display:grid;gap:4px}.hardware-move-create-grid{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:10px;align-items:start}.hardware-move-create-picker,.hardware-move-create-preview{display:grid;gap:8px;min-height:0}.hardware-move-create-list{border:1px solid #d5cfbe;border-radius:10px;background:#fffdf8;min-height:280px;max-height:360px;overflow:auto;display:grid;align-content:start}.hardware-move-create-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-bottom:1px solid #ece4d2;background:transparent;text-align:left;padding:10px 12px;display:grid;gap:3px;cursor:pointer}.hardware-move-create-option:last-child{border-bottom:0}.hardware-move-create-option:hover{background:#f7f1e4}.hardware-move-create-option.active{background:#24324b;color:#fff}.hardware-move-create-option-main{font-size:13px;font-weight:700}.hardware-move-create-option-desc{font-size:12px;opacity:.82}.hardware-move-create-port-list{max-height:300px;overflow:auto}.hardware-desc-cleanup-list{border:1px solid #d5cfbe;border-radius:10px;background:#fffdf8;max-height:55vh;overflow:auto}.hardware-desc-cleanup-row{display:grid;grid-template-columns:20px 160px 1fr 1fr;gap:10px;align-items:start;padding:8px 12px;border-bottom:1px solid #ece4d2;cursor:pointer;font-size:12px}.hardware-desc-cleanup-row:last-child{border-bottom:0}.hardware-desc-cleanup-row:hover{background:#f7f1e4}.hardware-desc-cleanup-sku{font-weight:700}.hardware-desc-cleanup-before{color:#8a5a00;text-decoration:line-through;opacity:.75}.hardware-desc-cleanup-after{color:#1f5a2c;font-weight:600}.masterdata-sync-modal .modal-scroll{display:flex;flex-direction:column;gap:16px}.masterdata-sync-section{border:1px solid #d5cfbe;border-radius:10px;background:#fffdf8;padding:12px}.masterdata-sync-connection-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.masterdata-sync-connection-grid input.tool-input{display:block;width:100%;margin:6px 0}.masterdata-sync-key-reveal{margin-top:8px;padding:8px;border:1px dashed #c9a227;border-radius:8px;background:#fff8e0}.masterdata-sync-key-reveal input.tool-input{flex:1 1 auto;font-family:monospace}.masterdata-sync-ok{color:#1f5a2c;font-weight:600}.masterdata-sync-error{color:#a13a2b;font-weight:600}.masterdata-sync-warning{color:#8a5a00;font-weight:600}.masterdata-sync-table-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;font-weight:700;font-size:13px;padding:2px 0}.masterdata-sync-row-list{margin-top:8px;border:1px solid #ece4d2;border-radius:8px;max-height:40vh;overflow:auto}.masterdata-sync-row{display:grid;grid-template-columns:160px 1fr 1fr auto;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid #ece4d2;font-size:12px}.masterdata-sync-row:last-child{border-bottom:0}.masterdata-sync-row-label{font-weight:700}.masterdata-sync-row-value{color:#6b6252;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.masterdata-sync-row-picker{display:flex;gap:4px}.hardware-move-device{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#223047}.hardware-move-device-text{line-height:1.3}.hardware-move-panel-callout{border:1px solid #c9a227;background:#fff4d6;box-shadow:0 0 0 2px #c9a2272e;position:relative}@media(max-width:1100px){.hardware-move-create-grid{grid-template-columns:minmax(0,1fr)}.hardware-move-create-list,.hardware-move-create-port-list{max-height:220px}}.cabinet-editor-modal{width:min(1880px,99vw);height:min(97dvh,calc(300px + var(--cabinet-row-count, 8) * 76px));max-width:none;display:flex;flex-direction:column}.cabinet-editor-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,280px);gap:10px;max-height:none;height:auto;flex:1 1 auto;min-height:0}.cabinet-grid-wrap{display:grid;gap:8px}.cabinet-grid{position:relative;border:1px solid #cfd8ea;border-radius:10px;background:#f8fbff;display:grid;grid-auto-rows:minmax(60px,1fr);overflow:hidden}.cabinet-cell{border-right:1px solid #e7edf7;border-bottom:1px solid #e7edf7;min-height:60px}.cabinet-cell.is-range-selected{background:#2563eb1f;box-shadow:inset 0 0 0 1px #2563eb4d}.cabinet-cell.is-range-start{box-shadow:inset 1px 0 #2563eb73,inset 0 0 0 1px #2563eb73}.cabinet-cell.is-range-end{box-shadow:inset -1px 0 #2563eb73,inset 0 0 0 1px #2563eb73}.cabinet-block{position:absolute;border-radius:8px;border:1px solid #d4dce9;background:#fff;padding:6px 8px;display:grid;align-content:center;gap:4px;overflow:hidden;cursor:grab}.cabinet-block-corner-action{position:absolute;top:4px;right:4px;width:18px;height:18px;border:1px solid #d4dce9;border-radius:999px;background:#fffffff2;color:#55627d;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;z-index:1}.cabinet-block-corner-action:hover{border-color:#b8c6df;color:#1f2a44}.cabinet-block.cabinet-block-knx{background:#edf4ff;border-color:#b6cdf5}.cabinet-block.cabinet-block-custom{background:#fff5ea;border-color:#f0c491;padding:3px 5px}.cabinet-block.is-locked{border-color:#c81e1e;border-style:dashed;box-shadow:inset 0 0 0 1px #c81e1e47}.cabinet-block.is-selected{box-shadow:inset 0 0 0 9999px #2563eb17}.cabinet-block.is-preview{border-style:dashed;border-width:2px;border-color:#2563eb;box-shadow:inset 0 0 0 9999px #2563eb14}.cabinet-block.is-preview.is-preview-invalid{border-color:#d14343;box-shadow:inset 0 0 0 9999px #d1434314}.cabinet-block-title{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cabinet-block-custom .cabinet-block-title{font-size:10px}.cabinet-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cabinet-block-custom{display:grid;grid-template-rows:auto 1fr;gap:1px;min-height:0;height:100%;align-content:stretch;padding-right:20px}.cabinet-block-custom-note{font-size:11px;line-height:1.1;color:#3c4963;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow-wrap:anywhere}.cabinet-block-custom-note-input{width:100%;min-width:0;height:100%;min-height:0;border:1px solid #cfd8ea;border-radius:4px;background:#fff;color:#1f2a44;font-size:10px;line-height:1.15;padding:2px 3px;resize:none}.cabinet-block-indaddr{font-size:12px;font-weight:700;color:#1f2a44;white-space:nowrap;flex-shrink:0}.cabinet-side-panel{display:grid;gap:8px;align-content:start;max-height:calc(97dvh - 140px);overflow:auto;padding-right:2px}.cabinet-side-section{border:1px solid #dfd9cd;border-radius:10px;padding:8px;background:#fffdf8;display:grid;gap:6px}.cabinet-unplaced-list,.cabinet-custom-list{display:grid;gap:6px}.cabinet-unplaced-table{display:grid;gap:4px}.cabinet-unplaced-table-header,.cabinet-unplaced-table-row{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:3px}.cabinet-unplaced-table-header{font-size:11px;font-weight:700;color:#6b768e;text-transform:uppercase;letter-spacing:.03em;padding:0 6px}.cabinet-unplaced-table-row{cursor:grab;font-size:11px;font-weight:600}.cabinet-unplaced-inner{border:1px dashed #c8d1df;border-radius:8px;padding:2px 5px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.cabinet-unplaced-table-row .cabinet-unplaced-hw{min-width:0;display:grid;grid-template-rows:16px 16px;gap:0;align-items:center}.cabinet-unplaced-table-row .cabinet-unplaced-line1{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0}.cabinet-unplaced-table-row .cabinet-unplaced-manu{font-size:10px;color:#5b6885;font-weight:600;letter-spacing:.02em;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cabinet-unplaced-table-row .cabinet-unplaced-sku{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;color:#1f2a44}.cabinet-custom-note-input{width:100%;min-width:0;height:18px;border:1px solid #cfd8ea;border-radius:4px;background:#fff;color:#1f2a44;font-size:10px;padding:0 4px}.cabinet-unplaced-table-row .cabinet-unplaced-line2{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0}.cabinet-custom-line2-layout{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0}.cabinet-unplaced-table-row .cabinet-unplaced-side{display:inline-grid;grid-template-rows:16px 16px;justify-items:end;align-items:center;gap:0;min-width:max-content}.cabinet-unplaced-table-row .cabinet-unplaced-mu-grid{display:inline-flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:1px;flex-shrink:0;opacity:.7;align-self:center}.cabinet-unplaced-table-row .cabinet-unplaced-mu-cell{width:5px;height:5px;border-radius:1px;background:#7cc2ff;border:1px solid #5ea7e6;box-sizing:border-box}.cabinet-unplaced-table-row .cabinet-unplaced-addr{font-size:10px;color:#425171;font-variant-numeric:tabular-nums;white-space:nowrap}.cabinet-unplaced-action-col{display:inline-flex;justify-content:center;align-items:center;justify-self:center;padding-left:4px}.is-right{text-align:right}.cabinet-unplaced-item{border:1px dashed #c8d1df;border-radius:8px;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:grab;font-size:12px;font-weight:600}.cabinet-unplaced-item-missing{border-style:solid;border-color:#d46b08;background:#fff4e5;color:#8a2f00}.cabinet-item-width{color:#6b768e;font-weight:700;font-size:11px}.cabinet-custom-row{border:1px solid #e2dfd8;border-radius:8px;padding:3px 6px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:38px;position:relative}.cabinet-custom-card{border:none;background:transparent;padding:0;margin:0;display:grid;grid-template-rows:16px 16px;gap:0;align-items:center;text-align:left;cursor:pointer;min-width:0}.cabinet-custom-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:600;color:#1f2a44}.cabinet-custom-note{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#5b6885}.cabinet-custom-template-mu-row{display:inline-flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:1px;opacity:.7}.cabinet-custom-template-side{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:6px;min-width:max-content}.cabinet-custom-template-mu-count{font-size:10px;color:#425171;font-variant-numeric:tabular-nums;white-space:nowrap}.cabinet-custom-mu-grid{position:absolute;right:6px;bottom:4px;display:inline-flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:1px;opacity:.7}.cabinet-custom-actions{display:inline-flex;align-items:center;gap:6px}.cabinet-custom-actions.centered{justify-self:center}.cabinet-template-modal{width:min(420px,92vw);display:grid;gap:10px}.cabinet-range-modal{width:min(520px,94vw)}.modal-overlay.inner{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30}.cabinet-template-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.cabinet-template-header-actions{display:inline-flex;align-items:center;gap:6px}.cabinet-template-form{display:grid;gap:6px}.cabinet-template-add-controls{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}.cabinet-editor-modal .modal-header{gap:16px;align-items:center;flex-wrap:nowrap;flex:0 0 auto;position:sticky;top:0;z-index:3;background:#fff}.cabinet-editor-modal .modal-actions-inline{display:inline-flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.cabinet-editor-modal .modal-actions-inline .tool-button{padding:8px 14px}.cabinet-grid-help{color:#57627a}.cabinet-grid-frame{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:18px minmax(0,1fr);align-items:stretch;min-height:0}.cabinet-grid-axis{position:relative;pointer-events:none;font-size:11px;color:#5f6a82;font-weight:700}.cabinet-grid-axis-top{grid-column:2;grid-row:1;height:16px;display:grid;align-items:center}.cabinet-grid-axis-top>span{justify-self:center}.cabinet-grid-axis-left{grid-column:1;grid-row:2;width:20px;display:grid;align-items:center}.cabinet-grid-axis-left>span{justify-self:end;padding-right:2px}.cabinet-grid-frame .cabinet-grid{grid-column:2;grid-row:2}.cabinet-block{align-content:start}.cabinet-block-meta{display:grid;gap:2px;margin-top:2px;padding-right:20px}.cabinet-block-meta-line{font-size:11px;line-height:1.15;color:#3c4963;white-space:normal;overflow-wrap:anywhere}.device-editor{max-width:1800px;width:90vw}.device-editor-tabs{display:flex;gap:6px;padding:8px 12px 0}.device-editor-tabs.header-tabs{margin-left:auto;margin-right:12px;padding:0}.device-editor-body{display:grid;grid-template-columns:220px 1fr;gap:16px;height:100%;min-height:0}.sensor-editor-body{grid-template-columns:minmax(560px,680px) minmax(0,1fr)}.sensor-editor-list,.sensor-editor-form{min-width:0}.line-groups-editor-body{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.device-editor-item.line-group-list-item{grid-template-columns:48px 1fr auto;column-gap:12px;cursor:pointer}.line-group-list-item .device-editor-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-group-list-item.faded{opacity:.5;pointer-events:none}.line-group-swatch{width:48px;height:20px;display:block;justify-self:start}.line-group-swatch-svg{width:100%;height:100%}.sensor-list-head{display:grid;grid-template-columns:minmax(140px,1fr) minmax(200px,1.6fr);gap:10px;align-items:center;padding:0 8px;font-size:12px;font-weight:700;color:#6d675a}.sensor-list-ga-head{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(140px,1.4fr) minmax(90px,.9fr) minmax(90px,.9fr);gap:8px;align-items:center;padding:0 8px 2px 20px;font-size:11px;font-weight:700;color:#6d675a}.sensor-list-group{display:grid;gap:0;padding:0;border-radius:8px;border:1px solid #e2dfd8;background:#f1ede4;overflow:hidden}.sensor-list-group.active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a44}.sensor-list-row-header{display:grid;grid-template-columns:minmax(140px,1fr) minmax(200px,1.6fr);gap:10px;align-items:center;padding:7px 10px;border:0;border-bottom:1px solid #e2dfd8;background:#fff;text-align:left}.sensor-list-cell-short,.sensor-list-cell-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-list-cell-short{font-weight:700;font-size:13px}.sensor-list-cell-name{color:#4a463c}.sensor-list-ga-row{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(140px,1.4fr) minmax(90px,.9fr) minmax(90px,.9fr);gap:8px;align-items:center;padding:4px 10px 4px 18px;font-size:11.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;color:#6d675a;border-left:3px solid #ddd4c2;border-top:0;border-right:0;border-bottom:0;background:transparent;text-align:left;width:100%;cursor:pointer}.sensor-list-ga-row:hover{background:#00000008}.sensor-list-ga-empty{cursor:default}.sensor-list-ga-empty:hover{background:transparent}.sensor-list-ga-row+.sensor-list-ga-row{border-top:1px solid #e6e0d2}.sensor-list-ga-cell{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-list-ga-empty{padding:4px 10px 4px 18px;font-size:11.5px;font-style:italic;color:#948d7d;border-left:3px solid #ddd4c2}.hardware-editor-body{grid-template-columns:4fr 1fr;align-items:stretch;min-height:70dvh;height:100%;min-height:0;width:100%;box-sizing:border-box;overflow:hidden}.device-editor-list{display:grid;gap:6px;align-content:start;height:100%;min-height:0;overflow-y:auto;padding-right:4px}.hardware-editor-list{display:flex;flex-direction:column;gap:8px;overflow:hidden;max-height:none;padding-right:0;flex:1;min-height:0;min-width:0}.hardware-list-controls{display:grid;gap:6px;grid-template-columns:1fr auto auto;align-items:center}.hardware-table-scroll{flex:1;overflow:hidden;padding-right:4px;min-height:0;display:flex;flex-direction:column;gap:6px}.hardware-editor-form{overflow-y:auto;max-height:100%;padding-right:6px;min-width:0;align-self:stretch;box-sizing:border-box}.hardware-table{display:flex;flex-direction:column;gap:4px;align-items:stretch;overflow-y:auto;flex:1;min-height:0}.hardware-row{display:grid;grid-template-columns:12px 16px 22px 1fr 1fr 2fr .7fr .4fr .7fr .7fr;gap:6px;align-items:center;padding:2px 8px;border-radius:8px;border:1px solid #e2dfd8;background:#fbfaf7;text-align:left;font-size:12px;line-height:1.05;min-height:28px}.hardware-row span{line-height:1.05}.hardware-header{background:#f1eee7;font-weight:600;border-color:#ded8cd}.hardware-header-sort{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;font:inherit;color:inherit;text-align:left;padding:0;cursor:pointer}.hardware-item{cursor:pointer}.hardware-item,.hardware-row{flex:0 0 auto}.hardware-item.active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a44}.hardware-item.selected{border-color:#1f2a44;background:#e9eef8;box-shadow:0 0 0 1px #1f2a44}.hardware-cell-id{font-weight:600}.price-cell{text-align:right}.hardware-link{font-size:11px;color:#1f2a44;text-decoration:underline;justify-self:start}.hardware-link-button{width:18px;height:18px;border-radius:999px;border:1px solid #d9d4c9;background:#f6f3ec;color:#8a8174;display:inline-flex;align-items:center;justify-content:center;font-size:11px;padding:0;cursor:default}.hardware-link-button.has-link{background:#7fc37a;border-color:#66b462;color:#0e2a1b;cursor:pointer}.hardware-status-dot{width:10px;height:10px;border-radius:999px;border:1px solid #d9d4c9;display:inline-block}.hardware-status-dot.ok{background:#8fc87a;border-color:#76b965}.hardware-status-dot.missing{background:#e36a6a;border-color:#d45858}.hardware-search{height:28px;border:1px solid #d9d4c9;border-radius:8px;padding:4px 8px;font-size:13px}.device-editor-item{display:grid;grid-template-columns:36px 1fr auto auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;border:1px solid #e2dfd8;background:#fbfaf7;text-align:left}.hardware-editor-item{grid-template-columns:1fr;gap:2px}.device-list-actions{display:flex;justify-content:flex-start;margin-bottom:6px}.device-list-actions .tool-button{width:100%}.device-editor-item.active{border-color:#1f2a44;box-shadow:0 0 0 1px #1f2a44}.device-editor-icon{justify-self:start}.device-editor-label{font-weight:600;font-size:13px}.device-editor-item-actions{display:inline-flex;align-items:center;gap:4px}.device-editor-ga-dot{width:9px;height:9px;border-radius:999px;border:1px solid #cfc9be;justify-self:end}.device-editor-ga-dot.nonknx{background:#b0b0b0;border-color:#9a9a9a}.device-editor-ga-dot.missing{background:#d45858;border-color:#bb4242}.device-editor-ga-dot.ok{background:#3f9f57;border-color:#318046}.hardware-editor-label{font-size:12px}.device-editor-form{display:grid;gap:10px;align-content:start}.device-editor-form.compact-device-form{gap:8px}.device-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.form-row{display:grid;gap:2px;font-size:12px;color:#3d3d3d;align-content:start}.form-row span{line-height:1}.form-row input{border:1px solid #d9d4c9;border-radius:8px;padding:2px 8px;font-size:13px;line-height:1.1;height:26px}.form-readonly-value{border:1px solid #ded8cd;border-radius:8px;background:#f3f0e9;color:#5f584c;padding:4px 8px;min-height:26px;display:inline-flex;align-items:center;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.color-edit-row{display:grid;grid-template-columns:42px 1fr;gap:6px;align-items:center}.color-edit-row input[type=color]{width:42px;height:26px;border:1px solid #d9d4c9;border-radius:6px;padding:0}.device-icon-sample-row{display:inline-flex;align-items:center;gap:8px}.icon-visual-row{gap:4px}.icon-visual-inline{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap}.compact-color-field{display:inline-flex;gap:6px;align-items:center}.compact-color-field>span{font-size:11px;color:#6d675a;line-height:1}.compact-color-field .color-edit-row input[type=text]{width:90px;min-width:90px}.compact-color-field .color-edit-row{grid-template-columns:42px 90px}.inline-checkbox-row{grid-template-columns:auto 1fr;align-items:center;gap:10px}.inline-checkbox-row>span{line-height:1.2}.default-placement-row{gap:4px}.default-placement-inline{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.compact-inline-field{display:inline-flex;align-items:center;gap:6px}.compact-inline-field>span{font-size:11px;color:#6d675a;line-height:1}.compact-inline-field input[type=number]{width:112px}.form-row.required-missing>span{color:#b03a2e}.form-row.required-missing input,.tool-select.required-missing{border-color:#d46a5a;background:#fff7f5}.device-editor-filter,.device-hardware-types{display:grid;gap:6px}.device-hardware-type-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.device-editor-filter .filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.device-editor-filter .filter-row.ga-template-row{grid-template-columns:minmax(120px,1fr) minmax(140px,1.15fr) minmax(160px,1.35fr) minmax(140px,1fr) auto auto auto;align-items:end;overflow-x:auto;max-width:100%}.device-editor-filter .filter-row.ga-template-row.sensor-ga-template-row{grid-template-columns:minmax(120px,1fr) minmax(140px,1.15fr) minmax(180px,1.35fr) minmax(150px,1fr) auto auto auto}.ga-template-field{display:flex;flex-direction:column;gap:2px;min-width:0}.ga-template-field-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#948d7d}.device-editor-filter .filter-row.ga-template-row.sensor-ga-template-row .tool-button{align-self:center;justify-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:28px}.device-editor-filter .tool-button.compact,.device-editor-filter .tool-button.tiny{padding:3px 6px;font-size:12px}.device-editor-filter>.tool-button.compact{justify-self:start;width:auto}.hardware-editor-properties .filter-row{align-items:center}.hardware-editor-actions{border-top:1px solid #e2dfd8;padding-top:12px;margin-top:8px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;position:sticky;bottom:0;background:#fff;padding-bottom:8px}.hardware-editor-properties{padding-bottom:52px}.hardware-bulk-fields{display:grid;gap:8px;margin-bottom:6px}.hardware-bulk-panel .bulk-apply{border-top:1px solid #e2dfd8;padding-top:10px;margin-top:6px;display:grid;gap:8px}.hardware-bulk-fields .bulk-row{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center}.hardware-bulk-fields .bulk-label{display:grid;grid-template-columns:16px 1fr;gap:6px;align-items:center;font-size:12px;color:#3d3d3d}.hardware-bulk-fields .tool-input,.hardware-bulk-fields .tool-select{height:30px;padding:0 8px;box-sizing:border-box;line-height:28px;width:100%;max-width:100%;display:block}.hardware-bulk-sensor-grid .bulk-label{grid-template-columns:1fr;gap:2px}.hardware-editor-properties .filter-row .tool-button.tiny{align-self:center;height:32px;line-height:1}.tool-button.icon-only{padding:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.hardware-editor-properties .filter-row.missing .tool-select{border-color:#e36a6a;box-shadow:0 0 0 1px #e36a6a33}.property-name{font-size:12px;color:#1f2a44;padding:0 4px}.property-name-input{height:30px;font-size:12px;padding:2px 8px}.pricelist-import{display:grid;gap:10px;height:100%;min-height:0}.pricelist-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pricelist-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pricelist-pagination{display:flex;gap:6px}.pricelist-table{display:grid;gap:6px}.pricelist-row{display:grid;grid-template-columns:40px 140px 140px 4.6fr 140px 140px 220px 1.4fr;gap:6px;align-items:center;padding:6px 8px;border:1px solid #e2dfd8;border-radius:8px;background:#fbfaf7}.pricelist-row input[type=text]{border:1px solid #d9d4c9;border-radius:6px;padding:4px 6px;font-size:12px}.pricelist-property-inputs{display:grid;grid-template-columns:1fr 1fr;gap:6px}.admin-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-progress-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a2e;display:flex;align-items:center;justify-content:center;z-index:25}.admin-progress-modal{width:min(520px,90vw);border:1px solid #d6d0c2;background:#fff;border-radius:12px;box-shadow:0 20px 50px #0003;padding:16px;display:grid;gap:8px}.admin-progress-actions{margin-top:8px;display:flex;justify-content:flex-end;gap:8px}.pricelist-description textarea{width:100%;min-height:32px;border:1px solid #d9d4c9;border-radius:6px;padding:6px 8px;font-size:12px;resize:vertical}.pricelist-header{font-weight:600;background:#f1ede6}.pricelist-properties{display:grid;gap:6px}.pricelist-property-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.validation-list{display:grid;gap:8px}.validation-row{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;border:1px solid #e2dfd8;border-radius:8px;padding:8px 10px;background:#fbfaf7}.validation-row.error{border-color:#b42318}.validation-row.warning{border-color:#c9a227}.validation-level{font-weight:700;font-size:12px}.validation-message{font-weight:600}.hardware-move-panel-callout:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#c9a227;border-radius:12px 0 0 12px}.hardware-move-panel-section{border:1px solid #1f2a44;background:#eef1f8;box-shadow:inset 0 0 0 1px #1f2a441f}.hardware-move-panel-section .panel-help:first-of-type{font-weight:700;color:#1f2a44}.hardware-move-style-toggle{display:flex;gap:6px}.hardware-move-row{display:flex;align-items:center;gap:8px}.hardware-move-row-right{display:flex;align-items:center;gap:8px;margin-left:auto}.hardware-move-row .tool-button{padding:3px 8px;font-size:12px;flex:0 0 auto}.hardware-move-footer{border-top:1px solid #d9d5ca;padding:10px 12px 12px;background:#f6f3eb;display:grid;gap:6px;position:relative;z-index:1}.hardware-instances-minimap-slot{min-height:164px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e2dfd8;padding:10px 12px}.hardware-free-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;height:1.4em;padding:0 6px;border-radius:999px;background:#dcfce7;border:1px solid #86efac;color:#14532d;font-weight:700;font-size:11px;line-height:1;font-variant-numeric:tabular-nums}.hardware-move-targets{display:grid;gap:10px}.hardware-move-target-card{border:1px solid #e2dfd8;border-radius:10px;padding:10px;background:#fff;display:grid;gap:6px}.hardware-move-error{color:#b42318;font-weight:600;font-size:12px;margin-left:auto;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapping-profile-row{display:flex;gap:6px;align-items:center}.mapping-table{display:grid;gap:8px}.mapping-row{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:8px;align-items:center;border:1px solid #e2dfd8;border-radius:8px;padding:6px 8px;background:#fbfaf7}.mapping-row.mapping-row-dummy{background:#f3f4f6;border-color:#c4c9d1}.mapping-row.mapping-row-missing{background:#fff1f2;border-color:#f3a5ab}.mapping-select.mapping-select-dummy{background:#e3e3e3;border-color:#b8b8b8;color:#555}.mapping-select.mapping-select-missing{background:#ffe4e6;border-color:#ef4444;color:#7f1d1d}.mapping-device{display:flex;align-items:center;gap:8px}.mapping-icon{width:32px;height:24px;border-radius:4px;border:1px solid #d9d4c9;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.mapping-category{display:grid;gap:6px}.mapping-label{font-size:13px}.mapping-select{width:100%;min-width:0}.mapping-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.mapping-select.readonly{border:1px solid #d9d4c9;border-radius:8px;padding:7px 10px;background:#f7f5ef;color:#3b3b3b;font-size:12px;line-height:1.25}.searchable-select{position:relative;width:100%}.searchable-select-trigger{width:100%;border:1px solid #d9d4c9;border-radius:8px;padding:6px 10px;display:flex;justify-content:space-between;align-items:center;background:#fff;cursor:pointer;font-size:12px}.searchable-select-label{text-align:left;flex:1;margin-right:8px;display:grid;gap:2px}.searchable-select-label-main{font-weight:600}.searchable-select-label-desc{font-size:11px;color:#6b6b6b;text-transform:none}.searchable-select-caret{font-size:10px;color:#6b6b6b}.searchable-select-popover{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #d9d4c9;border-radius:10px;box-shadow:0 8px 20px #0000001f;padding:8px;z-index:20}.searchable-select-popover.portal{z-index:9999}.mention-autocomplete-popover{display:flex;flex-direction:column;overflow:hidden;max-height:min(280px,calc(100dvh - 24px))}.mention-autocomplete-root{flex:1 1 auto;min-width:0}.searchable-select-popover.open-up{top:auto;bottom:calc(100% + 6px)}.searchable-select-input{width:100%;border:1px solid #d9d4c9;border-radius:8px;padding:6px 8px;font-size:12px}.searchable-select-list{margin-top:6px;max-height:200px;overflow:auto;display:grid;gap:4px}.mention-autocomplete-popover .searchable-select-list{flex:1;max-height:none}.searchable-select-option{border:none;background:#f7f4ef;border-radius:6px;padding:6px 8px;text-align:left;cursor:pointer;font-size:12px;display:grid;gap:2px}.searchable-select-option-main{font-weight:600}.searchable-select-option-desc{font-size:11px;color:#6b6b6b}.searchable-select-option.active{background:#1f2a44;color:#fff}.searchable-select-option.highlighted{background:#e6e1d7}.searchable-select-option.active.highlighted{background:#26324f}.knx-bridge-monitor-body{display:grid;gap:12px;min-height:0}.knx-bridge-monitor-filter-field{display:flex;flex-direction:column;gap:4px;max-width:720px}.knx-bridge-monitor-section{border-bottom:1px solid var(--border-color, #ddd);padding-bottom:8px;margin-bottom:4px}.knx-bridge-monitor-section-header{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6080b0;margin-bottom:6px}.monitor-send-panel{display:flex;flex-direction:column;gap:6px;min-height:106px}.monitor-send-top-row{display:flex;gap:6px;align-items:center}.monitor-send-ga{width:10ch;flex-shrink:0}.monitor-send-device-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:6px}.monitor-send-device-input{width:100%}.monitor-send-device-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:1200;background:var(--panel-bg, #fff);border:1px solid var(--border-color, #ccc);border-radius:4px;max-height:300px;overflow-y:auto;box-shadow:0 4px 16px #0000002e}.monitor-send-device-item{padding:5px 8px;cursor:pointer}.monitor-send-device-item:hover,.monitor-send-device-item.selected{background:var(--accent-bg, #e8eeff)}.monitor-send-device-item-label{font-size:12px;display:flex;align-items:center;gap:6px}.monitor-send-device-pill{font-size:10px;flex-shrink:0}.monitor-send-selected-pill{width:48px;overflow:hidden}.monitor-send-device-item-gas{font-size:10px;color:#7080a0;margin-top:2px;display:flex;flex-wrap:wrap;gap:6px}.monitor-send-device-empty{padding:8px;color:#7080a0;font-size:12px}.monitor-send-ga-chips{display:flex;flex-wrap:wrap;gap:4px}.monitor-send-ga-chip{font-size:11px;padding:2px 7px;border-radius:10px;border:1px solid var(--border-color, #ccc);background:transparent;cursor:pointer;white-space:nowrap;color:inherit}.monitor-send-ga-chip:hover{background:var(--accent-bg, #e8eeff)}.monitor-send-ga-chip.active{background:var(--accent-bg, #e8eeff);border-color:#6070d0;font-weight:600}.monitor-send-controls-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.monitor-send-dpt{flex-shrink:0}.monitor-send-matched-label{font-size:12px;color:#666;padding:2px 6px;background:#f0f4ff;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32ch}.monitor-send-actions{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.monitor-send-num{width:9ch;flex-shrink:0}.knx-bridge-send-result{font-size:12px;font-weight:600;padding:2px 6px;border-radius:4px}.knx-bridge-send-result.ok{color:#1a7a3a;background:#d4f5de}.knx-bridge-send-result.error{color:#a02020;background:#fde8e8}.knx-bridge-monitor-settings{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.knx-bridge-monitor-url-field{flex:1 1 320px;min-width:280px;margin-bottom:0}.knx-bridge-monitor-settings .panel-field{flex:1 1 320px;min-width:280px}.knx-bridge-monitor-url-field .tool-input{min-height:28px;height:28px;box-sizing:border-box}.knx-bridge-monitor-url-field label{margin-bottom:2px}.knx-bridge-monitor-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:30px}.bridge-status-pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid #d9d4c9;background:#f7f4ef;color:#2a2a2a;font-size:12px;font-weight:600}.bridge-status-pill.ok{background:#2a6f4f24;border-color:#2a6f4f52;color:#234a38}.bridge-status-pill.error{background:#a9444224;border-color:#a9444252;color:#7b2f2c}.knx-bridge-clear-button,.knx-bridge-pause-button{min-width:88px}.knx-bridge-pause-button.active{background:#e6eefb;border-color:#b5c9ea;color:#284163}.bridge-status-pill-state{min-width:132px}.bridge-status-pill-activity{min-width:104px}.bridge-status-pill-count{min-width:118px}.bridge-status-pill-time{min-width:240px}.bridge-status-dot{width:8px;height:8px;border-radius:999px;background:#5b667873;flex:0 0 auto}.bridge-status-dot.active{background:#2a6f4f;box-shadow:0 0 0 4px #2a6f4f1f}.bridge-status-pill.subtle{background:#fff}.bridge-monitor-error{border:1px solid rgba(169,68,66,.35);background:#a9444214;color:#7b2f2c;border-radius:10px;padding:8px 10px;font-size:12px}.knx-bridge-monitor-table-scroll{min-height:0;overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#948977 #ece7dc}.knx-bridge-monitor-table-scroll::-webkit-scrollbar{width:12px;height:12px}.knx-bridge-monitor-table-scroll::-webkit-scrollbar-track{background:#ece7dc;border-left:1px solid #ddd4c7}.knx-bridge-monitor-table-scroll::-webkit-scrollbar-thumb{background:#948977;border-radius:999px;border:2px solid #ece7dc}.knx-bridge-monitor-table-scroll::-webkit-scrollbar-thumb:hover{background:#7f7463}.knx-bridge-monitor-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}.knx-bridge-monitor-row{border-bottom:1px solid #e4dfd4;background:transparent;font-size:12px}.knx-bridge-monitor-row.control{background:#f7fbff}.knx-bridge-monitor-row.state{background:#fbfaf5}.knx-bridge-monitor-header{position:sticky;top:0;z-index:1;background:#f6f3ea;font-weight:700;color:#5f5340;border-bottom:1px solid #d7d0c4}.knx-bridge-monitor-time,.knx-bridge-monitor-code,.knx-bridge-monitor-header th,.knx-bridge-monitor-postfix,.knx-bridge-monitor-type,.knx-bridge-monitor-value{font-family:monospace;text-align:left;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;min-width:0}.knx-monitor-value-fmt{display:block;font-weight:600}.knx-monitor-value-raw{display:block;font-size:10px;opacity:.55}.knx-bridge-sort-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;margin:0;display:inline-flex;align-items:center;gap:6px;font:inherit;color:inherit;cursor:pointer}.knx-bridge-sort-icon{color:#6f675a;font-weight:700}.knx-bridge-monitor-device-cell{min-width:0;overflow:hidden}.knx-bridge-monitor-postfix{min-width:0}.knx-bridge-monitor-postfix .tag-chip{max-width:100%}.knx-bridge-monitor-device{display:inline-flex;align-items:center;gap:8px;min-width:0;justify-content:flex-start}.knx-bridge-device-pill{flex:0 0 auto}.knx-bridge-monitor-device-meta{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2a2a2a;font-size:12px;font-weight:600}.knx-bridge-monitor-empty{color:#9a9488}.cabinet-target-select .searchable-select-option.active{background:#d9e7ff;color:#1f2a44}.cabinet-target-select .searchable-select-option.active .searchable-select-option-desc{color:#314767}.searchable-select-empty{font-size:12px;color:#6b6b6b;padding:6px 8px}.panel-help{font-size:12px;color:#6b6b6b}.panel-help.property-timestamp-meta{opacity:.72;font-size:11px;line-height:1.35}.panel-help.error{color:#b03a2e}.hierarchy-actions{display:grid;gap:6px;margin:8px 0}.hierarchy-photos-bar{margin:4px 0 10px;padding-top:8px;border-top:1px solid #e2dfd8}.hierarchy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.hierarchy-info-badges{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;flex-shrink:0}.hierarchy-info-badge{font-size:9px;color:#6a7388;line-height:1.2;white-space:nowrap}.hierarchy-info-badge.ga.is-explicit{color:#4d5c79}.hierarchy-item-area{margin-left:6px;font-size:10px;color:#8a8174;font-weight:500}.hierarchy-block{display:grid;gap:6px}.hierarchy-line-actions{display:flex;align-items:center;gap:6px}.hierarchy-reorder-actions{display:inline-flex;justify-content:flex-end;gap:0;align-items:center}.hierarchy-reorder-actions .tool-button.compact{width:14px;height:14px;min-width:14px;min-height:14px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:8px;line-height:1}.hierarchy-field{display:grid;gap:4px}.hierarchy-field-label{font-size:11px;color:#5f5a4f}.hierarchy-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.modal-card.modal-wide.hierarchy-properties-modal{width:min(1800px,98vw);min-height:min(90dvh,980px);height:min(90dvh,980px);grid-template-rows:auto auto minmax(0,1fr);gap:0}.hierarchy-properties-table-header-shell{overflow:hidden;padding-top:4px}.hierarchy-properties-modal .modal-scroll{padding:4px 0;max-height:none;min-height:0}.hierarchy-properties-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.hierarchy-properties-table th{background:#f6f3ec;border-bottom:1px solid #ded9cd;text-align:left;padding:6px 8px;font-size:11px;color:#5f5a4f;white-space:normal;line-height:1.25;vertical-align:bottom}.hierarchy-properties-table td{padding:3px 6px;border-bottom:1px solid #efece4;vertical-align:middle;overflow:hidden}.hierarchy-properties-table input.text-input,.hierarchy-properties-table select.tool-select{padding:5px 7px;font-size:12px;width:100%;min-width:0}.hierarchy-properties-table th.col-exclude,.hierarchy-properties-table td.col-exclude{text-align:center}.hierarchy-properties-table input.text-input.hierarchy-properties-height-input{width:44px;min-width:44px;text-align:right;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.hierarchy-properties-table input.text-input.hierarchy-properties-height-input::-webkit-outer-spin-button,.hierarchy-properties-table input.text-input.hierarchy-properties-height-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.hierarchy-properties-name-cell{font-weight:600;overflow-wrap:anywhere}.hierarchy-properties-row.depth-1 .hierarchy-properties-name-cell{font-weight:500}.hierarchy-properties-row.depth-2 .hierarchy-properties-name-cell{font-weight:400;color:#5f5a4f}.hierarchy-properties-row.depth-0{background:#e2d4b0}.hierarchy-properties-row.depth-1{background:#ebe4d2}.hierarchy-properties-row.depth-2{background:#f0efeb}.hierarchy-properties-actions-cell{white-space:nowrap}.hierarchy-properties-actions-inner{display:inline-flex;align-items:center;gap:6px}.hierarchy-properties-move-row td{background:#fbfaf6;padding:8px}.hierarchy-wall-width-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hierarchy-wall-widths-row td{background:#fbfaf6;padding:8px}.hierarchy-wall-widths-list{display:flex;flex-direction:column;gap:10px}.hierarchy-wall-widths-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #e4ddc8;padding-top:8px}.hierarchy-wall-widths-item:first-child{border-top:none;padding-top:0}.hierarchy-wall-widths-minimap{flex-shrink:0}.hierarchy-collapse-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:4px}.hierarchy-collapse-button{width:100%;justify-content:center;text-align:center}.hierarchy-order-toggle{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:1px solid #ded9cd;border-radius:999px;background:#f6f3ec}.hierarchy-order-label{font-size:10px;color:#fff;background:#6f6758;border-radius:999px;padding:2px 7px;letter-spacing:.02em}.hierarchy-order-button{border:1px solid transparent;border-radius:999px;background:transparent;color:#5f5a4f;font-size:11px;padding:2px 8px;line-height:1.2;cursor:pointer}.hierarchy-order-button:hover{background:#ece6da}.hierarchy-order-button.is-active{background:#ebe5d7;border-color:#d3c9b6;color:#3f3a30;font-weight:600}.hierarchy-list{display:grid;gap:8px;max-height:320px;overflow:auto;border:1px solid #e2dfd8;border-radius:8px;padding:6px;background:#fff}.hierarchy-group{display:grid;gap:6px}.hierarchy-sublist{display:grid;gap:6px;padding-left:10px}.hierarchy-sublist.rooms{padding-left:16px;font-size:12px;color:#6b6b6b}.hierarchy-item{padding:6px 8px;border-radius:6px;cursor:pointer;background:#e2d4b0;font-size:14px;line-height:1.25;font-weight:600;overflow-wrap:anywhere;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px}.hierarchy-item-name{min-width:0;overflow-wrap:anywhere}.hierarchy-item.floor{background:#ebe4d2}.hierarchy-item.room{background:#f0efeb}html,body{margin:0;padding:0;height:100%;overflow:hidden}:root{--device-icon-width: 36px;--device-icon-height: 28px;--device-icon-font: 10px}.mobile-field-header{display:grid;gap:10px;width:100%}.mobile-field-header-top{display:flex;align-items:center;justify-content:flex-start;gap:0;width:100%}.mobile-field-project-meta{flex:1 1 auto;min-width:0;position:relative}.mobile-field-project-name{font-size:15px;font-weight:700;color:#1f2a44;line-height:1.2}.mobile-field-project-subline{font-size:12px;color:#6b6b6b;line-height:1.3;margin-top:2px}.mobile-field-header-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%}.mobile-field-floor-select{display:grid;gap:4px;width:100%;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b6b6b}.mobile-field-floor-select select{min-width:0;width:100%;max-width:none;border:1px solid #ddd6c7;border-radius:10px;background:#fff;color:#1f2a44;padding:9px 10px;font:inherit;text-transform:none;letter-spacing:normal}.mobile-field-tool-toggle{display:inline-flex;align-items:center;gap:6px}.editor-shell.mobile-field-shell{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:0;position:relative;overflow:hidden}.editor-canvas.mobile-field-canvas{position:relative;flex:1 1 auto;min-height:0;height:auto;border-radius:0;border-left:0;border-right:0;border-bottom:0}.mobile-canvas-tool-row{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:85;display:flex;align-items:center;gap:8px}.mobile-command-palette-toggle{width:44px;height:44px;flex-shrink:0;padding:0;border-radius:999px;border:2px solid rgba(223,217,205,.95);background:#fffffff5;box-shadow:0 16px 44px #0f172a29;box-sizing:border-box;display:flex;align-items:center;justify-content:center;color:#1f2a44}.mobile-command-palette-toggle svg{width:20px;height:20px}.mobile-split-pill{display:flex;align-items:stretch;flex-shrink:0;width:88px;height:44px;box-sizing:border-box;border-radius:999px;overflow:hidden;border:2px solid rgba(223,217,205,.95);background:#fffffff5;box-shadow:0 16px 44px #0f172a29}.mobile-split-pill.active{border-color:#22c55e}.mobile-split-pill-half{flex:1 1 0;width:44px;min-width:0;padding:0;border:none;background:transparent;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#1f2a44;cursor:pointer}.mobile-split-pill-half:disabled{color:#b7b0a2;cursor:not-allowed}.mobile-split-pill-half svg{width:20px;height:20px}.mobile-split-pill-left{border-right:1px solid rgba(31,42,68,.14)}.mobile-project-switcher{width:100%;max-width:none}.mobile-project-menu{width:min(88vw,420px);max-width:calc(100vw - 24px)}.mobile-device-sheet{position:absolute;left:12px;right:12px;bottom:12px;z-index:80;display:grid;gap:10px;padding:14px;border-radius:18px;border:1px solid rgba(223,217,205,.95);background:#fffffff5;box-shadow:0 16px 44px #0f172a29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-device-sheet-empty{gap:4px}.mobile-device-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-device-sheet-title{font-size:15px;font-weight:700;color:#1f2a44;line-height:1.25}.mobile-device-sheet-subline{font-size:12px;color:#6b6b6b;line-height:1.35}.mobile-device-sheet-meta,.mobile-device-sheet-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:900px){.editor-header{padding:10px 12px}.zen-command-card-commands,.device-picker-card,.line-picker-card{max-height:calc(90dvh - 90px)}.mobile-field-header-top{justify-content:space-between;gap:12px}.mobile-field-top-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;margin-left:auto}.mobile-lock-all-toggle{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;border:1px solid #ddd6c7;background:#fff;color:#1f2a44;font-size:12px;font-weight:600;white-space:nowrap}.mobile-lock-all-toggle.active{background:#b91c1c;border-color:#7f1414;color:#fff5f5}.mobile-field-bottom-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.mobile-field-floor-select{flex:1 1 auto;min-width:0}.mobile-field-header .tool-button.compact{padding-inline:8px;min-width:0;white-space:nowrap;flex:0 1 auto}.mobile-field-header .header-user{width:36px;height:36px;flex:0 0 auto}.mobile-device-properties-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;flex-direction:column;background:#fffdf9}.mobile-device-properties-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #e2dfd8;background:#fff;flex:0 0 auto}.mobile-device-properties-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px}.mobile-device-properties-sheet-body input,.mobile-device-properties-sheet-body select,.mobile-device-properties-sheet-body button{min-height:40px}}@keyframes three-d-pulse-ping{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.6);opacity:0}to{transform:scale(2.6);opacity:0}}@keyframes three-d-pulse-glow{0%,to{box-shadow:0 0 8px 3px #6366f1f2,0 0 0 2px #6366f1}50%{box-shadow:0 0 20px 8px #6366f1,0 0 0 2px #818cf8}}.three-d-device-selected-icon{animation:three-d-pulse-glow 1.3s ease-in-out infinite}.three-d-device-pulse-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:10px;border:2.5px solid #6366f1;animation:three-d-pulse-ping 1.3s cubic-bezier(0,0,.2,1) infinite;pointer-events:none}.modal-card.modal-atios-devices{width:min(1400px,97vw);min-height:min(88dvh,940px);height:min(88dvh,940px);max-height:min(88dvh,940px);grid-template-rows:auto auto auto minmax(0,1fr) auto}.atios-devices-toolbar,.atios-devices-bulk-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #e2dfd8}.atios-devices-search{min-width:260px;max-width:420px;flex:1 1 320px}.atios-devices-table{display:flex;flex-direction:column;gap:4px;padding:8px 16px 16px}.atios-devices-row{display:grid;grid-template-columns:22px minmax(80px,.7fr) minmax(70px,.6fr) minmax(80px,.7fr) minmax(70px,.6fr) minmax(140px,1.1fr) 170px minmax(220px,2fr) 22px;gap:8px;align-items:center;padding:5px 8px;border:1px solid #e2dfd8;border-radius:8px;font-size:12px}.atios-devices-row-clickable{cursor:pointer}.atios-devices-row-clickable:hover{background:#f8f5ee}.atios-devices-row.is-minimap-selected{background:#eef2fb;box-shadow:inset 0 0 0 1px #ced7f0}.atios-devices-head{background:#f1eee7;font-weight:600;border-color:#ddd7cb;position:sticky;top:0;z-index:1}.atios-devices-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a6473}.atios-devices-device{display:flex;align-items:center;gap:6px;min-width:0}.atios-devices-device>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atios-devices-name-input{flex:1;min-width:0}.atios-devices-name-input.has-override{border-color:#b45309;background:#fff7ed}.atios-devices-entity-type .tool-select{width:100%}.atios-devices-params{display:flex;flex-wrap:wrap;gap:4px 10px}.atios-devices-zones{display:flex;flex-wrap:wrap;gap:3px;overflow:hidden}.atios-devices-zone-chip{background:#eef2fb;color:#33415c;border:1px solid #ced7f0;border-radius:999px;padding:1px 7px;font-size:11px;white-space:nowrap}.atios-devices-param{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#5a6473;white-space:nowrap}.atios-devices-clear-btn{width:18px;min-width:18px;height:18px;font-size:12px}.atios-bulk-edit-overlay{z-index:60}.atios-bulk-edit-card{width:min(420px,92vw);min-height:0;height:auto;max-height:80dvh;grid-template-rows:auto minmax(0,1fr)}.atios-bulk-edit-body{display:flex;flex-direction:column;gap:10px;padding:14px 16px}.atios-bulk-edit-param{display:flex;align-items:center;justify-content:space-between;gap:10px}.atios-bulk-edit-param>label{font-size:12px;color:#2c374d}.atios-bulk-edit-param .tool-select{min-width:180px}
