.facts{display:grid;gap:.85rem;padding:1rem}
.facts div{display:grid;gap:.22rem}
.facts span{color:var(--muted);font-size:.72rem}
.facts b{font-size:.82rem;font-weight:600}
.form-section{margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--line);font-size:.8rem}
.trend-grid{display:grid;gap:.8rem}
.trend-panel{min-height:180px}
.sparkline{height:120px;padding:1rem;display:flex;align-items:flex-end;gap:3px}
.sparkline i{display:block;flex:1;min-width:3px;max-width:18px;background:linear-gradient(to top,#169d78,var(--green));border-radius:3px 3px 0 0;opacity:.85}
.sparkline i:hover{opacity:1;filter:brightness(1.2)}
.tab-body{min-height:300px}
@media(max-width:780px){.component-row{grid-template-columns:36px 1fr}.component-row>:nth-child(n+3){grid-column:2}}

/* Maßstäblicher Lage- und Sicherheitsplan */
.plan-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.plan-header h2{margin:0;font-size:1.05rem}.plan-header p{margin:.25rem 0 0;color:var(--muted);font-size:.8rem}
.plan-editor-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:.8rem;align-items:start}
.plan-view-grid{display:grid}.plan-palette{padding:.9rem;max-height:calc(100vh - 210px);overflow:auto;position:sticky;top:90px}
.plan-palette h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#8aa0aa;margin:.35rem 0 .6rem}
.plan-palette h3:not(:first-child){margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}
.plan-tools{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.plan-tool{border:1px solid var(--line);background:#101d25;color:#9db0b9;padding:.48rem;border-radius:7px;font-size:.67rem;text-align:left}
.plan-tool:hover,.plan-tool.active{color:var(--green);border-color:#2fe0a166;background:#2fe0a10d}
.plan-component-buttons{display:grid;gap:.35rem}.plan-component-button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;border:1px solid var(--line);background:#0b151c;color:var(--text);padding:.48rem;border-radius:7px;text-align:left;font-size:.69rem}
.plan-component-button small{color:var(--muted);font-size:.58rem}.plan-component-button.placed{border-color:#2fe0a144}.state-dot{width:8px;height:8px;border-radius:50%;background:var(--gray)}
.state-dot.NORMAL{background:var(--green)}.state-dot.WARNING{background:var(--yellow)}.state-dot.FAULT{background:var(--orange)}.state-dot.ALARM{background:var(--red)}
.plan-settings,.plan-inspector{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.plan-settings label,.plan-inspector label{display:grid;gap:.25rem;color:var(--muted);font-size:.64rem}
.plan-settings input,.plan-inspector input{width:100%;border:1px solid var(--line);background:#071118;color:var(--text);padding:.45rem;border-radius:6px}
.plan-inspector{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.plan-inspector h4{grid-column:1/-1;margin:0;font-size:.75rem}.plan-inspector .danger{grid-column:1/-1}
.plan-help{color:var(--muted);font-size:.68rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.plan-upload{display:block;text-align:center;margin-top:.7rem;cursor:pointer}.plan-upload input{display:none}.plan-palette>[data-plan-background-remove]{width:100%;margin-top:.4rem}
.plan-stage{position:relative;background:#071017;min-height:560px;display:grid;place-items:center;padding:1rem;overflow:hidden}
.plan-stage:fullscreen{background:#071017;padding:2rem}.plan-stage:fullscreen .area-plan-svg{max-height:calc(100vh - 4rem)}
.area-plan-svg{width:100%;height:auto;max-height:72vh;touch-action:none;user-select:none}.area-plan-svg.editing{cursor:crosshair}
.plan-floor{fill:#0d1b23;stroke:#59707b;stroke-width:.11}.plan-grid{pointer-events:none}.plan-grid+*{pointer-events:none}
#minor-grid path{fill:none;stroke:#54707c;stroke-width:.025;opacity:.38}
.plan-dimensions text{fill:#7f98a3;font-size:.55px;pointer-events:none}
.plan-object{cursor:pointer}.editing .plan-object{cursor:grab}.editing .plan-object:active{cursor:grabbing}
.plan-object line{vector-effect:non-scaling-stroke}.plan-object text{font-size:.55px;fill:#dce9ed;paint-order:stroke;stroke:#071017;stroke-width:.12px;stroke-linejoin:round;pointer-events:none}
.plan-object-caption{font-size:.55px!important;text-anchor:start!important;font-weight:700}
.plan-wall line{stroke:#d8e4e8;stroke-width:4px}.plan-door line{stroke:#51b9e8;stroke-width:5px;stroke-dasharray:4 3}.plan-gate line{stroke:#97b8c7;stroke-width:8px;stroke-dasharray:8 4}
.plan-beam line{stroke:#db67ff;stroke-width:3px;stroke-dasharray:7 4;marker-end:url(#arrow-beam)}#arrow-beam path{fill:#db67ff}
.plan-escape line{stroke:#31e5a5;stroke-width:5px;stroke-dasharray:8 4;marker-end:url(#arrow-escape)}#arrow-escape path{fill:#31e5a5}
.plan-smoke circle{fill:#42bdf51d;stroke:#42bdf5;stroke-width:.14;stroke-dasharray:.45 .25}.plan-smoke text{text-anchor:middle;dominant-baseline:middle;fill:#9ddfff}
.plan-alarm-zone rect{fill:#ff52631a;stroke:#ff5263;stroke-width:.14;stroke-dasharray:.5 .25}.plan-alarm-zone text{fill:#ff9da6;font-weight:800}
.plan-extinguisher circle{fill:#d93646;stroke:#ff9ba4;stroke-width:.12}.plan-extinguisher>text:not(.plan-object-caption){font-size:.72px;font-weight:900;text-anchor:middle;fill:#fff;stroke:none}
.plan-label text{font-size:.72px!important;font-weight:800;fill:#dce9ed!important}
.plan-component circle{stroke:#a8bac2;stroke-width:.12}.plan-component path{fill:#071017;stroke:#dce9ed;stroke-width:.08;pointer-events:none}
.plan-component-state.NORMAL{fill:var(--green)}.plan-component-state.WARNING{fill:var(--yellow)}.plan-component-state.FAULT{fill:var(--orange)}.plan-component-state.ALARM{fill:var(--red)}.plan-component-state.UNKNOWN,.plan-component-state.OFFLINE,.plan-component-state.DISABLED{fill:var(--gray)}
.plan-object.selected>*:first-child{filter:drop-shadow(0 0 .35px #fff);stroke:#fff!important}
.plan-draw-hint{position:absolute;z-index:2;top:.7rem;left:50%;transform:translateX(-50%);background:#14252f;border:1px solid #2fe0a144;border-radius:7px;padding:.5rem .7rem;color:var(--green);font-size:.68rem;pointer-events:none}
.plan-transform-tip{position:absolute;z-index:2;left:50%;bottom:.65rem;transform:translateX(-50%);background:#0a141bcf;border:1px solid var(--line);border-radius:7px;padding:.42rem .65rem;color:#8fa4ae;font-size:.62rem;pointer-events:none;white-space:nowrap}
.plan-selection{pointer-events:none}.plan-selection-box{fill:none;stroke:#fff;stroke-width:.08;stroke-dasharray:.28 .2;vector-effect:non-scaling-stroke}
.plan-selection-line{stroke:#fff;stroke-width:.08;stroke-dasharray:.28 .2;vector-effect:non-scaling-stroke}.plan-rotate-stem{stroke:#fff;stroke-width:.07;vector-effect:non-scaling-stroke}
.plan-transform-handle{pointer-events:all;stroke:#fff;stroke-width:.07;vector-effect:non-scaling-stroke}.plan-transform-handle.scale{fill:#21dca0;cursor:nwse-resize}.plan-transform-handle.rotate{fill:#f6c85f;cursor:grab}.plan-transform-handle.endpoint{fill:#55bdf2;cursor:crosshair}
.plan-transform-handle:hover{filter:brightness(1.25);stroke:#071017}.plan-transform-handle:active{cursor:grabbing}
.plan-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.8rem;padding:.7rem .9rem;color:#8fa4ae;font-size:.65rem}.plan-legend span{display:flex;align-items:center;gap:.35rem}.plan-legend i{display:block;width:18px;height:7px;border-radius:3px}
.legend-smoke{background:#42bdf52b;border:1px dashed #42bdf5}.legend-beam{background:#db67ff}.legend-escape{background:#31e5a5}.legend-extinguisher{background:#d93646}.legend-zone{background:#ff52632b;border:1px dashed #ff5263}

@media(max-width:1000px){.plan-editor-grid{grid-template-columns:1fr}.plan-palette{position:static;max-height:none}.plan-tools{grid-template-columns:repeat(3,1fr)}.plan-stage{min-height:420px}}
@media(max-width:620px){.plan-header{align-items:stretch;flex-direction:column}.plan-tools{grid-template-columns:1fr 1fr}.plan-stage{min-height:300px;padding:.35rem}.plan-legend{gap:.55rem}}

/* Telegram and PWA Web Push */
.telegram-panel,.notification-panel{margin-bottom:.8rem}.telegram-status,.notification-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;padding:1rem}
.telegram-status div,.notification-status div{display:grid;gap:.2rem;padding:.65rem;border:1px solid var(--line);border-radius:8px;background:#07111888}.telegram-status span,.notification-status span{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.telegram-status b,.notification-status b{font-size:.75rem}
.telegram-test-form,.notification-test-form{padding:0 1rem 1rem}.telegram-test-form button:disabled,.push-actions button:disabled{opacity:.45;cursor:not-allowed}.push-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:0 1rem 1rem}
@media(max-width:900px){.telegram-status,.notification-status{grid-template-columns:1fr 1fr}}@media(max-width:520px){.telegram-status,.notification-status{grid-template-columns:1fr}}
