/* v0.2.0 — ETAP 2: montaż aparatów na 18-modułowej szynie DIN */
.mount-grid{position:absolute;left:25px;right:104px;top:13px;height:194px;display:grid;grid-template-columns:repeat(var(--modules-per-row,18),minmax(0,1fr));gap:0;z-index:8;align-items:start}.din-slot{position:relative;height:194px;border-left:1px dashed #46606e55;cursor:pointer;transition:.12s ease}.din-slot:last-child{border-right:1px dashed #46606e55}.din-slot:before{content:attr(data-label);position:absolute;top:-14px;left:0;right:0;text-align:center;font:bold 6px Arial;color:#67757b}.din-slot:hover{background:#2faff014;box-shadow:inset 0 0 0 1px #37b7ff88}.din-slot.preview-ok{background:#34d27a20;box-shadow:inset 0 0 0 1px #45dc8b}.din-slot.preview-bad{background:#e74b3d24;box-shadow:inset 0 0 0 1px #e95d52}.din-slot.occupied{pointer-events:none}.mounted-device{position:absolute;top:0;height:194px;z-index:12;cursor:default}.mounted-device .device{width:100%!important;height:194px!important}.mounted-device .remove-device{position:absolute;right:2px;top:-18px;width:17px;height:17px;border:1px solid #71362f;background:#401b18;color:#ffb8b0;border-radius:3px;font:bold 11px Arial;line-height:13px;padding:0;display:none;z-index:20;cursor:pointer}.mounted-device:hover .remove-device{display:block}.mounted-device.selected-mounted .device{box-shadow:inset 1px 0 #fff,inset -1px 0 #7778,2px 5px 9px #0006,0 0 0 2px #24aef3,0 0 14px #1da8f466!important}.mount-hint{position:absolute;left:25px;top:218px;right:104px;height:23px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:#11202a;border:1px solid #4a5a61;border-radius:3px;color:#aebbc1;font:7px Arial;z-index:7}.mount-hint b{color:#e9f5fa}.mount-hint .selected-part{color:#49c2ff;font-weight:700}.mount-hint.error{border-color:#a9443a;background:#2b1715;color:#ffc0b9}.mount-hint.success{border-color:#327c50;background:#14281c;color:#a9f1bf}.module-progress.ok{color:#55db83!important}.module-progress.warn{color:#ffd15b!important}.module-progress.full{color:#ff786e!important}.catalog-card.install-selected{outline:3px solid #31b3ff!important;box-shadow:0 0 0 2px #07527e,0 0 22px #1da8f488!important;transform:translateY(-2px)!important}.catalog-card[data-category].hidden-by-filter{display:none!important}.task-goals span.done{color:#7ee49d;font-weight:700}.task-goals span.done:before{content:'✓ ';color:#4bdd77}.task-goals span.pending:before{content:'○ ';color:#b8cad4}.task-goals span.failed{color:#ff9e95}.stage2-toolbar{display:flex;gap:5px;margin:0 14px 12px}.stage2-toolbar button{flex:1;padding:7px 5px;background:#0c1b25;border:1px solid #31576d;border-radius:4px;font-size:8px;font-weight:700;cursor:pointer}.stage2-toolbar button:hover{border-color:#46b7f6;background:#102838}.stage2-toolbar .danger:hover{border-color:#cf5a50;background:#321918}.task-complete{margin:0 14px 12px;padding:9px;border:1px solid #327b4d;background:#14281c;border-radius:5px;color:#8ee8a9;font-size:9px;font-weight:700;display:none}.task-complete.show{display:block}.cabinet-head .version{white-space:nowrap}
/* v0.7.4 — dynamiczna liczba modułów na rząd */
.din-rows-host{--modules-per-row:18}
.cabinet-inner[data-modules-per-row="12"] .din-slot:before{font-size:6px}
.cabinet-inner[data-modules-per-row="18"] .din-slot:before{font-size:5.8px}
.cabinet-inner[data-modules-per-row="24"] .din-slot:before{font-size:5px}
.cabinet-inner[data-modules-per-row="24"] .mount-grid{left:18px!important;right:96px!important}
.cabinet-inner[data-modules-per-row="12"] .mount-grid{left:30px!important;right:104px!important}
