/* SVIVI · Места — единая интерфейсная система (2026.10)
   Только клиентский кабинет и публичный каталог.
   Все цвета связаны с темой, формы и бизнес-данные не меняются. */
body.svivi-client-ui,body.svivi-places-ui{
  --ui-bg:#f5f7f5;--ui-surface:#ffffff;--ui-subtle:#f0f4f0;
  --ui-ink:#26372d;--ui-secondary:#627369;--ui-border:#dce5dd;
  --ui-accent:#32644c;--ui-accent-hover:#27543e;
  --ui-highlight:#e9f3eb;--ui-hover:#f1f6f1;
  font:15px/1.5 Arial,Helvetica,sans-serif;
  color:var(--ui-ink);background:var(--ui-bg);
  -webkit-font-smoothing:antialiased;
}
html[data-theme="dark"] body.svivi-client-ui,
html[data-theme="dark"] body.svivi-places-ui{
  --ui-bg:#0f1216;--ui-surface:#171b21;--ui-subtle:#20262e;
  --ui-ink:#eef2f7;--ui-secondary:#aebac7;--ui-border:#2d3540;
  --ui-accent:#315b4e;--ui-accent-hover:#3b8067;
  --ui-highlight:#21352d;--ui-hover:#222c36;
  --ink:#eef2f7;--muted:#aab6c4;
  --line:#2d3540;--bg:#0f1216;
  --card:var(--ui-surface);--soft:var(--ui-subtle);
  --accent:var(--ui-accent);
  background:var(--ui-bg)!important;color:var(--ui-ink)!important;
}
html[data-theme="dark"]{background:#0f1216}
body.svivi-client-ui *,body.svivi-places-ui *{box-sizing:border-box}
body.svivi-client-ui :is(h1,h2,h3),body.svivi-places-ui :is(h1,h2,h3){
  letter-spacing:-.018em;font-weight:700;
}
body.svivi-client-ui :is(button,input,textarea,select),
body.svivi-places-ui :is(button,input,textarea,select){font-family:inherit}
body.svivi-client-ui a,body.svivi-places-ui a{transition:background-color .15s ease,border-color .15s ease,color .15s ease}
body.svivi-client-ui a:focus-visible,body.svivi-places-ui a:focus-visible,
body.svivi-client-ui button:focus-visible,body.svivi-places-ui button:focus-visible{
  outline:3px solid #88bb94;outline-offset:3px;
}
/* Center the experience: page background, floating consistent masthead, no squared dark strip. */
body.svivi-client-ui .shell{
  width:min(1040px,100%);margin-inline:auto;
  background:transparent!important;box-shadow:none!important;min-height:100vh;
}
body.svivi-places-ui .shell{
  width:min(1220px,100%);margin-inline:auto;
  background:transparent!important;box-shadow:none!important;min-height:100vh;
}
body.svivi-client-ui .topbar,body.svivi-places-ui .top{
  position:sticky;top:12px;z-index:40;
  height:69px;min-height:69px;
  margin:14px 22px 0;padding:0 23px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border:1px solid var(--ui-border)!important;border-radius:15px;
  background:var(--ui-surface)!important;color:var(--ui-ink)!important;
  box-shadow:0 3px 14px rgba(26,43,29,.035);
  backdrop-filter:blur(14px);
}
body.svivi-client-ui .svivi-public-brand,body.svivi-places-ui .svivi-public-brand{
  display:inline-flex;align-items:center;line-height:1;flex-shrink:0;
}
body.svivi-client-ui .svivi-public-brand img,body.svivi-places-ui .svivi-public-brand img{
  display:block;width:124px;height:auto;max-height:46px;object-fit:contain;
}
html[data-theme="dark"] body.svivi-client-ui .svivi-public-brand img,
html[data-theme="dark"] body.svivi-places-ui .svivi-public-brand img{
  filter:brightness(0) invert(1);
}
body.svivi-client-ui .main{
  padding:25px 22px 96px;
  color:var(--ui-ink)!important;background:transparent!important;
}
body.svivi-places-ui .page{
  padding:22px 22px 90px;color:var(--ui-ink)!important;background:transparent!important;
}
body.svivi-client-ui :is(h1,h2,h3),body.svivi-places-ui :is(h1,h2,h3){
  color:var(--ui-ink)!important;
}
body.svivi-client-ui .muted,body.svivi-places-ui .muted,
body.svivi-client-ui .profile-lead{color:var(--ui-secondary)!important}
body.svivi-client-ui :is(.panel,.visit,.favorite-card,.auth-card),
body.svivi-places-ui :is(.panel,.place-card,.detail-card,.branch-card,.review-card,.category-board){
  background:var(--ui-surface)!important;
  color:var(--ui-ink)!important;border:1px solid var(--ui-border)!important;
  border-radius:15px;box-shadow:none!important;
}
body.svivi-client-ui .btn,body.svivi-places-ui .btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:10px 15px;
  border:1px solid var(--ui-border)!important;border-radius:10px;
  background:var(--ui-surface)!important;color:var(--ui-ink)!important;
  box-shadow:none!important;transform:none!important;
  font-size:13px;font-weight:650;line-height:1.35;text-decoration:none;
}
body.svivi-client-ui .btn:hover,body.svivi-places-ui .btn:hover{
  background:var(--ui-hover)!important;border-color:var(--ui-accent)!important;
}
body.svivi-client-ui .btn.primary,body.svivi-places-ui .btn.primary{
  background:var(--ui-accent)!important;border-color:var(--ui-accent)!important;color:#fff!important;
}
body.svivi-client-ui .btn.primary:hover,body.svivi-places-ui .btn.primary:hover{
  background:var(--ui-accent-hover)!important;border-color:var(--ui-accent-hover)!important;
}
body.svivi-client-ui .btn.small,body.svivi-places-ui .btn.small{min-height:37px;padding:8px 12px;font-size:12px}
body.svivi-client-ui .top-actions,body.svivi-places-ui .nav{gap:8px}
body.svivi-client-ui .section-title,body.svivi-places-ui .section{
  margin-top:28px;
}
body.svivi-client-ui .section-title{margin-bottom:13px;align-items:center}
body.svivi-client-ui .section-title h2,body.svivi-places-ui .section h2{
  font-size:20px;font-weight:700;line-height:1.25;
}
body.svivi-client-ui .counter{
  background:var(--ui-highlight);color:var(--ui-accent);border:1px solid var(--ui-border);
  font-size:11px;font-weight:750;min-height:25px;min-width:25px;
}
/* Customer landing: one uncluttered introductory card rather than an oversized banner. */
body.svivi-client-ui .customer-home-hero{
  display:block!important;
  padding:27px 30px!important;margin:0!important;
  border:1px solid var(--ui-border)!important;border-radius:16px!important;
  background:var(--ui-surface)!important;box-shadow:none!important;
}
body.svivi-client-ui .customer-hero-content{min-width:0}
body.svivi-client-ui .customer-hero-kicker{
  display:flex;align-items:center;gap:8px;
  color:var(--ui-accent)!important;font-size:11px;
  font-weight:700;letter-spacing:.075em;text-transform:uppercase;
}
body.svivi-client-ui .customer-hero-dot{height:7px;width:7px;border-radius:50%;background:var(--ui-accent)}
body.svivi-client-ui .customer-hero-title{
  font-size:clamp(24px,2.7vw,29px)!important;
  margin:12px 0 6px;line-height:1.22;font-weight:700!important;
  letter-spacing:-.025em;color:var(--ui-ink)!important;
}
body.svivi-client-ui .customer-hero-subtitle{color:var(--ui-secondary);font-size:13px}
body.svivi-client-ui .customer-hero-contact{font-size:12px;color:var(--ui-secondary);margin-top:11px;overflow-wrap:anywhere}
body.svivi-client-ui .customer-hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
body.svivi-client-ui .customer-hero-chip{
  display:inline-flex;align-items:center;min-height:29px;
  padding:5px 11px;border:1px solid var(--ui-border);border-radius:8px;
  background:var(--ui-subtle)!important;color:var(--ui-ink)!important;
  font-size:11px;font-weight:650;
}
body.svivi-client-ui .customer-hero-chip.confirmed{
  background:var(--ui-highlight)!important;color:var(--ui-accent)!important;
}
body.svivi-client-ui .customer-hero-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}
body.svivi-client-ui .customer-dashboard .visit{
  padding:21px 23px!important;margin:0;
  border-radius:15px;background:var(--ui-surface)!important;
}
body.svivi-client-ui .visit-list{display:grid;gap:11px}
body.svivi-client-ui .visit-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
body.svivi-client-ui .customer-dashboard .visit-place{
  font-size:18px;font-weight:700;color:var(--ui-ink)!important;
}
body.svivi-client-ui .visit-address{font-size:12px;color:var(--ui-secondary)!important;margin-top:5px}
body.svivi-client-ui .customer-dashboard .visit-date{
  min-width:125px;text-align:right;flex:none;
  color:var(--ui-ink)!important;
  font-size:14px;font-weight:700;
  white-space:normal;line-height:1.32;
  background:transparent!important;
  border-left:1px solid var(--ui-border);padding:3px 0 3px 18px;
  border-radius:0!important;
}
body.svivi-client-ui .visit-date small{
  display:block;margin:5px 0 0!important;font-size:13px;
  font-weight:500;color:var(--ui-secondary)!important;
}
body.svivi-client-ui .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
body.svivi-client-ui .chip{
  display:inline-flex;align-items:center;padding:6px 10px;
  font-size:11px;font-weight:600;
  background:var(--ui-subtle)!important;color:var(--ui-secondary)!important;
  border:1px solid var(--ui-border);border-radius:7px;
}
body.svivi-client-ui .chip.status-upcoming,body.svivi-client-ui .chip.status-completed{
  background:var(--ui-highlight)!important;color:var(--ui-accent)!important;
}
body.svivi-client-ui .actions{margin-top:16px;gap:9px}
body.svivi-client-ui .favorite-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:12px;
}
body.svivi-client-ui .favorite-card{
  width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:9px 20px;align-items:center;padding:19px 21px;
}
body.svivi-client-ui .favorite-card-top{grid-column:1;grid-row:1;min-width:0;gap:10px}
body.svivi-client-ui .favorite-name{font-size:17px;font-weight:700;color:var(--ui-ink)!important}
body.svivi-client-ui .favorite-meta,body.svivi-client-ui .favorite-rating{
  color:var(--ui-secondary)!important;font-size:12px;
}
body.svivi-client-ui .favorite-rating{grid-column:1;grid-row:2;white-space:normal}
body.svivi-client-ui .favorite-rating strong{color:var(--ui-accent)!important}
body.svivi-client-ui .favorite-card-actions{
  grid-column:2;grid-row:1/span 2;display:flex;flex-wrap:wrap;align-items:center;
  min-width:215px;gap:8px;
}
body.svivi-client-ui .favorite-remove{color:var(--ui-secondary)!important;font-size:18px}
body.svivi-client-ui .review-request{
  background:var(--ui-highlight)!important;color:var(--ui-ink)!important;
  border:1px solid var(--ui-border)!important;border-radius:15px;
}
body.svivi-client-ui .review-request p{color:var(--ui-secondary)!important}
body.svivi-client-ui .review-request-icon{background:var(--ui-surface);color:var(--ui-accent)}
body.svivi-client-ui .notice,body.svivi-client-ui .profile-danger,
body.svivi-client-ui .empty{
  background:var(--ui-subtle)!important;color:var(--ui-secondary)!important;
  border:1px solid var(--ui-border)!important;border-radius:13px;
}
body.svivi-client-ui .notice strong,body.svivi-client-ui .empty strong{color:var(--ui-ink)!important}
body.svivi-client-ui .profile-danger{font-size:12px;line-height:1.6}
body.svivi-client-ui .review-box{border-color:var(--ui-border)}
body.svivi-client-ui .flash{
  background:var(--ui-highlight)!important;color:var(--ui-accent)!important;
  border:1px solid var(--ui-border);border-radius:12px;
}
/* Profile and authentication: quiet fields, consistent sections. */
body.svivi-client-ui .profile-settings{gap:13px}
body.svivi-client-ui .profile-settings .panel{padding:24px}
body.svivi-client-ui .profile-settings h2{font-size:19px}
body.svivi-client-ui .profile-verify-state{
  background:var(--ui-highlight)!important;color:var(--ui-accent)!important;
  border:1px solid var(--ui-border)!important;
}
body.svivi-client-ui .profile-verified-text{color:var(--ui-accent)!important}
body.svivi-client-ui .field label{font-size:12px;font-weight:650;color:var(--ui-ink)}
body.svivi-client-ui .field :is(input,textarea,select){
  width:100%;min-width:0;border:1px solid var(--ui-border)!important;
  border-radius:10px;background:var(--ui-surface)!important;
  color:var(--ui-ink)!important;-webkit-text-fill-color:var(--ui-ink)!important;
  box-shadow:none!important;
}
body.svivi-client-ui .profile-appearance-panel>.panel{
  padding:21px!important;border-radius:15px;
}
body.svivi-client-ui .svivi-theme-options{gap:9px}
body.svivi-client-ui .svivi-theme-option{
  border:1px solid var(--ui-border)!important;
  background:var(--ui-surface)!important;color:var(--ui-ink)!important;
  font-weight:650;border-radius:9px;
}
body.svivi-client-ui .svivi-theme-option.active{
  background:var(--ui-accent)!important;color:#fff!important;border-color:var(--ui-accent)!important;
}
body.svivi-client-ui .auth-card{background:var(--ui-surface)!important;border-radius:15px;box-shadow:none!important}
body.svivi-client-ui .auth-intro{border-radius:15px}
body.svivi-client-ui .auth-intro :is(h1,h2){color:#fff!important}
body.svivi-client-ui .auth-card .lead,body.svivi-client-ui .switch{color:var(--ui-secondary)!important}
/* Catalog: evenly spaced search, location, list cards and sections. */
body.svivi-places-ui .hero{padding:5px 0 22px}
body.svivi-places-ui .hero h1{font-size:clamp(25px,3vw,32px);line-height:1.18}
body.svivi-places-ui .hero p{font-size:14px;line-height:1.6;color:var(--ui-secondary)!important}
body.svivi-places-ui .searchbar{padding:14px;margin-bottom:16px;gap:11px}
body.svivi-places-ui .searchbar :is(input,select){
  border:1px solid var(--ui-border)!important;
  color:var(--ui-ink)!important;-webkit-text-fill-color:var(--ui-ink)!important;
  background:var(--ui-surface)!important;border-radius:9px;
}
body.svivi-places-ui .map-wrap{overflow:hidden;border-radius:15px!important;margin-bottom:18px}
body.svivi-places-ui .map{display:block;border:0}
body.svivi-places-ui .grid{gap:13px}
body.svivi-places-ui .place-card{overflow:hidden;border-radius:15px;box-shadow:none!important}
body.svivi-places-ui .place-card:hover{
  transform:none;box-shadow:0 6px 20px rgba(22,40,27,.065)!important;
  border-color:var(--ui-accent)!important;
}
body.svivi-places-ui .place-body{padding:34px 18px 19px;background:var(--ui-surface);color:var(--ui-ink)}
body.svivi-places-ui .place-cover{background-color:var(--ui-subtle)}
body.svivi-places-ui .place-name{font-size:19px;font-weight:700;color:var(--ui-ink)!important}
body.svivi-places-ui .place-type,body.svivi-places-ui .rating span,
body.svivi-places-ui .place-desc,body.svivi-places-ui .place-address{
  color:var(--ui-secondary)!important;
}
body.svivi-places-ui .place-address{border-color:var(--ui-border)!important}
body.svivi-places-ui .place-address strong{color:var(--ui-ink)!important}
body.svivi-places-ui .rating .stars,body.svivi-places-ui .review-stars{color:var(--ui-accent)!important}
body.svivi-places-ui .place-actions .btn{min-width:0}
body.svivi-places-ui .detail-cover{
  height:290px;border-radius:16px;background-color:var(--ui-subtle);
  overflow:hidden;
}
body.svivi-places-ui .detail-card{
  margin:-45px 22px 0;padding:24px;border-radius:15px;
}
body.svivi-places-ui .detail-name{font-size:clamp(23px,3vw,29px);font-weight:700;color:var(--ui-ink)!important}
body.svivi-places-ui .detail-desc{font-size:14px;line-height:1.6;color:var(--ui-secondary)!important}
body.svivi-places-ui .detail-actions{gap:10px}
body.svivi-places-ui .section{margin-top:30px}
body.svivi-places-ui .section h2{font-size:22px;margin-bottom:10px}
body.svivi-places-ui .section-sub{font-size:13px;color:var(--ui-secondary)!important;margin:0 0 15px}
body.svivi-places-ui .branch-card{overflow:hidden;border-radius:15px}
body.svivi-places-ui .branch-main{padding:20px}
body.svivi-places-ui .branch-name{color:var(--ui-ink)!important;font-weight:700}
body.svivi-places-ui .branch-address,body.svivi-places-ui .branch-contact{color:var(--ui-secondary)!important}
body.svivi-places-ui .branch-address strong{color:var(--ui-ink)!important}
body.svivi-places-ui .branch-today{
  color:var(--ui-secondary)!important;background:var(--ui-subtle)!important;
  border:1px solid var(--ui-border);border-radius:9px;
}
body.svivi-places-ui .branch-today.open{color:var(--ui-accent)!important;background:var(--ui-highlight)!important}
body.svivi-places-ui .branch-hours{
  border-color:var(--ui-border)!important;background:var(--ui-subtle)!important;
}
body.svivi-places-ui .branch-hours summary{color:var(--ui-secondary)!important}
body.svivi-places-ui .hours-row{color:var(--ui-secondary)!important}
body.svivi-places-ui .hours-row.today{color:var(--ui-ink)!important}
/* Category items: separate tiles with full contrast on focus and hover in both themes. */
body.svivi-places-ui .category-board{
  background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;
}
body.svivi-places-ui .category-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;
}
body.svivi-places-ui .category-card{
  display:flex;align-items:center;justify-content:space-between;gap:13px;
  min-width:0;min-height:83px;padding:16px 16px;
  border:1px solid var(--ui-border)!important;border-radius:13px;
  background:var(--ui-surface)!important;color:var(--ui-ink)!important;
  text-decoration:none!important;
}
body.svivi-places-ui .category-name{
  font-size:15px;line-height:1.3;font-weight:700;
  color:var(--ui-ink)!important;
}
body.svivi-places-ui .category-count{
  font-size:11px;font-weight:500;color:var(--ui-secondary)!important;
}
body.svivi-places-ui .category-go{
  display:grid;place-items:center;width:31px;height:31px;
  background:var(--ui-subtle)!important;color:var(--ui-accent)!important;
  border:1px solid var(--ui-border)!important;border-radius:9px;
  font-size:20px;font-weight:600;flex-shrink:0;
}
body.svivi-places-ui .category-card:hover,
body.svivi-places-ui .category-card:focus-visible{
  background:var(--ui-hover)!important;color:var(--ui-ink)!important;
  border-color:var(--ui-accent)!important;
  transform:none;
}
body.svivi-places-ui .category-card:hover .category-name,
body.svivi-places-ui .category-card:focus-visible .category-name{
  color:var(--ui-ink)!important;
}
body.svivi-places-ui .category-card:hover .category-count,
body.svivi-places-ui .category-card:focus-visible .category-count{
  color:var(--ui-secondary)!important;
}
body.svivi-places-ui .category-card:hover .category-go,
body.svivi-places-ui .category-card:focus-visible .category-go{
  background:var(--ui-accent)!important;color:#fff!important;
  border-color:var(--ui-accent)!important;
}
body.svivi-places-ui .reviews-list{gap:12px}
body.svivi-places-ui .review-card{padding:21px 22px;border-radius:15px}
body.svivi-places-ui .review-author{color:var(--ui-ink);font-weight:700}
body.svivi-places-ui .review-text,body.svivi-places-ui .review-date{color:var(--ui-secondary)!important}
body.svivi-places-ui .review-avatar{background:var(--ui-subtle)!important;color:var(--ui-ink)!important}
body.svivi-places-ui .review-verified{
  background:var(--ui-highlight)!important;color:var(--ui-accent)!important;
  border-radius:7px;font-size:11px;font-weight:650;
}
body.svivi-places-ui .empty,body.svivi-places-ui .map-empty{
  background:var(--ui-subtle)!important;color:var(--ui-secondary)!important;
  border:1px solid var(--ui-border)!important;border-radius:13px;
}
body.svivi-places-ui .empty strong,body.svivi-places-ui .map-empty strong{color:var(--ui-ink)!important}
/* Compact, recognisable navigation. */
body.svivi-client-ui .app-nav,body.svivi-places-ui .client-app-nav{
  background:var(--ui-surface)!important;border-color:var(--ui-border)!important;
}
body.svivi-client-ui .app-nav a,body.svivi-places-ui .client-app-nav a{
  color:var(--ui-secondary)!important;
}
body.svivi-client-ui .app-nav a.active,body.svivi-places-ui .client-app-nav a.active{
  color:var(--ui-accent)!important;
}
body.svivi-client-ui .app-nav-icon svg,body.svivi-places-ui .app-nav-icon svg{
  width:21px;height:21px;display:block;
  stroke:currentColor;stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round;
}
body.svivi-client-ui .app-nav-icon,body.svivi-places-ui .app-nav-icon{display:grid;place-items:center;width:24px;height:24px}
/* Specific dark compatibility with the shared CRM theme's !important rules. */
html[data-theme="dark"] body.svivi-client-ui :is(.panel,.visit,.favorite-card,.auth-card,.customer-home-hero),
html[data-theme="dark"] body.svivi-places-ui :is(.panel,.place-card,.detail-card,.branch-card,.review-card){
  background:var(--ui-surface)!important;color:var(--ui-ink)!important;
  border-color:var(--ui-border)!important;
}
html[data-theme="dark"] body.svivi-client-ui :is(.empty,.notice,.profile-danger),
html[data-theme="dark"] body.svivi-places-ui :is(.empty,.map-empty){
  background:var(--ui-subtle)!important;color:var(--ui-secondary)!important;
  border-color:var(--ui-border)!important;
}
html[data-theme="dark"] body.svivi-client-ui .profile-verified-text{
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .profile-verify-state{
  background:var(--ui-highlight)!important;color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .svivi-theme-option.active{
  background:var(--ui-accent)!important;color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .customer-hero-chip.confirmed{
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .counter{
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-places-ui .category-card:hover,
html[data-theme="dark"] body.svivi-places-ui .category-card:focus-visible{
  background:#25392f!important;color:#eef2f7!important;
  border-color:#7a9b80!important;
}
html[data-theme="dark"] body.svivi-places-ui .category-card:hover :is(.category-name,.category-count),
html[data-theme="dark"] body.svivi-places-ui .category-card:focus-visible :is(.category-name,.category-count){
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .favorite-rating strong,
html[data-theme="dark"] body.svivi-places-ui :is(.rating .stars,.review-stars){color:#b4e8c4!important}
@media(max-width:900px){
  body.svivi-places-ui .category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.svivi-client-ui .favorite-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  body.svivi-client-ui .topbar,body.svivi-places-ui .top{
    top:env(safe-area-inset-top);
    height:60px;min-height:60px;
    margin:9px 11px 0;padding:0 14px;
    border-radius:13px;
  }
  body.svivi-client-ui .svivi-public-brand img,body.svivi-places-ui .svivi-public-brand img{width:109px}
  body.svivi-client-ui .top-actions>a{display:none}
  body.svivi-client-ui .main{padding:17px 12px 110px}
  body.svivi-places-ui .page{padding:18px 12px 104px}
  body.svivi-client-ui .customer-home-hero{padding:22px 18px!important}
  body.svivi-client-ui .customer-hero-title{font-size:24px!important}
  body.svivi-client-ui .customer-hero-chips{gap:7px}
  body.svivi-client-ui .customer-hero-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  body.svivi-client-ui .customer-hero-buttons .btn{padding:9px 10px;text-align:center;white-space:normal}
  body.svivi-client-ui .section-title h2{font-size:19px}
  body.svivi-client-ui .visit-top{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  body.svivi-client-ui .customer-dashboard .visit-date{
    border-left:0;border-top:1px solid var(--ui-border);
    padding:9px 0 0;text-align:left;min-width:0;font-size:13px;
  }
  body.svivi-client-ui .visit-date small{display:inline;margin-left:10px!important;font-size:13px}
  body.svivi-client-ui .customer-dashboard .visit{padding:17px!important}
  body.svivi-client-ui .favorite-card{grid-template-columns:1fr;gap:12px;padding:17px}
  body.svivi-client-ui .favorite-card-top{grid-column:1;grid-row:1}
  body.svivi-client-ui .favorite-rating{grid-column:1;grid-row:2}
  body.svivi-client-ui .favorite-card-actions{grid-column:1;grid-row:3;min-width:0;display:grid;grid-template-columns:1fr 1fr}
  body.svivi-client-ui .profile-settings{grid-template-columns:1fr}
  body.svivi-client-ui .profile-settings .panel{padding:19px}
  body.svivi-places-ui .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  body.svivi-places-ui .category-card{padding:13px;min-height:79px}
  body.svivi-places-ui .detail-cover{height:230px;border-radius:13px}
  body.svivi-places-ui .detail-card{margin:-30px 10px 0;padding:19px}
  body.svivi-places-ui .detail-actions{gap:8px}
  body.svivi-places-ui .branch-main{padding:18px}
  body.svivi-places-ui .section h2{font-size:20px}
  body.svivi-places-ui .client-app-nav,
  body.svivi-client-ui .app-nav{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
}
@media(max-width:460px){
  body.svivi-places-ui .category-grid{grid-template-columns:1fr}
  body.svivi-client-ui .favorite-card-actions{grid-template-columns:1fr 1fr}
  body.svivi-client-ui .customer-hero-buttons{grid-template-columns:1fr}
  body.svivi-places-ui .grid{grid-template-columns:1fr}
  body.svivi-client-ui .review-request{grid-template-columns:42px 1fr}
}

/* SVIVI · единые аккуратные карточки избранного и зелёный вход */
/* Consistent desktop geometry for login and registration: 50/50 split. */
body.svivi-client-ui .auth-shell.customer-login-shell,
body.svivi-client-ui .auth-shell.customer-register-shell{
  width:100%;max-width:940px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;align-items:stretch;margin:26px auto 16px;
}
body.svivi-client-ui .auth-intro{
  min-height:0!important;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:30px!important;border-radius:15px!important;
  border:1px solid #d0e5d5!important;
  background:linear-gradient(137deg,#e6f2e8 0%,#f3f8ef 100%)!important;
  color:#203d2c!important;box-shadow:none!important;
}
body.svivi-client-ui .auth-intro h1{
  max-width:440px;font-size:clamp(25px,2.8vw,31px)!important;
  line-height:1.22;margin:16px 0 11px;
  letter-spacing:-.025em;color:#1f432d!important;
}
body.svivi-client-ui .auth-intro>div>p,
body.svivi-client-ui .auth-intro p{
  color:#4f6d59!important;font-size:14px;line-height:1.57;
}
body.svivi-client-ui .auth-kicker{
  padding:7px 11px;background:#d6e9d9!important;
  color:#34674a!important;font-size:11px;font-weight:700;border-radius:8px;
}
body.svivi-client-ui .benefits{gap:8px;margin-top:24px}
body.svivi-client-ui .benefit{
  grid-template-columns:38px minmax(0,1fr);gap:12px;
  align-items:center;min-height:62px;padding:10px 12px;
  background:rgba(255,255,255,.75)!important;
  border:1px solid #d5e6d9!important;border-radius:11px;
  color:#274430!important;
}
body.svivi-client-ui .benefit-icon{
  display:grid;place-items:center;width:38px;height:38px;border-radius:10px;
  background:#e0efe3!important;color:#2a6644!important;
  font-size:20px;font-weight:650;
}
body.svivi-client-ui .benefit strong{
  color:#284533!important;font-size:12px;font-weight:700;line-height:1.35;
}
body.svivi-client-ui .benefit span{
  color:#607468!important;font-size:11px;line-height:1.45;margin-top:3px;
}
body.svivi-client-ui .auth-note{
  margin-top:21px;padding-top:15px;
  border-top:1px solid #d0e2d4;color:#627d6a!important;
  font-size:11px;line-height:1.55;
}
body.svivi-client-ui .auth-shell.customer-login-shell .auth-card,
body.svivi-client-ui .auth-shell.customer-register-shell .auth-card{
  padding:31px!important;border-radius:15px!important;
  border:1px solid var(--ui-border)!important;box-shadow:none!important;
}
body.svivi-client-ui .customer-login-shell .auth-card h2{
  font-size:27px;font-weight:700;margin-bottom:7px;
}
body.svivi-client-ui .customer-login-shell .auth-card .lead{
  line-height:1.55;font-size:13px;margin-bottom:19px;
}
body.svivi-client-ui .customer-login-shell .field label{margin-top:17px}
body.svivi-client-ui .customer-login-shell .btn.primary{margin-top:20px}
body.svivi-client-ui .switch a{
  font-weight:700;color:var(--ui-accent)!important;
  text-underline-offset:3px;
}
html[data-theme="dark"] body.svivi-client-ui .auth-intro{
  border-color:#37424e!important;
  background:linear-gradient(135deg,#2e3945 0%,#1e252d 100%)!important;
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .auth-intro h1{
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .auth-intro :is(p,.auth-note){
  color:#cbd4de!important;
}
html[data-theme="dark"] body.svivi-client-ui .auth-kicker{
  background:#384654!important;color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .benefit{
  border-color:#37424e!important;
  background:rgba(22,29,38,.54)!important;
  color:#eef2f7!important;
}
html[data-theme="dark"] body.svivi-client-ui .benefit-icon{
  color:#eef2f7!important;background:#384654!important;
}
html[data-theme="dark"] body.svivi-client-ui .benefit strong{color:#eef2f7!important}
html[data-theme="dark"] body.svivi-client-ui .benefit span{color:#cbd4de!important}
html[data-theme="dark"] body.svivi-client-ui .auth-note{border-color:#37424e}
html[data-theme="dark"] body.svivi-client-ui .switch a{color:#cbd4de!important}

/* Избранное: фотографии берём непосредственно из настроек компании. */
body.svivi-client-ui .favorite-grid{
  grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),390px))!important;
  gap:14px;align-items:stretch;
}
body.svivi-client-ui .favorite-card{
  display:flex!important;flex-direction:column!important;
  align-items:stretch;width:100%;min-width:0;overflow:hidden;
  padding:0!important;gap:0!important;
  border-radius:15px!important;
}
body.svivi-client-ui .favorite-visual{
  position:relative;flex:0 0 auto;height:147px;
  background-color:#315b44;
  background-image:linear-gradient(135deg,#32664b,#85a591);
  background-size:cover;background-position:center;
}
body.svivi-client-ui .favorite-visual::before{
  content:"";position:absolute;inset:auto 0 0;height:50%;
  background:linear-gradient(0deg,rgba(14,32,20,.17),transparent);
  pointer-events:none;
}
body.svivi-client-ui .favorite-visual-logo{
  position:absolute;left:18px;bottom:-22px;z-index:2;
  width:55px;height:55px;display:grid;place-items:center;overflow:hidden;
  background:var(--ui-surface)!important;color:var(--ui-accent)!important;
  border:3px solid var(--ui-surface)!important;border-radius:13px;
  box-shadow:0 3px 12px rgba(17,35,22,.11);
}
body.svivi-client-ui .favorite-visual-logo img{
  display:block;width:100%;height:100%;object-fit:cover;
}
body.svivi-client-ui .favorite-visual-logo span{
  font-weight:750;font-size:24px;
}
body.svivi-client-ui .favorite-visual-remove{
  position:absolute;top:12px;right:12px;z-index:3;
}
body.svivi-client-ui .favorite-visual-remove .favorite-remove{
  display:grid;place-items:center;width:36px;height:36px;
  background:rgba(20,42,29,.83)!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.32)!important;border-radius:10px;
  font-size:17px;line-height:1;
}
body.svivi-client-ui .favorite-visual-remove .favorite-remove:hover{
  background:#315b44!important;
}
body.svivi-client-ui .favorite-card-top{
  display:block!important;grid-column:auto!important;grid-row:auto!important;
  padding:32px 18px 0;min-width:0;
}
body.svivi-client-ui .favorite-card-top>div{min-width:0}
body.svivi-client-ui .favorite-name{
  font-size:18px!important;font-weight:700!important;line-height:1.35;
}
body.svivi-client-ui .favorite-meta{
  margin-top:6px;font-size:12px!important;line-height:1.5;
  overflow-wrap:anywhere;
}
body.svivi-client-ui .favorite-rating{
  grid-column:auto!important;grid-row:auto!important;
  padding:13px 18px 0;font-size:12px!important;
}
body.svivi-client-ui .favorite-card-actions{
  display:grid!important;grid-column:auto!important;grid-row:auto!important;
  grid-template-columns:1fr 1fr!important;gap:9px!important;
  align-items:stretch;width:100%;min-width:0!important;
  margin-top:auto!important;padding:20px 18px 18px;
}
body.svivi-client-ui .favorite-card-actions .btn{
  width:100%;min-width:0;white-space:nowrap;
}
@media(max-width:760px){
  body.svivi-client-ui .auth-shell.customer-login-shell,
  body.svivi-client-ui .auth-shell.customer-register-shell{grid-template-columns:minmax(0,1fr);gap:11px;margin:9px auto 0}
  body.svivi-client-ui .auth-shell.customer-login-shell .auth-card,
  body.svivi-client-ui .auth-shell.customer-register-shell .auth-card{order:-1;padding:23px!important}
  body.svivi-client-ui .auth-shell.customer-login-shell .auth-intro,
  body.svivi-client-ui .auth-shell.customer-register-shell .auth-intro{order:2;padding:21px!important}
  body.svivi-client-ui .customer-login-shell .auth-intro h1{font-size:24px!important}
  body.svivi-client-ui .customer-login-shell .auth-intro .benefits{margin-top:17px}
  body.svivi-client-ui .favorite-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),390px))!important}
  body.svivi-client-ui .favorite-card-actions{grid-template-columns:1fr 1fr!important}
}
@media(max-width:460px){
  body.svivi-client-ui .favorite-grid{grid-template-columns:1fr!important}
  body.svivi-client-ui .favorite-visual{height:140px}
}
