.rm-map{position:relative;min-height:360px;height:clamp(360px,62vh,640px);overflow:hidden;border:1px solid #ddcbb8;border-radius:15px;background:#efe7dc}
.rm-map .rm-canvas{position:absolute;inset:0}
/* host pages style every button in their panels; the map's own controls keep MapLibre's look */
.rm-map .maplibregl-ctrl-group button{width:29px;height:29px;padding:0;border:0;border-radius:0;background-color:transparent}
.rm-map .maplibregl-ctrl-group button+button{border-top:1px solid #ddd}
.rm-map .maplibregl-ctrl-attrib-button{padding:0;border:0;border-radius:0}
.rm-status{position:absolute;inset:auto 16px 16px;margin:0;padding:10px 14px;border-radius:10px;background:#fffaf5e6;color:#6f5547;font-weight:700}
.rm-status.error{color:#a13d20}
.rm-floors{position:absolute;z-index:2;top:12px;left:12px;display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:12px;background:#fffaf5f0;box-shadow:0 2px 10px #32292326}
.rm-floors[hidden],.rm-floors.rm-far{display:none}
.rm-floors span{padding:2px 4px;color:#79695e;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.rm-floors button{min-width:38px;min-height:34px;border:1px solid #d9c9bb;border-radius:8px;background:#fff;color:#322923;font-weight:850;cursor:pointer}
.rm-floors button.active{border-color:#322923;background:#322923;color:#fff}
.rm-floors .rm-3d{margin-top:6px;font-size:12px}
.rm-legend{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 0;color:#6f5c50;font-size:13px}
.rm-legend i{display:inline-block;width:12px;height:12px;margin-right:6px;border:1.5px solid #3f6b3b;border-radius:3px;background:#a8cc99;vertical-align:-1px}
.rm-legend i.occupied{border-color:#a45232;background:#dba187}.rm-legend i.service{border-color:#6a675c;background:#c9c8bd}
.rm-legend i.other{border:1.5px dashed #7d6b5d;background:transparent}
.territory-map-layout .rm-map{height:clamp(380px,60vh,620px)}
@media(max-width:700px){.rm-map{height:62vh;border-radius:12px}.rm-floors{top:8px;left:8px}}
.rme{display:grid;gap:8px}
.rme-toolbar{display:flex;flex-wrap:wrap;gap:6px}
.rme-toolbar button{padding:8px 12px;border:1px solid #d9c9bb;border-radius:10px;background:#fff;color:#322923;font-weight:800;cursor:pointer}
.rme-toolbar button.active{border-color:#322923;background:#322923;color:#fff}
.rme-hint{min-height:2.9em;margin:0;color:#79695e;font-size:13px;line-height:1.45}
.rme-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.rme .rm-map{height:clamp(440px,70vh,720px)}
.rme-panel{display:grid;gap:10px;max-height:clamp(440px,70vh,720px);overflow:auto;padding:14px;border:1px solid #ead9c9;border-radius:14px;background:#fffcf8}
.rme-panel h4{margin:0;font-size:17px}.rme-panel h4 small{color:#b56d16;font-weight:700}
.rme-panel p{margin:0;color:#5d4b3f;font-size:13px;line-height:1.45}
.rme-area b{color:#322923;font-size:16px}
.rme-panel .rme-warn{padding:8px 10px;border-radius:9px;background:#fbf0cf;color:#6b4b10}
.rme-panel .rme-error{padding:8px 10px;border-radius:9px;background:#fbe1da;color:#8e2a17;font-weight:700}
.rme-panel .rme-note{color:#8a7a6e;font-size:12px}
.rme-sides{width:100%;border-collapse:collapse;font-size:13px}
.rme-sides th{padding:4px;color:#79695e;font-size:11px;text-align:left}
.rme-sides td{padding:3px 4px;border-top:1px solid #efe3d7;white-space:nowrap}
.rme-sides td:first-child{color:#79695e;font-weight:800}
.rme-sides input{width:72px;padding:5px 6px;border:1px solid #d9c9bb;border-radius:7px;font:inherit}
.rme-sides button{margin-left:2px;border:0;background:none;font-size:13px;opacity:.4;cursor:pointer}
.rme-sides button.locked{opacity:1}
.rme-actions{display:flex;flex-wrap:wrap;gap:6px}
.rme-actions button,.rme-panel>button{padding:7px 11px;border:1px solid #d9c9bb;border-radius:9px;background:#fff;color:#322923;font-weight:750;cursor:pointer}
.rme-actions button:disabled{opacity:.4;cursor:default}
.rme-panel .rme-primary{border-color:#322923;background:#322923;color:#fff}
.rme-form{display:grid;gap:8px}
.rme-form label,.rme-heights label{display:grid;gap:4px;color:#5d4b3f;font-size:12px;font-weight:750}
.rme-form input,.rme-form select,.rme-heights input{padding:7px 8px;border:1px solid #d9c9bb;border-radius:8px;font:inherit}
.rme-rooms{display:grid;gap:6px;margin-top:6px}
.rme-rooms button{display:grid;gap:2px;padding:8px 10px;border:1px solid #e3d4c6;border-left:4px solid #e3d4c6;border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.rme-rooms button.drawn{border-left-color:#3f6b3b}
.rme-rooms span{color:#79695e;font-size:12px}
.rme-rooms small{color:#b56d16;font-size:12px;font-weight:800}.rme-rooms button.drawn small{color:#3f6b3b}
.rme-heights{display:grid;gap:6px}.rme-heights summary{color:#5d4b3f;font-weight:800;cursor:pointer}
@media(max-width:1000px){.rme-body{grid-template-columns:1fr}.rme-panel{max-height:none}}
