@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/onest-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/onest-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* One green palette and the same controls in every cabinet and nested screen. */
:root{--bg:#101b17;--card:#1c2b24;--text:#f0f6f2;--muted:#afc4b8;--line:#415c4d;--green:#72df9c;--good:#86e7ab;--bad:#ff9aa2;--accent-bg:#254b35;--on-primary:#092c19;--shadow:0 4px 18px #0002;color-scheme:dark}
:root[data-theme=light]{--bg:#f2f7f3;--card:#fff;--text:#183426;--muted:#50695b;--line:#bacfc1;--green:#166c3b;--good:#146637;--bad:#a5283c;--accent-bg:#dff2e5;--on-primary:#fff;--shadow:0 4px 18px #1834260a;color-scheme:light}
html,body{min-width:0;background:var(--bg);color:var(--text)}
body,button,input,textarea,select{font-family:Onest,system-ui,-apple-system,"Segoe UI",sans-serif}
body{margin:0;font-size:16px;line-height:1.5}
header{position:relative!important;display:flex;align-items:center;padding:calc(16px + env(safe-area-inset-top)) 16px 8px!important;background:var(--bg)!important;border:0!important;box-shadow:none!important;min-height:54px;box-sizing:border-box;flex-wrap:wrap;gap:8px 12px}
.brand{min-width:0;max-width:55%}.brand b{font-size:26px!important;line-height:1.15;color:var(--text)!important;text-shadow:none!important}.brand b::after{content:none!important}.brand small{color:var(--muted)!important;font-size:12px!important;letter-spacing:.12em!important}.brand-ver{display:none}
/* MA-13: режим, новость и тема — одна адаптивная строка; не помещаются в строку с названием — переносятся ниже целиком, без наложения. */
.header-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex:1 1 auto;justify-content:flex-end;flex-wrap:wrap;min-width:0}
#modeBtnTop{position:static;flex:0 0 auto;max-width:none;min-height:44px;padding:6px 12px;border:1px solid var(--line)!important;border-radius:16px;background:var(--card)!important;color:var(--text)!important;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:none}
#modeBtnTop[hidden]{display:none!important}
#newsBtnTop{min-height:44px;flex:0 0 auto}
#themeToggle{width:44px;min-height:44px;flex:0 0 44px;padding:0;border-radius:14px;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--text)!important;display:grid;place-items:center}
main{min-width:0;max-width:860px;margin:auto;padding:12px 16px calc(104px + env(safe-area-inset-bottom))!important;box-sizing:border-box}
main :is(.panel,.card,.clean-card,.kpi,.mode-card,.category-card,.home-feature,.profile-summary,.profile-now-card,.profile-now-empty,.form-block,.request-card,.offer-card,.appointment-card,.master-card,.market-card,.payment-box,.loyalty-card,.promo-card,.voucher-card,.weather-day,.content-fold,.empty,.safety-112,.now-calm){background:var(--card)!important;color:var(--text)!important;border:1px solid var(--line)!important;border-radius:18px;box-shadow:var(--shadow)!important}
main :is(button,input,select,textarea,summary){min-height:44px;font-size:16px;box-sizing:border-box;max-width:100%}
main :is(button,input,select,textarea):not([type=checkbox]):not([type=radio]):not(.hero-weather){background:var(--card)!important;color:var(--text)!important;border-color:var(--line)!important;border-radius:14px;box-shadow:none!important}
main :is(input,textarea,select){width:100%;outline:none}
main :is(input,textarea)::placeholder{color:var(--muted)!important;opacity:1}
main :is(.primary,.big-action.primary,.work-mode-entry,.filter-tabs button.active,.tabs button.active,.segmented button.active,.chips .chip.active):not([type=checkbox]):not([type=radio]){background:var(--green)!important;color:var(--on-primary)!important;border-color:var(--green)!important}
main :is(.primary,.work-mode-entry) :is(b,strong,small,span,em){color:var(--on-primary)!important}
main :is(.danger,.compact-alert.danger,.notice.bad){border-left:4px solid var(--bad)!important}
main :is(.compact-alert,.notice,.warnbox){background:var(--card)!important;color:var(--text)!important;border:1px solid var(--line);border-radius:16px}
main :is(.compact-alert.success,.empty-state-good){border-left:4px solid var(--good)!important}
main :is(.muted-note,.mini-heading,.privacy-note,.source-health,small){color:var(--muted)}
main :is(h2,h3){color:var(--text)!important;text-shadow:none!important;margin-top:0}
main .section-title{color:var(--muted)!important;font-size:14px!important;letter-spacing:0;font-weight:700}
main :is(.big-action,.profile-main-button,.home-feature,.home-tile){min-width:0;text-align:left;grid-template-columns:44px minmax(0,1fr) 16px;gap:12px;min-height:76px;padding:12px 14px;box-sizing:border-box}
main :is(.big-action,.profile-main-button,.home-feature,.home-tile) div{min-width:0}
main :is(.big-action,.profile-main-button,.home-feature,.home-tile) b{font-size:17px!important;line-height:1.3;overflow-wrap:normal;word-break:normal;hyphens:none}
main :is(.big-action,.profile-main-button,.home-feature,.home-tile) small{font-size:14px!important;line-height:1.4;overflow-wrap:anywhere}
main :is(.big-action,.profile-main-button,.profile-menu button)>span{background:var(--accent-bg)!important;border:0!important;border-radius:14px;box-shadow:none!important;display:grid;place-items:center;width:44px;height:44px;min-width:44px}
main :is(.big-action,.profile-main-button).primary>span{background:transparent!important}
.neon-ico{display:block;width:24px;height:24px;flex:0 0 auto;filter:none!important}
main :is(.home-required-actions,.cabinet-grid,.quick-grid){gap:10px}
.home-required-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.home-required-actions .primary{grid-column:1/-1}
.home-link-strip,.small-actions,.header-actions,.home-chips{gap:8px;flex-wrap:wrap}
.home-pill{min-width:0!important;border-radius:16px!important;padding:10px!important}
.home-pill b{font-size:14px!important;white-space:normal!important}
.home-chips button{border-radius:14px!important}
.home-welcome{margin:0 0 12px}.home-welcome h2{font-size:20px}
.bottom-nav{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));padding:6px;gap:2px;border:1px solid var(--line)!important;border-radius:22px;background:var(--card)!important;box-shadow:var(--shadow)!important}
.bottom-nav button{min-width:0;min-height:52px;flex:1;padding:6px 2px;background:transparent!important;color:var(--muted)!important;border:0!important;box-shadow:none!important;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:4px}
.bottom-nav button span{font-size:13px!important;margin:0;color:inherit!important;white-space:normal}
.bottom-nav button.active{background:var(--accent-bg)!important;color:var(--good)!important}
.bottom-nav button.active::before,.bottom-nav button.active::after{content:none!important}
.bottom-nav.nested-hidden{display:none!important}
a,.text-action{color:var(--green)}
:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--green)!important;outline-offset:3px}
/* Weather remains an illustration; its data and route labels flow normally. */
main button.hero-weather{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:8px 12px;width:100%!important;max-width:100%!important;margin:0 0 14px!important;padding:16px!important;min-height:0;border:1px solid var(--line)!important;border-radius:20px!important;background:linear-gradient(135deg,var(--accent-bg),var(--card))!important;color:var(--text)!important;box-shadow:none!important;overflow:hidden;text-align:left}
.hero-weather::before,.hero-weather::after,.hero-road::after{content:none!important}
main .hero-header{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:0;position:relative;z-index:2}
main .hero-clock{display:flex;gap:6px;align-items:baseline;font-size:14px!important;color:var(--muted)!important;box-shadow:none;background:none;text-shadow:none}
main .hero-clock small{font-size:12px!important}
main .hero-weather-info{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
main .hero-temp{font-size:44px!important;line-height:1;letter-spacing:-1px;color:var(--text)!important;text-shadow:none!important}
main .hero-condition{font-size:14px!important;line-height:1.35;color:var(--text)!important}
main .hero-sun{display:none!important}
.wx-scene{display:block;grid-column:2;grid-row:1;align-self:center;justify-self:center;width:min(100%,160px);height:110px;pointer-events:none;position:relative;filter:none}
.wx-scene svg{width:100%;height:100%}
main .hero-meta{grid-column:1/-1;grid-row:2;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0;position:relative!important;inset:auto!important}
main .hero-time{font-size:18px!important;line-height:1.4;color:var(--text)!important;background:none!important;text-shadow:none;white-space:normal}
main .hero-route{display:block;color:var(--muted)!important;font-size:14px!important}
main .hero-road{grid-column:1/-1;grid-row:3;position:relative;height:100px;margin:0;filter:none}
main .hero-road svg{width:100%;height:100%;filter:none}
main .hero-pin{font-size:12px!important;background:var(--card);color:var(--text)!important;border:1px solid var(--line);border-radius:10px;padding:2px 6px}
main .hero-jam{font-size:12px!important;color:var(--bad)!important;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:2px 6px;box-shadow:none}
.wx-float{animation:wx-float 5s ease-in-out infinite}.wx-drift{animation:wx-drift 7s ease-in-out infinite}
@keyframes wx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes wx-drift{0%,100%{transform:translateX(-4px)}50%{transform:translateX(5px)}}
@media(max-width:380px){.brand b{font-size:23px!important}#modeBtnTop{font-size:12px;padding:6px 8px}main :is(.big-action,.home-tile){grid-template-columns:34px minmax(0,1fr);gap:8px;padding:10px}main :is(.big-action,.home-tile)>span{width:34px;height:34px;min-width:34px}main :is(.big-action,.home-tile)>em{display:none}main .hero-temp{font-size:38px!important}.wx-scene{height:90px}}
@media(min-width:900px){header{position:fixed!important;left:18px!important;right:auto!important;top:18px!important;width:184px!important;background:var(--card)!important;border:1px solid var(--line)!important;border-radius:22px!important;padding:16px!important;flex-direction:column;align-items:flex-start}.brand{max-width:100%}.header-actions{margin:8px 0 0!important}#modeBtnTop{width:100%;justify-content:center;background:var(--card)!important}.bottom-nav{background:var(--card)!important;border-color:var(--line)!important}main .hero-weather{background:linear-gradient(135deg,var(--accent-bg),var(--card))!important;min-height:0!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;padding:20px!important}.hero-weather .hero-header{grid-column:1!important;grid-row:1!important;padding:0!important;border:0!important}.hero-weather .hero-meta{grid-column:1/-1!important;grid-row:2!important;inset:auto!important}.hero-weather .hero-road{grid-column:1/-1!important;grid-row:3!important;height:110px!important}.wx-scene{width:180px;height:120px}}
/* MA-14: карточки счётчиков — на телефоне две колонки, подписи переносятся по словам, а не посреди слова. */
main .cabinet-stats>div{min-width:0;overflow-wrap:break-word;word-break:normal;hyphens:manual}
main .cabinet-stats :is(b,span){overflow-wrap:break-word;word-break:normal;hyphens:manual}
@media(max-width:480px){main .cabinet-stats{grid-template-columns:repeat(2,minmax(0,1fr))}main .cabinet-stats>div:last-child:nth-child(odd){grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}.wx-scene{transform:none!important}}

@media(max-width:480px){.home-required-actions{grid-template-columns:minmax(0,1fr)}}
/* «Своя новость» (screens/57_own_news.js): статус-чипы и миниатюры фото только на токенах темы — контраст одинаков в светлой и тёмной. */
main .own-news-meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
main .own-news-chip{display:inline-block;padding:4px 10px;border-radius:14px;border:1px solid var(--line);background:var(--accent-bg);color:var(--text);font-size:14px;line-height:1.35}
main .own-news-photos{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
main .own-news-photos figure{margin:0;width:84px}
main .own-news-photos img{display:block;width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
main .own-news-photos button{width:100%;margin-top:4px;padding:6px 4px;min-height:36px;font-size:14px}
/* UX-FIX1 №21: значок «в избранное» ≥44×44, зона выбора фото — вся рамка не ниже 48 px. */
main .favorite-heart{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
main .field input[type=file]{min-height:48px;padding:12px;width:100%;cursor:pointer}

/* B3 п.64: на узком экране шапка компактнее: название без второй строки, меньше отступы, «Назад» ложится сразу под шапкой.
   Когда все кнопки помещаются (у мастера и бизнеса «Новость» скрыта) — это одна строка; иначе кнопки, как и раньше, переносятся целиком, без наложения.
   Область нажатия не меньше 44 px. */
@media(max-width:480px){
  header{gap:4px 8px;padding:calc(10px + env(safe-area-inset-top)) 12px 6px!important;min-height:0}
  .brand{max-width:none;flex:0 0 auto}.brand b{font-size:22px!important}.brand small{display:none}
  .header-actions{gap:6px}
  #modeBtnTop{padding:4px 10px;max-width:46vw;font-size:13px}
  .app-backbar{top:60px}
}

/* ===== 1.22.328: ревью Mini App (блокеры запуска) ===== */
/* Бейджи и «таблетки» читаемы в обеих темах (раньше светлый фон при светлом тексте или тёмный при тёмном). */
main :is(.badge,.pill,.soft,.profile-chip,.mode-pill,.request-meta .badge){background:var(--accent-bg)!important;color:var(--text)!important;border:1px solid var(--line)!important}
main .request-meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
/* Непрочитанное сообщение и «галочки»-строки без жёсткого светлого фона. */
main .unread-row{background:var(--accent-bg)!important;color:var(--text)!important;border-left:5px solid var(--green)!important}
main :is(.check,.field-check){background:var(--card)!important;color:var(--text)!important;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px;padding:10px 12px}
main :is(.check,.field-check) span,main :is(.check,.field-check) label{color:var(--text)}
/* Флажки и переключатели: обычного размера, не на всю ширину (общее правило main input{width:100%} их растягивало). */
main input[type=checkbox],main input[type=radio]{width:22px!important;height:22px!important;min-width:22px;min-height:22px!important;flex:0 0 22px;padding:0;margin:0;accent-color:var(--green)}
main label:has(>input[type=checkbox]),main label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:8px;min-height:44px}
/* Рабочие часы: день, два времени и «Раб.» помещаются в ширину экрана. */
main .days .day{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center;border-bottom:1px solid var(--line)}
main .days input[type=time]{min-width:0;width:100%;padding:6px}
main .days .day label{white-space:nowrap}

/* Объявления (маркетплейс): стили на переменных тем. */
main .marketplace-page,main .market-detail{display:grid;gap:12px;min-width:0}
main .market-head h2{margin:2px 0}
main .market-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:6px 8px}
main .market-search input{border:0!important;background:transparent!important;min-width:0}
main .market-search button{flex:0 0 auto;padding:0 14px;background:var(--green)!important;color:var(--on-primary)!important;border:0!important;font-weight:700}
main .market-jobs-entry{width:100%}
main .filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
main .market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
main .market-card{display:block;overflow:hidden;min-width:0;padding:0;text-align:left}
main .market-card-body{padding:10px;display:grid;gap:4px;min-width:0}
main .market-card-price{font-weight:800;font-size:16px;color:var(--good)}
main .market-card-body>b{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
main .market-card-body small{font-size:12px;color:var(--muted);line-height:1.35}
main .market-card-meta{display:flex;gap:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}
main .market-detail-cover{min-height:160px;border-radius:20px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:20px;text-align:center;padding:12px}
main .market-detail-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
main .market-detail-title h2{margin:2px 0}
main .market-main-price{font-size:26px;font-weight:800;color:var(--good)}
main .market-description p{margin:0;line-height:1.55;overflow-wrap:anywhere}
main .market-estate-summary,main .market-offer-agreed,main .market-deal{background:var(--accent-bg);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
main .market-contact-actions,main .owner-market-actions{display:grid;gap:8px;margin:4px 0}
main .mine-market-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:11px 12px;margin:6px 0;text-align:left;box-sizing:border-box;min-height:56px}
main .mine-market-row>div{min-width:0;display:grid;gap:2px}
main .mine-market-row b{overflow-wrap:anywhere}
main .mine-market-row small{color:var(--muted)}
main .wanted-feed,main .wanted-create{display:grid;gap:10px;min-width:0}
@media(max-width:360px){main .market-grid{grid-template-columns:1fr}main .filter-grid{grid-template-columns:1fr}}
header .brand[role=button]{cursor:pointer;-webkit-tap-highlight-color:transparent}
header .brand[role=button]:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:8px}
/* Очереди модерации: поиск по странице и компактные карточки (длинный текст сворачивается, кнопки решения ближе). */
main .queue-search{display:grid;gap:4px;margin:6px 0 10px}
main .clean-card[hidden]{display:none!important}
main .queue-card>p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
main .queue-card.open>p{display:block}
main .quick-place-row{display:flex;flex-direction:column;gap:8px}
main .quick-place-row input{width:100%}
