/* Sopro: uma família, uma escala e menos ornamento. */
:root {
  --serif: var(--sans);
  --type-caption: 13px;
  --type-label: 14px;
  --type-body: 16px;
  --type-section: 20px;
  --type-title: 28px;
  --type-value: 36px;
  --gutter: 20px;
}

body {font-size:var(--type-body);line-height:1.5}
.brand-name {font-size:20px;font-weight:600;letter-spacing:-.04em}
.brand-lotus {width:26px;height:26px}
.page-title,.display,.ask-q,.thinking-title,.hero-title,.hero-checkin .hero-title,.hero-soft .hero-title {
  font-size:var(--type-title);font-weight:500;line-height:1.2;letter-spacing:-.03em;
}
.display {max-width:19ch}
.thinking-title {max-width:19ch}
.section-title,.rest-title,.step-q,.sheet-head h2,.player-title,.plan-card h2,.share-card h3,.cycle-invite h2,.page-cycle h2,.section-heading h2,.cycle-calendar-head h2,.week-offer-title {
  font-size:var(--type-section);font-weight:500;line-height:1.3;letter-spacing:-.02em;
}
.pain-list li,.why-quote,.mock-title,.suggestion-comparison strong,.cycle-note-phrase {
  font-size:var(--type-body);font-weight:400;line-height:1.55;letter-spacing:0;
}
.why-quote {max-width:27ch}
.hero-time,.hero-soft .hero-time,.mock-time,.price-value strong,.offer-price strong,.breath-core strong,.cmp strong,.change-time {
  font-size:var(--type-value);font-weight:500;line-height:1.15;letter-spacing:-.04em;font-variant-numeric:tabular-nums;
}
.dial-center strong {font-size:56px;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.week-date strong,.week-stats strong,.share-stats strong {font-size:20px;font-weight:500;letter-spacing:-.025em}
.price-value,.next-period p {font-size:var(--type-body);font-weight:500;letter-spacing:0;line-height:1.5}
.hero-tip,.hero-meta,.page-sub,.intro,.lead,.ask-help,.player-tip,.cycle-invite p:not(.fine),.cycle-caption p,.moment-note p {
  font-size:var(--type-body);line-height:1.5;
}
.page-sub,.date-line,.hero-kicker,.hero-meta,.section-label,.field-label,.kicker,.notice-meta {
  font-size:var(--type-label);font-weight:400;letter-spacing:0;line-height:1.5;
}
.fine,.ask-note,.sheet-head p,.body-strip-main small,.history-entry small,.cycle-uncertain,.rhythm-insights>p,.empty-diary,.rhythm-insights article p,.cycle-explainer p {
  font-size:var(--type-label);line-height:1.55;
}
.btn,.hero-main,.hero-alt,.option,.text-btn,.foot-btn,.player-skip,.player-next,.player-done,.choice,.chip {
  font-size:var(--type-body);font-weight:500;letter-spacing:-.01em;
}
.input,.select,.textarea,input,select,textarea {font-size:var(--type-body)}
.field>span,.wellbeing-form legend,.feeling-choice span,.body-strip-main strong,.week-main strong,.rhythm-insights h3,.history-entry strong {
  font-size:var(--type-body);font-weight:500;line-height:1.45;
}
.week-main small,.week-main>span,.week-end,.item-title,.row-copy strong,.row-copy>span,.block-label {
  font-size:var(--type-label);font-weight:400;line-height:1.5;
}
.week-main strong,.item-title,.row-copy strong {font-size:var(--type-body);font-weight:500}
.week-main .week-cycle-label {font-size:var(--type-caption);font-weight:400;margin-top:4px}
.nav-btn {font-size:var(--type-caption);font-weight:400}
.nav-btn.is-active {font-weight:500}
.calm-btn {font-size:var(--type-label);font-weight:500;border-radius:12px}
.body-strip-phrase {font-size:var(--type-label);font-weight:400;line-height:1.5}

.page-head {margin-bottom:24px}
.page-cycle .page-head {margin-bottom:20px}
.hero {border-radius:16px;box-shadow:none;padding:22px 20px}
.hero::before {display:none}
.now-band {background:var(--cream-soft);border-radius:12px}
.hero-title {margin-top:8px}
.btn,.option,.input,.select,.textarea,.feeling-choice span {border-radius:12px}
.hero-main,.hero-alt {border-radius:12px}
.hero-main,.hero-alt,.btn,.option {min-height:52px}
.plan-card,.mock-card,.offer-card,.suggestion-comparison>div {border-radius:16px;box-shadow:none}
.app-shell {box-shadow:none}
.week {gap:0}
.week-row {padding:18px 0;background:none;box-shadow:none;border-bottom:1px solid var(--sand);border-radius:0;gap:12px}
.week-date {width:56px;height:56px;border-radius:12px}
.week-row {grid-template-columns:56px minmax(0,1fr) auto}
.week-date small {font-size:var(--type-caption)}
.week-stats span {padding:0;background:none;border-radius:0;font-size:var(--type-label)}
.week-stats {gap:18px}
.week-cycle-legend {margin-bottom:12px}
.cycle-calendar-head h2 {font-size:18px;letter-spacing:-.025em}
.cycle-calendar-day {border-radius:10px;font-weight:400;font-variant-numeric:tabular-nums}
.cycle-day-note {border-radius:14px;padding:16px;margin-bottom:20px}
.cycle-note-heading h3 {font-size:var(--type-body);font-weight:500;letter-spacing:-.01em}
.cycle-note-date,.cycle-note-origin,.cycle-note-detail,.cycle-note-log,.cycle-note-hint,.cycle-color-legend>span,.cycle-color-key {
  font-size:var(--type-caption);line-height:1.5;
}
.cycle-note-phrase {margin-top:12px;margin-bottom:12px;line-height:1.5}
.cycle-day-note .text-btn {font-size:var(--type-label);font-weight:500}
.next-period,.adjust-note,.rhythm-insights article,.cycle-uncertain {border-radius:14px}
.dial-leaf {display:none}
.sheet {border-radius:20px 20px 0 0;box-shadow:none}
.sheet-head h2 {letter-spacing:-.025em}
.breath-core {box-shadow:none}

@media(min-width:500px){.app-shell{border-inline:1px solid var(--sand)}}
@media(max-width:360px){:root{--gutter:16px}.display,.ask-q,.hero-title,.hero-checkin .hero-title{font-size:26px}.cycle-calendar-head h2{font-size:17px}}
