.psb-wrap { --psb-blue:#0b5ca8; --psb-blue-hover:#084a87; --psb-dark:#17191c; --psb-border:#dedede; max-width:1180px; margin:0 auto; color:#202124; }
.psb-heading { margin-bottom:24px; }
.psb-heading h2 { margin:0 0 7px; font-size:clamp(28px,4vw,42px); line-height:1.12; }
.psb-heading p { margin:0; color:#5c6066; }
.psb-filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:14px; align-items:end; padding:20px; background:#f4f5f6; border-radius:8px; margin-bottom:18px; }
.psb-filters label { display:grid; gap:6px; font-weight:700; font-size:14px; }
.psb-filters input,.psb-filters select { width:100%; min-height:44px; border:1px solid #bbb; border-radius:4px; background:#fff; padding:8px 11px; font:inherit; }
.psb-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:10px; }
.psb-submit,.psb-reset { min-height:44px; border-radius:4px; padding:8px 20px; font-weight:700; cursor:pointer; }
.psb-submit { border:1px solid var(--psb-blue); background:var(--psb-blue); color:#fff; }
.psb-submit:hover { border-color:var(--psb-blue-hover); background:var(--psb-blue-hover); }
.psb-reset { border:1px solid var(--psb-dark); background:#fff; color:var(--psb-dark); }
.psb-reset:hover { background:var(--psb-dark); color:#fff; }
.psb-count { margin:0 0 12px; }
.psb-map { height:520px; margin:0 0 18px; border:1px solid var(--psb-border); border-radius:8px; overflow:hidden; background:#edf0f2; z-index:0; }
.psb-map-empty { display:grid; place-items:center; height:100%; margin:0; padding:25px; text-align:center; color:#555; }
.psb-map .leaflet-popup-content { line-height:1.45; }
.psb-map-card { display:grid; gap:5px; overflow-wrap:anywhere; }
.psb-map-card-title { display:block; margin-bottom:3px; font-size:16px; color:var(--psb-dark); }
.psb-map-card-button { display:block; width:100%; min-height:38px; margin-top:10px; padding:7px 12px; border:1px solid var(--psb-blue-hover); border-radius:4px; background:var(--psb-blue); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
.psb-map-card-button:hover,.psb-map-card-button:focus { background:var(--psb-blue-hover); color:#fff; }
.psb-list { display:grid; gap:10px; }
.psb-card { border:1px solid var(--psb-border); border-left:5px solid var(--psb-blue); border-radius:5px; background:#fff; box-shadow:0 2px 9px rgba(0,0,0,.04); }
.psb-card[hidden] { display:none; }
.psb-card-head { display:flex; justify-content:space-between; align-items:center; width:100%; padding:17px 18px; border:0; background:transparent; text-align:left; color:inherit; cursor:pointer; }
.psb-card-title-wrap { display:flex; align-items:center; gap:14px; min-width:0; }
.psb-card-logo { width:72px; height:54px; flex:0 0 72px; object-fit:contain; padding:4px; border:1px solid #e4e4e4; border-radius:4px; background:#fff; }
.psb-card-head strong { display:block; font-size:18px; line-height:1.25; }
.psb-card-head small { display:block; margin-top:4px; color:#666; font-size:14px; }
.psb-chevron { width:11px; height:11px; border-right:2px solid #555; border-bottom:2px solid #555; transform:rotate(45deg); margin:0 7px 6px 20px; transition:transform .2s; }
.psb-card-head[aria-expanded=true] .psb-chevron { transform:rotate(225deg); margin-bottom:-5px; }
.psb-details { border-top:1px solid var(--psb-border); padding:4px 18px 17px; }
.psb-details dl { margin:0; }
.psb-details dl>div { display:grid; grid-template-columns:180px minmax(0,1fr); gap:14px; padding:11px 0; border-bottom:1px solid #eee; }
.psb-details dl>div:last-child { border-bottom:0; }
.psb-details dt { font-weight:700; }
.psb-details dd { margin:0; overflow-wrap:anywhere; }
.psb-details a { color:var(--psb-blue); }
.psb-details a:hover,.psb-details a:focus { color:var(--psb-blue-hover); }
.psb-empty { padding:20px; border:1px solid var(--psb-border); text-align:center; }
.psb-note { margin-top:20px; padding:14px 16px; background:#f8f8f8; border-left:4px solid #777; font-size:13px; color:#555; }
@media(max-width:820px) { .psb-filters { grid-template-columns:1fr 1fr; } .psb-filters label:first-child { grid-column:1/-1; } }
@media(max-width:560px) { .psb-filters { grid-template-columns:1fr; } .psb-filters label:first-child { grid-column:auto; } .psb-actions { display:grid; grid-template-columns:1fr 1fr; } .psb-map { height:390px; } .psb-card-head { padding:15px; } .psb-card-logo { width:58px; height:44px; flex-basis:58px; } .psb-details dl>div { grid-template-columns:1fr; gap:3px; } }
