:root{font-family:Segoe UI,Arial,sans-serif;font-size:14px;background:#181c22;color:#e5e8ec}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}h1,h2,p{margin:0}.app{height:100dvh;min-height:460px;display:flex;flex-direction:column}header{height:52px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#20252d;border-bottom:1px solid #3b424b;gap:14px}h1{font-size:17px;font-weight:600}.header-right{display:flex;align-items:center;gap:18px;color:#aab4c1;font-size:12px}main{display:grid;grid-template-columns:minmax(0,1fr) 300px;flex:1;min-height:0}.map-area{position:relative;min-height:0;min-width:0;background:#d9e1e3}#map{width:100%;height:100%}#map-error{position:absolute;inset:0;background:#20252d;color:#f1c78b;display:grid;place-items:center;padding:25px;text-align:center}[hidden]{display:none!important}.panel{background:#20252d;border-left:1px solid #3b424b;padding:20px 18px;overflow-y:auto}.panel>label{display:block;color:#aab4c1;margin-bottom:7px;font-size:12px}select{background:#2a313b;color:#e5e8ec;border:1px solid #46505d;border-radius:4px;padding:9px;width:100%;min-width:0}#mode{width:auto;padding:7px 9px;font-size:12px}.city-header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:24px 0 4px}h2{font-weight:600;font-size:21px}#status{font-size:11px;white-space:nowrap;color:#9bdfb6}.muted{color:#a9b4c1;font-size:12px}dl{margin:24px 0 0}dl div{display:flex;justify-content:space-between;align-items:start;gap:12px;border-bottom:1px solid #343c46;padding:11px 0}dt{color:#a9b4c1;font-size:12px}dd{margin:0;text-align:right;max-width:170px}.message{margin:18px 0 12px;font-size:12px;color:#c2ccd6;line-height:1.5}.controls-label{display:block;font-size:12px;color:#aab4c1;margin:12px 0 6px}button{padding:9px 12px;border:1px solid #566170;border-radius:4px;background:#333d49;color:#edf1f6}button.primary{background:#376c9c;border-color:#376c9c;color:#fff}#actions button{width:100%;margin-top:10px}button:disabled{opacity:.48;cursor:not-allowed}.note{color:#8592a1;font-size:11px;line-height:1.5;margin-top:25px}dialog{border:1px solid #505c6b;border-radius:6px;background:#222a33;color:#e5e8ec;max-width:380px;padding:22px}dialog::backdrop{background:#0009}dialog p{line-height:1.5}.dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.leaflet-control-attribution{font:10px Segoe UI,Arial,sans-serif!important}.leaflet-control-attribution a{color:#315980!important}@media(max-width:720px){.app{height:auto;min-height:100dvh}main{grid-template-columns:1fr;grid-template-rows:minmax(360px,57dvh) auto}.panel{border-left:0;border-top:1px solid #3b424b}header{padding:0 10px}.header-right{gap:8px}#counter{display:none}#mode{max-width:165px}.map-area{min-height:360px}}

/* Постоянные подписи городов, компактные и читаемые. */
.leaflet-tooltip.city-label{background:rgba(255,255,255,.96);border:1px solid rgba(65,79,93,.28);border-radius:3px;box-shadow:0 1px 3px rgba(15,25,35,.14);color:#263746;font-family:Georgia,"Times New Roman",serif;font-size:12px;font-weight:600;letter-spacing:.12px;line-height:1.25;padding:3px 6px;pointer-events:none}.leaflet-tooltip.city-label::before{display:none!important}.leaflet-tooltip-top.city-label{margin-top:-2px}
/* Административная страница: самостоятельная компоновка, без изменения карты v5 */
.admin-shell{max-width:1050px;margin:28px auto;padding:0 20px;color:#e5e8ec}.admin-shell header{height:auto;min-height:52px;margin-bottom:22px;flex-wrap:wrap;padding:12px}.admin-shell section{background:#20252d;border:1px solid #3b424b;padding:18px;margin:18px 0}.admin-shell h2{font-size:18px;margin:0 0 12px}.admin-shell table{width:100%;border-collapse:collapse;margin:14px 0}.admin-shell td,.admin-shell th{text-align:left;border-bottom:1px solid #343c46;padding:9px 6px}.admin-shell input{background:#2a313b;color:#e5e8ec;border:1px solid #46505d;border-radius:4px;padding:9px;width:100%;min-width:0;font:inherit}.admin-shell a{color:#9cc6f1}.admin-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-form select{width:auto;flex:1;min-width:160px}.admin-login{display:grid;gap:12px;max-width:360px;margin:25px 0}.admin-login button{justify-self:start}@media(max-width:650px){.admin-shell{overflow-x:auto}.admin-shell table{min-width:520px}}
