/* Krtsanisi Club UI System
   Финальный слой над историческими стилями: единые токены, поверхности, формы,
   состояния, доступность и адаптивность для всех экранов SPA. */

:root{
  --bg:#F2F5F3;
  --card:#FFFFFF;
  --field:#F7F9F8;
  --ink:#17231E;
  --muted:#69756F;
  --line:#DDE6E1;
  --accent:#0D875F;
  --accent-deep:#08704E;
  --accent-ink:#08704E;
  --accent-soft:#E4F3ED;
  --gold:#B3913D;
  --gold-soft:#F7F0DC;
  --danger:#B64D3C;
  --danger-soft:#FBEAE6;
  --warning:#936B17;
  --warning-soft:#FAF1D9;
  --success:#167653;
  --success-soft:#E2F2EB;
  --radius-sm:12px;
  --radius-md:16px;
  --radius-lg:20px;
  --radius:20px;
  --shadow-xs:0 1px 2px rgba(18,38,29,.04);
  --shadow-sm:0 5px 16px rgba(18,38,29,.06);
  --shadow:0 10px 28px rgba(18,38,29,.08);
  --sans:'Onest',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  /* Canonical scales. Values mirror the current UI, so introducing the
     tokens does not change layout before components are migrated to them. */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --text-xs:11px;
  --text-sm:12px;
  --text-md:14px;
  --text-lg:16px;
  --text-xl:20px;
  --text-2xl:24px;
  --leading-tight:1.25;
  --leading-normal:1.45;
  --control-min:44px;
  --control-md:48px;
  --motion-fast:140ms;
  --motion-base:180ms;
  --motion-slow:250ms;
  --ease-standard:cubic-bezier(.22,.61,.36,1);
  --z-header:20;
  --z-main-action:29;
  --z-navigation:31;
  --z-overlay:40;
  --z-sheet:41;
  --z-toast:60;
  --z-fullscreen:80;
  --z-debug:99;
  color-scheme:light;
}

body.dark{
  --bg:#111814;
  --card:#1A241F;
  --field:#202B25;
  --ink:#EEF3F0;
  --muted:#9BA9A1;
  --line:#303D36;
  --accent:#54C79A;
  --accent-deep:#168661;
  --accent-ink:#54C79A;
  --accent-soft:#1D352B;
  --gold:#D2B461;
  --gold-soft:#332D1C;
  --danger:#E07A66;
  --danger-soft:#3A2521;
  --warning:#E0BC64;
  --warning-soft:#352E1D;
  --success:#61C99E;
  --success-soft:#1D352B;
  --shadow-xs:none;
  --shadow-sm:none;
  --shadow:0 12px 30px rgba(0,0,0,.28);
  color-scheme:dark;
}

html,body{font-family:var(--sans);background:var(--bg)}
body.glass::before{opacity:.12;filter:blur(22px) saturate(.8)}
body.glass::after{background:rgba(242,245,243,.93)}
body.glass.dark::after{background:rgba(17,24,20,.94)}
body.glass #app-root{background:transparent}

.skip-link{
  position:fixed;z-index:200;left:12px;top:8px;transform:translateY(-160%);
  padding:10px 13px;border-radius:10px;background:var(--ink);color:var(--card);
  font-size:13px;font-weight:700;text-decoration:none;
}
.skip-link:focus{transform:none}

#hdr{
  min-height:58px;padding:calc(7px + env(safe-area-inset-top)) 14px 7px;
  border-color:var(--line);background:rgba(242,245,243,.92);
}
body.glass #hdr{
  background:rgba(250,252,251,.92)!important;
  border-bottom:1px solid rgba(21,45,34,.06)!important;
  box-shadow:none!important;
}
body.glass.dark #hdr{
  background:rgba(19,27,23,.94)!important;
  border-bottom-color:rgba(255,255,255,.07)!important;
}
.tg-title{font-size:16px;font-weight:750;line-height:1.2;letter-spacing:-.015em}
.tg-title.brand{font-family:var(--sans);font-size:14px;letter-spacing:.12em}
.tg-back,.lang-pill{min-width:44px;min-height:44px;flex:0 0 auto}
#themePill{width:44px;padding-left:0;padding-right:0}
.lang-pill{border-color:var(--line);box-shadow:var(--shadow-xs)}

.screen{
  padding:8px 16px 112px;
  scroll-padding:72px 0 120px;
  scrollbar-gutter:stable both-edges;
}
.screen.has-footer{padding-bottom:106px}
.screen>h1:first-child,.screen>.h1-dup+*{margin-top:4px}
h1,h1.serif{font-family:var(--serif);font-size:25px;line-height:1.12;font-weight:700;letter-spacing:-.02em}
h2,h2.serif{font-family:var(--sans);font-size:17px;line-height:1.25;font-weight:760;letter-spacing:-.02em}
h3{font-size:16px;line-height:1.25}
p.lead{font-size:14px;line-height:1.55;color:var(--muted)}
.events-kicker,.ku-section-kicker,.admin-kicker{
  font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);
}

/* Единая геометрия поверхностей. Специальные hero/финансовые блоки сохраняют свой характер. */
.card,.srv,.review,.acc,.goal,.value,.prof-tile,.theme-tile,.provider-profile,
.form-card,.set-panel,.court-step,.court-my-bookings,.statusrow,.fin-row,.res-card{
  border-color:var(--line);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xs);
}
body.glass .card,body.glass .prof-tile,body.glass .theme-tile,
body.glass .provider-profile,body.glass .form-card,body.glass .set-panel{
  background:var(--card)!important;
  border:1px solid var(--line)!important;
  border-radius:var(--radius-md)!important;
  box-shadow:var(--shadow-sm)!important;
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
.card{margin-bottom:12px}
.card .body{padding:14px}
.card .ph{background-color:var(--field)}
.srv{padding:13px;margin-bottom:10px;background:var(--card)}
.review{padding:13px}
.statusrow{padding:12px 13px;background:var(--card)}
.fin-row{min-height:58px;background:var(--card)}

/* Поля всегда визуально отличаются от карточки, в которой находятся. */
.field{margin-bottom:15px}
.field label{
  margin:0 0 7px 2px;color:var(--ink);font-size:12px;font-weight:720;line-height:1.35;
}
.field input,.field select,.field textarea,textarea,.as-link-row input{
  min-height:48px;padding:12px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--field);color:var(--ink);font:inherit;font-size:16px;line-height:1.35;
  box-shadow:inset 0 1px 0 rgba(18,38,29,.025);
}
.field textarea,textarea{min-height:104px}
body.glass .field input,body.glass .field select,body.glass .field textarea,
body.glass textarea,body.glass .search{
  background:var(--field)!important;border-color:var(--line)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.72}
.field input:focus,.field select:focus,.field textarea:focus,textarea:focus{
  outline:0;border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(13,135,95,.13);
}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger)!important}
.field .err{margin:6px 2px 0}

/* Действия: один размер, одна иерархия, явные состояния. */
button,.btn,.chip,.opt,.seg-b,.lnk,.linkbtn{font-family:var(--sans)}
.btn{
  min-height:48px;padding:12px 14px;border-radius:var(--radius-sm);
  font-size:13.5px;font-weight:740;line-height:1.25;
}
.btn.pri{background:var(--accent-deep);color:#fff}
body.dark .btn.pri{color:#fff}
.btn.sec{background:var(--card);border:1px solid var(--line);color:var(--ink)}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn:disabled,button:disabled{cursor:not-allowed;opacity:.52}
.ui-busy{
  position:relative!important;cursor:wait!important;pointer-events:none;
}
.ui-busy>*{opacity:.34}
button.ui-busy,.btn.ui-busy{color:transparent!important}
.main-card.ui-busy,.btn.sec.ui-busy,.btn.ghost.ui-busy{--ui-spinner:var(--accent)}
.btn.pri.ui-busy{--ui-spinner:#fff}
.ui-busy::after{
  content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;
  margin:-10px 0 0 -10px;border:2px solid var(--ui-spinner,var(--accent));border-right-color:transparent;
  border-radius:50%;animation:ui-spin .72s linear infinite;
}
@keyframes ui-spin{to{transform:rotate(360deg)}}
.ui-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media (prefers-reduced-motion:reduce){.ui-busy::after{animation:none}}
.btn-row{gap:8px}
.btn-row .btn{min-height:50px;border-radius:var(--radius-md)!important}
.chip,.opt,.seg-b{
  min-height:44px;padding:9px 12px;border:1px solid var(--line);background:var(--card);
  font-size:12px;font-weight:680;
}
.opt.sel,.chip.act,.chip.on,.seg-b.on{
  border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);
}
body.glass .opts .opt,body.glass .chip,body.glass .slot,body.glass .seg{
  background:var(--card);border-color:var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;
}
.main-card{
  min-height:66px;margin-top:16px;border:1px solid rgba(13,135,95,.18);
  border-radius:var(--radius-lg)!important;background:var(--card);
}
.main-card .mc-ic{background:var(--accent-soft);color:var(--accent)}
.linkbtn,.lnk{min-height:36px;padding:7px 8px}
.icon-danger{
  width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;
  border:1px solid transparent;border-radius:12px;background:var(--danger-soft);color:var(--danger);
  cursor:pointer;font:inherit;
}

/* Мастер добавления услуги: главное действие не принадлежит скроллу.
   Оно всегда стоит над таббаром; контент получает собственный нижний запас. */
#app[data-screen="addservice"]{padding-bottom:calc(180px + env(safe-area-inset-bottom))}
body[data-screen="addservice"] #mainCard{
  position:fixed;z-index:29;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));
  width:min(448px,calc(100vw - 24px));margin:0;
  transform:translateX(-50%);
  box-shadow:0 14px 34px rgba(16,72,56,.20),0 0 0 5px rgba(242,245,243,.90);
}
body.dark[data-screen="addservice"] #mainCard{
  box-shadow:0 14px 34px rgba(0,0,0,.38),0 0 0 5px rgba(17,24,20,.92);
}
body[data-screen="addservice"] #mainCard:active{transform:translateX(-50%) scale(.985)}
body.kb-open[data-screen="addservice"] #mainCard{
  bottom:calc(10px + env(safe-area-inset-bottom));
}

/* Выбор рейтинга — настоящие кнопки, а не кликабельный текст. */
.stars{gap:2px}
.stars button{
  width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--line);
  font:inherit;font-size:27px;line-height:1;cursor:pointer;
}
.stars button.on{color:var(--gold)}
#revSend{min-height:44px}

/* Таббар не обрезает локализованные подписи на узких экранах. */
body.glass #tabbar{
  width:min(448px,calc(100vw - 20px))!important;
  padding:8px 5px calc(8px + env(safe-area-inset-bottom));
  border:1px solid var(--line)!important;border-radius:22px!important;
}
body.glass #tabbar .tab{min-width:0;padding:4px 0}
body.glass #tabbar .tab .lab{
  width:100%;max-width:100%;min-height:20px;padding:0;overflow:hidden;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  font-size:clamp(10px,2.7vw,10.5px);line-height:1.15;white-space:normal;
}

/* Контактный футер — только у корневых витрин (см. FOOTER_SCREENS). */
.home-footer{margin-top:28px;padding-top:18px;border-color:var(--line)}
.ft-grid{gap:8px}
.ft-map{
  min-height:48px;padding:10px 12px;border-color:var(--line);border-radius:var(--radius-sm);
  background:var(--card);font-size:12px;
}

/* Административные формы используют ту же композицию, что пользовательские мастера. */
.admin-page-head{margin:5px 2px 16px}
.admin-page-head h1{margin:5px 0 7px}
.admin-page-head p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.48}
.admin-form-card{
  margin-bottom:12px;padding:14px;border:1px solid var(--line);
  border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm);
}
.admin-section-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.admin-section-head>span{
  width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;
  border-radius:13px;background:var(--accent-soft);color:var(--accent);font-size:20px;
}
.admin-section-head h2{margin:0;font-size:15px}
.admin-section-head p{margin:3px 0 0;color:var(--muted);font-size:10.5px}
.admin-form-card>.field:last-of-type{margin-bottom:14px}
.admin-form-card .btn i{font-size:17px}
.admin-inline-empty{
  display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:var(--radius-sm);
  background:var(--accent-soft);color:var(--muted);font-size:12px;line-height:1.4;
}
.admin-inline-empty i{flex:0 0 auto;color:var(--accent);font-size:17px}
.admin-list-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 2px 10px;
}
.admin-list-head h2{margin:3px 0 0}
.admin-list-head>span{
  min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800;
}
.admin-registry{display:flex;flex-direction:column;gap:7px}
.admin-registry .fin-row{margin:0}

.legal-row{min-height:62px;padding:10px 12px}
.legal-ic{
  width:40px;height:40px;flex:0 0 40px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:19px;
}
.legal-row>span:first-of-type{flex:0 0 40px}
.legal-row>span:nth-of-type(2){flex:1;font-size:14px;font-weight:650;line-height:1.3}
.legal-title{display:flex;align-items:center;gap:11px;margin:5px 0 14px}
.legal-title h1{margin:0;font-size:21px}

/* Исправления конкретных системных дефектов, найденных полным прогоном. */
.provider-profile-copy b{
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;line-height:1.25;
}
.util-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.util-grid .util-tile{min-width:0;overflow:hidden}
.util-copy strong,.util-copy small{overflow:hidden;text-overflow:ellipsis}
.util-copy small{
  white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}
input[type="checkbox"],input[type="radio"]{min-width:24px;min-height:24px}
[role="button"]{cursor:pointer}
#verLine[role="button"]{min-height:32px;display:flex;align-items:center}
.srv a[href^="tel:"]{display:inline-flex;align-items:center;min-height:32px;padding:4px 0}

/* Одинаковый вид системных состояний. */
.empty{
  min-height:150px;padding:28px 18px;border:1px dashed var(--line);
  border-radius:var(--radius-lg);background:rgba(255,255,255,.38);
}
body.dark .empty{background:rgba(255,255,255,.025)}
.empty .e{font-size:32px}
.empty .t{font-size:15px;font-weight:750}
.empty .e i{font-size:32px;color:var(--accent)}
.empty .s{max-width:330px;margin:7px auto 0;font-size:12.5px;line-height:1.48}
.empty .cta{margin-top:15px}
.empty .cta .btn{width:100%;max-width:280px;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.hold-banner,.warn-note,.infra-note{border-radius:var(--radius-sm)}

/* Фокус и движение. */
:where(a,button,input,select,textarea,[role="button"]):focus-visible{
  outline:3px solid rgba(13,135,95,.32);outline-offset:2px;
}
:where(.btn,.card,.srv,.goal,.prof-tile,.theme-tile,.chip,.opt,.seg-b,.main-card,.ft-map){
  transition:transform .14s ease,border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease;
}
:where(.btn,.card,.srv,.goal,.prof-tile,.theme-tile,.chip,.opt,.seg-b,.main-card,.ft-map):active{
  transform:scale(.985);
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media(max-width:380px){
  #hdr{gap:6px;padding-left:10px;padding-right:10px}
  #hdrTitle{display:-webkit-box;max-height:2.45em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-overflow:clip;font-size:12.5px;line-height:1.2}
  #langPill{min-width:58px;padding-left:7px;padding-right:7px}
  .screen{padding-left:13px;padding-right:13px}
  .util-grid{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .admin-form-card{padding:12px}
  .btn-row{flex-wrap:wrap}
  .btn-row>.btn{flex:1 1 100%}
}

@media(min-width:381px) and (max-width:480px){
  #hdrTitle{display:-webkit-box;max-height:2.45em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-overflow:clip;font-size:14px;line-height:1.2}
}

@media(min-width:700px){
  .screen{padding-left:22px;padding-right:22px}
  .admin-form-card{padding:18px}
}

/* Карточка арендатора: один вертикальный scroll-контейнер вместо двух.
   Иначе focus/datepicker на iOS и Android прокручивал и body, и саму шторку. */
#tenantCardSheet,#rentSchedSheet{
  display:flex;flex-direction:column;overflow:hidden;
  max-height:min(88dvh,840px);overscroll-behavior:contain;
}
#tenantCardSheet .sheet-hd,#rentSchedSheet .sheet-hd{flex:0 0 auto}
#tenantCardSheet .sheet-hd h3,#rentSchedSheet .sheet-hd h3{
  min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#tenantCardSheet .tc-body,#rentSchedSheet .tc-body{
  flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  scroll-padding:12px 0 24px;scrollbar-width:none;
}
#tenantCardSheet .tc-body::-webkit-scrollbar,#rentSchedSheet .tc-body::-webkit-scrollbar{display:none}
#tenantCardSheet .tc-foot{
  position:static;flex:0 0 auto;margin:8px -2px -2px;padding:10px 2px 2px;
  background:var(--card);border-top:1px solid var(--line);z-index:2;
}
.tc-form-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:8px;margin-bottom:8px;
}
.tc-form-grid.tc-form-date{grid-template-columns:minmax(0,1fr) 116px}
.tc-form-grid .field{min-width:0;margin:0}
.tc-form-grid input{width:100%;min-width:0}
@media(max-width:340px){
  .tc-form-grid.tc-form-date{grid-template-columns:minmax(0,1fr) 104px}
}

/* Мероприятия: единый календарный паттерн для списка, детали и форм. */
.event-list{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
.event-card{
  width:100%;padding:0;overflow:hidden;display:block;border:1px solid var(--line);
  border-radius:var(--radius-lg);background:var(--card);color:var(--ink);
  box-shadow:var(--shadow-sm);font:inherit;text-align:left;cursor:pointer;
}
.event-card-media{
  position:relative;height:148px;display:block;overflow:hidden;background:var(--accent-soft);
}
.event-card-cover,.event-card-placeholder{position:absolute;inset:0;display:flex}
.event-card-cover{background-position:center;background-size:cover;background-repeat:no-repeat}
.event-card-placeholder{align-items:center;justify-content:center;color:var(--accent)}
.event-card-placeholder i{font-size:46px;opacity:.74}
.event-date-badge{
  position:absolute;z-index:2;left:12px;top:12px;width:53px;min-height:55px;padding:6px 5px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.64);border-radius:14px;background:rgba(255,255,255,.94);
  color:#17231E;box-shadow:0 5px 14px rgba(14,32,24,.13);
}
.event-date-badge b{font-size:21px;line-height:1;font-weight:850;font-variant-numeric:tabular-nums}
.event-date-badge small{margin-top:3px;font-size:9px;line-height:1;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.event-category{
  position:absolute;z-index:2;right:11px;bottom:10px;max-width:calc(100% - 22px);
  min-height:30px;padding:6px 9px;display:inline-flex;align-items:center;gap:6px;
  border:1px solid rgba(255,255,255,.56);border-radius:10px;background:rgba(255,255,255,.92);
  color:#1C2B24;font-size:10.5px;font-weight:750;line-height:1.2;
}
.event-category i{font-size:15px;color:#0D875F}
.event-card-body{padding:13px 14px 14px;display:flex;flex-direction:column;min-width:0}
.event-card-top{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:8px}
.event-card-top:empty{display:none}
.event-status,.event-rating{
  width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:750;line-height:1.2;
}
.event-status{min-height:26px;padding:5px 8px;border-radius:8px}
.event-status.live{background:var(--success-soft);color:var(--success)}
.event-status.pending{background:var(--warning-soft);color:var(--warning)}
.event-status.danger{background:var(--danger-soft);color:var(--danger)}
.event-status.muted{background:var(--field);color:var(--muted)}
.event-card-rating,.event-rating{color:var(--gold)}
.event-card-title{margin-top:7px;font-size:17px;line-height:1.27;font-weight:800;letter-spacing:-.02em}
.event-card-meta{margin-top:8px;display:flex;flex-direction:column;gap:5px;color:var(--muted)}
.event-card-meta>span{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;line-height:1.35}
.event-card-meta i{margin-top:1px;flex:0 0 auto;color:var(--accent);font-size:14px}
.event-card-desc{
  margin-top:9px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;color:var(--muted);font-size:12px;line-height:1.45;
}
.event-card-reject{
  margin-top:9px;padding:8px 9px;display:flex;align-items:flex-start;gap:6px;
  border-radius:9px;background:var(--danger-soft);color:var(--danger);font-size:11px;line-height:1.35;
}
.event-card-foot{
  margin-top:12px;padding-top:11px;display:flex;align-items:center;gap:10px;
  border-top:1px solid var(--line);font-size:11px;color:var(--muted);
}
.event-card-foot b{margin-right:auto;color:var(--accent-ink);font-size:13px}
.event-card-foot span{display:flex;align-items:center;gap:4px}
.event-card-foot>i{font-size:16px;color:var(--accent)}
.event-card:active{transform:scale(.988)}

.events-my-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:5px 2px 14px;
}
.events-my-head h1{margin:4px 0 5px}
.events-my-head p{margin:0;max-width:290px;color:var(--muted);font-size:12px;line-height:1.45}
.events-my-head>span{
  min-width:34px;height:34px;padding:0 8px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:800;
}

.event-detail-visual{
  position:relative;min-height:228px;overflow:hidden;margin:0 0 14px;
  border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--accent-soft);
}
.event-gallery{height:228px;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.event-gallery::-webkit-scrollbar{display:none}
.event-gallery-slide{
  min-width:100%;height:228px;padding:0;border:0;border-radius:0;background:var(--field);
  scroll-snap-align:start;cursor:zoom-in;
}
.event-gallery-slide img{width:100%;height:100%;display:block;object-fit:cover}
.event-detail-placeholder{
  height:228px;display:flex;align-items:center;justify-content:center;color:var(--accent);
}
.event-detail-placeholder i{font-size:62px;opacity:.7}
.event-detail-overlay{position:absolute;inset:0;z-index:2;pointer-events:none}
.event-date-badge.detail{top:14px;left:14px}
.event-photo-count{
  position:absolute;right:12px;bottom:11px;min-height:30px;padding:6px 9px;
  display:flex;align-items:center;gap:5px;border-radius:10px;background:rgba(23,35,30,.78);
  color:#fff;font-size:10px;font-weight:750;
}
.event-detail-heading{margin:0 2px 15px}
.event-detail-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.event-category.static{position:static;min-height:28px;background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}
.event-detail-heading h1{margin:10px 0 0;font-size:27px;line-height:1.12}
.event-rating{
  min-height:28px;padding:5px 8px;border:1px solid var(--line);border-radius:9px;background:var(--card);
}
.event-rating small{color:var(--muted)}
.event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:13px}
.event-fact{
  min-width:0;min-height:82px;padding:11px;display:flex;align-items:flex-start;gap:9px;
  border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);
}
.event-fact>i{
  width:31px;height:31px;flex:0 0 31px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.event-fact>span{min-width:0;display:flex;flex-direction:column}
.event-fact small{color:var(--muted);font-size:9.5px;line-height:1.25}
.event-fact b{margin-top:4px;font-size:11.5px;line-height:1.3;overflow-wrap:anywhere}
.event-fact em{margin-top:2px;color:var(--accent-ink);font-size:10px;font-style:normal}
.event-detail-section,.event-reviews,.event-manage{
  margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--card);box-shadow:var(--shadow-xs);
}
.event-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.event-section-head>span{
  width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:18px;
}
.event-section-head>div{min-width:0;flex:1}
.event-section-head h2{margin:0;font-size:15px}
.event-section-head p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.35}
.event-section-head>em{
  min-width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:var(--field);color:var(--muted);font-size:10px;font-style:normal;font-weight:750;
}
.event-detail-section>.desc,.event-detail-section>.trans-block,.event-detail-section>p{
  margin:0;color:var(--ink);font-size:13px;line-height:1.62;white-space:pre-wrap;
}
.event-contact-list{display:flex;flex-direction:column;gap:7px}
.event-contact-list a{
  min-height:46px;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);
  color:var(--ink);font-size:12px;font-weight:700;text-decoration:none;
}
.event-contact-list a span{display:flex;align-items:center;gap:8px}
.event-contact-list a span i{font-size:18px;color:var(--accent)}
.event-contact-list a>i{color:var(--muted)}
.event-join{width:100%;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:7px}
.event-reviews{margin-top:12px}
.event-review-form{
  margin-bottom:12px;padding:12px;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--field);
}
.event-review-form>b{font-size:12px}
.event-stars{display:flex;gap:1px;margin:6px 0}
.event-stars button{
  width:42px;height:42px;padding:0;border:0;background:transparent;color:var(--line);
  font-size:24px;cursor:pointer;
}
.event-stars button.on{color:var(--gold)}
.event-review-form textarea{width:100%;margin:0 0 8px;background:var(--card)}
.event-review-form .linkbtn{width:100%;margin-top:5px}
.event-review-list{display:flex;flex-direction:column;gap:8px}
.event-review-item{padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field)}
.event-review-item header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px}
.event-review-item header span{display:flex;align-items:center;gap:4px;color:var(--gold);font-weight:750}
.event-review-item p{margin:7px 0 0;font-size:12px;line-height:1.48}
.event-no-reviews{margin:0;color:var(--muted);font-size:12px}
.event-manage{display:flex;flex-direction:column;gap:8px}
.event-manage .event-section-head{margin-bottom:4px}
.event-manage .btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.event-manage .btn{display:flex;align-items:center;justify-content:center;gap:6px}
.btn.danger,.linkbtn.danger{color:var(--danger)}
.event-report{margin:8px auto 0;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted)}

.event-form-intro{margin:5px 2px 14px}
.event-form-intro h1{margin:4px 0 6px}
.event-form-intro p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.48}
.event-moderation-note{
  margin-bottom:12px;padding:11px 12px;display:flex;align-items:flex-start;gap:9px;
  border:1px solid rgba(13,135,95,.16);border-radius:var(--radius-sm);
  background:var(--accent-soft);color:var(--muted);font-size:11.5px;line-height:1.43;
}
.event-moderation-note i{flex:0 0 auto;margin-top:1px;color:var(--accent);font-size:17px}
.event-form-card{
  margin-bottom:12px;padding:14px;border:1px solid var(--line);
  border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm);
}
.event-form-section-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.event-form-section-head>span{
  width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;
  border-radius:13px;background:var(--accent-soft);color:var(--accent);font-size:19px;
}
.event-form-section-head h2{margin:0;font-size:15px}
.event-form-section-head p{margin:3px 0 0;color:var(--muted);font-size:10.5px;line-height:1.35}
.event-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.event-category-grid button{
  min-height:51px;padding:8px 9px;display:flex;align-items:center;gap:8px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);
  color:var(--ink);font:inherit;font-size:10.5px;font-weight:680;line-height:1.24;text-align:left;cursor:pointer;
}
.event-category-grid button i{
  width:29px;height:29px;flex:0 0 29px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;background:var(--card);color:var(--accent);font-size:16px;
}
.event-category-grid button span{min-width:0;overflow-wrap:anywhere}
.event-category-grid button.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.event-category-grid button.sel i{background:var(--accent);color:#fff}
.event-photo-field{margin-bottom:0}
.event-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px}
.event-photo-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:12px;background:var(--field)}
.event-photo-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.event-photo-thumb button{
  position:absolute;right:5px;top:5px;width:32px;height:32px;padding:0;
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.7);
  border-radius:10px;background:rgba(23,35,30,.74);color:#fff;cursor:pointer;
}
.event-photo-upload{
  width:100%;min-height:58px;padding:10px 11px;display:grid;grid-template-columns:36px 1fr 18px;align-items:center;gap:9px;
  border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink);
  font:inherit;text-align:left;cursor:pointer;
}
.event-photo-upload>i:first-child{
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:18px;
}
.event-photo-upload span{display:flex;flex-direction:column;min-width:0}
.event-photo-upload b{font-size:11.5px}
.event-photo-upload small{margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.3}
.event-photo-upload>i:last-child{color:var(--muted)}
.event-photo-upload.loading{cursor:wait;opacity:.62}
.event-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.event-form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
.event-form-grid.three>.field:first-child{grid-column:1/-1}
.event-form-grid.price{grid-template-columns:minmax(0,2fr) minmax(84px,1fr)}
.event-form-card>.field:last-child,.event-form-grid>.field{margin-bottom:14px}
#app[data-screen="eventedit"]{padding-bottom:calc(184px + env(safe-area-inset-bottom))}
.event-form-page + .main-card{
  position:fixed;z-index:38;left:50%;bottom:calc(87px + env(safe-area-inset-bottom));
  width:min(448px,calc(100vw - 24px));margin:0;transform:translateX(-50%);
  box-shadow:0 14px 34px rgba(16,72,56,.20),0 0 0 5px rgba(242,245,243,.90);
}
body.dark .event-form-page + .main-card{
  box-shadow:0 14px 34px rgba(0,0,0,.38),0 0 0 5px rgba(17,24,20,.92);
}
.event-form-page + .main-card:active{transform:translateX(-50%) scale(.985)}
body.kb-open .event-form-page + .main-card{bottom:calc(10px + env(safe-area-inset-bottom))}

/* Мероприятия используют ту же систему экранов, что и каталог мастеров. */
.event-theme-grid .theme-tile .em i{font-size:27px;color:var(--accent)}
.events-master-tools{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:8px;margin-bottom:12px}
.events-master-tools .svc-search{margin:0}
.event-master-list{display:flex;flex-direction:column;gap:9px}
.event-master-list .event-service-card{margin:0}
.event-service-card{
  position:relative;align-items:center;min-height:86px;padding:12px 42px 12px 12px;gap:11px;
  cursor:pointer;box-shadow:var(--shadow-sm);
}
.event-service-date,.event-master-date{
  width:54px;height:54px;flex:0 0 54px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:14px;background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums;
}
.event-service-date b,.event-master-date b{font-size:20px;line-height:1;font-weight:850}
.event-service-date small,.event-master-date small{margin-top:4px;font-size:9px;line-height:1;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.event-service-copy{min-width:0;flex:1}
.event-service-line{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;flex-wrap:wrap}
.event-service-line .nm{min-width:0;font-size:14px;line-height:1.28;overflow-wrap:anywhere}
.event-service-line .event-status{min-height:23px;padding:4px 7px}
.event-service-copy .meta{display:flex;align-items:flex-start;gap:5px;line-height:1.35;overflow-wrap:anywhere}
.event-service-copy .meta i{flex:0 0 auto;margin-top:1px;color:var(--accent);font-size:13px}
.event-service-foot{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px;font-size:10.5px}
.event-service-foot>span{display:flex;align-items:center;gap:4px;color:var(--muted)}
.event-service-foot>span:first-child{min-width:0;overflow-wrap:anywhere}
.event-service-foot>span i{color:var(--accent)}
.event-service-foot>b{color:var(--accent-ink);font-size:11.5px}
.event-service-foot .event-rating-inline{color:var(--gold)}
.event-service-go{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--accent);font-size:17px}
.event-service-card:active{transform:scale(.988)}

.event-master-head{display:flex;align-items:center;gap:14px;margin:6px 0 10px}
.event-master-head>div:last-child{min-width:0}
.event-master-head h1{margin:0;font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.event-master-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}
.event-master-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:7px}
.event-master-category{margin:8px 0 14px}
.event-master-category .opt{cursor:default}
.event-master-gallery{margin:8px 0 14px;padding-bottom:3px}
.event-master-gallery img{height:132px}
.event-master-facts{
  overflow:hidden;margin:12px 0 16px;border:1px solid var(--line);border-radius:18px;
  background:var(--card);box-shadow:var(--shadow-sm);
}
.event-master-facts>div{display:flex;align-items:center;gap:11px;min-height:59px;padding:10px 12px;border-bottom:1px solid var(--line)}
.event-master-facts>div:last-child{border-bottom:0}
.event-master-facts>div>i{
  width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:17px;
}
.event-master-facts span{min-width:0;display:flex;flex-direction:column;gap:2px}
.event-master-facts small{color:var(--muted);font-size:10px}
.event-master-facts b{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.event-master-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex-wrap:wrap}
.event-master-contacts .btn{min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}

.event-wizard-cats .as-skill-icon i{font-size:16px;color:var(--accent)}
.event-wizard-cats .as-skill.sel .as-skill-icon i{color:var(--accent-ink)}
.event-wizard .as-profile-card>.event-form-grid:last-child .field{margin-bottom:0}
.event-review-summary .event-master-date.sm{width:52px;height:52px;flex-basis:52px;border-radius:16px}
.event-review-summary .as-review-section b{max-width:68%;overflow-wrap:anywhere}
body[data-screen="eventedit"] .screen{padding-bottom:178px}

body.lang-ka h1{font-family:'BPG Banner ExtraSquare Caps',var(--sans)}

@media(max-width:350px){
  .event-service-card{padding-right:34px}
  .event-service-date{width:48px;height:48px;flex-basis:48px}
  .event-master-contacts{grid-template-columns:1fr}
  .event-form-grid,.event-form-grid.price{grid-template-columns:1fr}
  .event-form-grid.three{grid-template-columns:1fr}
  .event-form-grid.three>.field:first-child{grid-column:auto}
}
@media(min-width:700px){
  .event-master-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .event-form-card{padding:18px}
  .event-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
  .event-form-grid.three>.field:first-child{grid-column:auto}
}

/* ══════════════════════════════════════════════════════════════════
   Жильцы, платежи и карточка услуги — единый структурный паттерн.
   Компактные смысловые секции, явные подписи и один зелёный акцент.
   ══════════════════════════════════════════════════════════════════ */

/* Универсальная раскрывающаяся форма */
.fold-toggle{
  width:100%;min-height:62px;margin-top:10px;padding:10px 12px;
  display:grid;grid-template-columns:40px minmax(0,1fr) 24px;align-items:center;gap:10px;
  border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);
  color:var(--ink);font:inherit;cursor:pointer;text-align:left;box-shadow:var(--shadow-xs);
  transition:border-color var(--motion-base) var(--ease-standard),transform var(--motion-fast) var(--ease-standard);
}
.fold-toggle:active{transform:scale(.99)}
.fold-toggle-icon{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:19px;
}
.fold-toggle-label{min-width:0;font-size:14px;font-weight:760;line-height:1.3}
.fold-toggle-chevron{color:var(--muted);font-size:18px;transition:transform var(--motion-base) var(--ease-standard)}
.fold-toggle.open{border-color:rgba(13,135,95,.44)!important}
.fold-toggle.open .fold-toggle-chevron{transform:rotate(180deg)}
.fold-toggle::after{display:none!important}
.fold-panel{animation:ui-panel-in var(--motion-base) var(--ease-standard)}
.fold-panel[hidden]{display:none!important}
@keyframes ui-panel-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.fold-panel .form-card{
  margin:8px 0 0;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--field);box-shadow:none;
}
.form-section-label{
  display:flex;align-items:center;gap:8px;margin:2px 0 11px;color:var(--muted);
  font-size:10px;font-weight:820;letter-spacing:.1em;text-transform:uppercase;
}
.form-section-label:not(:first-child){margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.form-submit{margin-top:4px}

/* Семья, арендаторы и питомцы */
#unitPplSheet.people-sheet,#petsSheet.people-sheet{
  width:min(100%,520px);max-height:94dvh;padding:12px 14px calc(22px + env(safe-area-inset-bottom));
  background:var(--bg);scroll-padding-bottom:24px;
}
.people-sheet::before{margin-bottom:9px}
.people-sheet-head{
  min-height:52px;margin:0 0 10px!important;padding:0 46px 0 0!important;
  justify-content:flex-start!important;text-align:left!important;
}
.sheet-title-group{min-width:0;display:flex;align-items:center;gap:10px}
.sheet-title-icon{
  width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:19px;
}
.sheet-title-group>span:last-child{min-width:0}
.sheet-title-group h3{font-size:17px!important;line-height:1.2}
.sheet-title-group small{display:block;margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.3}
.people-sheet .sheet-x{
  width:46px;height:46px;min-width:46px;min-height:46px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--field);color:var(--muted);font-size:20px;
}
.people-unit-card{
  display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;
  margin-bottom:10px;padding:13px;border:1px solid rgba(13,135,95,.18);
  border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm);
}
.people-unit-icon{
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:21px;
}
.people-unit-copy{min-width:0}
.people-unit-title{font-size:15px;font-weight:790;line-height:1.25;overflow-wrap:anywhere}
.people-unit-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.people-unit-meta span{
  display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;
  border-radius:8px;background:var(--field);color:var(--muted);font-size:9.5px;font-weight:670;
}
.people-unit-balance{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.people-unit-balance small{color:var(--muted);font-size:9.5px}
.people-unit-balance strong{font-size:15px;color:var(--accent);font-variant-numeric:tabular-nums}
.people-unit-balance strong.is-debt{color:var(--danger)}
.people-unit-extra,.people-unit-owner{
  grid-column:1/-1;display:flex;align-items:center;gap:8px;margin-top:1px;padding-top:10px;
  border-top:1px solid var(--line);color:var(--muted);font-size:10.5px;line-height:1.4;
}
.people-unit-extra i,.people-unit-owner>i{color:var(--accent);font-size:16px}
.people-unit-extra span,.people-unit-owner span{min-width:0;flex:1;overflow-wrap:anywhere}
.people-unit-owner a{
  width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:11px;background:var(--field);color:var(--accent);text-decoration:none;
}
.tenant-unit-heading{display:flex;align-items:center;gap:11px;margin:6px 0 14px}
.tenant-unit-title-icon,.tenant-unit-section-icon{
  display:grid;place-items:center;flex:0 0 auto;border-radius:13px;
  background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));color:var(--accent);
}
.tenant-unit-title-icon{width:46px;height:46px;font-size:21px}
.tenant-unit-heading>div{min-width:0}
.tenant-unit-title{margin:0;font-size:23px;line-height:1.18;letter-spacing:-.02em}
.tenant-unit-sub{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.tenant-unit-section-title{display:flex;align-items:center;gap:9px;margin:16px 2px 10px}
.tenant-unit-section-title h2{margin:0;font-size:19px;line-height:1.2}
.tenant-unit-section-icon{width:36px;height:36px;font-size:17px}
.people-section{
  margin-bottom:10px;padding:13px;border:1px solid var(--line);
  border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-xs);
}
.people-section-head{margin-bottom:10px}
.people-section-head>div{display:flex;align-items:center;gap:10px}
.people-section-head>div>span:last-child{min-width:0;display:flex;flex-direction:column}
.people-section-head b{font-size:15px;line-height:1.25}
.people-section-head small{margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.35}
.people-section-icon{
  width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:17px;
}
.people-list,.pet-resident-list{display:flex;flex-direction:column;gap:8px}
.people-loading{padding:18px;color:var(--muted);font-size:12px;text-align:center}
.people-empty-compact{
  display:flex;align-items:center;gap:10px;padding:11px;border:1px dashed var(--line);
  border-radius:14px;background:var(--field);
}
.people-empty-compact>span{
  width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--card);color:var(--accent);font-size:18px;
}
.people-empty-compact>div{min-width:0;display:flex;flex-direction:column}
.people-empty-compact b{font-size:12px;line-height:1.3}
.people-empty-compact small{margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.4}
.member-card,.pet-resident-card{
  overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--card);box-shadow:var(--shadow-xs);
}
.mcm-top,.pet-resident-card{
  display:grid;grid-template-columns:40px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:11px;
}
.member-avatar,.pet-resident-icon{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:18px;
}
.pet-resident-icon{font-size:20px}
.mcm-info,.pet-resident-copy{min-width:0;display:flex;flex-direction:column}
.mcm-name,.pet-resident-copy b{font-size:13px;font-weight:760;line-height:1.3;overflow-wrap:anywhere}
.mcm-meta,.pet-resident-copy small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.member-remove{
  width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;
  border:1px solid transparent;border-radius:12px;background:var(--danger-soft);
  color:var(--danger);font:inherit;font-size:18px;cursor:pointer;
}
.people-toggle-row{
  min-height:60px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;
}
.member-card .people-toggle-row{
  min-height:54px;margin:0 10px 10px;border-color:transparent;border-top-color:var(--line);
  border-radius:0;padding:9px 1px 0;background:transparent;
}
.people-toggle-copy{min-width:0;display:flex;align-items:center;gap:9px}
.people-toggle-copy>i{
  width:34px;height:34px;flex:0 0 34px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.people-toggle-copy>span{min-width:0;display:flex;flex-direction:column}
.people-toggle-copy b{font-size:12.5px;line-height:1.3}
.people-toggle-copy small{margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.35}
.toggle-control{position:relative;width:48px;height:28px;flex:0 0 48px}
.toggle-control input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.toggle-track{
  position:absolute;inset:0;border:1px solid var(--line);border-radius:99px;background:var(--field);
  transition:background var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard);
}
.toggle-track::after{
  content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;
  background:var(--card);box-shadow:0 2px 6px rgba(18,38,29,.16);
  transition:transform var(--motion-base) var(--ease-standard);
}
.toggle-control input:checked+.toggle-track{border-color:var(--accent-deep);background:var(--accent-deep)}
.toggle-control input:checked+.toggle-track::after{transform:translateX(20px)}
.toggle-control input:focus-visible+.toggle-track{outline:3px solid rgba(13,135,95,.22);outline-offset:2px}
.member-note{
  display:flex;align-items:center;gap:7px;margin:0 10px 10px;padding:8px 9px;
  border-radius:10px;background:var(--warning-soft);color:var(--warning);font-size:10px;line-height:1.35;
}
.people-sheet{background:var(--bg);scroll-padding-bottom:24px}
.people-property-card{border-color:rgba(13,135,95,.14);border-radius:22px;background:linear-gradient(135deg,rgba(233,247,240,.92),var(--card) 58%,rgba(249,242,222,.72));box-shadow:0 11px 26px rgba(28,57,45,.08)}
.people-sheet .people-section{padding:12px;border-radius:22px;box-shadow:0 9px 22px rgba(28,57,45,.06)}
.people-member-stack{overflow:hidden;gap:0;padding:5px;border:1px solid rgba(28,57,45,.08);border-radius:19px;background:var(--field)}
.people-member-stack>.member-card{border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--card);box-shadow:none}.people-member-stack>.member-card:first-child{border-radius:14px 14px 0 0}.people-member-stack>.member-card:last-child{border-bottom:0;border-radius:0 0 14px 14px}.people-member-stack>.member-card:only-child{border-radius:14px}
.people-member-row .mcm-top{grid-template-columns:40px minmax(0,1fr) 44px;min-height:68px;padding:10px 11px}.people-member-row .member-avatar{border-radius:14px;background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));color:var(--ink)}
.member-more{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:13px;background:transparent;color:var(--muted);font:inherit;font-size:20px;cursor:pointer}.member-more[aria-expanded="true"]{background:var(--field);color:var(--ink)}
.member-action-panel{margin:0 9px 9px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--field)}.member-action-panel[hidden]{display:none}.member-action-panel .people-toggle-row{margin:0;border:0;border-radius:10px;background:var(--card)}
.member-remove-row{width:100%;min-height:44px;display:flex;align-items:center;gap:9px;margin-top:6px;padding:9px 11px;border:0;border-radius:10px;background:transparent;color:var(--danger);font:inherit;font-size:11px;font-weight:730;text-align:left;cursor:pointer}.member-remove-row i{font-size:17px}.member-remove-row:active{background:var(--danger-soft)}
body.dark .people-property-card{background:linear-gradient(135deg,rgba(42,69,57,.88),var(--card) 60%,rgba(77,64,33,.38))}

/* Добавление квартиры / паркинга */
#unitSheet.unit-register-sheet{
  width:min(100%,520px);max-height:94dvh;padding:12px 14px calc(20px + env(safe-area-inset-bottom));
  background:var(--bg);scroll-padding-bottom:28px;
}
.unit-register-head{margin-bottom:8px!important;padding-left:2px!important}
.unit-register-head .sheet-title-icon{
  border:1px solid rgba(13,135,95,.12);background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));
  color:var(--accent);
}
.unit-register-head .sheet-title-group h3{font-size:17px!important;font-weight:790;letter-spacing:-.015em}
.unit-register-body{display:flex;flex-direction:column;gap:10px}
.unit-form-card{
  padding:13px;border:1px solid rgba(28,57,45,.09);border-radius:22px;
  background:var(--card);box-shadow:0 9px 23px rgba(28,57,45,.065);
}
.unit-form-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.unit-form-card-head>span{
  width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:13px;
  background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));color:var(--accent);font-size:18px;
}
.unit-form-card-head>div{min-width:0}.unit-form-card-head h4{margin:0;color:var(--ink);font-size:14px;line-height:1.25}.unit-form-card-head small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.35}
.unit-kind-segment{margin:0;padding:4px;border:1px solid var(--line);background:var(--field)}
.unit-kind-segment .seg-b{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px}
.unit-kind-segment .seg-b.on{border:1px solid rgba(13,135,95,.2);background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));box-shadow:none}
.unit-form-card>.field{margin-bottom:11px}.unit-form-card>.field:last-of-type{margin-bottom:0}
.unit-form-card .field label{margin:0 0 6px 1px;font-size:11px;line-height:1.3;font-weight:760}
.unit-form-card .field input,.unit-form-card .field select{
  min-height:52px;padding:0 14px;border:1px solid rgba(28,57,45,.13);border-radius:15px;
  background:var(--card);color:var(--ink);font-size:14px;font-weight:620;box-shadow:0 1px 0 rgba(255,255,255,.7) inset;
}
.unit-form-card .field input::placeholder{color:var(--muted);font-weight:520;opacity:.72}
.unit-form-card .field input:focus,.unit-form-card .field select:focus{border-color:rgba(13,135,95,.55);box-shadow:0 0 0 4px rgba(13,135,95,.09)}
.unit-select-control{position:relative;display:block}
.unit-select-control select{
  width:100%;padding-right:42px!important;-webkit-appearance:none!important;appearance:none!important;cursor:pointer;
}
.unit-select-control>i{position:absolute;top:50%;right:14px;transform:translateY(-50%);color:var(--accent);font-size:17px;pointer-events:none}
.unit-select-control:has(select:disabled)>i{color:var(--muted);opacity:.55}
.unit-form-card .field select:disabled{background:var(--field);color:var(--muted);opacity:.72;cursor:not-allowed}
.unit-form-card .set-help{margin-top:6px;padding:7px 9px;border-radius:10px;background:var(--accent-soft);color:var(--muted);font-size:9.5px;line-height:1.35}
.unit-form-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:9px}.unit-form-grid .field{min-width:0;margin:0}
.unit-register-sheet #u_area.locked,.owner-register-sheet #o_area.locked,.tenant-register-sheet #t_area.locked{
  border-color:rgba(13,135,95,.28);background:linear-gradient(135deg,var(--accent-soft),var(--card) 58%,var(--gold-soft));color:var(--accent-ink);font-weight:760;
}
.unit-registry-result{margin-top:9px;padding:8px 10px;border-radius:11px;background:var(--accent-soft);color:var(--accent-ink);font-size:10px;line-height:1.4}.unit-registry-result:empty{display:none}
.unit-verification-note{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid rgba(179,145,61,.13);border-radius:18px;background:linear-gradient(135deg,var(--accent-soft),var(--card) 52%,var(--gold-soft))}
.unit-verification-note>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.68);color:var(--accent);font-size:18px}.unit-verification-note b{display:block;font-size:11.5px}.unit-verification-note p{margin:3px 0 0;color:var(--muted);font-size:9.5px;line-height:1.4}
.unit-submit{min-height:54px;margin:0!important;display:flex!important;align-items:center;justify-content:space-between;padding:13px 16px!important;border:1px solid rgba(13,135,95,.14)!important;border-radius:17px!important;background:linear-gradient(135deg,var(--accent-soft),var(--card) 48%,var(--gold-soft))!important;color:var(--ink)!important;box-shadow:0 8px 20px rgba(28,57,45,.07)!important;text-align:left}.unit-submit i{color:var(--accent);font-size:18px}.unit-submit:active{transform:scale(.985)}
body.dark #unitSheet.unit-register-sheet{background:var(--bg)}body.dark .unit-form-card{border-color:var(--line);box-shadow:none}body.dark .unit-verification-note,body.dark .unit-submit{background:linear-gradient(135deg,var(--accent-soft),var(--card) 58%,var(--gold-soft))!important}.unit-submit:focus-visible{outline:3px solid rgba(13,135,95,.2);outline-offset:2px}

.people-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#fa_rel{grid-template-columns:repeat(6,minmax(0,1fr))}
#fa_rel .opt{grid-column:span 2}
#fa_rel .opt:nth-last-child(-n+2){grid-column:span 3}
.people-gender-options,.pet-kind-options{display:flex;gap:7px;flex-wrap:wrap}
.people-sheet .opt{
  min-height:44px;margin:0;display:flex;align-items:center;justify-content:center;gap:5px;
  border-radius:12px!important;background:var(--card)!important;color:var(--ink)!important;
  box-shadow:none!important;font-size:11.5px;
}
.people-sheet .opt.sel{
  border-color:var(--accent)!important;background:var(--accent-soft)!important;
  color:var(--accent-ink)!important;box-shadow:none!important;
}
.people-sheet .field{margin-bottom:12px}
.people-sheet .field input{background:var(--card)!important}
.people-sheet .form-submit{background:var(--accent-deep)!important;color:#fff!important;border-color:var(--accent-deep)!important}
.people-sheet .form-submit::after{color:#fff!important}
.people-done{margin-top:10px}

@media(max-width:360px){
  #unitSheet.unit-register-sheet{padding-inline:10px}.unit-register-head .sheet-title-group small{display:none}.unit-form-card{padding:11px;border-radius:19px}.unit-form-grid{grid-template-columns:1fr}.unit-form-card-head small{font-size:9px}
}

/* Платежи */
.payments-screen{
  --pay-paid:#0B8864;--pay-paid-bg:color-mix(in srgb,var(--card) 58%,#DDF4E9);
  --pay-review:#9B7422;--pay-review-bg:color-mix(in srgb,var(--card) 56%,#F8EDCF);
  --pay-unpaid:#68736E;--pay-unpaid-bg:color-mix(in srgb,var(--card) 64%,#E8ECE9);
  --pay-overdue:#B44D41;--pay-overdue-bg:color-mix(in srgb,var(--card) 58%,#F9DDD8);
  display:flex;flex-direction:column;gap:12px;
}
.payments-summary{
  padding:13px;border:1px solid rgba(13,135,95,.18);border-radius:var(--radius-lg);
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 34%,var(--card)),color-mix(in srgb,var(--gold-soft) 28%,var(--card)));
  box-shadow:var(--shadow-sm);
}
.payments-summary-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:11px}
.payments-summary-head>div{min-width:0;display:flex;flex-direction:column}
.payments-summary-head small{color:#A17B27;font-size:8px;font-weight:850;letter-spacing:.15em}
.payments-summary-head b{margin-top:3px;font-size:15px;line-height:1.2}
.payments-summary-head>span{flex:0 0 auto;display:flex;align-items:baseline;gap:4px;color:var(--muted);font-size:8.5px}
.payments-summary-head>span strong{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}
.payments-overview{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
}
.payments-overview>div{
  min-width:0;min-height:62px;display:grid;grid-template-columns:31px minmax(0,1fr);align-items:center;gap:8px;
  padding:9px;border:1px solid transparent;border-radius:14px;
}
.payments-overview>div>i{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;font-size:15px}
.payments-overview>div>span{min-width:0;display:flex;flex-direction:column}
.payments-overview .is-paid{border-color:color-mix(in srgb,var(--pay-paid) 20%,transparent);background:var(--pay-paid-bg);color:var(--pay-paid)}
.payments-overview .is-review{border-color:color-mix(in srgb,var(--pay-review) 20%,transparent);background:var(--pay-review-bg);color:var(--pay-review)}
.payments-overview .is-unpaid{border-color:color-mix(in srgb,var(--pay-unpaid) 17%,transparent);background:var(--pay-unpaid-bg);color:var(--pay-unpaid)}
.payments-overview .is-overdue{border-color:color-mix(in srgb,var(--pay-overdue) 20%,transparent);background:var(--pay-overdue-bg);color:var(--pay-overdue)}
.payments-overview>div>i{background:color-mix(in srgb,currentColor 10%,var(--card))}
.payments-overview small{display:block;color:currentColor;font-size:8.5px;line-height:1.2}
.payments-overview strong{
  display:block;margin-top:3px;color:currentColor;font-size:18px;line-height:1;
  font-variant-numeric:tabular-nums;
}
.payment-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.payment-filter-chip{
  min-width:0;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;
  border:1px solid var(--line);border-radius:12px;background:var(--card);
  color:var(--ink);font:inherit;font-size:10.5px;font-weight:730;line-height:1.2;text-align:left;cursor:pointer;
}
.payment-filter-chip[data-tone="all"]{grid-column:1/-1}
.payment-filter-chip span{min-width:0;overflow-wrap:anywhere}
.payment-filter-chip b{
  min-width:21px;height:21px;padding:0 6px;display:flex;align-items:center;justify-content:center;
  border-radius:99px;background:var(--field);color:var(--muted);font-size:9.5px;font-variant-numeric:tabular-nums;
}
.payment-filter-chip[data-tone="all"].on{border-color:color-mix(in srgb,var(--accent) 34%,#C7A34A);background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));color:var(--accent-ink)}
.payment-filter-chip[data-tone="paid"].on{border-color:color-mix(in srgb,var(--pay-paid) 36%,var(--line));background:var(--pay-paid-bg);color:var(--pay-paid)}
.payment-filter-chip[data-tone="review"].on{border-color:color-mix(in srgb,var(--pay-review) 36%,var(--line));background:var(--pay-review-bg);color:var(--pay-review)}
.payment-filter-chip[data-tone="unpaid"].on{border-color:color-mix(in srgb,var(--pay-unpaid) 30%,var(--line));background:var(--pay-unpaid-bg);color:var(--pay-unpaid)}
.payment-filter-chip[data-tone="overdue"].on{border-color:color-mix(in srgb,var(--pay-overdue) 34%,var(--line));background:var(--pay-overdue-bg);color:var(--pay-overdue)}
.payment-filter-chip[data-tone].on b{background:color-mix(in srgb,currentColor 11%,var(--card))!important;color:currentColor!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 26%,transparent)!important}
.payment-scope{padding:11px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm)}
.payment-scope>small{display:block;margin:0 2px 8px;color:var(--muted);font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.payment-scope-filters{display:grid;grid-template-columns:1fr;gap:7px}
.payment-scope-filters>*{min-width:0;margin:0!important}
.payment-scope-filters .ent-btn{min-height:48px;padding:9px 11px;font-size:11px;border-radius:12px}
.payment-scope-filters .ent-btn>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payment-scope-filters .ent-btn i.ti{font-size:16px}
.payment-list{display:flex;flex-direction:column;gap:9px}
.payment-card{
  position:relative;overflow:hidden;padding:13px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--card);box-shadow:var(--shadow-sm);
}
.payment-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--pay-unpaid)}
.payment-card.is-paid::before{background:var(--pay-paid)}
.payment-card.is-review::before{background:var(--pay-review)}
.payment-card.is-overdue::before{background:var(--pay-overdue)}
.payment-card-head{
  display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;
}
.payment-object-icon{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:13px;background:var(--pay-unpaid-bg);color:var(--pay-unpaid);font-size:19px;
}
.payment-card.is-paid .payment-object-icon{background:var(--pay-paid-bg);color:var(--pay-paid)}
.payment-card.is-review .payment-object-icon{background:var(--pay-review-bg);color:var(--pay-review)}
.payment-card.is-overdue .payment-object-icon{background:var(--pay-overdue-bg);color:var(--pay-overdue)}
.payment-object-copy{min-width:0;display:flex;flex-direction:column}
.payment-object-copy b{font-size:13.5px;line-height:1.3;overflow-wrap:anywhere}
.payment-object-copy small{margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.3;overflow-wrap:anywhere}
.payment-amount{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}
.payment-amount strong{font-size:15px;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.payment-amount strong small{font-size:10px;color:var(--muted)}
.payment-status-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:99px;font-size:9.5px;font-weight:780;line-height:1;white-space:nowrap}
.payment-status-pill i{font-size:12px}
.payment-status-pill.is-paid{background:var(--pay-paid-bg);color:var(--pay-paid)}
.payment-status-pill.is-review{background:var(--pay-review-bg);color:var(--pay-review)}
.payment-status-pill.is-unpaid{background:var(--pay-unpaid-bg);color:var(--pay-unpaid)}
.payment-status-pill.is-overdue{background:var(--pay-overdue-bg);color:var(--pay-overdue)}
.payment-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.payment-meta span{
  min-width:0;display:flex;align-items:center;gap:4px;color:var(--muted);
  font-size:9.5px;line-height:1.3;overflow-wrap:anywhere;
}
.payment-meta i{color:var(--accent);font-size:13px}
.payment-card.is-review .payment-meta i{color:var(--pay-review)}
.payment-card.is-overdue .payment-meta i{color:var(--pay-overdue)}
.payment-receipt,.payment-mark-paid{
  width:100%;min-height:48px;margin-top:10px;padding:8px 10px;display:grid;
  grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;gap:8px;
  border:1px solid var(--line);border-radius:13px;background:var(--field);
  color:var(--ink);font:inherit;font-size:11.5px;font-weight:720;text-decoration:none;text-align:left;cursor:pointer;
}
.payment-receipt>i:first-child,.payment-mark-paid>i:first-child{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:15px;
}
.payment-receipt>i:last-child,.payment-mark-paid>i:last-child{color:var(--muted)}
.payment-comment{
  display:flex;align-items:flex-start;gap:7px;margin-top:9px;padding:9px 10px;
  border-radius:11px;background:var(--field);color:var(--muted);font-size:10px;line-height:1.4;
}
.payment-comment i{flex:0 0 auto;margin-top:1px;color:var(--accent)}
.payment-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.payment-actions .btn:first-child{grid-column:1/-1}
.payment-actions .btn{min-width:0;min-height:46px;padding:8px 6px;font-size:10px;line-height:1.2}
.payment-actions .btn i{font-size:15px}

/* Платежи: месяц → адрес → подъезд → объект */
.payments-summary-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--card) 86%,var(--accent-soft))}
.payments-summary-line span{color:var(--muted);font-size:10px}.payments-summary-line strong{color:var(--accent);font-size:19px;font-variant-numeric:tabular-nums;white-space:nowrap}
.payments-period-panel,.payment-address-group,.payment-entrance-group{overflow:hidden;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow-sm)}
.payments-period-panel{border-radius:var(--radius-lg)}
.payments-period-panel>summary,.payment-address-group>summary,.payment-entrance-group>summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.payments-period-panel>summary::-webkit-details-marker,.payment-address-group>summary::-webkit-details-marker,.payment-entrance-group>summary::-webkit-details-marker{display:none}
.payments-period-panel>summary{min-height:70px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px}
.payments-period-icon,.payment-group-icon{display:grid;place-items:center;background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));color:var(--accent)}
.payments-period-icon{width:42px;height:42px;border-radius:13px;font-size:19px}
.payments-period-copy,.payment-group-copy{min-width:0;display:flex;flex-direction:column}.payments-period-copy small,.payment-group-copy small{color:#9B7625;font-size:8px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.payments-period-copy b{margin-top:3px;font-size:15px}
.payments-period-due{display:grid;grid-template-columns:auto 17px;align-items:center;justify-items:end;column-gap:7px}.payments-period-due small{grid-column:1;color:var(--muted);font-size:8.5px}.payments-period-due b{grid-column:1;color:var(--accent);font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.payments-period-due i{grid-column:2;grid-row:1/3;color:var(--muted);transition:transform .2s ease}.payments-period-panel[open]>.payments-period-due i,.payments-period-panel[open]>summary .payments-period-due i{transform:rotate(180deg)}
.payments-period-body{display:flex;flex-direction:column;gap:9px;padding:0 12px 12px;border-top:1px solid var(--line)}.payments-period-body>.payments-overview{margin-top:11px}
.payments-period-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.payments-period-actions button{min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:13px;background:var(--field);color:var(--ink);font:inherit;font-size:10px;font-weight:760;cursor:pointer}.payments-period-actions button:last-child{border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));color:var(--accent-ink)}.payments-period-actions i{font-size:16px}.payments-period-actions button.is-loading{opacity:.58;pointer-events:none}
.payment-directory{display:flex;flex-direction:column;gap:10px}.payment-address-group{border-radius:var(--radius-lg)}
.payment-address-group>summary{min-height:76px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px}.payment-group-icon{width:44px;height:44px;border-radius:14px;font-size:19px}.payment-group-copy b{margin-top:3px;font-size:13.5px;line-height:1.28;overflow-wrap:anywhere}.payment-group-copy em{margin-top:3px;color:var(--muted);font-size:9px;font-style:normal}.payment-group-total{display:grid;grid-template-columns:auto 16px;justify-items:end;align-items:center;column-gap:7px}.payment-group-total small{grid-column:1;color:var(--muted);font-size:8px}.payment-group-total b{grid-column:1;color:var(--pay-overdue);font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.payment-group-total i{grid-column:2;grid-row:1/3;color:var(--muted);transition:transform .2s ease}.payment-address-group[open]>summary .payment-group-total i{transform:rotate(180deg)}
.payment-address-body{display:flex;flex-direction:column;gap:8px;padding:10px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--field) 62%,var(--card))}
.payment-entrance-group{border-radius:16px;box-shadow:none}.payment-entrance-group>summary{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px}.payment-entrance-group>summary>span{min-width:0;display:flex;align-items:center;gap:7px}.payment-entrance-group>summary>span:first-child i{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:15px}.payment-entrance-group>summary b{font-size:11.5px}.payment-entrance-group>summary small{color:var(--muted);font-size:8.5px}.payment-entrance-group>summary>span:last-child b{color:var(--pay-overdue);font-size:11px;white-space:nowrap}.payment-entrance-group>summary>span:last-child i{color:var(--muted);transition:transform .2s ease}.payment-entrance-group[open]>summary>span:last-child i{transform:rotate(180deg)}
.payment-entrance-body{display:flex;flex-direction:column;gap:8px;padding:9px;border-top:1px solid var(--line)}
.payment-property-group{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--card)}.payment-property-head{min-height:56px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px}.payment-property-head>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));color:var(--accent);font-size:17px}.payment-property-head>div{min-width:0;display:flex;flex-direction:column}.payment-property-head>div b{font-size:12px}.payment-property-head>div small{margin-top:2px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-property-head>strong{color:var(--pay-overdue);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.payment-property-operations{display:flex;flex-direction:column;gap:7px;padding:8px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--field) 46%,var(--card))}.payment-card.is-nested{padding:10px;border-radius:12px;box-shadow:none}.payment-card.is-nested .payment-card-head{grid-template-columns:minmax(0,1fr) auto}.payment-card.is-nested .payment-object-copy b{font-size:11px}.payment-card.is-nested .payment-object-copy small,.payment-card.is-nested .payment-meta span{font-size:8.5px}.payment-card.is-nested .payment-amount strong{font-size:13px}
@media(max-width:430px){.payments-period-panel>summary{grid-template-columns:38px minmax(0,1fr) auto;padding:10px}.payments-period-icon{width:38px;height:38px}.payment-address-group>summary{grid-template-columns:39px minmax(0,1fr) auto;padding:10px}.payment-group-icon{width:39px;height:39px}.payment-group-copy b{font-size:12px}.payment-group-total small{display:none}.payment-group-total b{font-size:11.5px}.payment-property-head{grid-template-columns:34px minmax(0,1fr) auto}.payment-property-head>span{width:34px;height:34px}.payments-period-actions button{font-size:9.5px}}
@media(max-width:360px){.payments-period-copy small,.payment-group-copy small{display:none}.payments-period-copy b{font-size:13px}.payments-period-due small{display:none}.payments-period-due b{font-size:12px}.payment-group-copy em{font-size:8px}.payment-entrance-group>summary small{display:none}.payment-property-head>strong{font-size:11px}.payment-property-head>div small{max-width:130px}}

/* Детальная карточка услуги */
.service-detail-shell{display:flex;flex-direction:column;gap:11px}
.service-profile-hero,.service-section{
  padding:14px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--card);box-shadow:var(--shadow-sm);
}
.service-profile-main{display:flex;align-items:center;gap:12px}
.service-profile-avatar{
  width:68px;height:68px;flex:0 0 68px;border-radius:20px;background:center/cover no-repeat var(--field);
  box-shadow:inset 0 0 0 1px var(--line);
}
.service-profile-avatar.is-empty{display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:26px}
.service-profile-copy{min-width:0;flex:1}
.service-profile-title{font-size:19px;font-weight:810;line-height:1.18;letter-spacing:-.025em;overflow-wrap:anywhere}
.service-profile-provider{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.service-profile-verification{margin-top:7px}
.service-profile-verification .verif{display:inline-flex;margin:0}
.service-profile-stats{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);
}
.service-profile-stats>div{
  min-height:48px;padding:9px 10px;display:flex;flex-direction:column;justify-content:center;
  border-radius:12px;background:var(--field);
}
.service-profile-stats small{color:var(--muted);font-size:9px}
.service-profile-stats strong{margin-top:2px;font-size:13px}
.service-rating{color:var(--gold);font-size:12px;font-weight:760;line-height:1.35}
.service-specialties{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 4px;scrollbar-width:none;scroll-snap-type:x proximity}
.service-specialties::-webkit-scrollbar{display:none}
.service-specialties>span{
  min-height:38px;flex:0 0 auto;padding:8px 10px;display:flex;align-items:center;gap:5px;
  border:1px solid rgba(13,135,95,.22);border-radius:12px;background:var(--accent-soft);
  color:var(--accent-ink);font-size:10.5px;scroll-snap-align:start;
}
.service-specialties b{font-weight:720}
.service-specialties i{font-size:14px}
.service-section-heading{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.service-section-heading>span{
  width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:18px;
}
.service-section-heading>div{min-width:0}
.service-section-heading h2{margin:0;font-size:15px}
.service-section-heading small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.3}
.service-about-section .lead{margin:0;font-size:12.5px;line-height:1.55}
.service-gallery-section{padding-bottom:12px}
.service-gallery-section .gallery-strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.service-gallery-section .gallery-strip::-webkit-scrollbar{display:none}
.service-gallery-section .gallery-strip img{
  width:76%;height:156px;flex:0 0 76%;display:block;object-fit:cover;
  border-radius:14px;scroll-snap-align:start;background:var(--field);
}
.service-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.service-contact-action{
  min-width:0;min-height:54px;padding:8px 10px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;
  align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;background:var(--field);
  color:var(--ink);font:inherit;font-size:11.5px;text-align:left;text-decoration:none;cursor:pointer;
}
.service-contact-action>span{
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--card);color:var(--accent);font-size:16px;
}
.service-contact-action b{min-width:0;font-weight:720;overflow-wrap:anywhere}
.service-contact-action>i{color:var(--muted)}
.service-contact-action.is-primary{border-color:rgba(13,135,95,.25);background:var(--accent-soft);color:var(--accent-ink)}
.service-contact-action.is-full{width:100%;grid-template-columns:36px minmax(0,1fr) 18px}
.service-lead-stats{
  display:flex;align-items:flex-start;gap:7px;margin-top:9px;padding:9px 10px;
  border-radius:11px;background:var(--field);color:var(--muted);font-size:10px;line-height:1.4;
}
.service-lead-stats i{flex:0 0 auto;color:var(--accent)}
.service-reviews-section .review{margin-bottom:8px;background:var(--field);box-shadow:none}
.service-reviews-section .acc{margin-top:8px;box-shadow:none}
.service-review-form{padding-top:2px}
.service-review-form .stars button{min-width:40px;min-height:40px}
.service-danger-action{
  width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(182,77,60,.24);border-radius:var(--radius-md);
  background:var(--danger-soft);color:var(--danger);font:inherit;font-size:12px;font-weight:740;cursor:pointer;
}

/* Плавающая связь с администратором: подписанная Telegram-blue кнопка поверх прокрутки. */
#tgFab{
  right:max(16px,calc((100vw - 480px)/2 + 16px));bottom:calc(96px + env(safe-area-inset-bottom));
  width:auto;min-width:58px;max-width:calc(100vw - 32px);height:54px;padding:0 18px 0 15px;gap:8px;
  border:1px solid rgba(255,255,255,.72);border-radius:27px;background:#229ED9;color:#fff;
  box-shadow:0 12px 28px rgba(34,158,217,.36);font:inherit;font-size:12px;font-weight:800;white-space:nowrap;
  z-index:var(--z-main-action);transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard);
}
#tgFab i{margin:0;color:#fff;font-size:24px;line-height:1}
#tgFab span{display:block;color:#fff;line-height:1}
#tgFab svg{display:none}
#tgFab:active{transform:scale(.94)}
#tgFab:focus-visible{outline:3px solid rgba(34,158,217,.26);outline-offset:3px}

body.dark .people-unit-card,body.dark .people-section,body.dark .member-card,
body.dark .pet-resident-card,body.dark .payment-card,body.dark .payments-overview,
body.dark .service-profile-hero,body.dark .service-section{box-shadow:none}
body.dark .toggle-track::after{background:#F5F8F6}

@media(max-width:350px){
  #unitPplSheet.people-sheet,#petsSheet.people-sheet{padding-left:10px;padding-right:10px}
  .people-unit-card{grid-template-columns:42px minmax(0,1fr)}
  .people-unit-icon{width:42px;height:42px}
  .people-unit-balance{grid-column:1/-1;align-items:flex-start;padding-top:9px;border-top:1px solid var(--line);text-align:left}
  .people-choice-grid,.service-contact-grid{grid-template-columns:1fr}
  .payments-summary{padding:10px}.payments-overview{gap:6px}.payments-overview>div{grid-template-columns:27px minmax(0,1fr);gap:6px;padding:8px}.payments-overview>div>i{width:27px;height:27px}.payments-overview small{font-size:7.5px}.payments-overview strong{font-size:17px}
  .payment-card-head{grid-template-columns:38px minmax(0,1fr)}
  .payment-object-icon{width:38px;height:38px}
  .payment-amount{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;padding-top:9px;border-top:1px solid var(--line)}
  .service-profile-avatar{width:58px;height:58px;flex-basis:58px;border-radius:17px}
  .service-profile-title{font-size:17px}
}

@media(prefers-reduced-motion:reduce){
  .fold-panel{animation:none}
  .fold-toggle,.fold-toggle-chevron,.toggle-track,.toggle-track::after,#tgFab{transition:none}
}

/* ============================================================
   ЕДИНЫЙ МЯГКИЙ СТИЛЬ (2026-07-26): вместо тёмно-зелёной заливки —
   стиль «выбранной карточки корта»: фон var(--accent-soft), зелёная
   рамка, тёмно-зелёный текст. Через переменные ui-system — тёмная
   тема адаптируется сама. Блок в конце файла: перебивает !important
   из styles.css (грузится позже).
   ============================================================ */

/* ── главные кнопки (CTA): Продолжить, Забронировать и т.п. ── */
.mainbtn button,.btn.pri,.btn.tg-green,.btn.tg-btn{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  border:1px solid rgba(22,160,106,.45)!important;
  box-shadow:0 8px 22px rgba(20,60,40,.10)!important;
  font-weight:700}
.mainbtn button i,.mainbtn button svg,
.btn.pri i,.btn.pri svg,
.btn.tg-green i,.btn.tg-green svg,
.btn.tg-btn i,.btn.tg-btn svg{color:var(--accent-ink)!important;fill:var(--accent-ink)!important;stroke:var(--accent-ink)}
.btn.pri.ui-busy{--ui-spinner:var(--accent)!important}
/* задизейбленная кнопка (например, «Выберите время») остаётся серой */
.btn.pri:disabled,.court-book-btn:disabled{background:var(--line)!important;color:var(--muted)!important;border-color:transparent!important;box-shadow:none!important}
@media(hover:hover){
  .mainbtn button:hover,.btn.pri:hover:not(:disabled),.btn.tg-btn:hover{filter:none!important;background:#D8ECDF!important}
  body.dark .mainbtn button:hover,body.dark .btn.pri:hover:not(:disabled){background:#264A38!important}
}

/* ── выбранные состояния: дни, слоты времени, часы, чипы, сегменты ── */
.court-date.on,.court-slot.on,.court-duration-options button.sel,
.br-tabs button.on,.side-seg .seg-b.on,
.chip.act,.chip.on,.opt.sel,.slot.on,.ev-cats .chip.on,
body.dark .court-date.on,body.dark .court-slot.on,body.dark .court-type.on,
body.dark .br-tabs button.on,body.dark .side-seg .seg-b.on,
body.dark .chip.act,body.dark .chip.on,body.dark .opt.sel,body.dark .slot.on{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  border-color:rgba(22,160,106,.55)!important;
  box-shadow:inset 0 0 0 1px rgba(22,160,106,.35)!important}
.court-date.on span,.court-date.on b,
.court-slot.on>span,.court-slot.on>small,
body.dark .court-date.on span,body.dark .court-slot.on>small{color:var(--accent-ink)!important}
.opt.sel{box-shadow:inset 0 0 0 1px rgba(22,160,106,.35)!important}

/* ── Broker Room: плита «Добавить объект» — мягкая, не заливка ── */
.br-primary-row,body.dark .br-primary-row{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  border:1px solid rgba(22,160,106,.45)!important;
  box-shadow:0 8px 22px rgba(20,60,40,.10)!important}
.br-primary-row>span{background:var(--card)!important;color:var(--accent)!important}
.br-primary-row>i{color:var(--accent)!important}

/* ── составные селекторы с большей специфичностью (каталог, услуги, УК) ── */
.crt-pick .chip.on,.cat-pick .chip.on,.svc-chips .chip.on,.ent-grid .chip.act,.uk-disp .chip.on{
  background:var(--accent-soft)!important;border-color:rgba(22,160,106,.55)!important;
  color:var(--accent-ink)!important;box-shadow:inset 0 0 0 1px rgba(22,160,106,.35)!important}
.crt-pick .chip.on i,.cat-pick .chip.on i,.svc-chips .chip.on i{color:var(--accent)!important}
.sport-pick .chip.on i{background:var(--accent-soft)!important;border-color:rgba(22,160,106,.55)!important;color:var(--accent)!important}

/* ── ховеры (десктоп): нейтральные, не зелёные и не синие ──
   выбранное состояние — мятное, ховер — лёгкий нейтральный: их видно раздельно */
@media(hover:hover){
  .btn.sec:hover,.statusrow:hover,.cat:not(.dim):hover,.goal:hover,.qa:hover,.opt:hover,
  .chip:hover,.seg-b:hover,.acc-head:hover,.lang-card:hover,.srv:hover{
    background:#F3F5F3!important;border-color:#D7DDD8!important}
  body.dark .btn.sec:hover,body.dark .statusrow:hover,body.dark .cat:not(.dim):hover,
  body.dark .goal:hover,body.dark .qa:hover,body.dark .opt:hover,body.dark .chip:hover,
  body.dark .seg-b:hover,body.dark .acc-head:hover,body.dark .lang-card:hover,body.dark .srv:hover{
    background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.16)!important}
}

/* ── мелкие индикаторы состояния — тоже мягкие, без тёмно-зелёной заливки ── */
.uk-step.on .d,.br-stepper>span.on b,.event-category-grid button.sel i,.payment-filter-chip.on b{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  box-shadow:inset 0 0 0 1px rgba(22,160,106,.4)!important}
.br-check-row.sel>i:last-child{
  background:var(--card)!important;border-color:var(--accent)!important;color:var(--accent)!important}

/* ── «ⓘ» у полей форм: кнопка-подсказка + раскрывающийся хинт ── */
.fld-i{border:0;background:transparent;color:var(--accent);padding:2px 3px;margin-left:2px;cursor:pointer;
  font-size:15px;line-height:1;vertical-align:-2px}
.fld-i:active{transform:scale(.9)}
.fld-hint{display:block;margin:6px 0 4px;padding:8px 11px;border-radius:11px;
  background:var(--accent-soft);color:var(--accent-ink);font-size:11.5px;line-height:1.45;font-weight:500}
.fld-hint[hidden]{display:none}

/* ── glass-тема: её селекторы (body.glass …) специфичнее общих — из-за этого
   выбранный слот времени оставался тёмно-зелёным с невидимым текстом.
   Перебиваем той же специфичностью (этот файл грузится после theme-glass). ── */
body.glass .opts .opt.sel,body.glass .chip.on,body.glass .chip.act,body.glass .slot.on,body.glass .bd-cat.sel,
body.glass.dark .opts .opt.sel,body.glass.dark .chip.on,body.glass.dark .chip.act,
body.glass.dark .slot.on,body.glass.dark .seg-b.on,body.glass.dark .bd-cat.sel{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  border-color:rgba(22,160,106,.55)!important;
  box-shadow:inset 0 0 0 1px rgba(22,160,106,.35)!important}

/* ── hero кортов: мятный вариант (выбор 26.07) вместо тёмно-зелёного ── */
.court-hero{background:var(--accent-soft)!important;color:var(--accent-ink);
  border:1px solid rgba(22,160,106,.4);box-shadow:0 10px 26px rgba(20,60,40,.08)}
.court-kicker{color:var(--accent)}
.court-hero h1{color:var(--accent-ink)!important}
.court-hero p{color:var(--ink);opacity:.72}
.court-hero::before{border-color:rgba(13,135,95,.5);
  background:
    linear-gradient(to bottom,transparent 49.3%,rgba(13,135,95,.5) 49.3%,rgba(13,135,95,.5) 50.7%,transparent 50.7%),
    linear-gradient(to right,transparent 49%,rgba(13,135,95,.5) 49%,rgba(13,135,95,.5) 51%,transparent 51%)}
.court-hero::after{border-left-color:rgba(13,135,95,.32);border-right-color:rgba(13,135,95,.32)}
.court-hero-ball{background:var(--card);border-color:rgba(22,160,106,.35);color:var(--accent);
  box-shadow:0 7px 18px rgba(20,60,40,.12)}
body.dark .court-hero::before{border-color:rgba(84,199,154,.45);
  background:
    linear-gradient(to bottom,transparent 49.3%,rgba(84,199,154,.45) 49.3%,rgba(84,199,154,.45) 50.7%,transparent 50.7%),
    linear-gradient(to right,transparent 49%,rgba(84,199,154,.45) 49%,rgba(84,199,154,.45) 51%,transparent 51%)}
body.dark .court-hero::after{border-left-color:rgba(84,199,154,.3);border-right-color:rgba(84,199,154,.3)}

/* ══════════════════════════════════════════════════════════════
   МЯТНО-ЗОЛОТЫЕ HERO (2026-07-26): все тёмно-зелёные шапки и плиты
   приведены к мягкому стилю кортов (светлая тема; тёмная — без изменений).
   ══════════════════════════════════════════════════════════════ */
body:not(.dark) .ops-hero,body:not(.dark) .set-hero,body:not(.dark) .prof-hero,
body:not(.dark) .support-hero,body:not(.dark) .owner-detail-hero,
body:not(.dark) .br-admin-overview,body:not(.dark) .ku-overview:not(.has-debt){
  background:linear-gradient(135deg,#EAF6F0 0%,#FBFBF7 55%,#F4EEDC 100%)!important;
  color:var(--ink)!important;border:1px solid rgba(22,160,106,.35)!important;
  box-shadow:0 10px 26px rgba(20,60,40,.08)!important}
body:not(.dark) .ops-hero::after{border-color:rgba(202,165,58,.18)}
body:not(.dark) .set-hero::after,body:not(.dark) .ku-overview:not(.has-debt)::after{border-color:rgba(202,165,58,.38)}
body:not(.dark) .prof-hero::after,body:not(.dark) .support-hero::after,
body:not(.dark) .owner-detail-hero::after{color:rgba(20,50,38,.05)}
/* кикеры — тёмное золото, читаемое на светлом */
body:not(.dark) .ops-kicker,body:not(.dark) .set-hero .set-eyebrow,body:not(.dark) .prof-kicker,
body:not(.dark) .support-kicker,body:not(.dark) .owner-detail-kicker,
body:not(.dark) .br-admin-overview .br-kicker{color:#8A6A16!important}
/* заголовки/подписи */
body:not(.dark) .ops-hero h1,body:not(.dark) .set-hero h1,body:not(.dark) .support-hero h1,
body:not(.dark) .owner-detail-person h1,body:not(.dark) .br-admin-overview h1{color:var(--accent-ink)!important}
body:not(.dark) .ops-hero p,body:not(.dark) .set-hero p,body:not(.dark) .support-hero p,
body:not(.dark) .owner-detail-person p{color:var(--ink)!important;opacity:.68}
/* иконки-плитки шапок */
body:not(.dark) .ops-hero-icon,body:not(.dark) .set-hero-mark,body:not(.dark) .support-hero-icon,
body:not(.dark) .owner-detail-person>span{background:#fff!important;border-color:rgba(22,160,106,.30)!important;color:var(--accent)!important}
body:not(.dark) .set-hero-mark i,body:not(.dark) .support-hero-icon i,
body:not(.dark) .owner-detail-person>span i{color:var(--accent)!important}
/* плитки метрик внутри шапок */
body:not(.dark) .ops-metric,body:not(.dark) .owner-detail-metrics>div{
  background:rgba(255,255,255,.80)!important;border:1px solid rgba(22,160,106,.20)!important}
body:not(.dark) .ops-metric span,body:not(.dark) .owner-detail-metrics span{color:var(--muted)!important}
body:not(.dark) .ops-metric b,body:not(.dark) .owner-detail-metrics b{color:var(--ink)!important}
body:not(.dark) .ops-metric.accent b{color:#8A6A16!important}
/* профиль: кнопка, аватар, бейджи */
body:not(.dark) .prof-custom-btn{background:#fff!important;border-color:rgba(22,160,106,.35)!important;color:var(--accent-ink)!important}
body:not(.dark) .prof-hero .prof-av{border-color:rgba(202,165,58,.6)!important;background-color:#E4F3ED!important}
body:not(.dark) .prof-hero .av-ph{color:var(--accent)}
body:not(.dark) .prof-name-edit{background:var(--accent-soft)!important;color:var(--accent)!important}
body:not(.dark) .prof-handle{color:var(--muted)!important}
body:not(.dark) .prof-badges span{background:#fff!important;border:1px solid rgba(22,160,106,.25)!important;color:var(--ink)!important}
body:not(.dark) .prof-badges i{color:#8A6A16!important}
body:not(.dark) .prof-account-shortcut{background:rgba(255,255,255,.82)!important;border-color:rgba(22,160,106,.28)!important;color:var(--ink)!important;
  box-shadow:0 8px 22px rgba(20,60,40,.07)}
body:not(.dark) .prof-account-icon{background:var(--accent-soft)!important;color:var(--accent)!important}
body:not(.dark) .prof-account-copy small{color:#8A6A16!important}
body:not(.dark) .prof-account-copy>span{color:var(--muted)!important}
body:not(.dark) .prof-account-chevron{color:var(--accent)!important}
/* поддержка */
body:not(.dark) .support-promise{background:rgba(255,255,255,.80)!important;color:var(--accent-ink)!important}
body:not(.dark) .support-promise i{color:#8A6A16!important}
body:not(.dark) .support-contact-icon{background:var(--accent-soft)!important;color:var(--accent)!important}
/* финансы: итоговая карточка */
body:not(.dark) .fin-grand .fg{background:linear-gradient(135deg,#EAF6F0,#F4EEDC)!important;
  color:var(--ink)!important;border:1px solid rgba(22,160,106,.35)}
body:not(.dark) .fin-grand .fg .v{color:var(--accent-ink)}
body:not(.dark) .fin-grand .fg .l{color:var(--muted);opacity:1}
/* КУ: карточка баланса (без долга; долговая остаётся тёплой) */
body:not(.dark) .ku-overview:not(.has-debt) .ku-overview-top{color:var(--muted)!important}
body:not(.dark) .ku-overview:not(.has-debt) .ku-overview-status{background:#fff!important;color:var(--accent-ink)!important}
body:not(.dark) .ku-overview:not(.has-debt) .ku-overview-value{color:var(--accent-ink)!important}
/* заглушка фото в галереях */
body:not(.dark) .hero-img .hero-ph{background:var(--accent-soft)!important}
/* «+» в таббаре — мятный шар с золотым ободком, зелёный плюс */
body.glass:not(.dark) #tabbar .tab-plus .plus-c{
  background:radial-gradient(125% 125% at 32% 20%,#E7F5EC 0%,#CDE9DA 50%,#B2DCC6 100%)!important;
  box-shadow:0 0 0 1.5px rgba(198,166,84,.65),0 0 0 6px rgba(255,255,255,.95),
    0 10px 22px rgba(20,60,40,.20),inset 0 2px 0 rgba(255,255,255,.6)!important}
body.glass:not(.dark) #tabbar .tab-plus .plus-c::before,
body.glass:not(.dark) #tabbar .tab-plus .plus-c::after{background:var(--accent-deep)!important}
/* страховка: вкладки каталога в glass-теме */
body.glass .crt-pick .chip.on,body.glass .cat-pick .chip.on{
  background:var(--accent-soft)!important;border-color:rgba(22,160,106,.55)!important;color:var(--accent-ink)!important}
body.glass .crt-pick .chip.on i{color:var(--accent)!important}

/* ══ ФИНАЛ: градиент «мята → золото» для ВСЕХ выбранных состояний и CTA (светлая тема).
   Тёмная тема остаётся на var(--accent-soft) (тёмно-мятный) — там градиент не нужен. ══ */
body:not(.dark) .mainbtn button,body:not(.dark) .btn.pri:not(:disabled),
body:not(.dark) .btn.tg-green,body:not(.dark) .btn.tg-btn,
body:not(.dark) .court-hero,
body:not(.dark) .court-type.on,body:not(.dark) .court-date.on,body:not(.dark) .court-slot.on,
body:not(.dark) .court-duration-options button.sel,
body:not(.dark) .br-tabs button.on,body:not(.dark) .side-seg .seg-b.on,
body:not(.dark) .chip.act,body:not(.dark) .chip.on,body:not(.dark) .opt.sel,
body:not(.dark) .slot.on,body:not(.dark) .ev-cats .chip.on,
body.glass:not(.dark) .opts .opt.sel,body.glass:not(.dark) .chip.on,body.glass:not(.dark) .chip.act,
body.glass:not(.dark) .slot.on,body.glass:not(.dark) .bd-cat.sel,
body:not(.dark) .crt-pick .chip.on,body:not(.dark) .cat-pick .chip.on,
body:not(.dark) .svc-chips .chip.on,body:not(.dark) .ent-grid .chip.act,body:not(.dark) .uk-disp .chip.on,
body:not(.dark) .br-primary-row,
body:not(.dark) .support-topic.is-active,
body:not(.dark) .cat-view-btn.on,
body:not(.dark) .tab.active .pill{
  background:linear-gradient(135deg,#E9F5EF 0%,#F8FBF8 52%,#F5EFDF 100%)!important}
/* задизейбленные кнопки не получают градиент */
body:not(.dark) .btn.pri:disabled,body:not(.dark) .court-book-btn:disabled{
  background:var(--line)!important;color:var(--muted)!important;border-color:transparent!important;box-shadow:none!important}

/* ── добор по полному аудиту 26.07: последние зелёные заливки ── */
body:not(.dark) .ku-setup-next,body:not(.dark) .br-action.primary,body:not(.dark) .br-open-btn,
body:not(.dark) .events-add,body:not(.dark) .listing-primary-action,
body:not(.dark) .set-savebar button:not(:disabled),body:not(.dark) .people-sheet .form-submit,
body:not(.dark) .kucard:not(.locked){
  background:linear-gradient(135deg,#E9F5EF 0%,#F8FBF8 52%,#F5EFDF 100%)!important;
  color:var(--accent-ink)!important;border:1px solid rgba(22,160,106,.45)!important;
  box-shadow:0 8px 20px rgba(20,60,40,.10)!important}
body:not(.dark) .kucard:not(.locked) *{color:var(--accent-ink)}
body:not(.dark) .br-action.primary>i:first-child,body:not(.dark) .listing-primary-action>span{
  background:#fff!important;color:var(--accent)!important}
body:not(.dark) .listing-primary-action>i,body:not(.dark) .br-open-btn i,body:not(.dark) .events-add i{color:var(--accent)!important}
/* мини-бейджи счётчиков — мягкие в обеих темах */
.cat .cnt,.skgrp-cnt,.trc-b,.as-selected-line b,.av-edit{
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  box-shadow:inset 0 0 0 1px rgba(22,160,106,.4)!important}

/* ── галочка в углу выбранного дня и времени — как на карточке корта ── */
.court-date,.court-slot{position:relative}
.court-date.on::after,.court-slot.on::after{
  content:'✓';position:absolute;top:4px;right:7px;
  font-size:11px;font-weight:800;line-height:1;color:var(--accent);pointer-events:none}
.court-duration-options button{position:relative}
.court-duration-options button.sel::after{
  content:'✓';position:absolute;top:2px;right:5px;
  font-size:9px;font-weight:800;line-height:1;color:var(--accent);pointer-events:none}

/* ── опции в мастерах (.opts .opt): вместо разнокалиберных пилюль —
   ровная сетка карточек, как «Выберите корт»; выбранная — с галочкой ── */
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px}
.opts .opt{position:relative;min-height:46px;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:8px 10px;border-radius:13px;font-size:12.5px;line-height:1.2}
.opts .opt.sel{font-weight:700}
.opts .opt.sel::after{content:'✓';position:absolute;top:4px;right:7px;
  font-size:10px;font-weight:800;line-height:1;color:var(--accent);pointer-events:none}
/* длинные подписи («Зелёный каркас», «Дизайнерский») не рвут сетку */
.opts .opt{min-width:0;overflow-wrap:anywhere}

/* ── добор градиента: сводка выбранного времени на кортах и активные сегменты ── */
body:not(.dark) .court-selection.ready,
body:not(.dark) .seg-b.on{
  background:linear-gradient(135deg,#E9F5EF 0%,#F8FBF8 52%,#F5EFDF 100%)!important;
  color:var(--accent-ink)!important;border-color:rgba(22,160,106,.45)!important}
body:not(.dark) .court-selection.ready>i{background:#fff!important;color:var(--accent)!important}
body:not(.dark) .court-selection.ready small{color:var(--accent)!important}

/* ── пилюли языка/темы видны на всех экранах; на вложенных — чуть компактнее ── */
.tg-header.bordered .lang-pill{padding:4px 8px;font-size:11px;gap:4px}


/* ══ ГЛОБАЛЬНО (светлая тема): --accent-soft = градиент «мята → золото».
   Все мятные плитки, иконки-квадраты, заметки, бейджи и выбранные состояния,
   написанные как background:var(--accent-soft), становятся градиентными разом.
   Тёмная тема сохраняет свой тёмно-мятный цвет (переменная переопределена в body.dark). ══ */
body:not(.dark){--accent-soft:linear-gradient(135deg,#E9F5EF 0%,#F6FAF6 55%,#F5EFDF 100%)}

/* ── «Мой главный экран»: шапка дашборда с кнопкой настройки ── */
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 2px 8px}
.dash-cfg{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:11px;
  background:var(--card);color:var(--muted);font:inherit;font-size:11px;font-weight:650;padding:5px 10px;cursor:pointer}
.dash-cfg i{font-size:14px;color:var(--accent)}
.dash-cfg:active{transform:scale(.96)}
#homeTilesSheet .pick-row .ti-eye-off{opacity:.7}

/* ══════════ ПОЭКРАННЫЙ АУДИТ 27.07: последние выбивающиеся элементы ══════════ */

/* 1. Заглушка обложки объявления (нет фото) — была тёмно-зелёная плита ── */
body:not(.dark) .ph-empty{
  background:linear-gradient(150deg,#E9F5EF 0%,#F7FAF7 55%,#F3EBD6 100%)!important}
body:not(.dark) .ph-empty::after{
  color:rgba(138,106,22,.85)!important;border-color:rgba(202,165,58,.45)!important}

/* 2. ЖКУ с долгом — светлая тревожная карточка вместо тёмно-бордовой ── */
body:not(.dark) .ku-overview.has-debt{
  background:linear-gradient(135deg,#FCEEE9 0%,#FDF6F2 55%,#F7E7DC 100%)!important;
  color:var(--ink)!important;border:1px solid rgba(200,90,60,.32)!important;
  box-shadow:0 10px 26px rgba(120,50,30,.10)!important}
body:not(.dark) .ku-overview.has-debt .ku-overview-top{color:#8A4633!important}
body:not(.dark) .ku-overview.has-debt .ku-overview-value{color:#A6432A!important}
body:not(.dark) .ku-overview.has-debt .ku-overview-status{background:#fff!important;color:#A6432A!important}
body:not(.dark) .kucard.locked{
  background:linear-gradient(135deg,#FCEEE9 0%,#FDF6F2 55%,#F7E7DC 100%)!important;
  border:1px solid rgba(200,90,60,.32)!important;box-shadow:0 8px 20px rgba(120,50,30,.10)!important}
body:not(.dark) .kucard.locked .kl{color:#8A4633!important}
body:not(.dark) .kucard.locked .kv,body:not(.dark) .kucard.locked .ku-infra,
body:not(.dark) .kucard.locked .ku-infra b{color:#A6432A!important}
body:not(.dark) .kucard.locked .kbtn{background:#fff!important;color:#A6432A!important}

/* 3. Статус-бейджи — пастельные вместо тёмно-горчичных и залитых зелёным ── */
body:not(.dark) .tag.t-owner,body:not(.dark) .tag.t-pending,body:not(.dark) .tag.t-review,
body:not(.dark) .tag.mod{background:#F7EFD8!important;color:#8A6A16!important}
body:not(.dark) .tag.pub,body:not(.dark) .tag.t-family,body:not(.dark) .tag.t-coowner,
body:not(.dark) .tag.t-tenant{background:var(--accent-soft)!important;color:var(--accent-ink)!important}

/* 4. Telegram-кнопка — фирменная синяя плашка с явной подписью действия ── */
body:not(.dark) #tgFab{background:#229ED9!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 12px 28px rgba(34,158,217,.32)!important}
body:not(.dark) #tgFab i,body:not(.dark) #tgFab span,body:not(.dark) #tgFab svg{color:#fff!important;fill:#fff!important}

.listing-info-note{
  display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;margin-top:10px;padding:14px 15px;
  border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow-xs);
  color:var(--muted);font-size:11.5px;line-height:1.55;
}
.listing-info-note>i{margin-top:2px;color:var(--accent);font-size:18px}
.listing-info-note>p{margin:0}

/* 5. Иконки-эмодзи заменены на ti — выравниваем их в строках кнопок ── */
.drow>i:first-child,.statusrow>span>i:first-child{font-size:17px;color:var(--accent)}
.uk-disp .chip i,.opt i{font-size:15px;vertical-align:-2px}
/* подстрока в карточке ЖКУ (объекты / пеня) — читаемая на светлом фоне */
body:not(.dark) .ku-overview .ku-overview-meta{color:var(--muted)!important}
body:not(.dark) .ku-overview.has-debt .ku-overview-meta{color:#8A4633!important}
body:not(.dark) .ku-overview.has-debt .ku-overview-meta .penalty{color:#A6432A!important;font-weight:700}
/* бейдж «Рекомендовано» — пастельное золото вместо насыщенного горчичного */
body:not(.dark) .card .gbadge{background:#F7EFD8!important;color:#8A6A16!important;border:1px solid rgba(202,165,58,.45)!important}
body:not(.dark) .card .gbadge span{color:#8A6A16!important}

/* ── сетка главного экрана: подстраивается под любое число блоков ──
   2 колонки; если блоков нечётное число — последний растягивается на всю
   ширину, чтобы не оставалось пустой ячейки (4, 6, 8 → ровные пары; 5, 7 → без дыры) */
.dgrid>.dtile:last-child:nth-child(odd){grid-column:1/-1}
.dgrid>.dtile:last-child:nth-child(odd) .dt{margin-top:8px}
/* совсем узкие экраны — одна колонка, растяжка не нужна */
@media(max-width:330px){
  .dgrid{grid-template-columns:1fr}
  .dgrid>.dtile:last-child:nth-child(odd){grid-column:auto}
}

/* ── каталог: сегмент «Предложения / Заявки» + компактная «+» на всех экранах ──
   Раньше на телефоне подпись второй вкладки обрезалась («Ищут пок…»), а CTA
   «Продать квартиру» занимала треть строки. Теперь как на широком экране:
   сегмент во всю ширину, кнопка добавления — квадратная иконка. */
/* Строка «Предложения / Запросы / Добавить» (28.07.2026).
   Раньше кнопка добавления была голым «+» шириной 52px: что она делает, было непонятно,
   а её длинная подпись пряталась на любом телефоне. Теперь подпись короткая («Добавить»)
   и видна всегда; сегмент занимает остаток ширины и ужимается сам. */
.cat-side-row{display:flex;align-items:stretch;gap:8px}
.cat-side-row .side-seg{flex:1 1 auto;min-width:0}
.property-type-seg{display:grid;grid-template-columns:.72fr 1.15fr 1.15fr;gap:4px;margin:8px 0 12px;padding:4px}
.property-type-seg .seg-b{min-width:0;padding:10px 5px;font-size:12.5px;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px}
.property-type-seg .seg-b i{font-size:15px}
.cat-add-mini{flex:0 0 auto;min-height:48px;padding:0 14px!important;gap:6px;
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.cat-add-mini span{display:inline;font-size:13.5px;font-weight:650}
.cat-add-mini i{font-size:18px}
.side-seg{gap:4px;padding:4px}
.side-seg .seg-b{padding:11px 6px;font-size:13.5px;font-weight:650;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;min-width:0}
.side-seg .seg-b i{font-size:15px;vertical-align:-2px;margin-right:3px}
/* Узкие экраны: сначала убираем лупу, потом ступенчато ужимаем шрифт. Проверено на
   430/390/375/360/320 px — «Предложения», «Запросы» и «Добавить» помещаются целиком. */
@media(max-width:400px){ .side-seg .seg-b i{display:none} .side-seg .seg-b{font-size:13px;padding:11px 5px}
  .cat-add-mini{padding:0 12px!important} }
@media(max-width:365px){ .side-seg .seg-b{font-size:12.5px;padding:10px 4px}
  .cat-add-mini span{font-size:12.5px} .cat-add-mini{padding:0 10px!important;gap:4px} }
@media(max-width:335px){ .side-seg .seg-b{font-size:11.5px;padding:10px 3px}
  .cat-add-mini span{font-size:11.5px} .cat-add-mini i{font-size:16px}
  .property-type-seg .seg-b{font-size:11px;padding:9px 3px;gap:2px}.property-type-seg .seg-b i{font-size:13px} }

/* ══ Загрузчик фото и длинные текстовые поля — в общем стиле (27.07) ══
   Было: серая пунктирная плита без иконки и подсказка «Развернуть» отдельной
   ссылкой под полем. Стало: карточка-дропзона с иконкой и мягким мятным
   пунктиром + компактная кнопка-подсказка у поля. */
.uploader{
  width:100%;box-sizing:border-box;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:104px;padding:18px 14px!important;
  border:1.5px dashed rgba(22,160,106,.38)!important;border-radius:18px!important;
  background:var(--accent-soft)!important;color:var(--accent-ink)!important;
  font-size:13px;font-weight:600;line-height:1.35;text-align:center;
  transition:border-color .18s ease,transform .16s ease}
.uploader::before{
  content:'';width:42px;height:42px;flex:0 0 42px;border-radius:14px;
  background:var(--card) center/22px no-repeat;
  box-shadow:inset 0 0 0 1px rgba(22,160,106,.25);
  -webkit-mask:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%230D875F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M15 8h.01'/><rect x='3' y='3' width='18' height='18' rx='3'/><path d='m3 16 5-5c.9-.9 2.1-.9 3 0l5 5'/><path d='m14 14 1-1c.9-.9 2.1-.9 3 0l3 3'/></svg>")}
.uploader:active{transform:scale(.99)}
.uploader.has{border-style:solid!important;border-color:rgba(22,160,106,.55)!important}
body.dark .uploader{color:var(--accent-ink)!important}
/* подсказка «Развернуть» — компактная кнопка в стиле вторичных действий */
.ta-expand-hint,.textarea-expand-action{
  display:inline-flex!important;align-items:center;gap:5px;margin:6px 0 0 auto!important;
  padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);
  font-size:11px;font-weight:650;color:var(--accent-ink)!important;width:fit-content}
.ta-expand-hint i,.textarea-expand-action i,.textarea-expand-action .ti{color:var(--accent)}
.field:has(.ta-expand-hint),.field:has(.textarea-expand-action){display:flex;flex-direction:column}
/* формы брокера: поля не липнут друг к другу, разделы читаются */
.br-form-step .field{margin-bottom:13px}
.br-form-step .field label{margin-bottom:5px;font-size:12px;font-weight:700}
.br-admin-form .br-form-intro{padding-bottom:11px;border-bottom:1px solid var(--line)}

/* последний блок формы не должен уходить под плавающую кнопку «Продолжить» */
body:has(.mainbtn:not(.hidden)) #app{padding-bottom:104px}

/* единый вид дропзон для фото во всех разделах (заявки УК, объявления, мастера) */
.uk-ph-add{
  background:var(--accent-soft)!important;
  border:1.5px dashed rgba(22,160,106,.38)!important;border-radius:14px!important;
  color:var(--accent-ink)!important;font-size:10.5px;font-weight:650;gap:6px!important}
.uk-ph-add .ti{color:var(--accent)!important;font-size:20px!important}
.uk-ph-add:active{border-color:rgba(22,160,106,.7)!important;transform:scale(.98)}
/* превью уже загруженных фото — в одной рамке с дропзоной */
.uk-ph{border:1px solid rgba(22,160,106,.22)!important}
/* пустая дропзона в фото-сетках — на всю ширину (как в формах); появились фото — обычная сетка */
.uk-ph-grid>.uk-ph-add:only-child{
  grid-column:1/-1;aspect-ratio:auto;min-height:104px;padding:16px 14px;
  font-size:13px;font-weight:600}
.uk-ph-grid>.uk-ph-add:only-child .ti{font-size:26px!important}

/* ══ Кнопка закрытия «✕» — единое правило для всех шторок и оверлеев (27.07) ══
   Была прижата к краю шторки и в полноэкранном режиме («Описание» на весь экран)
   наезжала на поле ввода и уходила под вырез экрана. Теперь: фиксированное место
   в правом верхнем углу с учётом безопасной зоны, а заголовку зарезервирован отступ,
   чтобы текст никогда не подлезал под кнопку. */
.sheet .sheet-x{
  position:absolute!important;
  top:calc(10px + env(safe-area-inset-top))!important;right:12px!important;
  transform:none!important;margin:0!important;
  width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;z-index:6}
.sheet .sheet-x:active{transform:scale(.88)!important}
.sheet-hd{position:relative;min-height:40px;padding-right:52px!important;padding-left:4px}
/* полноэкранный редактор текста: содержимое начинается ниже кнопки закрытия */
#bigTextSheet .sheet-hd{padding-top:calc(6px + env(safe-area-inset-top))!important;margin-bottom:8px}
.bigtext-area{margin-top:2px}
/* крестик на полноэкранной схеме — та же безопасная зона */
.sch-full-x{top:calc(12px + env(safe-area-inset-top))!important;right:14px!important}

/* ── Экран оплаты брони корта: статус + таймер крупно, без лишнего ── */
.court-pay-page{padding-top:6px}
.court-pay-status{
  padding:16px;border-radius:20px;border:1px solid rgba(202,165,58,.45);
  background:linear-gradient(135deg,#FDF7E6 0%,#FBFBF7 55%,#F4EEDC 100%);
  box-shadow:0 10px 26px rgba(120,100,30,.08)}
.court-pay-status.is-review{
  border-color:rgba(22,160,106,.45);
  background:linear-gradient(135deg,#E9F5EF 0%,#F8FBF8 52%,#F5EFDF 100%)}
.cps-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cps-title{font-size:16px;font-weight:800;color:#8A6A16}
.court-pay-status.is-review .cps-title{color:var(--accent-ink)}
.cps-sub{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}
.cps-timer{flex:0 0 auto;min-width:82px;padding:8px 10px;border-radius:13px;
  background:var(--card);border:1px solid rgba(202,165,58,.5);
  color:#8A6A16;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center;line-height:1.1}
.cps-amount{margin-top:12px;font-size:15px;color:var(--ink)}
.cps-amount b{font-size:20px;color:#8A6A16}
.court-pay-status.is-review .cps-amount b{color:var(--accent-ink)}
.cps-note{margin-top:10px;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.75);
  color:var(--ink);font-size:12px;line-height:1.45}

/* ── Активная вкладка «Избранное»: контурное сердце вместо сплошной заливки ──
   Подсветку даёт мягкая градиентная капсула таб-бара, иконка остаётся линейной,
   как остальные (дом, объявления, профиль) — единый вес и цвет. */
.tab.active svg.heart{fill:none!important;stroke:var(--accent)!important;stroke-width:1.9}
body.dark .tab.active svg.heart{stroke:var(--accent-ink)!important}
/* и любые другие «залитые» иконки состояния — только контур */
.tab.active svg{fill:none!important}

/* ── Перенос брони: шаг «время → день», недоступные дни видно сразу ── */
.cm-step{display:flex;align-items:baseline;gap:8px;margin:2px 0 8px;flex-wrap:wrap}
.cm-step-no{width:22px;height:22px;flex:0 0 22px;display:flex;align-items:center;justify-content:center;
  border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;font-weight:800}
.cm-step b{font-size:14px}
.cm-step small{width:100%;padding-left:30px;color:var(--muted);font-size:11px;line-height:1.35}
.court-date.is-off{opacity:.5;cursor:not-allowed;filter:grayscale(.25)}
.court-date .cm-busy{display:block;margin-top:2px;color:var(--danger);font-size:8.5px;font-weight:700}
.cm-none{margin-top:10px;padding:10px 12px;border-radius:12px;background:#FBE7E1;color:#A6432A;
  font-size:12px;line-height:1.45}
/* ── Единый блок способов входа: Telegram и Почта рядом, ниже «WhatsApp — скоро» ── */
.auth-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.auth-opts .btn{margin:0;width:100%;white-space:nowrap}
.auth-opts .auth-coming-soon:disabled{display:flex;align-items:center;justify-content:center;gap:8px;opacity:.78;background:var(--field);color:var(--muted);border-color:var(--line)}
.auth-coming-soon span{padding:3px 7px;border-radius:999px;background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));color:var(--accent-ink);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.auth-opts-note{font-size:11px;margin:7px 4px 0;line-height:1.45;text-align:center}
.auth-opts-note i{font-size:12px;vertical-align:-2px}

/* ── Правовые документы в шторке: длинный текст должен листаться, а не уезжать за экран ── */
#legalDocSheet{max-height:88vh;display:flex;flex-direction:column}
.legal-doc-body{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding-right:2px}
.legal-doc-body h4{font-size:14px;margin:16px 0 4px;font-weight:700;color:var(--ink)}
.legal-doc-body p,.legal-doc-body li{font-size:13.5px;line-height:1.6;color:var(--muted);margin:0 0 6px}
.legal-doc-body .lg-date{font-size:12px;opacity:.8;margin-bottom:8px}

/* ── Отклик на нажатие. Раньше часть кнопок (например, «Выйти») ничем не отзывалась:
   действие срабатывало, а палец не получал подтверждения — казалось, что не нажалось. ── */
.btn:active:not(:disabled),.mainbtn button:active:not(:disabled),
.prof-row:active,.set-nav-row:active,.dtile:active,.chip:active:not(:disabled),
.opt:active:not(:disabled),.slot:active:not(:disabled),.court-date:active:not(:disabled){
  transform:scale(.98);transition:transform .06s ease}
.btn,.mainbtn button,.prof-row,.set-nav-row,.dtile{transition:transform .12s ease,background .2s,border-color .2s}
@media(hover:none){ .btn:active:not(:disabled){filter:brightness(.97)} }

/* ── Вход: текстовые ссылки на листе входа (обычная .lnk красная — тут нужен спокойный тон) ── */
.wl-link{display:block;width:100%;background:none;border:0;padding:8px 4px;cursor:pointer;
  color:var(--muted);font-size:12.5px;font-weight:600;font-family:inherit;text-align:center}
.wl-link:hover{color:var(--accent-ink)}
.wl-link:disabled{opacity:.5;cursor:default}
.wl-link:disabled:hover{color:var(--muted)}

/* Падел: переключатель площадки. Занято на одной — сразу видно, что свободно на второй. */
.cm-courts{margin-bottom:2px}
.cm-courts .opt{flex-direction:column;gap:2px;min-height:54px;line-height:1.15}
.cm-courts .opt small{font-size:10px;font-weight:600;opacity:.72}
.cm-courts .opt.is-off{opacity:.45;cursor:not-allowed}
/* счётчик свободных часов на карточке дня */
.court-date .cm-free-h{display:block;margin-top:2px;color:var(--accent-ink);font-size:8.5px;
  font-weight:700;line-height:1.15;opacity:.85}
/* «свободно на соседней площадке» — и в сетке времени, и на карточке дня */
.cm-alt-h{display:block;margin-top:2px;color:var(--accent-ink)!important;font-size:9px;
  font-weight:700;line-height:1.15}
.court-slot.off:has(.cm-alt-h){opacity:.78}
.court-date.is-off:has(.cm-alt-h){opacity:.72;filter:none}
.cm-alt{margin-top:10px;padding:11px 12px;border-radius:14px;font-size:12px;line-height:1.45;
  border:1px solid rgba(202,165,58,.42);background:linear-gradient(135deg,#E9F5EF 0%,#F8FBF8 52%,#F5EFDF 100%);
  color:var(--ink);display:flex;flex-direction:column;gap:8px}
.cm-alt .btn.sec{width:100%;margin:0}
body.dark .cm-alt{border-color:rgba(202,165,58,.35);background:rgba(255,255,255,.06)}
body.dark .cm-none{background:rgba(214,90,60,.16);color:#F0B5A2}

/* Регистрация собственника: компактная форма с понятной иерархией */
#ownerSheet.owner-register-sheet{
  width:min(100%,520px);max-height:94dvh;padding:12px 14px calc(22px + env(safe-area-inset-bottom));
  background:var(--bg);scroll-padding-bottom:24px;
}
.owner-register-sheet::before{margin-bottom:9px}
.owner-register-head{
  min-height:52px;margin:0 0 10px!important;padding:0 48px 0 0!important;
  justify-content:flex-start!important;text-align:left!important;
}
.owner-register-head .sheet-title-icon{
  background:linear-gradient(145deg,var(--accent-soft),var(--gold-soft));
  color:var(--accent-ink);border:1px solid rgba(13,135,95,.12);
}
.owner-register-head .sheet-title-group h3{font-size:18px!important;font-weight:790;letter-spacing:-.015em}
.owner-register-head .sheet-title-group small{font-size:10.5px;line-height:1.35}
.owner-register-head .sheet-x{
  width:44px!important;height:44px!important;top:6px!important;right:0!important;
  background:var(--field);color:var(--muted);font-size:20px!important;
}
.owner-register-body{display:flex;flex-direction:column;gap:10px}
.owner-form-card{
  padding:14px;border:1px solid rgba(13,135,95,.18);border-radius:var(--radius-lg);
  background:var(--card);box-shadow:var(--shadow-sm);
}
.owner-form-card-head{
  display:flex;align-items:center;gap:10px;margin-bottom:13px;padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.owner-form-card-head>span{
  width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:17px;
}
.owner-form-card-head>div{min-width:0}
.owner-form-card-head h4{margin:0;font-size:14px;line-height:1.3}
.owner-form-card-head small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.4}
.owner-register-sheet .field{margin-bottom:11px}
.owner-register-sheet .field label{margin:0 0 6px 1px;font-size:11px;font-weight:750}
.owner-register-sheet .field input,.owner-register-sheet .field select{
  min-height:52px;padding:11px 12px;border-radius:14px;background:var(--field);
}
.owner-register-sheet .field select:disabled{color:var(--muted);opacity:.72}
.owner-register-sheet .set-help{
  margin:6px 1px 0;color:var(--accent-ink);font-size:9.5px;line-height:1.4;
}
.owner-form-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:9px}
.owner-form-grid .field{margin-bottom:0}
.owner-field-help{display:block;margin:5px 1px 0;color:var(--muted);font-size:8.5px;line-height:1.35}
.owner-verification-note{
  display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px;
  border:1px solid rgba(194,162,78,.26);border-radius:16px;
  background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));
}
.owner-verification-icon{
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--card);color:var(--accent);font-size:19px;
  box-shadow:var(--shadow-xs);
}
.owner-verification-note b{display:block;font-size:12px;line-height:1.35}
.owner-verification-note p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.owner-consent{
  display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:10px;
  padding:8px 2px 7px;color:var(--muted);font-size:10.5px;line-height:1.5;cursor:pointer;
}
.owner-checkbox{
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--line);border-radius:8px;background:var(--card);
  color:#fff;font-size:15px;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}
.owner-checkbox.is-checked{border-color:var(--accent-deep);background:var(--accent-deep)}
.owner-checkbox:focus-visible{outline:3px solid rgba(13,135,95,.2);outline-offset:2px}
.owner-consent-copy a{overflow-wrap:anywhere}
.owner-submit{
  min-height:54px!important;justify-content:space-between!important;padding:14px 16px!important;
  border-radius:16px!important;font-size:14px!important;font-weight:780!important;
}
.owner-submit::after{display:none!important}
.owner-submit>i{flex:0 0 auto;font-size:19px!important;color:var(--accent-ink)!important}
.owner-after{
  display:flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;
  color:var(--muted);font-size:9.5px;line-height:1.4;text-align:center;
}
.owner-after i{flex:0 0 auto;color:var(--gold);font-size:14px}
body.dark .owner-register-head .sheet-title-icon{background:var(--accent-soft);border-color:var(--line)}
body.dark .owner-verification-note{border-color:rgba(203,173,95,.28);background:rgba(255,255,255,.045)}
body.dark .owner-verification-icon{background:var(--field)}

@media(max-width:350px){
  .owner-register-sheet{padding-left:10px!important;padding-right:10px!important}
  .owner-form-grid{grid-template-columns:1fr}
  .owner-form-grid .field{margin-bottom:11px}
  .owner-form-grid .field:last-child{margin-bottom:0}
}
@media(prefers-reduced-motion:reduce){
  .owner-checkbox{transition:none}
}

/* Telegram CTA должен оставаться синим после общих mint/gold правил кнопок. */
.unit-invite-bot{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:8px 12px}
.unit-invite-bot>span:first-child{grid-column:1;grid-row:1/3}
.unit-invite-bot>div{grid-column:2;grid-row:1;min-width:0}
.unit-invite-bot-name{font-size:15px;line-height:1.25;overflow-wrap:normal!important}
.unit-invite-bot-handle{display:block;min-width:0;font-size:10.5px;overflow-wrap:anywhere}
.unit-invite-bot>.unit-invite-status{
  display:inline-flex;grid-column:2;grid-row:2;justify-self:start;
  width:max-content;height:auto;min-width:0;margin:0!important;padding:5px 9px;
  border-radius:999px;box-shadow:none;font-size:10.5px;white-space:normal;
}
.unit-invite-bot>.unit-invite-status i{font-size:12px}
.unit-invite-actions{grid-template-columns:1fr}
body:not(.dark) .unit-invite-actions .btn.pri:not(:disabled),
body.dark .unit-invite-actions .btn.pri:not(:disabled){
  background:#229ed9!important;color:#fff!important;border-color:#229ed9!important;
  box-shadow:0 10px 24px rgba(34,158,217,.24)!important;
}
body:not(.dark) .unit-invite-actions .btn.pri:not(:disabled) i,
body.dark .unit-invite-actions .btn.pri:not(:disabled) i{
  color:#fff!important;fill:#fff!important;stroke:#fff!important;
}

/* Финальные адаптивные гарантии: Safari не увеличивает поля сам, а основные
   элементы управления сохраняют одинаковую высоту во всех исторических формах. */
.set-search input,.svc-search input{font-size:16px!important}
.btn{min-height:48px}
.provider-profile-actions .btn,.payment-actions .btn{min-height:44px}

/* Мобильные браузеры не должны самостоятельно масштабировать экран при фокусе:
   все реальные поля форм используют один читаемый базовый размер. */
@media(max-width:768px){
  #app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]),
  #app select,#app textarea,
  .sheet input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]),
  .sheet select,.sheet textarea{font-size:16px!important}
}

/* Удаление фото: иконка остаётся компактной, но зона касания соответствует
   мобильному стандарту и не требует попадания в круг диаметром 22 px. */
.thumb-x{
  width:44px!important;height:44px!important;top:-13px!important;right:-13px!important;
  border:0!important;background:transparent!important;color:transparent!important;
  font-size:0!important;overflow:visible!important;
}
.thumb-x::before{
  content:"×";display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border:2px solid var(--card);border-radius:50%;
  background:var(--danger);color:#fff;font-size:15px;font-weight:700;line-height:1;
  box-shadow:0 2px 7px rgba(75,28,18,.18);
}

/* Низкие горизонтальные экраны (включая iPhone landscape): фиксированные
   CTA и высокая навигация не перекрывают содержимое мастеров. */
@media(orientation:landscape) and (max-height:500px){
  #crumbs{display:none!important}
  body.glass #tabbar{
    padding:3px 5px calc(3px + env(safe-area-inset-bottom))!important;
    border-radius:17px!important;
  }
  body.glass #tabbar .tab{min-height:44px;padding:1px!important}
  body.glass #tabbar .tab .ic{height:21px}
  body.glass #tabbar .tab svg{width:20px;height:20px}
  body.glass #tabbar .tab .lab{min-height:12px;font-size:9.5px;line-height:1.08;-webkit-line-clamp:1}
  body.glass #tabbar .tab-plus .plus-c{width:42px;height:42px}
  body[data-screen="addservice"] #mainCard,
  .as-wizard + .main-card{
    position:static!important;left:auto!important;bottom:auto!important;
    width:100%!important;margin:16px 0 0!important;transform:none!important;
    box-shadow:var(--shadow-sm)!important;
  }
  body[data-screen="addservice"] #mainCard:active{transform:scale(.985)!important}
  body[data-screen="wizard"] .screen,body[data-screen="addservice"] .screen,
  body[data-screen="eventedit"] .screen,body[data-screen="uknew"] .screen{
    padding-bottom:28px!important;
  }
}

.court-type{min-height:44px!important}
.uk-review-card .as-review-section>b{
  max-width:68%;display:block!important;overflow:visible!important;
  -webkit-line-clamp:unset!important;line-clamp:unset!important;
  overflow-wrap:anywhere;white-space:pre-wrap;
}
