:root{color-scheme:light}html,body{height:100%;margin:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f6f7f9;color:#111827}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}input,select,button{font:inherit}:root{--bn-blue: #2563eb;--bn-blue-dark: #1d4ed8;--bn-blue-soft: #eff6ff;--bn-text: #0f172a;--bn-text-soft: #334155;--bn-muted: #64748b;--bn-border: #e2e8f0;--bn-border-strong: #cbd5e1;--bn-bg: #f8fafc;--bn-card-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--bn-card-shadow-hover: 0 4px 12px rgba(15, 23, 42, .1), 0 2px 4px rgba(15, 23, 42, .06)}*{box-sizing:border-box}.shell{display:grid;grid-template-rows:auto 1fr;height:100vh;background:var(--bn-bg)}.topbar{display:flex;align-items:center;gap:16px;padding:14px 20px;background:#fff;border-bottom:1px solid var(--bn-border);box-shadow:0 1px 2px #0f172a08;z-index:5}.brand{font:700 15px/1 ui-sans-serif,system-ui,sans-serif;display:flex;gap:8px;align-items:center;color:var(--bn-text)}.brand .logo{color:var(--bn-blue);font-size:20px}.brand__name{white-space:nowrap}.search{margin-left:auto;display:flex;gap:10px;align-items:center;flex:1 1 auto;flex-wrap:wrap;justify-content:flex-end}.search__field{flex:1 1 320px;min-width:240px;max-width:560px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--bn-border);border-radius:28px;padding:0 18px;height:56px;box-shadow:var(--bn-card-shadow);transition:box-shadow .18s ease,border-color .18s ease}.search__field:focus-within{border-color:var(--bn-blue);box-shadow:0 0 0 3px #2563eb2e}.search__icon{color:var(--bn-muted)}.search__field input{flex:1;border:none;outline:none;background:transparent;font:500 16px/1.2 ui-sans-serif,system-ui,sans-serif;color:var(--bn-text)}.search__filters{display:flex;gap:8px}.filter{height:44px;border:1px solid var(--bn-border);border-radius:22px;background:#fff;padding:0 14px;font:500 14px/1 ui-sans-serif,system-ui,sans-serif;color:var(--bn-text);cursor:pointer;box-shadow:var(--bn-card-shadow)}.filter:focus{outline:none;border-color:var(--bn-blue);box-shadow:0 0 0 2px #2563eb2e}.btn-primary{height:44px;padding:0 22px;border-radius:22px;border:none;background:var(--bn-blue);color:#fff;font:600 14px/1 ui-sans-serif,system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 12px #2563eb47;transition:background .15s ease,transform .15s ease}.btn-primary:hover{background:var(--bn-blue-dark)}.btn-primary:active{transform:translateY(1px)}.btn-ghost{height:44px;padding:0 14px;border-radius:22px;border:1px solid var(--bn-border);background:#fff;color:var(--bn-text);font:500 14px/1 ui-sans-serif,system-ui,sans-serif;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.btn-ghost:hover{background:var(--bn-blue-soft);border-color:var(--bn-blue)}.layout{display:grid;grid-template-columns:minmax(420px,460px) 1fr;min-height:0}.results{overflow-y:auto;background:var(--bn-bg);padding:16px 16px 24px;border-right:1px solid var(--bn-border);scroll-behavior:smooth}.results::-webkit-scrollbar{width:8px}.results::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.results::-webkit-scrollbar-thumb:hover{background:#94a3b8}.results__hint{color:var(--bn-muted);padding:12px;font:500 13px/1.4 ui-sans-serif,system-ui,sans-serif}.results__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 12px;margin-bottom:4px;border-bottom:1px solid var(--bn-border)}.results__count{font:500 13px/1.3 ui-sans-serif,system-ui,sans-serif;color:var(--bn-muted)}.results__count strong{color:var(--bn-text);font-weight:700;margin-right:4px}.results__filter{font:600 11px/1 ui-sans-serif,system-ui,sans-serif;color:var(--bn-blue-dark);background:var(--bn-blue-soft);border:1px solid #bfdbfe;border-radius:999px;padding:4px 9px;letter-spacing:.02em}@keyframes bn-shimmer{0%{background-position:-240px 0}to{background-position:240px 0}}.card--skeleton{cursor:default;pointer-events:none}.card--skeleton .skel{background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0 80%);background-size:480px 100%;animation:bn-shimmer 1.4s infinite linear;border-radius:6px}.card--skeleton .skel-media{width:120px;height:120px;border-radius:12px}.card--skeleton .skel-line{height:12px;margin-bottom:8px}.card--skeleton .skel-line--short{width:30%}.card--skeleton .skel-line--big{width:70%;height:18px}.card--skeleton .skel-line--small{width:50%;height:10px}.card--skeleton .skel-row{display:flex;gap:6px;margin-top:6px}.card--skeleton .skel-chip{width:64px;height:18px;border-radius:999px}.empty{background:#fff;border:1px solid var(--bn-border);border-radius:16px;padding:28px 22px;text-align:center;box-shadow:var(--bn-card-shadow);margin-top:12px}.empty__icon{font-size:36px;line-height:1;margin-bottom:10px}.empty__title{font:700 16px/1.3 ui-sans-serif,system-ui,sans-serif;color:var(--bn-text);margin:0 0 4px}.empty__msg{font:500 13px/1.5 ui-sans-serif,system-ui,sans-serif;color:var(--bn-muted);margin:0}.empty__cta{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:9px 18px;border-radius:999px;border:none;background:var(--bn-blue);color:#fff;font:600 13px/1 ui-sans-serif,system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 12px #2563eb40;transition:background .15s ease,transform .1s ease}.empty__cta:hover{background:var(--bn-blue-dark)}.empty__cta:active{transform:translateY(1px)}.empty--error .empty__icon{color:#dc2626}.search-area-btn{display:none;align-items:center;gap:6px;margin-top:14px;padding:9px 16px;border-radius:999px;border:1px solid var(--bn-border-strong);background:#fff;color:var(--bn-blue-dark);font:600 13px/1 ui-sans-serif,system-ui,sans-serif;box-shadow:0 4px 14px #0f172a2e;cursor:pointer;transition:background .15s ease,transform .1s ease}.search-area-btn:before{content:"↻";font-size:14px;line-height:1}.search-area-btn:hover{background:var(--bn-blue-soft);border-color:var(--bn-blue)}.search-area-btn:active{transform:translateY(1px)}.map-wrap{position:relative;min-width:0}.map{width:100%;height:100%}.route-summary{position:absolute;left:16px;bottom:16px;right:16px;max-width:440px;background:#fff;border:1px solid var(--bn-border);border-radius:14px;box-shadow:0 12px 28px #0f172a2e;padding:14px 16px;z-index:4}.route-summary__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.route-summary__head strong{font:700 14px/1.2 ui-sans-serif,system-ui,sans-serif;color:var(--bn-text)}.route-summary__meta{font:500 13px/1.4 ui-sans-serif,system-ui,sans-serif;color:var(--bn-muted)}.route-summary__meta .route-stat{color:var(--bn-text);font-weight:700}.route-summary__actions{margin-top:10px}.btn-link{background:none;border:none;color:var(--bn-blue-dark);cursor:pointer;text-decoration:none;font:600 13px/1 ui-sans-serif,system-ui,sans-serif;padding:0}.btn-link:hover{text-decoration:underline}.card{display:grid;grid-template-columns:120px 1fr;gap:14px;background:#fff;border:1px solid var(--bn-border);border-radius:16px;padding:12px;margin-bottom:12px;cursor:pointer;box-shadow:var(--bn-card-shadow);transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .18s ease}.card:hover{box-shadow:var(--bn-card-shadow-hover);border-color:var(--bn-border-strong);transform:translateY(-1px)}.card.is-active{border-color:var(--bn-blue);background:linear-gradient(0deg,#2563eb0a,#2563eb0a),#fff}.card.is-active:before{background:var(--bn-blue)}.card__media{width:120px;height:120px;border-radius:12px;overflow:hidden;background:#e2e8f0;position:relative;flex-shrink:0}.card__image{width:100%;height:100%;object-fit:cover;display:block}.card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--bn-muted);font:500 12px/1.2 ui-sans-serif,system-ui,sans-serif;text-align:center;padding:8px;background:linear-gradient(135deg,#e2e8f0,#f1f5f9)}.card__rating-overlay{position:absolute;top:6px;left:6px;background:#0f172ad9;color:#fff;font:700 11px/1 ui-sans-serif,system-ui,sans-serif;padding:4px 7px;border-radius:6px;backdrop-filter:blur(2px);display:inline-flex;align-items:center;gap:3px}.card__rating-overlay .star{color:#fbbf24;font-size:12px;line-height:1}.card__body{min-width:0;display:flex;flex-direction:column;gap:4px}.card__head{display:flex;align-items:flex-start;gap:8px;justify-content:space-between;min-height:22px}.card__badge{display:inline-flex;align-items:center;align-self:flex-start;background:linear-gradient(135deg,#fff7ed,#ffedd5);color:#9a3412;border:1px solid #fed7aa;border-radius:999px;font:700 10px/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px}.card__heart{background:transparent;border:none;cursor:pointer;color:#94a3b8;font-size:18px;line-height:1;padding:0;transition:color .15s ease,transform .15s ease}.card__heart:hover{color:#ef4444;transform:scale(1.1)}.card__price{font:800 19px/1.2 ui-sans-serif,system-ui,sans-serif;color:var(--bn-text);letter-spacing:-.01em;margin-top:2px}.card__title{font:600 14px/1.3 ui-sans-serif,system-ui,sans-serif;color:var(--bn-blue-dark);overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:nowrap}.card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font:500 12px/1.3 ui-sans-serif,system-ui,sans-serif;color:var(--bn-muted)}.card__meta .meta-sep{color:#cbd5e1;margin:0 1px}.card__meta strong{color:var(--bn-text-soft);font-weight:600}.card__benefits{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;gap:4px}.card__benefits li{font:600 11px/1 ui-sans-serif,system-ui,sans-serif;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:4px 9px;letter-spacing:.01em}.card__benefits-more{font:500 11px/1 ui-sans-serif,system-ui,sans-serif;color:var(--bn-muted)!important;background:transparent!important;border:1px dashed var(--bn-border-strong)!important}.card__urgency{font:700 11px/1 ui-sans-serif,system-ui,sans-serif;color:#b91c1c;margin-top:6px;letter-spacing:.02em;display:inline-flex;align-items:center;gap:4px}.card__actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.card__actions button,.card__actions a{font:600 12px/1 ui-sans-serif,system-ui,sans-serif;padding:8px 13px;border-radius:999px;background:#fff;color:var(--bn-text-soft);text-decoration:none;border:1px solid var(--bn-border);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease;white-space:nowrap}.card__actions button:hover,.card__actions a:hover{background:var(--bn-blue-soft);border-color:var(--bn-blue);color:var(--bn-blue-dark)}.card__actions button:active,.card__actions a:active{transform:translateY(1px)}.card__actions .btn-action--primary{background:var(--bn-blue);color:#fff;border-color:var(--bn-blue);box-shadow:0 2px 8px #2563eb40}.card__actions .btn-action--primary:hover{background:var(--bn-blue-dark);border-color:var(--bn-blue-dark);color:#fff}@media (max-width: 1100px){.layout{grid-template-columns:minmax(380px,42vw) 1fr}}@media (max-width: 860px){.topbar{padding:10px 14px;gap:10px;flex-wrap:wrap}.search__field{flex:1 1 100%;height:50px}.search{gap:8px}}@media (max-width: 720px){.topbar{padding:10px 12px;gap:8px}.brand__name{display:none}.search__field{height:48px;padding:0 14px}.search__filters{flex:1 1 auto;overflow-x:auto;scrollbar-width:none}.search__filters::-webkit-scrollbar{display:none}.filter,.btn-primary,.btn-ghost{height:40px;flex-shrink:0}.btn-primary{padding:0 18px}.btn-ghost{padding:0 12px}.locate-label{display:none}.layout{grid-template-columns:1fr;grid-template-rows:45vh 1fr}.results{border-right:none;border-top:1px solid var(--bn-border);order:2;padding:12px 12px 20px}.map-wrap{order:1}.card{grid-template-columns:100px 1fr;gap:10px;padding:10px;border-radius:14px}.card__media{width:100px;height:100px}.card__price{font-size:17px}.card__title{font-size:13.5px}.card__actions button,.card__actions a{padding:7px 11px;font-size:11.5px}.route-summary{left:8px;right:8px;bottom:8px;max-width:none;padding:12px 14px}.empty{padding:22px 16px}.empty__icon{font-size:32px}}@media (max-width: 420px){.brand .logo{font-size:18px}.search__field input{font-size:15px}.filter{padding:0 12px;font-size:13px}.card{padding:9px}}
