/* БЕГ/ВМЕСТЕ — mobile design system. Loaded after each active screen's local styles. */
:root{
  --bg:#F6F6F3;
  --card:#FFFFFF;
  --white:#FFFFFF;
  --ink:#111111;
  --text:#111111;
  --green:#0C2B21;
  --orange:#F4512B;
  --pale:#E3EFE7;
  --green-light:#E3EFE7;
  --lime:#CDE86B;
  --muted:#6B7280;
  --line:#E3E7DE;
  --border:#E3E7DE;
  --coral:#F4512B;
  --coral-soft:#FDE7E0;
  --moss:#0C2B21;
}
html,body{background:var(--bg)!important;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif;font-size:15px;line-height:1.4}
.app,.phone,.screen{background:var(--bg)}
button,input,select,textarea{font:inherit}

/* Surfaces */
.card,.filter-card,.result-card,.upload-card,.dialog,.track-card,.r-row,.coach-card,.params,.consent,.safe,.sheet,.modal-card,.confirm-card,.coach-booking-trainer,.coach-booking-total,.coach-booking-grid{background:var(--card);border-color:var(--line)!important;border-radius:20px}
.card,.filter-card,.result-card,.upload-card,.dialog,.track-card,.r-row,.params,.consent,.safe{border:1px solid var(--line)!important}

/* Core type scale */
.top h1,.top-row h1,.title-row h1,.app>h1{font-size:30px!important;line-height:1.08!important;font-weight:800!important;color:var(--green)!important}
.card h2,.card-head h1,.sheet-head h2,.modal-card h3,.confirm-card h2,.coach-booking-section-title,.sec-title{font-size:20px!important;line-height:1.2!important;font-weight:800!important;color:var(--green)!important}
.d-name,.track-name,.r-name,.runner-name,.trainer-name,.coach-name,.t-name,.p-name,.chat-title b,.coach-booking-trainer h3,.coach-booking-success-content h2{font-size:17px!important;line-height:1.25!important;font-weight:800!important;color:var(--green)!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-preview,.preview,.track-sub,.r-preview,.runner-text,.lead,.detail,.price-row,.filter-value,.success-sub,.t-sub,.p-sub,.coach-booking-success-lead{font-size:15px!important;line-height:1.4!important}
.d-meta,.meta,.track-meta,.r-meta,.p-sub,.t-sub,.chat-title span,.coach-booking-profile-meta,.coach-booking-profile-point,.hint,.form-note,.secure-note,.rules,.lead{color:var(--muted)!important;font-size:13px!important;line-height:1.4!important;font-weight:400!important}
.chip,.chips button,.pill,.today-chip,.start-pill,.badge,.coach-booking-profile-badge,.paid,.status-chip{font-size:12.5px!important;line-height:1.2!important;font-weight:600!important}
.eyebrow,.field-label,.filter-label,.metric small,.metrics small,.stat small,.price small,.coach-booking-eyebrow{font-size:11px!important;line-height:1.25!important;letter-spacing:.7px!important;font-weight:800!important}
.metric b,.metrics b,.stat b,.price b,.price-row.total,.coach-booking-grand-total b,.modal-refund{font-size:22px!important;line-height:1.15!important;font-weight:800!important;color:var(--green)!important}

/* Text overflow keeps controls, times and badges fixed. */
.d-main,.chat-copy,.track-body,.r-main,.runner-copy,.coach-copy,.trainer-copy{min-width:0;flex:1}
.d-name,.d-preview,.d-meta,.preview,.meta,.track-name,.track-sub,.r-name,.r-preview,.r-meta,.runner-text,.t-name,.t-sub,.p-name,.p-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-side,.d-time,.time,.badge,.unread-badge,.match{flex:0 0 auto}

/* Interactive components */
button,.tab,.nav-item,.tabbar .tab,.bottom-nav .nav-item,.close-btn,.head-btn,.back-btn,.edit-btn,.add-btn,.new-btn,.trash,.chevron,.coach-cancel-keep,.coach-cancel-confirm{min-width:44px;min-height:44px}
.tabs .tab,.tabs button,.chips button,.chip,.format,.goal,.r-row,.dialog,.track-card,.runner,.coach-card{min-height:44px}
.primary,.primary-btn,.pay-btn,.sheet-primary,.create-group-btn,.apply,.coach-params-save,.coach-booking-done-button,.coach-payment-pay-button{min-height:56px!important;background:var(--orange)!important;color:#fff!important;font-size:16px!important;line-height:1.25!important;font-weight:800!important;border-color:var(--orange)!important;border-radius:16px!important}
.tabs .tab.active,.tabs button.active,.format.active,.goal.selected{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}
.nav-item.active,.tabbar .tab.active,.nav button.active{color:var(--orange)!important}
.nav-item.active svg,.tabbar .tab.active svg,.nav button.active svg{background:var(--orange)!important;color:#fff!important}

/* Only the system palette is used for priority/danger states. */
.danger,.danger-btn,.danger-outline,.m-danger,.coach-cancel-confirm,.confirm-danger{color:var(--orange)!important;border-color:var(--orange)!important}
.m-danger,.coach-cancel-confirm,.confirm-danger{background:var(--orange)!important;color:#fff!important}

/* Reading comfort. */
p,.lead,.preview,.d-preview,.d-meta,.meta,.track-sub,.r-preview,.r-meta,.success-sub,.rules,.secure-note,.hint,.form-note{line-height:1.4!important}

/* Find header: an independent text column prevents title/subtitle overlap. */
.find-header{height:auto!important;min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;column-gap:12px;align-items:start!important}
.find-header h1{min-width:0;margin:0!important;line-height:1.15!important}
.find-header .reset{min-width:80px!important;height:44px!important;margin:0!important;padding:0 8px!important;align-self:start;justify-self:end;color:var(--green)!important;font-size:13px!important;font-weight:700!important}
.find-intro{margin:8px 0 0!important;color:#6B7280!important;font-size:14.5px!important;line-height:1.4!important;font-weight:400!important}

/* The Profile privacy switch follows the approved 52×32 card layout. */
.privacy-card .toggle{flex:none!important;min-width:0!important;min-height:0!important;width:52px!important;height:32px!important}
