:root { --blue:#0a7cff; --blue-dark:#0068de; --ink:#1d2734; --muted:#7c8795; --line:#e5e9ee; --surface:#fff; --bg:#f5f7f9; --green:#26a769; --yellow:#ffcf4a; --rented:#9ba6b2; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; margin-bottom:25px; border-radius:11px; background:#edf1f5; }.auth-tabs button { height:36px; border:0; border-radius:8px; background:transparent; color:#738090; font-weight:800; }.auth-tabs button.is-active { color:var(--ink); background:#fff; box-shadow:0 1px 3px rgba(20,40,60,.12); }
.photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.empty-state { color:var(--muted); padding:24px 12px; text-align:center; }
* { box-sizing:border-box; } body { margin:0; background:var(--bg); color:var(--ink); font-family:Manrope,Arial,sans-serif; font-size:14px; } button,input { font:inherit; } button { cursor:pointer; } .app-shell { min-height:100vh; display:flex; } .sidebar { width:248px; padding:25px 16px 16px; flex:0 0 auto; background:#fff; border-right:1px solid var(--line); display:flex; flex-direction:column; position:fixed; inset:0 auto 0 0; z-index:5; } .brand { color:var(--ink); text-decoration:none; display:flex; align-items:center; gap:9px; font-size:20px; font-weight:800; padding:0 10px; letter-spacing:-.7px; } .brand-mark { width:28px; height:28px; display:grid; place-items:center; background:var(--blue); border-radius:9px; color:#fff; font-size:19px; } .main-nav { display:grid; gap:5px; margin-top:47px; } .nav-item { height:46px; padding:0 12px; display:flex; align-items:center; gap:12px; color:#5f6b79; text-decoration:none; border-radius:12px; font-weight:700; } .nav-item:hover,.nav-item.is-active { color:#096ee3; background:#eaf4ff; } .nav-icon { font-size:25px; width:24px; line-height:1; font-weight:400; } .nav-count,.counter { display:inline-grid; place-items:center; min-width:24px; height:22px; border-radius:12px; background:#e8edf3; color:#627080; font-size:12px; padding:0 7px; margin-left:auto; } .sidebar-bottom { margin-top:auto; } .help-card { background:#f4f8fc; padding:14px; border-radius:14px; font-size:12px; color:#687584; line-height:1.45; } .help-card p { margin:6px 0 4px; font-weight:600; } .help-icon { width:20px; height:20px; display:inline-grid; place-items:center; background:#dceeff; color:var(--blue); border-radius:50%; font-weight:800; } .text-button { border:0; padding:0; background:transparent; color:var(--blue); font-weight:700; } .account-button { border:0; width:100%; text-align:left; display:flex; align-items:center; gap:10px; background:transparent; padding:20px 9px 5px; color:var(--ink); } .account-button strong,.account-button small { display:block; } .account-button small { color:var(--muted); margin-top:2px; font-size:11px; } .chevron { margin-left:auto; font-size:23px; color:#8893a0; } .avatar { display:grid; place-items:center; border-radius:50%; flex:0 0 auto; width:64px; height:64px; background:linear-gradient(135deg,#ffd5af,#f19d7c); color:#814836; font-weight:800; letter-spacing:-.5px; font-size:18px; } .avatar-small { width:34px; height:34px; font-size:11px; }
.content { padding:46px 52px 60px 300px; width:100%; max-width:1640px; } .page { display:none; } .page.is-active { display:block; animation:fade .2s ease; } @keyframes fade { from { opacity:.25; transform:translateY(4px); } to { opacity:1; transform:none; } } .page-header { min-height:104px; display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:26px; } .eyebrow { color:#778492; font-size:12px; line-height:1; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin:0 0 12px; } h1,h2,h3,p { margin-top:0; } h1 { font-size:32px; letter-spacing:-1.35px; margin-bottom:10px; } h2 { font-size:19px; letter-spacing:-.6px; margin-bottom:6px; } h3 { font-size:15px; letter-spacing:-.35px; } .lead,.section-heading p,.settings-card p,.profile-hero p { color:var(--muted); margin-bottom:0; line-height:1.6; } .primary-button,.secondary-button { border:0; border-radius:11px; height:44px; padding:0 18px; font-weight:800; white-space:nowrap; } .primary-button { color:white; background:var(--blue); box-shadow:0 5px 13px rgba(10,124,255,.2); } .primary-button:hover { background:var(--blue-dark); } .primary-button span { font-size:19px; margin-right:7px; } .secondary-button { color:#126fd5; border:1px solid #cae4ff; background:#f3f9ff; } .parser-status { display:flex; align-items:center; flex-wrap:wrap; gap:10px; background:#fff; border:1px solid var(--line); border-radius:12px; min-height:52px; padding:13px 17px; color:#667382; margin-bottom:34px; font-size:12px; } .parser-status strong { color:#415061; } .status-dot { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px #e4f6ec; } .status-divider { width:1px; height:18px; background:var(--line); margin:0 4px; } .parser-status .text-button { margin-left:auto; font-size:12px; }.section-heading,.settings-card-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:17px; }.section-heading h2 { margin-bottom:5px; }.counter { vertical-align:3px; margin-left:5px; background:#edf1f5; color:#708091; }.source-grid { display:grid; grid-template-columns:repeat(3,minmax(210px,1fr)); gap:16px; margin-bottom:28px; }.source-card,.settings-card { background:#fff; border:1px solid var(--line); border-radius:16px; }.source-card { padding:19px; min-height:222px; }.source-topline { display:flex; justify-content:space-between; align-items:center; margin-bottom:17px; }.telegram-icon { display:inline-grid; place-items:center; width:30px; height:30px; background:#2aabee; border-radius:50%; color:#fff; font-size:17px; transform:none; }.source-menu { letter-spacing:2px; color:#8c98a4; }.source-card h3 { margin:0 0 5px; }.source-card a { color:var(--blue); text-decoration:none; font-size:12px; }.source-stats { display:flex; gap:34px; margin:21px 0 17px; }.source-stats dt { color:#84909e; font-size:11px; margin-bottom:3px; }.source-stats dd { font-weight:800; margin:0; }.positive { color:var(--green); }.source-footer { border-top:1px solid #edf0f3; padding-top:13px; display:flex; align-items:center; justify-content:space-between; color:#87929f; font-size:11px; }.source-state { color:#397b5e; font-weight:700; }.source-state i { display:inline-block; width:6px; height:6px; background:var(--green); border-radius:50%; margin-right:4px; }.settings-card { padding:22px; }.parser-settings { max-width:740px; }.parameter-list { display:grid; grid-template-columns:1fr 1.5fr; margin:0; }.parameter-list div { display:contents; }.parameter-list span,.parameter-list strong { padding:13px 0; border-top:1px solid #edf0f3; font-size:13px; }.parameter-list span { color:#778493; }.parameter-list strong { font-weight:700; text-align:right; }
.apartment-header { align-items:center; min-height:auto; margin-bottom:22px; }.view-switch { display:flex; background:#e9edf1; border-radius:10px; padding:3px; }.view-switch button { border:0; height:36px; padding:0 14px; font-weight:700; color:#687584; background:transparent; border-radius:8px; }.view-switch button.is-active { color:#263443; background:#fff; box-shadow:0 1px 3px rgba(20,40,60,.1); }.filters { display:flex; gap:8px; overflow:auto; padding-bottom:18px; }.filter-button,.filter-more { border:1px solid #dce2e9; height:39px; border-radius:10px; padding:0 13px; background:#fff; color:#445363; font-size:12px; font-weight:700; white-space:nowrap; }.filter-button span { margin-left:11px; color:#82909e; }.filter-favorite { color:#e36e22; border-color:#fde1d0; background:#fffaf7; }.filter-more { color:var(--blue); border:0; background:transparent; }.map-layout { height:calc(100vh - 204px); min-height:550px; display:flex; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:16px; }.listing-panel { width:375px; flex:0 0 auto; border-right:1px solid var(--line); background:#fff; display:flex; flex-direction:column; }.listing-panel-head { padding:16px 17px 13px; display:flex; justify-content:space-between; align-items:center; }.listing-scroll { overflow:auto; padding:0 11px 11px; }.listing-card { display:flex; gap:11px; border:1px solid transparent; border-radius:12px; padding:7px; margin-bottom:5px; transition:.15s; }.listing-card:hover,.listing-card.is-selected { border-color:#b9dbff; background:#f7fbff; }.listing-card.is-rented { opacity:.6; }.photo { position:relative; width:112px; height:100px; flex:0 0 auto; overflow:hidden; border-radius:9px; background-size:cover; background-position:center; }.photo:before { content:""; position:absolute; inset:0; background:linear-gradient(150deg,rgba(0,0,0,.05),rgba(0,0,0,.31)); }.photo-one { background-image:linear-gradient(135deg,#d5c4ae,#7d5841 51%,#ded7ce); }.photo-two { background-image:linear-gradient(135deg,#b9d3e2,#f7f2e6 55%,#6d87a4); }.photo-three { background-image:linear-gradient(135deg,#a0a39f,#e2dbd0 45%,#806e65); }.photo-four { background-image:linear-gradient(135deg,#dec9aa,#ecf2eb 52%,#7792a4); }.badge { position:absolute; z-index:1; top:6px; left:6px; background:#e8f5ff; color:#1478c9; border-radius:5px; padding:3px 5px; font-size:9px; font-weight:800; }.badge-favorite { background:#fff1c9; color:#916600; }.badge-rented { background:#e6e8eb; color:#66717b; }.heart-button { position:absolute; z-index:1; right:6px; top:5px; width:23px; height:23px; border:0; border-radius:50%; color:#fff; background:rgba(0,0,0,.27); font-size:14px; }.heart-button.is-favorite { color:#ffdb5b; }.listing-info { min-width:0; padding:2px 0; }.listing-info h3 { font-size:12px; line-height:1.35; margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.price { font-size:15px; display:block; margin-bottom:6px; }.price small { font-size:10px; color:#7c8894; font-weight:600; }.listing-info p { font-size:10px; margin:0 0 4px; color:#546271; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.listing-info .address { color:#8a96a2; }.metro { width:6px; height:6px; display:inline-block; border-radius:50%; margin-right:3px; }.metro-violet { background:#7c50b7; }.metro-red { background:#e84958; }.metro-blue { background:#368dd8; }.listing-time { font-size:9px; color:#a3acb5; }.map { position:relative; flex:1; overflow:hidden; background-color:#ecf0e9; background-image:linear-gradient(25deg,transparent 46%,rgba(255,255,255,.7) 47%,rgba(255,255,255,.7) 49%,transparent 50%),linear-gradient(-43deg,transparent 47%,rgba(255,255,255,.55) 48%,rgba(255,255,255,.55) 50%,transparent 51%),linear-gradient(75deg,transparent 47%,rgba(255,255,255,.45) 48%,rgba(255,255,255,.45) 50%,transparent 51%); background-size:190px 150px,170px 140px,130px 150px; }.map:after { content:""; position:absolute; inset:18% 20% 13% 15%; border:24px solid rgba(210,221,201,.48); transform:rotate(28deg); border-radius:42% 54% 36% 45%; pointer-events:none; }.map-water { position:absolute; background:#b9dcef; opacity:.86; }.water-neva { width:92%; height:45px; top:42%; left:-6%; transform:rotate(-9deg); border-radius:50%; }.water-gulf { width:30%; height:52%; left:-6%; bottom:-9%; border-radius:0 80% 0 0; }.map-road { position:absolute; z-index:1; height:12px; background:#fff8e4; box-shadow:0 0 0 2px rgba(202,193,157,.14); border-radius:100%; opacity:.8; }.road-one { width:75%; top:31%; left:15%; transform:rotate(23deg); }.road-two { width:68%; top:64%; left:24%; transform:rotate(-39deg); }.road-three { width:52%; top:44%; left:36%; transform:rotate(80deg); }.map-label { position:absolute; z-index:1; color:#839080; font-size:11px; text-align:center; font-weight:700; text-shadow:0 1px #fff; }.label-center { top:47%; left:45%; }.label-north { top:16%; right:18%; }.label-south { bottom:11%; right:21%; }.label-west { top:54%; left:9%; }.map-pin { position:absolute; z-index:2; left:var(--x); top:var(--y); border:3px solid #fff; transform:translate(-50%,-50%); min-width:54px; height:37px; border-radius:19px; background:var(--blue); color:#fff; box-shadow:0 3px 10px rgba(20,40,65,.2); font-weight:800; font-size:12px; }.map-pin span { font-size:9px; margin-left:1px; font-weight:700; }.map-pin:hover,.map-pin.active { transform:translate(-50%,-50%) scale(1.14); z-index:3; }.map-pin.favorite { background:var(--yellow); color:#745400; }.map-pin.rented { background:var(--rented); }.map-zoom { position:absolute; z-index:3; top:14px; right:15px; box-shadow:0 1px 5px #b9c5c7; border-radius:8px; overflow:hidden; }.map-zoom button,.locate-button { display:block; width:35px; height:34px; border:0; background:#fff; color:#526475; font-size:20px; }.map-zoom button+button { border-top:1px solid var(--line); }.locate-button { position:absolute; z-index:3; right:15px; top:96px; border-radius:8px; box-shadow:0 1px 5px #b9c5c7; font-size:21px; }.map-legend { position:absolute; z-index:3; bottom:14px; left:15px; display:flex; gap:11px; background:rgba(255,255,255,.93); padding:9px 11px; box-shadow:0 1px 5px rgba(50,60,70,.15); border-radius:8px; color:#566574; font-size:10px; font-weight:700; }.map-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; margin-right:4px; }.legend-favorite { background:var(--yellow); }.legend-available { background:var(--blue); }.legend-rented { background:var(--rented); }.list-view { background:transparent; }.list-toolbar { display:flex; justify-content:space-between; padding:3px 0 18px; }.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(245px,1fr)); gap:16px; }.cards-grid .listing-card { display:block; padding:0; background:#fff; border:1px solid var(--line); overflow:hidden; }.cards-grid .photo { width:100%; height:180px; border-radius:0; }.cards-grid .listing-info { padding:13px; }.cards-grid .listing-info h3 { font-size:14px; }.cards-grid .listing-info p { font-size:11px; }.cards-grid .listing-time { font-size:10px; }
.profile-hero { min-height:160px; padding:26px; border-radius:17px; background:linear-gradient(105deg,#e4f3ff,#fbfdff 70%); border:1px solid #d7eaff; display:flex; align-items:center; gap:17px; margin-bottom:23px; }.profile-hero h1 { margin-bottom:4px; }.profile-hero .eyebrow { margin-bottom:8px; }.profile-hero .secondary-button { margin-left:auto; background:#fff; }.profile-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr); gap:16px; }.settings-card { min-height:144px; }.settings-rows { margin:5px -22px -22px; }.setting-row { min-height:69px; padding:12px 22px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #edf0f3; position:relative; }.setting-row strong,.setting-row small { display:block; }.setting-row small,.telegram-account small { margin-top:3px; color:var(--muted); font-size:11px; }.setting-row input { opacity:0; position:absolute; }.toggle { position:relative; display:block; width:38px; height:22px; border-radius:15px; background:#d9e0e7; transition:.2s; }.toggle:after { content:""; position:absolute; width:16px; height:16px; top:3px; left:3px; border-radius:50%; background:#fff; box-shadow:0 1px 2px #a1abb3; transition:.2s; }.setting-row input:checked + .toggle { background:var(--blue); }.setting-row input:checked + .toggle:after { transform:translateX(16px); }.telegram-account { display:flex; align-items:center; gap:10px; border-top:1px solid #edf0f3; padding-top:15px; }.telegram-account strong,.telegram-account small { display:block; }.telegram-account .text-button { margin-left:auto; font-size:12px; }.saved-search { grid-column:1 / -1; }.saved-search-tags { display:flex; gap:8px; flex-wrap:wrap; padding-top:3px; }.saved-search-tags span { background:#f1f5f8; border-radius:8px; padding:8px 11px; color:#536271; font-size:12px; font-weight:700; }.modal { position:fixed; z-index:20; inset:0; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(24,34,44,.35); }.modal.is-open { display:flex; }.modal-box { position:relative; width:min(430px,100%); padding:29px; background:#fff; border-radius:18px; box-shadow:0 18px 55px rgba(24,34,44,.22); }.modal-box h2 { font-size:22px; margin-bottom:8px; }.modal-box p:not(.eyebrow) { color:var(--muted); line-height:1.55; }.modal-box label { display:block; margin:22px 0 16px; color:#526171; font-size:12px; font-weight:800; }.modal-box input { width:100%; margin-top:7px; height:44px; padding:0 12px; border:1px solid #ccd5df; border-radius:10px; outline-color:var(--blue); }.modal-box .primary-button { width:100%; }.modal-close { position:absolute; top:12px; right:14px; border:0; background:transparent; font-size:25px; color:#84909b; }
@media (max-width:1050px) { .content { padding:35px 28px 45px 272px; }.source-grid { grid-template-columns:repeat(2,1fr); }.listing-panel { width:330px; }.profile-grid { grid-template-columns:1fr; } .saved-search { grid-column:auto; } }
@media (max-width:760px) { .sidebar { width:100%; height:66px; padding:10px 13px; inset:0 0 auto; flex-direction:row; align-items:center; }.brand { font-size:17px; padding:0; }.brand-mark { width:26px; height:26px; }.main-nav { display:flex; gap:2px; margin:0 0 0 auto; }.nav-item { height:38px; padding:0 9px; font-size:11px; gap:4px; }.nav-icon { font-size:18px; }.nav-count,.help-card,.account-button { display:none; }.sidebar-bottom { margin:0; }.content { padding:93px 14px 32px; }.page-header { min-height:0; gap:16px; margin-bottom:19px; }.page-header:not(.apartment-header) { display:block; }.page-header .primary-button { margin-top:18px; width:100%; }.lead { font-size:12px; }.source-grid { grid-template-columns:1fr; }.section-heading { align-items:flex-start; gap:12px; }.section-heading .secondary-button { padding:0 11px; }.parser-status { display:block; line-height:1.8; }.status-dot { margin-right:7px; }.status-divider { display:none; }.parser-status .text-button { margin-left:10px; }.parameter-list { grid-template-columns:1fr; }.parameter-list strong { padding-top:0; text-align:left; }.parameter-list span { border-bottom:0; padding-bottom:4px; }.apartment-header { display:flex; }.map-layout { height:auto; min-height:0; flex-direction:column-reverse; }.listing-panel { width:100%; height:345px; border-right:0; border-top:1px solid var(--line); }.map { height:390px; flex:0 0 auto; }.filters { margin-right:-14px; }.profile-hero { padding:20px; align-items:flex-start; }.profile-hero .avatar { width:49px; height:49px; font-size:14px; }.profile-hero h1 { font-size:21px; }.profile-hero .secondary-button { position:absolute; margin-top:72px; margin-left:0; width:calc(100% - 68px); }.profile-hero { padding-bottom:84px; }.settings-card { padding:18px; }.settings-rows { margin-left:-18px; margin-right:-18px; margin-bottom:-18px; }.setting-row { padding-left:18px; padding-right:18px; }.modal-box { padding:24px; } }

.yandex-map-canvas { position:absolute; z-index:0; inset:0; }.map-api-notice { position:absolute; z-index:4; top:14px; left:50%; width:max-content; max-width:calc(100% - 100px); padding:10px 14px; border-radius:9px; color:#536372; background:rgba(255,255,255,.94); box-shadow:0 2px 9px rgba(40,58,72,.16); transform:translateX(-50%); font-size:11px; text-align:center; }.map-api-notice strong,.map-api-notice span { display:block; }.map-api-notice span { margin-top:2px; color:#7b8895; }.map-api-notice code { color:#136fcf; }.map.is-yandex-ready .map-water,.map.is-yandex-ready .map-road,.map.is-yandex-ready .map-label,.map.is-yandex-ready .map-pin { display:none; }.yandex-listing-marker { min-width:54px; height:37px; padding:0 8px; border:3px solid #fff; border-radius:19px; color:#fff; background:var(--blue); box-shadow:0 3px 10px rgba(20,40,65,.25); font-size:12px; font-weight:800; }.yandex-listing-marker span { margin-left:1px; font-size:9px; }.yandex-listing-marker.favorite { color:#745400; background:var(--yellow); }.yandex-listing-marker.rented { background:var(--rented); }
.source-menu { border:0; width:28px; height:28px; padding:0; display:grid; place-items:center; border-radius:8px; background:transparent; letter-spacing:0; color:#8c98a4; font-size:20px; line-height:1; }.source-menu:hover { color:#d34c3e; background:#fff0ee; }.delete-icon { display:grid; place-items:center; width:40px; height:40px; margin-bottom:17px; border-radius:12px; color:#d75241; background:#fff0ee; font-size:22px; }.delete-choice { margin:20px 0; padding:15px; border-radius:12px; background:#f7f9fb; }.delete-choice > p { margin:4px 0 12px; font-size:12px; }.delete-option { width:100%; padding:11px; display:flex; align-items:center; gap:9px; text-align:left; border:1px solid #e0e6ec; border-radius:10px; background:#fff; color:#405061; }.delete-option + .delete-option { margin-top:8px; }.delete-option:hover { border-color:#9fcbfa; background:#f8fcff; }.delete-option.is-danger:hover { border-color:#f4b3aa; background:#fff7f6; }.delete-option .option-icon { display:grid; place-items:center; flex:0 0 auto; width:26px; height:26px; color:#1478d9; border-radius:7px; background:#eaf4ff; }.delete-option.is-danger .option-icon { color:#d75241; background:#fff0ee; }.delete-option strong,.delete-option small { display:block; }.delete-option strong { font-size:12px; }.delete-option small { margin-top:2px; color:#83909d; font-size:10px; line-height:1.35; }.option-arrow { margin-left:auto; color:#87929c; font-size:20px; }.modal-cancel { display:block; width:100%; padding:4px; text-align:center; font-size:13px; }.signup-page { display:grid; grid-template-columns:minmax(300px,.85fr) minmax(400px,.8fr); gap:70px; max-width:1000px; min-height:calc(100vh - 104px); margin:0 auto; align-items:center; }.signup-intro { padding:35px 0; }.signup-brand { display:flex; align-items:center; gap:9px; margin-bottom:72px; color:var(--ink); font-size:20px; font-weight:800; text-decoration:none; }.signup-intro h1 { max-width:390px; font-size:38px; line-height:1.15; margin-bottom:17px; }.signup-intro > p:not(.eyebrow) { max-width:390px; color:#738090; font-size:15px; line-height:1.65; }.signup-benefits { display:grid; gap:11px; margin-top:32px; color:#526171; font-size:12px; font-weight:700; }.signup-benefits span::first-letter { color:var(--green); }.signup-card { padding:30px; background:#fff; border:1px solid var(--line); border-radius:19px; box-shadow:0 12px 35px rgba(30,53,73,.06); }.signup-heading h2 { font-size:24px; margin-bottom:6px; }.signup-heading p:not(.eyebrow) { margin-bottom:20px; color:var(--muted); font-size:12px; }.form-field { display:block; margin:15px 0; color:#405061; font-size:12px; font-weight:800; }.form-field input { width:100%; height:45px; margin:7px 0 4px; padding:0 12px; border:1px solid #cfd8e1; border-radius:10px; background:#fff; color:var(--ink); outline-color:var(--blue); }.form-field small { color:#87929f; font-size:10px; font-weight:500; }.password-field { position:relative; }.password-field input { padding-right:43px; }.password-visibility { position:absolute; right:7px; top:9px; width:28px; height:28px; border:0; background:transparent; color:#83919d; }.form-separator { display:flex; align-items:center; gap:12px; margin:23px 0 17px; color:#768391; font-size:11px; font-weight:800; }.form-separator:before,.form-separator:after { content:""; flex:1; height:1px; background:#e7ebef; }.phone-field { display:flex; align-items:center; gap:7px; height:45px; padding-left:12px; margin:7px 0 4px; border:1px solid #cfd8e1; border-radius:10px; }.phone-field:focus-within { outline:2px solid var(--blue); outline-offset:-1px; }.phone-field span { font-size:13px; }.phone-field input { height:38px; margin:0; padding:0; border:0; outline:0; }.telegram-code { padding:1px 14px; margin-top:13px; border:1px solid #cce5ff; border-radius:11px; background:#f4faff; }.signup-submit { width:100%; margin-top:8px; }.signup-submit span { float:right; margin:0; }.signup-terms { margin:13px 0 0; color:#97a1aa; text-align:center; font-size:10px; line-height:1.5; }.toast { position:fixed; z-index:30; right:24px; bottom:24px; max-width:360px; padding:14px 17px; border-radius:11px; color:#fff; background:#273745; box-shadow:0 8px 25px rgba(17,33,46,.24); font-size:12px; font-weight:700; transform:translateY(18px); opacity:0; pointer-events:none; transition:.2s; }.toast.is-visible { transform:none; opacity:1; }
.app-shell.is-onboarding .sidebar { display:none; }.app-shell.is-onboarding .content { max-width:none; padding:0 38px; }.beta-code-field { padding:13px; margin:0 0 19px; border:1px solid #cce5ff; border-radius:11px; background:#f5faff; }.beta-code-field input { background:#fff; }
@media (max-width:1050px) { .signup-page { gap:35px; } }
@media (max-width:760px) { .nav-item { padding:0 8px; font-size:10px; gap:3px; }.nav-icon { font-size:17px; }.signup-page { display:block; min-height:0; }.signup-intro { padding:0 0 25px; }.signup-brand { margin-bottom:47px; }.signup-intro h1 { font-size:29px; }.signup-card { padding:22px; }.map-api-notice { max-width:calc(100% - 30px); }.toast { right:14px; bottom:14px; left:14px; max-width:none; } }

.source-menu { border:0; width:28px; height:28px; padding:0; display:grid; place-items:center; border-radius:8px; background:transparent; letter-spacing:0; color:#8c98a4; font-size:20px; line-height:1; }.source-menu:hover { color:#d34c3e; background:#fff0ee; }.delete-icon { display:grid; place-items:center; width:40px; height:40px; margin-bottom:17px; border-radius:12px; color:#d75241; background:#fff0ee; font-size:22px; }.delete-choice { margin:20px 0; padding:15px; border-radius:12px; background:#f7f9fb; }.delete-choice > p { margin:4px 0 12px; font-size:12px; }.delete-option { width:100%; padding:11px; display:flex; align-items:center; gap:9px; text-align:left; border:1px solid #e0e6ec; border-radius:10px; background:#fff; color:#405061; }.delete-option + .delete-option { margin-top:8px; }.delete-option:hover { border-color:#9fcbfa; background:#f8fcff; }.delete-option.is-danger:hover { border-color:#f4b3aa; background:#fff7f6; }.delete-option .option-icon { display:grid; place-items:center; flex:0 0 auto; width:26px; height:26px; color:#1478d9; border-radius:7px; background:#eaf4ff; }.delete-option.is-danger .option-icon { color:#d75241; background:#fff0ee; }.delete-option strong,.delete-option small { display:block; }.delete-option strong { font-size:12px; }.delete-option small { margin-top:2px; color:#83909d; font-size:10px; line-height:1.35; }.option-arrow { margin-left:auto; color:#87929c; font-size:20px; }.modal-cancel { display:block; width:100%; padding:4px; text-align:center; font-size:13px; }.signup-page { display:grid; grid-template-columns:minmax(300px,.85fr) minmax(400px,.8fr); gap:70px; max-width:1000px; min-height:calc(100vh - 104px); margin:0 auto; align-items:center; }.signup-intro { padding:35px 0; }.signup-brand { display:flex; align-items:center; gap:9px; margin-bottom:72px; color:var(--ink); font-size:20px; font-weight:800; text-decoration:none; }.signup-intro h1 { max-width:390px; font-size:38px; line-height:1.15; margin-bottom:17px; }.signup-intro > p:not(.eyebrow) { max-width:390px; color:#738090; font-size:15px; line-height:1.65; }.signup-benefits { display:grid; gap:11px; margin-top:32px; color:#526171; font-size:12px; font-weight:700; }.signup-benefits span::first-letter { color:var(--green); }.signup-card { padding:30px; background:#fff; border:1px solid var(--line); border-radius:19px; box-shadow:0 12px 35px rgba(30,53,73,.06); }.signup-heading h2 { font-size:24px; margin-bottom:6px; }.signup-heading p:not(.eyebrow) { margin-bottom:20px; color:var(--muted); font-size:12px; }.form-field { display:block; margin:15px 0; color:#405061; font-size:12px; font-weight:800; }.form-field input { width:100%; height:45px; margin:7px 0 4px; padding:0 12px; border:1px solid #cfd8e1; border-radius:10px; background:#fff; color:var(--ink); outline-color:var(--blue); }.form-field small { color:#87929f; font-size:10px; font-weight:500; }.password-field { position:relative; }.password-field input { padding-right:43px; }.password-visibility { position:absolute; right:7px; top:9px; width:28px; height:28px; border:0; background:transparent; color:#83919d; }.form-separator { display:flex; align-items:center; gap:12px; margin:23px 0 17px; color:#768391; font-size:11px; font-weight:800; }.form-separator:before,.form-separator:after { content:""; flex:1; height:1px; background:#e7ebef; }.phone-field { display:flex; align-items:center; gap:7px; height:45px; padding-left:12px; margin:7px 0 4px; border:1px solid #cfd8e1; border-radius:10px; }.phone-field:focus-within { outline:2px solid var(--blue); outline-offset:-1px; }.phone-field span { font-size:13px; }.phone-field input { height:38px; margin:0; padding:0; border:0; outline:0; }.telegram-code { padding:1px 14px; margin-top:13px; border:1px solid #cce5ff; border-radius:11px; background:#f4faff; }.signup-submit { width:100%; margin-top:8px; }.signup-submit span { float:right; margin:0; }.signup-terms { margin:13px 0 0; color:#97a1aa; text-align:center; font-size:10px; line-height:1.5; }.toast { position:fixed; z-index:30; right:24px; bottom:24px; max-width:360px; padding:14px 17px; border-radius:11px; color:#fff; background:#273745; box-shadow:0 8px 25px rgba(17,33,46,.24); font-size:12px; font-weight:700; transform:translateY(18px); opacity:0; pointer-events:none; transition:.2s; }.toast.is-visible { transform:none; opacity:1; }

@media (max-width:1050px) { .signup-page { gap:35px; } }
@media (max-width:760px) { .nav-item { padding:0 8px; font-size:10px; gap:3px; }.nav-icon { font-size:17px; }.signup-page { display:block; min-height:0; }.signup-intro { padding:0 0 25px; }.signup-brand { margin-bottom:47px; }.signup-intro h1 { font-size:29px; }.signup-card { padding:22px; }.toast { right:14px; bottom:14px; left:14px; max-width:none; } }

/* The authentication page is a separate route, never a block below content. */
.page.signup-page { display:none; }
.page.signup-page.is-active { display:grid; }
@media (max-width:760px) { .page.signup-page.is-active { display:block; } }
.modal-box select { width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #ccd5df; border-radius:10px; background:#fff; color:var(--ink); outline-color:var(--blue); }.modal-box label small { display:block; margin-top:4px; color:#87929f; font-size:10px; font-weight:500; }.date-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.date-fields label { margin:14px 0 16px; }
.profile-actions { display:flex; align-items:center; gap:16px; margin-left:auto; }.profile-hero .profile-actions .secondary-button { margin-left:0; }.logout-button { color:#c45448; }.logout-button:hover { color:#a83b31; }
@media (max-width:760px) { .profile-actions { position:absolute; margin-top:72px; margin-left:0; width:calc(100% - 68px); justify-content:space-between; }.profile-hero .profile-actions .secondary-button { position:static; width:auto; }.profile-actions .logout-button { padding:0 8px; } }
.admin-console { margin-top:22px; }.admin-console-head { margin-bottom:16px; }.admin-console-head h2 { margin-bottom:6px; }.admin-console-head p:not(.eyebrow) { color:var(--muted); }.admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.admin-section { min-height:0; }.admin-users { grid-column:1 / -1; }.admin-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:8px; }.admin-form input { min-width:0; height:42px; padding:0 11px; border:1px solid #ccd5df; border-radius:10px; outline-color:var(--blue); }.admin-list { display:grid; gap:7px; margin-top:15px; }.admin-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-top:1px solid #edf0f3; font-size:12px; }.admin-row strong,.admin-row small { display:block; }.admin-row small { color:var(--muted); margin-top:2px; }.admin-row .admin-row-actions { margin-left:auto; display:flex; gap:8px; }.admin-row button { border:0; padding:6px 8px; border-radius:7px; font-size:11px; font-weight:800; }.admin-row .disable-user { color:#a66d14; background:#fff5df; }.admin-row .delete-user,.admin-row .delete-beta { color:#bd493d; background:#fff0ee; }.danger-button { height:42px; padding:0 14px; border:1px solid #f2b5ae; border-radius:10px; color:#bf4336; background:#fff6f5; font-weight:800; }.danger-button:hover { background:#ffebe8; } @media (max-width:760px) { .admin-grid { grid-template-columns:1fr; }.admin-users { grid-column:auto; }.admin-form { grid-template-columns:1fr; } }
.profile-grid[hidden],.admin-console[hidden] { display:none !important; }
.beta-code-field[hidden] { display:none !important; }
.source-link,.telegram-message-link { display:inline-block; color:var(--blue); font-size:11px; font-weight:800; text-decoration:none; }.source-link { margin-top:8px; }.telegram-message-link { margin:1px 0 5px; }.telegram-message-link:hover,.source-link:hover { text-decoration:underline; }.source-link.is-unavailable { color:#8a96a2; cursor:default; }.apartment-modal-box { max-height:calc(100vh - 40px); overflow:auto; }.edit-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; }.apartment-modal-box textarea { width:100%; margin-top:7px; padding:10px 12px; resize:vertical; border:1px solid #ccd5df; border-radius:10px; color:var(--ink); font:inherit; outline-color:var(--blue); } @media (max-width:760px) { .edit-fields { grid-template-columns:1fr; } }
.apartment-modal-box { width:min(760px,100%); }.apartment-gallery { display:grid; grid-template-columns:66px minmax(0,1fr); gap:11px; height:380px; margin:13px 0 18px; }.apartment-thumbnails { display:grid; grid-auto-rows:56px; gap:8px; overflow:auto; }.apartment-thumbnails button { padding:0; overflow:hidden; border:2px solid transparent; border-radius:8px; background:#edf1f3; }.apartment-thumbnails button.is-active { border-color:var(--blue); }.apartment-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; }.apartment-main-photo { overflow:hidden; border-radius:12px; background:#edf1f3; }.apartment-main-photo img { display:block; width:100%; height:100%; object-fit:cover; } @media (max-width:760px) { .apartment-gallery { height:220px; } }
.back-button { margin:0 0 15px; padding:0; border:0; color:var(--blue); background:transparent; font-weight:800; }.apartment-details { display:grid; gap:0; margin:4px 0 15px; border-top:1px solid #edf0f3; }.apartment-details div { display:grid; grid-template-columns:130px 1fr; gap:12px; padding:11px 0; border-bottom:1px solid #edf0f3; }.apartment-details span { color:#7c8795; font-size:12px; }.apartment-details strong,.apartment-details p { margin:0; color:#2f3e4d; font-size:12px; line-height:1.5; }.apartment-edit-toggle { width:100%; }.apartment-edit-actions { display:flex; justify-content:flex-end; align-items:center; gap:15px; margin-top:13px; }.apartment-edit-actions .primary-button { margin:0; } .apartment-edit-actions .danger-button { margin-right:auto; } .apartment-listing-navigation { display:flex; align-items:center; justify-content:center; gap:10px; margin:10px 0; }.apartment-listing-navigation[hidden] { display:none !important; }.apartment-listing-navigation button { width:31px; height:29px; border:1px solid #c9d9e8; border-radius:8px; color:var(--blue); background:#fff; font-size:22px; line-height:1; }.apartment-listing-navigation button:hover { color:#fff; border-color:var(--blue); background:var(--blue); }.apartment-listing-navigation strong { min-width:155px; color:#657485; font-size:11px; text-align:center; } @media (max-width:760px) { .apartment-details div { grid-template-columns:1fr; gap:4px; }.apartment-edit-actions { flex-wrap:wrap; }.apartment-edit-actions .danger-button { width:100%; margin-right:0; } }
.filter-control { position:relative; flex:0 0 auto; }.filter-menu { position:absolute; z-index:12; top:calc(100% + 6px); left:0; display:none; min-width:180px; padding:6px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:0 10px 25px rgba(35,55,73,.16); }.filter-menu.is-open { display:grid; gap:2px; }.filter-menu button { min-height:33px; padding:0 10px; border:0; border-radius:7px; color:#435261; background:transparent; text-align:left; font-size:12px; font-weight:700; white-space:nowrap; }.filter-menu button:hover { color:#076edc; background:#eef7ff; }.metro-menu { min-width:220px; }.metro-menu input { height:37px; margin:3px 4px 5px; padding:0 9px; border:1px solid #ccd5df; border-radius:8px; outline-color:var(--blue); }.filter-button.is-active { color:#d47624; border-color:#f8caa6; background:#fff6ee; }.listing-panel-head .filter-control { margin-left:auto; }.sort-menu { right:0; left:auto; }
.channel-tags { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }.channel-tags label { margin:13px 0 6px; }.channel-tags input { height:40px; }.field-note { margin:10px 0 17px; color:#7f8c98; font-size:10px; line-height:1.45; }.channel-tags-summary { margin:0 0 12px; color:#738090; font-size:10px; line-height:1.45; }.room-type-fields { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:18px 0; padding:13px; border:1px solid #dce5ed; border-radius:10px; }.room-type-fields legend { padding:0 5px; color:#526171; font-size:12px; font-weight:800; }.room-type-fields label { margin:0; color:#405061; font-size:12px; font-weight:700; }.room-type-fields input { width:auto; height:auto; margin:0 5px 0 0; }.room-type-fields small { grid-column:1 / -1; color:#84909c; font-size:10px; font-weight:500; }
.filters { position:relative; z-index:30; overflow:visible; }.map-layout { position:relative; z-index:1; }.map-layout[hidden],.list-view[hidden] { display:none !important; }

/* The apartment card dialog must cover every page control behind it. */
.modal { z-index:100; }

/* The live Yandex scheme is the only base layer. Remove the former mock map. */
.map { background:none; }
.map::after,.map-water,.map-road,.map-label,.map-pin,.map-zoom,.locate-button,.map-legend { display:none; }
.map-tools { position:absolute; z-index:5; top:14px; left:14px; display:flex; gap:7px; }
.map-tool { height:34px; padding:0 11px; border:1px solid #d9e3ec; border-radius:8px; color:#31516d; background:#fff; box-shadow:0 1px 5px rgba(50,60,70,.16); font-size:11px; font-weight:800; }
.map-zoom-tool { width:34px; padding:0; font-size:20px; line-height:1; }
.status-dot-running { animation:parser-pulse 1s ease-in-out infinite; }
@keyframes parser-pulse { 50% { opacity:.35; transform:scale(1.28); } }
.parser-error-detail { max-width:280px; overflow:hidden; color:#a54d42; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }
.apartment-state-actions { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0; }.apartment-state-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:32px; padding:0 10px; border:1px solid #d7e0e9; border-radius:8px; color:#526171; background:#fff; font-size:11px; font-weight:800; line-height:1; }.apartment-state-actions .ti { display:block; flex:0 0 auto; margin:0; font-size:15px; line-height:1; vertical-align:0; }.apartment-state-actions button.is-active { color:#0d6fd5; border-color:#9ed0ff; background:#edf7ff; }.apartment-state-actions button[data-personal-interest="favorite"].is-active { color:#a66d14; border-color:#f2c46f; background:#fff4d7; }.apartment-state-actions button[data-personal-interest="not_interesting"].is-active { color:#a45445; border-color:#f0c2ba; background:#fff3f1; }.apartment-state-actions button[data-personal-status="rented"].is-active { color:#66727d; border-color:#ccd5dd; background:#eef1f4; }
.map-tool.is-active { color:#fff; border-color:var(--blue); background:var(--blue); }
.map.is-drawing-area .yandex-map-canvas { cursor:crosshair; }
.listing-card.is-muted { opacity:.6; }
.badge-new { left:6px; right:auto; color:#fff; background:#1478d9; }
.recommendations-summary { display:inline-flex; align-items:center; min-height:34px; padding:0 12px; margin:-8px 0 18px; border-radius:9px; color:#41627d; background:#edf7ff; font-size:12px; font-weight:700; }
.recommendation-reason { display:flex; align-items:center; gap:4px; margin-top:-1px !important; color:#1478d9 !important; font-size:10px !important; font-weight:700; }
.heart-button { display:grid; place-items:center; padding:0; line-height:1; }
.heart-button .ti { display:block; margin:0; line-height:1; }
.recommendation-deck { display:grid; justify-items:center; gap:18px; }.recommendation-card-stack { width:min(100%, 430px); }.recommendation-card-stack .listing-card { display:block; margin:0; padding:0; overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:0 12px 30px rgba(26,50,72,.08); }.recommendation-card-stack .photo { width:100%; height:295px; border-radius:0; }.recommendation-card-stack .listing-info { display:flex; flex-direction:column; min-height:214px; padding:18px; }.recommendation-card-stack .listing-info h3 { font-size:16px; }.recommendation-card-stack .listing-info p { font-size:12px; }.recommendation-card-stack .listing-time { font-size:11px; }.recommendation-card-stack .source-link { align-self:flex-end; margin-top:auto; text-align:right; }.recommendation-card-stack .heart-button { display:none; }.recommendation-actions { display:flex; align-items:center; justify-content:center; gap:12px; }.recommendation-action { display:flex; width:98px; height:70px; align-items:center; justify-content:center; flex-direction:column; gap:5px; border:1px solid #d7e2ea; border-radius:16px; background:#fff; font-size:10px; font-weight:800; line-height:1; text-align:center; box-shadow:0 3px 12px rgba(38,57,75,.08); }.recommendation-action .ti { display:block; margin:0; font-size:23px; line-height:1; vertical-align:0; }.recommendation-action span { display:block; line-height:1.15; text-align:center; }.recommendation-action.is-dismiss { color:#d45b50; }.recommendation-action.is-next { color:#65798d; }.recommendation-action.is-like { color:#d58b16; border-color:#f0cf83; background:#fff9e9; }.recommendation-action:hover { transform:translateY(-2px); box-shadow:0 6px 16px rgba(38,57,75,.14); }
.apartment-main-photo { position:relative; display:block; width:100%; padding:0; border:0; cursor:zoom-in; }
.gallery-nav { position:absolute; z-index:2; top:50%; display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#213448; background:rgba(255,255,255,.9); box-shadow:0 2px 9px rgba(22,41,58,.25); transform:translateY(-50%); font-size:29px; line-height:1; cursor:pointer; user-select:none; }.gallery-nav:hover,.gallery-nav:focus-visible { color:#fff; background:var(--blue); outline:0; }.gallery-nav-prev { left:12px; }.gallery-nav-next { right:12px; }.gallery-nav[hidden] { display:none; }
.source-parse-button { width:100%; margin-top:12px; font-size:12px; }.source-parse-button:disabled { cursor:wait; opacity:.65; }
.filter-menu button.is-selected { color:#076edc; background:#eef7ff; }
.filter-menu-title { margin:7px 10px 2px; color:#84909d; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.photo-viewer { position:fixed; z-index:220; inset:0; display:grid; place-items:center; padding:34px 82px; background:rgba(9,18,29,.94); }
.photo-viewer[hidden] { display:none; }
.photo-viewer figure { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:100%; margin:0; }
.photo-viewer img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.photo-viewer figcaption { padding-top:9px; color:#fff; text-align:center; font-size:13px; }
.photo-viewer-close,.photo-viewer-nav { position:absolute; z-index:1; display:grid; place-items:center; border:0; color:#fff; background:rgba(255,255,255,.14); }
.photo-viewer-close { top:20px; right:22px; width:42px; height:42px; border-radius:50%; font-size:30px; line-height:1; }
.photo-viewer-nav { top:50%; width:48px; height:72px; transform:translateY(-50%); font-size:54px; line-height:1; }
.photo-viewer-prev { left:20px; border-radius:0 12px 12px 0; }
.photo-viewer-next { right:20px; border-radius:12px 0 0 12px; }
.photo-viewer-close:hover,.photo-viewer-nav:hover { background:rgba(255,255,255,.28); }
@media (max-width:760px) { .photo-viewer { padding:65px 12px 42px; }.photo-viewer-nav { width:38px; height:58px; font-size:42px; }.photo-viewer-prev { left:0; }.photo-viewer-next { right:0; }.photo-viewer-close { top:10px; right:10px; } }
.yandex-listing-marker { display:grid; place-items:center; min-width:34px; height:34px; padding:0 7px; }
.yandex-listing-marker span { display:none; }
.yandex-listing-cluster { display:grid; place-items:center; width:42px; height:42px; border:3px solid #fff; border-radius:50%; color:#fff; background:#126fd5; box-shadow:0 3px 10px rgba(20,40,65,.3); font-size:13px; font-weight:800; }
.price-menu { min-width:230px; }.price-menu label { display:grid; gap:5px; padding:4px 5px; color:#586878; font-size:11px; font-weight:800; }.price-menu input { width:100%; height:36px; padding:0 9px; border:1px solid #ccd5df; border-radius:8px; color:var(--ink); font:inherit; outline-color:var(--blue); }
.apartment-details #apartment-detail-description { white-space:pre-wrap; overflow-wrap:anywhere; }
.apartment-contacts,.apartment-location { margin:16px 0; padding-top:14px; border-top:1px solid #edf0f3; }.apartment-contacts h3,.apartment-location h3 { margin:0 0 10px; font-size:15px; }.apartment-contact-list { display:grid; gap:0; }.apartment-contact-list div { display:grid; grid-template-columns:130px 1fr; gap:12px; padding:9px 0; border-top:1px solid #f0f3f5; }.apartment-contact-list span { color:#7c8795; font-size:12px; }.apartment-contact-list strong,.apartment-contact-list a { color:#2f3e4d; font-size:12px; font-weight:700; text-decoration:none; }.apartment-contact-list a { color:var(--blue); }.apartment-contact-list a:hover { text-decoration:underline; }
.apartment-location-map { height:230px; overflow:hidden; border:1px solid #e0e7ed; border-radius:11px; background:#f3f5f4; }.apartment-location-note { margin:8px 0 0; color:#7c8795; font-size:11px; }.apartment-location.is-unavailable .apartment-location-map { display:none; }.apartment-location-pin { width:26px; height:26px; border:4px solid #fff; border-radius:50%; background:var(--blue); box-shadow:0 3px 10px rgba(20,40,65,.4); }.apartment-location-pin::after { content:""; display:block; width:7px; height:7px; margin:5.5px; border-radius:50%; background:#fff; }
.photo-viewer figure { display:flex; flex-direction:column; align-items:center; justify-content:center; }.photo-viewer img { width:auto; height:auto; max-width:100%; max-height:calc(100% - 34px); object-fit:contain; }.photo-viewer figcaption { flex:0 0 auto; }
@media (max-width:760px) { .apartment-contact-list div { grid-template-columns:1fr; gap:4px; }.apartment-location-map { height:190px; } }
.ti { display:inline-block; vertical-align:-.16em; font-size:1.1em; line-height:1; }
.nav-icon.ti { width:24px; font-size:22px; }
.telegram-logo { display:block; width:30px; height:30px; object-fit:contain; }
.primary-button > .ti,.secondary-button > .ti { margin-right:7px; font-size:18px; }
.filter-button > .ti,.filter-more > .ti,.text-button > .ti { margin-left:8px; font-size:15px; }
.filter-favorite > .ti { margin:0 5px 0 0; }.heart-button .ti { font-size:16px; vertical-align:0; }
.source-menu .ti { font-size:20px; }.gallery-nav .ti { font-size:28px; }.modal-close .ti { font-size:21px; }
.photo-viewer-nav .ti { font-size:32px; }.photo-viewer-close .ti { font-size:26px; }
.back-button .ti,.telegram-message-link .ti { margin-right:5px; }.option-icon .ti,.option-arrow .ti,.delete-icon .ti { font-size:22px; }
.source-topline { align-items:flex-start; }.source-identity { display:flex; min-width:0; align-items:center; gap:10px; }.source-identity > div { min-width:0; }.source-identity h3 { margin:0 0 4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.source-identity a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.source-identity + .source-menu { margin-left:10px; flex:0 0 auto; }
.sources-divider { height:1px; margin:31px 0 29px; background:var(--line); }.source-card { display:flex; flex-direction:column; min-height:276px; }.source-card .source-footer { margin-top:auto; }.source-card .source-parse-button { flex:0 0 auto; }
.source-stats dt,.source-stats dd { font-size:15px; }.source-stats dd { font-weight:800; }
.filter-favorite { color:#445363; border-color:#dce2e9; background:#fff; }.filter-favorite.is-active { color:#d47624; border-color:#f8caa6; background:#fff6ee; }
.filter-favorite-filled-icon { width:16px; height:16px; margin:0 5px 0 0; fill:currentColor; vertical-align:-.18em; }
.help-icon { display:grid; place-items:center; font-family:Arial,sans-serif; font-size:13px; font-style:normal; line-height:1; }
.admin-users { grid-column:auto; }
.yandex-listing-marker.favorite { color:#fff; background:#e5484d; }
.yandex-listing-marker.rented,.yandex-listing-marker.not_interesting { color:#fff; background:#9ba6b2; }
.yandex-listing-marker.new { color:#fff; background:#164a8a; }
.yandex-listing-marker.available { color:#fff; background:#52b7e8; }
.filter-favorite.is-active { color:#c83f45; border-color:#f3b7ba; background:#fff1f1; }
.heart-button.is-favorite { color:#e5484d; }
.badge-favorite { color:#a82f35; background:#fff0f0; }
.apartment-state-actions button[data-personal-interest="favorite"].is-active { color:#c83f45; border-color:#f3b7ba; background:#fff1f1; }
.photo { background:#edf1f4; }
.photo img { object-fit:cover; object-position:center; background:#edf1f4; }
.apartment-main-photo img { object-fit:contain; object-position:center; background:#edf1f4; }
.photo-viewer img { object-fit:contain; object-position:center; }
.photo-viewer figure { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:100%; min-height:0; }
.photo-viewer img { width:100%; height:100%; min-width:0; min-height:0; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }
.photo-viewer figcaption { padding-top:9px; }
.recommendations-header .secondary-button:disabled { cursor:wait; opacity:.72; }
.recommendations-header .ti-loader-2 { animation:recommendations-spin .8s linear infinite; }
@keyframes recommendations-spin { to { transform:rotate(360deg); } }
