/* 0.4.2: a quieter public face, with the real booking flow near the top. */
.mn-client-app {
  --mn-ink: #30282b;
  --mn-muted: #6f6268;
  --mn-line: #e9dddc;
  background: #fbf8f6;
}

.mn-client-app .mn-topbar { max-width: 1200px; height: 76px; }
.mn-client-app .mn-brand-mark { border-radius: 50%; box-shadow: none; }
.mn-client-app .mn-brand strong { font-size: 17px; }
.mn-client-app .mn-brand small { font-size: 12px; letter-spacing: .04em; text-transform: none; }
.mn-client-app .mn-desktop-nav a { color: #51464b; }
.mn-client-app .mn-desktop-nav a:hover,
.mn-client-app .mn-desktop-nav a:focus-visible { color: #9c193b; }
.mn-client-app .mn-member-pill { border-color: #e5d8d8; box-shadow: none; }
.mn-client-app .mn-client-main { max-width: 1200px; padding-top: 12px; }
.mn-client-app section[id] { scroll-margin-top: 24px; }

.mn-client-app .mn-client-hero {
  min-height: 390px;
  padding: 0;
  grid-template-columns: minmax(0, 1.13fr) minmax(320px, .87fr);
  gap: 0;
  align-items: stretch;
  border-radius: 26px;
  background: #f3e9e5;
  box-shadow: none;
}
.mn-client-app .mn-client-hero::before { display: none; }
.mn-client-app .mn-hero-copy { align-self: center; padding: 48px clamp(34px, 5vw, 70px); z-index: 1; }
.mn-client-app .mn-eyebrow,
.mn-client-app .mn-kicker { color: #9d2442; letter-spacing: .11em; font-size: 13px; }
.mn-client-app .mn-hero-copy h1 {
  margin: 16px 0 18px;
  font-size: clamp(39px, 4.3vw, 58px);
  line-height: 1.18;
  letter-spacing: -.045em;
}
.mn-client-app .mn-hero-copy h1 em { color: #a82645; }
.mn-client-app .mn-hero-copy > p { font-size: 17px; line-height: 1.75; color: #5f5459; max-width: 480px; }
.mn-client-app .mn-hero-actions { margin-top: 27px; flex-wrap: wrap; }
.mn-client-app .mn-btn { min-height: 48px; height: auto; padding: 12px 20px; border-radius: 10px; }
.mn-client-app .mn-btn-primary { background: #a51d40; box-shadow: none; }
.mn-client-app .mn-btn-primary:hover,
.mn-client-app .mn-btn-primary:focus-visible { background: #831734; color: #fff; }
.mn-client-app .mn-btn-soft { background: transparent; border-color: #bba5a8; color: #46363d; }
.mn-client-app .mn-btn-soft:hover,
.mn-client-app .mn-btn-soft:focus-visible { background: #fff; }
.mn-client-app .mn-hero-note { margin-top: 22px; color: #66595e; font-size: 14px; line-height: 1.55; }
.mn-client-app .mn-hero-photo { position: relative; margin: 0; min-height: 390px; overflow: hidden; }
.mn-client-app .mn-hero-photo img { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 50% 65%; }
.mn-client-app .mn-hero-photo figcaption { position: absolute; right: 16px; bottom: 14px; padding: 5px 9px; border-radius: 5px; background: rgba(255,255,255,.88); color: #594b50; font-size: 12px; }

.mn-client-app .mn-booking-section {
  margin-top: 22px;
  padding: 36px;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 42px;
  align-items: start;
  border: 1px solid var(--mn-line);
  border-radius: 24px;
  background: #fff;
}
.mn-client-app .mn-booking-copy { padding: 20px 4px; }
.mn-client-app .mn-booking-copy h2,
.mn-client-app .mn-section-head h2,
.mn-client-app .mn-custom-banner h2,
.mn-client-app .mn-member-banner h2 { font-size: clamp(25px, 2.5vw, 34px); line-height: 1.32; }
.mn-client-app .mn-booking-copy p,
.mn-client-app .mn-section-head p,
.mn-client-app .mn-custom-banner p,
.mn-client-app .mn-member-banner p { font-size: 16px; line-height: 1.7; }
.mn-client-app .mn-step-list { margin-top: 27px; }
.mn-client-app .mn-step-list span { font-size: 13px; }
.mn-client-app .mn-booking-card { padding: 23px; border: 1px solid #eadfe0; border-radius: 17px; box-shadow: 0 10px 28px rgba(59,32,41,.07); }
.mn-client-app .mn-booking-top { margin-bottom: 16px; }
.mn-client-app .mn-booking-top span { font-size: 17px; }
.mn-client-app .mn-booking-top small { font-size: 13px; letter-spacing: 0; color: #71636a; }
.mn-client-app .mn-service-row { padding: 15px; border-radius: 11px; }
.mn-client-app .mn-service-row:hover,
.mn-client-app .mn-service-row:focus-visible { border-color: #a82645; }
.mn-client-app .mn-service-row.selected { border-color: #a82645; background: #fff6f7; box-shadow: 0 0 0 2px #f4dfe4; }
.mn-client-app .mn-service-row b { font-size: 16px; }
.mn-client-app .mn-service-row small { font-size: 14px; color: #695c62; line-height: 1.5; }
.mn-client-app .mn-form label { color: #4c4046; font-size: 14px; }
.mn-client-app .mn-form-msg { font-size: 14px; line-height: 1.5; }
.mn-client-app .mn-form button:disabled { opacity: .7; cursor: default; }

.mn-client-app .mn-section { padding-top: 52px; }
.mn-client-app .mn-section-head { margin-bottom: 20px; }
.mn-client-app .mn-work-card { border-radius: 14px; box-shadow: none; }
.mn-client-app .mn-empty-state { grid-column: 1 / -1; padding: 26px; border-style: solid; background: #fff; }
.mn-client-app .mn-empty-state b { font-size: 17px; }
.mn-client-app .mn-empty-state small { font-size: 14px; line-height: 1.6; }
.mn-client-app .mn-empty-state a { display: inline-flex; margin-top: 14px; color: #971b39; font-weight: 800; font-size: 14px; }
.mn-client-app .mn-custom-banner { margin-top: 38px; padding: 30px 34px; border-radius: 20px; background: #f4ebe8; }
.mn-client-app .mn-public-form-section { padding: 34px; border-radius: 20px; }
.mn-client-app .mn-public-form-section h2 { font-size: 29px; }
.mn-client-app .mn-public-form-section p { font-size: 16px; }
.mn-client-app .mn-member-banner { margin-top: 38px; padding: 34px 38px; border-radius: 20px; background: #3c2d31; }
.mn-client-app .mn-member-banner .mn-kicker { color: #f3c6cf; }
.mn-client-app .mn-footer { font-size: 13px; }
.mn-client-app .mn-mobile-nav a { font-size: 12px; }
.mn-client-app :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #a82645; outline-offset: 3px; }

.mn-login-app { background: #f8f3f0; }
.mn-login-shell { box-shadow: 0 26px 65px rgba(61,36,42,.12); }
.mn-login-copy { background: #392b30; }
.mn-login-copy .mn-eyebrow { color: #f5bccb; font-size: 13px; }
.mn-login-copy p { font-size: 17px; }
.mn-login-benefits { display: grid; gap: 12px; list-style: none; margin: 34px 0 0; padding: 0; }
.mn-login-benefits li { padding: 11px 0 11px 25px; border-top: 1px solid rgba(255,255,255,.17); font-size: 15px; position: relative; }
.mn-login-benefits li::before { content: "✓"; position: absolute; left: 0; color: #eeb3c2; }
.mn-login-mobile-brand { display: none; }
.mn-login-card label { font-size: 14px; }
.mn-login-card .login-remember,
.mn-login-links,
.mn-back-link { font-size: 14px; }
.mn-login-card .login-submit input { background: #a51d40; font-size: 15px; }
.mn-login-card .login-submit input:hover { background: #831734; }
.mn-login-card .mn-form { gap: 16px; }
.mn-login-card .mn-form input[type="text"],
.mn-login-card .mn-form input[type="password"] { margin-top: 0; }
.mn-login-card .mn-form .mn-auth-remember { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.mn-login-card .mn-auth-remember input { width: auto; height: auto; margin: 0; }
.mn-login-card .mn-auth-intro { color: #6f6268; font-size: 15px; line-height: 1.65; margin: -12px 0 22px; }
.mn-login-card .mn-auth-notice { padding: 12px 14px; margin-bottom: 20px; border-radius: 9px; font-size: 14px; line-height: 1.55; }
.mn-login-card .mn-auth-notice.is-error { background: #fff1f2; color: #8d1e38; border: 1px solid #efc5cd; }
.mn-login-card .mn-auth-notice.is-success { background: #eff8f3; color: #215a3d; border: 1px solid #b9ddc7; }
.mn-login-card :is(a, button, input):focus-visible { outline: 3px solid #a82645; outline-offset: 3px; }

@media (max-width: 820px) {
  .mn-client-app .mn-client-main { padding: 6px 16px 96px; }
  .mn-client-app .mn-client-hero { grid-template-columns: 1fr; }
  .mn-client-app .mn-hero-copy { padding: 34px 30px 28px; }
  .mn-client-app .mn-hero-photo { min-height: 240px; }
  .mn-client-app .mn-hero-photo img { object-position: 50% 58%; }
  .mn-client-app .mn-booking-section { grid-template-columns: 1fr; gap: 14px; padding: 27px; margin-top: 16px; }
  .mn-client-app .mn-booking-copy { padding: 0; }
  .mn-client-app .mn-step-list { margin-top: 18px; }
  .mn-client-app .mn-mobile-nav { border-color: #e9dedd; }
  .mn-client-app .mn-mobile-nav a.active { background: #f9e8eb; color: #981b3a; }
  .mn-login-mobile-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 25px; font-size: 17px; }
  .mn-login-mobile-brand img { width: 40px; height: 40px; border-radius: 50%; }
}

@media (max-width: 520px) {
  .mn-client-app .mn-brand strong { font-size: 15px; }
  .mn-client-app .mn-brand small { font-size: 11px; }
  .mn-client-app .mn-client-hero { border-radius: 20px; }
  .mn-client-app .mn-hero-copy { padding: 30px 23px 25px; }
  .mn-client-app .mn-hero-copy h1 { font-size: clamp(32px, 9vw, 40px); }
  .mn-client-app .mn-hero-copy > p { font-size: 16px; }
  .mn-client-app .mn-hero-actions { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .mn-client-app .mn-hero-photo { min-height: 170px; }
  .mn-client-app .mn-booking-section { padding: 20px; border-radius: 18px; }
  .mn-client-app .mn-booking-card { padding: 15px; }
  .mn-client-app .mn-step-list { flex-wrap: wrap; gap: 8px; }
  .mn-client-app .mn-section { padding-top: 43px; }
  .mn-client-app .mn-custom-banner,
  .mn-client-app .mn-public-form-section,
  .mn-client-app .mn-member-banner { padding: 24px 20px; }
  .mn-client-app .mn-footer { display: grid; gap: 5px; }
  .mn-login-app { padding: 16px; }
  .mn-login-shell { border-radius: 19px; }
  .mn-login-card { padding: 28px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .mn-client-app *, .mn-login-app * { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* 0.5.0 RC1 — independent studio feature sync */
.mn-report-periods{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mn-report-periods button{border:1px solid #eadfe5;background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;color:#655760;font-weight:700}
.mn-report-periods button.active{background:#cf4d85;border-color:#cf4d85;color:#fff}
.mn-segment-row small{display:block;color:#9a8e96;margin-top:2px}
@media(max-width:760px){.mn-report-periods{width:100%}.mn-report-periods button{flex:1;min-width:52px}.mn-data-table{min-width:760px}}
