:root {
  --ink: #213631;
  --ink-soft: #587069;
  --cream: #f8f5ef;
  --paper: #fffdf9;
  --line: #e6e5dc;
  --mint: #dcebe1;
  --green: #326c58;
  --green-dark: #294e43;
  --amber: #d88b43;
  --amber-bg: #f7e8d5;
  --blue: #6089a9;
  --blue-bg: #e2edf2;
  --rose: #bd6e6b;
  --rose-bg: #f3e1dc;
  --shadow: 0 18px 45px rgba(48, 68, 59, .08);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--cream); font: 14px/1.5 "DM Sans", sans-serif; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.eyebrow { margin: 0 0 11px; color: #7b8e87; font-size: 10px; font-weight: 700; letter-spacing: 1.8px; }
h1, h2, h3 { margin: 0; font-family: "Manrope", sans-serif; letter-spacing: -.8px; }
em { color: var(--green); font-family: Georgia, serif; font-weight: 400; }

.login-shell { display: grid; min-height: 100vh; grid-template-columns: 1.05fr .95fr; }
.login-panel { display: flex; flex-direction: column; justify-content: space-between; padding: 48px 8vw 54px; overflow: hidden; position: relative; background: #e6eee6; }
.login-panel::after { position: absolute; right: -15vw; bottom: -22vw; width: 50vw; height: 50vw; border: 1px solid rgba(64, 112, 95, .14); border-radius: 50%; box-shadow: 0 0 0 6vw rgba(255,255,255,.11), 0 0 0 12vw rgba(255,255,255,.1); content: ""; }
.brand { display: flex; z-index: 1; align-items: center; gap: 10px; color: var(--ink); font: 800 19px "Manrope"; letter-spacing: -1.2px; text-decoration: none; }
.brand-muted { color: #769288; font-weight: 600; }
.brand-mark { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--green); }
.brand-mark span { width: 9px; height: 9px; border-radius: 50%; background: #edf4eb; box-shadow: 6px -5px 0 -2px #edf4eb; }
.login-copy { z-index: 1; max-width: 630px; }
.login-copy h1 { font-size: clamp(48px, 5vw, 78px); line-height: 1.06; }
.lede { max-width: 500px; margin: 26px 0 0; color: var(--ink-soft); font-size: 17px; line-height: 1.8; }
.login-insights { display: flex; z-index: 1; gap: 40px; }
.login-insights div { display: grid; gap: 2px; }
.insight-value { color: var(--green); font: 800 24px "Manrope"; }
.insight-label { color: #7a8e87; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.login-form-wrap { display: grid; place-items: center; padding: 32px; background: var(--paper); }
.login-form { width: min(390px, 100%); }
.invite-form { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 22px; }
.login-form h2 { font-size: 38px; }
.form-intro { margin: 10px 0 34px; color: var(--ink-soft); }
label { display: grid; gap: 8px; margin: 0 0 18px; color: var(--ink); font-size: 12px; font-weight: 700; }
input, select { width: 100%; border: 1px solid var(--line); border-radius: 7px; outline: none; padding: 15px; color: var(--ink); background: #fff; transition: .2s; }
input:focus, select:focus { border-color: #80a596; box-shadow: 0 0 0 3px rgba(79, 135, 112, .12); }
.primary-button { display: flex; width: 100%; justify-content: space-between; border: 0; border-radius: 6px; margin-top: 6px; padding: 15px 18px; color: white; background: var(--green); font-weight: 700; transition: .2s; }
.primary-button:hover { background: var(--green-dark); transform: translateY(-1px); }
.form-error { min-height: 20px; margin: -7px 0 3px; color: #aa5555; font-size: 12px; }
.demo-note { color: #8c9894; font-size: 11px; text-align: center; }

.dashboard-shell { display: grid; min-height: 100vh; grid-template-columns: 230px 1fr; }
.sidebar { display: flex; flex-direction: column; padding: 25px 15px 15px; border-right: 1px solid var(--line); background: #f4f3ed; }
.sidebar-brand { margin: 0 11px 39px; font-size: 17px; }
.main-nav { display: grid; gap: 3px; }
.nav-item { display: flex; align-items: center; gap: 13px; border: 0; border-radius: 6px; padding: 11px 13px; color: #70817c; background: transparent; font-size: 13px; text-align: left; }
.nav-item span { width: 15px; color: #8c9c96; font-size: 17px; text-align: center; }
.nav-item:hover, .nav-item.active { color: var(--green-dark); background: #e5ebe4; font-weight: 700; }
.sidebar-bottom { display: grid; gap: 9px; margin-top: auto; }
.profile-button { display: grid; align-items: center; gap: 9px; grid-template-columns: 33px 1fr auto; border: 1px solid var(--line); border-radius: 7px; padding: 9px; color: var(--ink); background: #faf9f4; text-align: left; }
.profile-button small { display: block; color: #8a9993; font-size: 9px; }
.profile-avatar { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: white; background: #6c8b80; font-size: 10px; font-weight: 700; }
.profile-menu { position: fixed; bottom: 78px; left: 15px; z-index: 5; display: grid; width: 260px; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 15px; background: var(--paper); box-shadow: var(--shadow); }
.profile-menu .eyebrow { margin-bottom: 0; }
.profile-menu > small { color: #8a9993; }
.profile-menu-section { display: grid; gap: 7px; border-top: 1px solid var(--line); padding-top: 10px; }
.profile-menu-section > span { color: #8a9993; font-size: 9px; font-weight: 900; letter-spacing: .9px; text-transform: uppercase; }
.profile-menu-section small { color: #9aa5a1; font-size: 10px; line-height: 1.4; }
.profile-menu .text-button { width: 100%; padding-top: 0; text-align: left; }
.profile-menu-section.danger-zone { border-color: #eadbd8; }
.profile-menu-section.danger-zone > span { color: #9b625d; }
.help-panel { position: fixed; inset: 0; z-index: 8; display: flex; justify-content: flex-end; background: rgba(33, 54, 49, .18); backdrop-filter: blur(2px); }
.help-panel-card { width: min(460px, 100%); height: 100%; overflow: auto; border-left: 1px solid var(--line); padding: 24px; background: var(--paper); box-shadow: var(--shadow); }
.help-panel-card .icon-button { display: grid; }
.help-status-summary { display: grid; gap: 8px; border: 1px solid #dce5dc; border-radius: 10px; margin: 18px 0; padding: 13px; color: var(--ink-soft); background: #f8faf6; font-size: 12px; }
.help-status-summary strong { color: var(--ink); }
.help-grid { display: grid; gap: 10px; }
.help-grid article { border: 1px solid #edf0eb; border-radius: 10px; padding: 13px; background: #fffdf9; }
.help-grid strong { display: block; color: var(--green-dark); font: 800 13px "Manrope"; }
.help-grid p { margin: 6px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.help-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.help-actions .connect-button { width: auto; text-decoration: none; }
.dashboard-main { padding: 31px 4vw 45px; overflow: hidden; }
.topbar, .card-heading, .metric-title, .metric-main, .metric-footer, .source-row { display: flex; align-items: center; justify-content: space-between; }
.topbar h1 { font-size: 25px; }
.date-label { margin: 0 0 2px; color: #7f908a; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.mobile-nav-button { display: none; }
.date-button, .icon-button, .date-picker, .date-step-button { border: 1px solid var(--line); border-radius: 5px; min-height: 36px; padding: 9px 13px; color: var(--ink-soft); background: #fffdf9; font-size: 12px; font-weight: 700; }
.date-navigator { display: flex; align-items: center; gap: 6px; }
.date-step-button { display: grid; width: 34px; height: 36px; place-items: center; padding: 0; color: var(--green-dark); }
.date-step-button:disabled { cursor: not-allowed; opacity: .38; }
.date-picker { display: flex; align-items: center; gap: 9px; height: 36px; margin: 0; }
.date-picker input { width: 128px; border: 0; padding: 0; color: var(--ink); background: transparent; font: inherit; }
.date-picker input:focus { box-shadow: none; }
.date-picker span { color: var(--green-dark); }
.icon-button { display: grid; width: 36px; height: 36px; place-items: center; padding: 0; }
.history-day-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 30px; margin-top: 12px; }
.history-day-strip-label { color: #7f908a; font-size: 9px; font-weight: 900; letter-spacing: 1px; text-transform: uppercase; }
.history-day-chip-list { display: flex; flex-wrap: wrap; gap: 7px; }
.history-day-chip { border: 1px solid #dce5dc; border-radius: 999px; padding: 7px 10px; color: var(--ink-soft); background: #fffdf9; font-size: 10px; font-weight: 800; letter-spacing: .2px; }
.history-day-chip.active { color: var(--green-dark); background: #e9f4ed; border-color: #cddfce; }
.history-day-chip small { margin-left: 5px; color: #91a19b; font-size: 9px; font-weight: 700; }
.history-day-nav-hint { color: #91a19b; font-size: 10px; }
.hero-grid { display: grid; gap: 15px; grid-template-columns: 1.52fr .78fr; margin-top: 27px; }
.score-card, .highlight-card, .metric-card, .weekly-card, .devices-card, .placeholder-card { border: 1px solid var(--line); border-radius: 8px; background: var(--paper); box-shadow: var(--shadow); }
.score-card { padding: 25px 28px; background: linear-gradient(110deg, #e5eee5, #eef1e8); }
.score-card h2 { font-size: 27px; line-height: 1.22; }
.pill { border-radius: 20px; padding: 6px 9px; font-size: 9px; font-weight: 700; letter-spacing: .8px; }
.pill.good { color: var(--green); background: rgba(255,255,255,.68); }
.score-row { display: flex; align-items: center; gap: 24px; margin-top: 14px; }
.score-row p { max-width: 390px; color: var(--ink-soft); line-height: 1.7; }
.score-ring { display: grid; width: 106px; height: 106px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) calc(var(--score) * 1%), rgba(255,255,255,.8) 0); }
.score-ring div { display: grid; width: 82px; height: 82px; place-items: center; border-radius: 50%; background: #edf3eb; }
.score-ring strong { margin-top: 17px; font: 800 30px "Manrope"; }
.score-ring span { align-self: start; margin-top: -17px; color: #8a9a94; font-size: 11px; }
.highlight-card { padding: 20px 22px; color: #f6f3e9; background: var(--green-dark); }
.highlight-card .eyebrow { color: #a4beb4; }
.highlight-icon { margin: 1px 0 10px; color: #a8c2b5; font-size: 25px; }
.highlight-card h3 { font-size: 18px; }
.highlight-card p { margin: 8px 0 10px; color: #b8cbc4; font-size: 12px; line-height: 1.7; }
.text-button { border: 0; padding: 0; color: var(--green); background: transparent; font-size: 12px; font-weight: 700; }
.highlight-card .text-button { color: #e3eee8; }
.text-button span { margin-left: 7px; }
.section-header { display: flex; align-items: end; justify-content: space-between; margin: 34px 0 15px; }
.section-header h2 { font-size: 23px; }
.section-header > p { color: #8b9893; font-size: 11px; }
.section-header strong { color: var(--green); }
.metric-grid { display: grid; gap: 14px; grid-template-columns: 1.4fr 1fr 1fr 1fr; }
.metric-card { min-height: 203px; padding: 17px; box-shadow: none; }
.metric-title { justify-content: start; gap: 8px; font-size: 13px; font-weight: 700; }
.metric-title small { margin-left: auto; color: #9ba6a2; font-size: 8px; letter-spacing: 1px; }
.metric-icon { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; }
.amber { color: var(--amber); background: var(--amber-bg); }
.blue { color: var(--blue); background: var(--blue-bg); }
.rose { color: var(--rose); background: var(--rose-bg); }
.green { color: var(--green); background: var(--mint); }
.calorie-row { margin: 18px 0 8px; }
.calorie-row strong, .metric-main strong { font: 800 27px "Manrope"; letter-spacing: -1.7px; }
.calorie-row span, .metric-main small { margin-left: 5px; color: #84918d; font-size: 11px; letter-spacing: 0; }
.progress { height: 5px; overflow: hidden; border-radius: 5px; background: #f3eadf; }
.progress i { display: block; height: 100%; border-radius: 5px; background: var(--amber); }
.macro-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); margin-top: 24px; }
.macro-grid div { display: grid; }
.macro-grid b { font-size: 13px; }
.macro-grid span { color: #929d99; font-size: 10px; }
.macro-grid i { width: 100%; height: 3px; margin-top: 7px; border-radius: 3px; background: linear-gradient(90deg, var(--green) var(--width), #e4ebe7 var(--width)); }
.metric-main { margin-top: 20px; }
.delta { color: #83908b; font-size: 11px; }
.delta.up { color: var(--green); }
.sparkline { height: 53px; margin-top: 6px; }
.sparkline svg { width: 100%; height: 100%; overflow: visible; }
.sparkline path { fill: none; stroke: var(--blue); stroke-width: 2.2; }
.rose-line path { stroke: var(--rose); }
.metric-footer { border-top: 1px solid #edf0eb; padding-top: 10px; color: #8c9995; font-size: 10px; }
.metric-footer b { color: var(--ink-soft); font-size: 11px; }
.green-progress { margin-top: 23px; background: #e5eee9; }
.green-progress i { background: var(--green); }
.metric-footer.spaced { margin-top: 29px; }
.lower-grid { display: grid; gap: 15px; grid-template-columns: 1.5fr .7fr; margin-top: 15px; }
.weekly-card, .devices-card { padding: 18px 20px; box-shadow: none; }
.compact h3 { font-size: 17px; }
.date-button.small { padding: 7px 9px; font-size: 10px; }
.weekly-chart { display: flex; height: 138px; align-items: end; justify-content: space-around; margin-top: 17px; border-bottom: 1px solid var(--line); background: linear-gradient(#fffdf9 24%, #ecefe9 25%, #fffdf9 26%, #fffdf9 49%, #ecefe9 50%, #fffdf9 51%, #fffdf9 74%, #ecefe9 75%, #fffdf9 76%); }
.bar-wrap { display: grid; height: 100%; align-items: end; justify-items: center; gap: 8px; grid-template-rows: 1fr 14px; color: #91a09a; font-size: 9px; }
.bar { width: 24px; align-self: end; border-radius: 4px 4px 0 0; background: #b4d0c1; }
.bar.today { background: var(--green); }
.add-button { color: var(--green); border-color: #d6e1dc; }
.source-row { gap: 10px; padding: 13px 0; border-bottom: 1px solid #edf0eb; }
.source-logo { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 6px; color: white; background: var(--green); font-size: 11px; font-weight: 700; }
.source-logo.oura { color: var(--ink); background: #e4e2db; }
.source-logo.crono { background: #e19b54; }
.source-logo.strava { background: #fc4c02; }
.source-row div:nth-child(2) { margin-right: auto; }
.source-row strong, .source-row small { display: block; }
.source-row strong { font-size: 12px; }
.source-row small { color: #9aa5a1; font-size: 9px; }
.source-empty { border: 1px dashed #dce5dc; border-radius: 8px; margin-top: 12px; padding: 12px; background: #f8faf6; }
.source-empty strong, .source-empty span { display: block; }
.source-empty strong { color: var(--ink); font: 800 12px "Manrope"; }
.source-empty span { margin-top: 5px; color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #6eb390; }
.source-button { margin-top: 16px; }
.connections-heading { display: block; margin-top: 34px; }
.connections-heading p:last-child { max-width: 610px; margin-top: 8px; color: var(--ink-soft); }
.connection-grid { display: grid; gap: 15px; grid-template-columns: repeat(3, 1fr); margin-top: 24px; }
.connection-card { border: 1px solid var(--line); border-radius: 8px; padding: 20px; background: var(--paper); }
.connection-card.connected { background: #f8faf6; }
.connection-card-top { display: flex; align-items: center; gap: 12px; }
.connection-card h3 { font-size: 16px; }
.connection-card p { min-height: 58px; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.connection-next-step { display: block; min-height: 28px; margin: -4px 0 14px; color: var(--green-dark); font-size: 10px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; }
.status-label { display: block; margin-top: 5px; color: var(--green); font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.status-label.pending { color: var(--amber); }
.connection-actions { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.connection-actions .connect-button:only-child { grid-column: 1 / -1; }
.connect-button { width: 100%; border: 1px solid #d9e4df; border-radius: 5px; padding: 10px; color: var(--green); background: #fbfdfb; font-size: 11px; font-weight: 700; }
.sync-button { width: 100%; border: 1px solid var(--green); border-radius: 5px; padding: 10px; color: white; background: var(--green); font-size: 11px; font-weight: 800; }
.sync-button:disabled { opacity: .65; cursor: progress; }
.connection-sync-status { display: block; min-height: 18px; margin-top: 9px; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
.placeholder-card { margin-top: 33px; padding: 34px; }
.placeholder-card h2 { font-size: 28px; }
.placeholder-card p:last-child { color: var(--ink-soft); }
.import-card { max-width: 620px; border: 1px solid var(--line); border-radius: 8px; margin-top: 18px; padding: 20px; background: var(--paper); }
.import-card h3 { font-size: 16px; }
.import-card p { color: var(--ink-soft); font-size: 12px; }
.upload-button { display: inline-block; margin-top: 7px; }
.upload-button input { display: none; }
.upload-button span { display: inline-block; border-radius: 5px; padding: 10px 13px; color: white; background: var(--green); font-size: 11px; }
.import-message { min-height: 18px; margin-bottom: 0; color: var(--green) !important; }
.import-status { border: 1px solid #edf0eb; border-radius: 7px; margin: 12px 0; padding: 11px; color: var(--ink-soft); background: #f8faf6; font-size: 11px; line-height: 1.6; }
.import-center-summary { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); margin: 22px 0; }
.import-center-summary article, .import-preview, .import-instructions { border: 1px solid #edf0eb; border-radius: 8px; padding: 13px; color: var(--ink-soft); background: #f8faf6; font-size: 11px; }
.import-center-summary small, .import-center-summary strong, .import-center-summary span { display: block; }
.import-center-summary small, .preview-grid small { color: #8a9993; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.import-center-summary strong { margin-top: 3px; color: var(--ink); font: 900 18px "Manrope"; }
.import-preview { margin: 12px 0; }
.preview-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); }
.preview-grid strong { display: block; margin-top: 3px; color: var(--ink); font-size: 12px; }
.import-instructions { margin: 12px 0; background: #fbf5ec; }
.portal-link { display: inline-block; margin-top: 7px; color: var(--green); font-size: 12px; font-weight: 700; text-decoration: none; }
.portal-link span { margin-left: 5px; }
.detail-heading { display: block; margin-top: 34px; }
.detail-heading p:last-child { margin: 7px 0 0; color: var(--ink-soft); }
.detail-grid { display: grid; gap: 15px; grid-template-columns: 1.45fr .65fr; margin-top: 23px; }
.detail-chart-card, .detail-summary-card, .history-card { border: 1px solid var(--line); border-radius: 8px; padding: 20px; background: var(--paper); }
.detail-chart { display: flex; height: 210px; align-items: end; gap: 11px; margin-top: 18px; border-bottom: 1px solid var(--line); }
.detail-bar-wrap { display: grid; height: 100%; min-width: 13px; flex: 1; align-items: end; justify-items: center; gap: 8px; grid-template-rows: 1fr 16px; color: #91a09a; font-size: 9px; }
.detail-bar { width: min(25px, 72%); align-self: end; border-radius: 4px 4px 0 0; background: #95bdaa; }
.detail-bar.amber-bar { background: #dda365; }
.detail-bar.rose-bar { background: #cc8985; }
.detail-summary-card h3 { margin-top: 8px; font-size: 27px; text-transform: capitalize; }
.detail-summary-card p:last-child { color: var(--ink-soft); line-height: 1.75; }
.history-card { margin-top: 15px; }
.history-list { margin-top: 13px; }
.history-row { display: grid; gap: 12px; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid #edf0eb; padding: 12px 2px; color: var(--ink-soft); font-size: 12px; }
.history-row strong { color: var(--ink); }
.wellness-row { display: grid; gap: 12px; grid-template-columns: 1fr 1fr 1fr 1fr; border-top: 1px solid #edf0eb; padding: 12px 2px; color: var(--ink-soft); font-size: 12px; }
.wellness-row strong { color: var(--ink); }
.empty-state { align-self: center; width: 100%; color: #94a19c; font-size: 12px; text-align: center; }
.strava-dashboard { border: 1px solid var(--line); border-radius: 8px; margin-top: 15px; padding: 20px; background: var(--paper); }
.strava-totals { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; margin-top: 16px; }
.strava-totals article { border-radius: 7px; padding: 15px; background: #f3f7f3; }
.strava-totals strong, .strava-totals span { display: block; }
.strava-totals strong { font: 800 20px "Manrope"; }
.strava-totals span { margin-top: 3px; color: var(--ink-soft); font-size: 11px; }
.strava-workspace { display: grid; gap: 15px; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); margin-top: 15px; }
.strava-activity-list { max-height: 640px; overflow: auto; border: 1px solid var(--line); border-radius: 7px; }
.strava-activity-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; border: 0; border-top: 1px solid #edf0eb; padding: 13px; color: var(--ink); background: white; text-align: left; }
.strava-activity-row:first-child { border-top: 0; }
.strava-activity-row:hover, .strava-activity-row.active { background: #eef5ef; }
.strava-activity-row span:last-child { text-align: right; }
.strava-activity-row strong, .strava-activity-row small, .strava-activity-row b { display: block; }
.strava-activity-row small { color: #8a9993; font-size: 10px; }
.strava-activity-detail { min-height: 250px; border: 1px solid var(--line); border-radius: 7px; padding: 17px; background: #fff; }
.strava-activity-detail h3 { font-size: 19px; }
.strava-activity-detail p { color: var(--ink-soft); font-size: 11px; line-height: 1.65; }
.strava-detail-meta { margin-top: 4px; }
.strava-detail-metrics { display: grid; gap: 8px; grid-template-columns: repeat(2, 1fr); margin: 15px 0; }
.strava-detail-metrics div { border-radius: 5px; padding: 8px; background: #f4f7f3; }
.strava-detail-metrics small, .strava-detail-metrics strong { display: block; }
.strava-detail-metrics small { color: #8a9993; font-size: 9px; text-transform: uppercase; }
.strava-detail-metrics strong { margin-top: 2px; font-size: 12px; }
.admin-grid { display: grid; gap: 15px; grid-template-columns: 1fr 1fr; margin-top: 24px; }
.admin-card { border: 1px solid var(--line); border-radius: 8px; padding: 22px; background: var(--paper); }
.admin-card h3 { margin-bottom: 20px; font-size: 18px; }
.admin-form label { margin-bottom: 13px; }
.setting-status { margin: -7px 0 15px; color: #8a9993; font-size: 11px; }
.compact-form { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.admin-user-list { margin-top: 14px; }
.admin-user-row { display: flex; align-items: center; gap: 14px; border-top: 1px solid #edf0eb; padding: 13px 2px; }
.admin-user-row:first-child { border-top: 0; }
.admin-user-row div { margin-right: auto; }
.admin-user-row strong, .admin-user-row small { display: block; }
.admin-user-row small { color: #8a9993; font-size: 10px; text-transform: uppercase; }
.provider-health-row { border: 1px solid #e6ece6; border-radius: 10px; display: grid; gap: 12px; grid-template-columns: 1fr auto auto; align-items: center; margin-top: 10px; padding: 13px; background: #fffdf9; }
.provider-health-row.ok { background: #f3f7f3; }
.provider-health-row.error { background: #fbf1ef; }
.provider-health-row.connected { background: #fbf5ec; }
.provider-health-main strong, .provider-health-main small, .provider-health-main span, .provider-health-meta b, .provider-health-meta span { display: block; }
.provider-health-main strong { font: 900 14px "Manrope"; }
.provider-health-main small { margin-top: 2px; color: #8a9993; font-size: 10px; text-transform: uppercase; }
.provider-health-main span { margin-top: 6px; color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.provider-health-meta { min-width: 150px; }
.provider-health-meta b { color: var(--green-dark); font-size: 10px; text-transform: uppercase; }
.provider-health-meta span { margin-top: 4px; color: var(--ink-soft); font-size: 10px; line-height: 1.35; }
.provider-health-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.danger { color: #aa5555; }
.insight-dashboard { display: grid; gap: 15px; grid-template-columns: 1.35fr .65fr; margin-top: 23px; }
.planner-grid { display: grid; gap: 15px; grid-template-columns: 1fr 1fr; margin-top: 15px; }
.selected-day-card { grid-column: 1 / -1; }
.selected-day-history { margin-top: 14px; }
.selected-day-metrics { display: grid; gap: 10px; grid-template-columns: repeat(6, 1fr); }
.selected-day-metrics div { border-radius: 8px; padding: 12px; background: #f3f7f3; }
.selected-day-metrics div.complete { background: #e9f4ed; }
.selected-day-metrics small, .selected-day-metrics strong { display: block; }
.selected-day-metrics small { color: #8a9993; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.selected-day-metrics strong { margin-top: 4px; font: 800 15px "Manrope"; }
.selected-day-sections { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); margin-top: 12px; }
.selected-day-sections article { border: 1px solid #edf0eb; border-radius: 8px; padding: 13px; background: rgba(255,255,255,.55); }
.selected-day-sections strong { display: block; margin-bottom: 6px; font: 800 12px "Manrope"; }
.selected-day-sections p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.selected-day-list div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #edf0eb; padding: 7px 0; font-size: 12px; }
.selected-day-list div:first-child { border-top: 0; padding-top: 0; }
.selected-day-list span { color: var(--ink); font-weight: 800; }
.selected-day-list small { color: var(--ink-soft); text-align: right; }
.profile-form { display: grid; gap: 0 12px; grid-template-columns: 1fr 1fr; }
.profile-form .wide { grid-column: 1 / -1; }
.checkin-label { display: flex; align-items: center; gap: 8px; margin-top: 20px; }
.checkin-label input { width: auto; }
.context-form { display: grid; gap: 0 10px; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); margin-top: 17px; padding-top: 17px; }
.context-form .wide { grid-column: 1 / -1; }
.mini-history { margin-top: 18px; }
.mini-history div { display: flex; justify-content: space-between; border-top: 1px solid #edf0eb; padding: 8px 1px; color: var(--ink-soft); font-size: 11px; }
.mini-history strong { color: var(--ink); }
.import-history-card { border: 1px solid #e6ece6; border-radius: 10px; display: grid !important; gap: 7px; margin-top: 8px; padding: 12px !important; background: #fffdf9; }
.import-history-card div { border-top: 0; display: flex; align-items: flex-start; gap: 12px; justify-content: space-between; padding: 0; }
.import-history-card strong, .import-history-card small, .import-history-card span, .import-history-card em { display: block; }
.import-history-card strong { color: var(--ink); font: 900 12px "Manrope"; line-height: 1.35; }
.import-history-card small { color: #8a9993; font-size: 9px; font-weight: 800; text-align: right; text-transform: uppercase; white-space: nowrap; }
.import-history-card span { color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.import-history-card em { color: #7d8c87; font-size: 10px; font-style: normal; line-height: 1.4; }
.system-status-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); margin-top: 18px; }
#system-status-list { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); }
.system-status-item { border: 1px solid #e6ece6; border-radius: 10px; padding: 12px; background: #fffdf9; }
.system-status-item.good { background: #f3f7f3; }
.system-status-item.warn { background: #fbf5ec; }
.system-status-item.error { background: #fbf1ef; }
.system-status-item small, .system-status-item strong, .system-status-item span { display: block; }
.system-status-item small { color: #8a9993; font-size: 9px; font-weight: 900; letter-spacing: .8px; text-transform: uppercase; }
.system-status-item strong { margin-top: 5px; color: var(--ink); font: 900 16px "Manrope"; }
.system-status-item span { margin-top: 4px; color: var(--ink-soft); font: 500 11px "Inter"; line-height: 1.45; }
.admin-event-card { border: 1px solid #e6ece6; border-radius: 10px; display: grid !important; gap: 8px; margin-top: 8px; padding: 12px !important; background: #fffdf9; }
.admin-event-card.good { background: #f3f7f3; }
.admin-event-card.warn { background: #fbf5ec; }
.admin-event-card.error { background: #fbf1ef; }
.admin-event-card div { border-top: 0; display: flex; align-items: flex-start; gap: 12px; justify-content: space-between; padding: 0; }
.admin-event-card strong, .admin-event-card small, .admin-event-card span, .admin-event-card em { display: block; }
.admin-event-card strong { color: var(--ink); font: 900 12px "Manrope"; line-height: 1.35; }
.admin-event-card small { color: #8a9993; font-size: 9px; font-weight: 800; text-align: right; text-transform: uppercase; white-space: nowrap; }
.admin-event-card span { color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.admin-event-card em { color: #7d8c87; font-size: 10px; font-style: normal; line-height: 1.4; }
.privacy-list { display: grid; gap: 12px; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }
.privacy-list strong { color: var(--ink); }
.planned-workout-row { display: grid !important; align-items: center; gap: 8px !important; grid-template-columns: 1fr auto auto; }
.planned-workout-row strong, .planned-workout-row small { display: block; }
.planned-workout-row small { color: #8a9993; }
.macro-insight-card { border: 1px solid var(--line); border-radius: 8px; margin-top: 15px; padding: 20px; background: var(--paper); }
.weekly-report { border-bottom: 1px solid var(--line); margin-bottom: 20px; padding-bottom: 20px; }
.weekly-report-headline { max-width: 720px; margin: 12px 0; color: var(--green-dark); font: 700 16px "Manrope"; }
.weekly-report-metrics { display: grid; gap: 10px; grid-template-columns: repeat(4, 1fr); margin-top: 14px; }
.weekly-report-metrics div { border-radius: 7px; padding: 12px; background: #f3f7f3; }
.weekly-report-metrics small, .weekly-report-metrics strong { display: block; }
.weekly-report-metrics small { color: #8a9993; font-size: 9px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }
.weekly-report-metrics strong { margin-top: 3px; font: 800 15px "Manrope"; }
.weekly-report-notes { margin-top: 14px; color: var(--ink-soft); font-size: 12px; }
.weekly-report-notes p { margin: 6px 0; }
.weekly-report-focus { border-radius: 7px; margin: 13px 0 0; padding: 12px; color: var(--ink-soft); background: #fbf5ec; font-size: 12px; }
.source-drilldown { margin-top: 12px; color: var(--ink-soft); font-size: 11px; }
.source-drilldown summary { cursor: pointer; color: var(--green-dark); font-weight: 800; }
.source-drilldown pre { max-height: 220px; overflow: auto; border: 1px solid #edf0eb; border-radius: 7px; margin: 8px 0 0; padding: 10px; background: #f8faf6; white-space: pre-wrap; }
.onboarding-grid div { background: #fbf5ec; }
.today-plan-card { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; margin: 22px 0; }
.today-plan-main, .today-plan-side { border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: var(--paper); }
.today-plan-main h2 { margin: 5px 0 10px; font-size: clamp(26px, 4vw, 44px); line-height: .98; letter-spacing: -1px; }
.today-plan-main p { color: var(--ink-soft); }
.today-plan-action { margin-top: 16px; color: var(--ink-soft); font-size: 12px; }
.today-plan-action p { margin: 7px 0; }
.today-macro-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 14px; }
.today-macro-grid div, .today-checklist div { border-radius: 8px; padding: 12px; background: #f3f7f3; }
.today-macro-grid small, .today-macro-grid strong, .today-macro-grid span, .today-checklist span, .today-checklist strong { display: block; }
.today-macro-grid small, .today-checklist span { color: #8a9993; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.today-macro-grid strong { margin-top: 3px; font: 900 20px "Manrope"; }
.today-macro-grid span { margin-top: 2px; color: var(--ink-soft); font-size: 11px; }
.today-checklist { display: grid; gap: 8px; margin-top: 12px; }
.today-checklist.compact { grid-template-columns: repeat(2, 1fr); margin: 8px 0 14px; }
.today-checklist .complete { background: #e9f4ed; }
.today-checklist .complete span { color: var(--green-dark); }
.daily-checkin-status { margin: 0 0 14px; }
.macro-action, .recommendation-confidence { display: block; margin-top: 10px; color: var(--green-dark); font-size: 11px; font-weight: 800; }
.data-quality-card { border: 1px solid var(--line); border-radius: 12px; margin: 22px 0; padding: 22px; background: var(--paper); }
.data-quality-summary { margin: -8px 0 14px; color: var(--ink-soft); font-size: 12px; }
.data-quality-list { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); }
.data-quality-row { position: relative; display: grid; gap: 6px; border-left: 4px solid var(--green); border-radius: 8px; padding: 13px; background: #f3f7f3; }
.data-quality-row.stale { border-color: var(--amber); background: #fbf5ec; }
.data-quality-row.missing { border-color: #b8b1a6; background: #f7f4ef; }
.data-quality-row.error { border-color: var(--rose); background: #fbf1ef; }
.data-quality-row.info { border-color: var(--blue); background: #f0f6f8; }
.data-quality-row strong, .data-quality-row small, .data-quality-row span, .data-quality-row em { display: block; }
.data-quality-row strong { font: 800 13px "Manrope"; }
.data-quality-row small { color: #8a9993; font-size: 10px; text-transform: uppercase; }
.data-quality-row p { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.data-quality-row span { color: var(--green-dark); font-size: 9px; font-weight: 900; letter-spacing: .8px; text-transform: uppercase; }
.data-quality-row.stale span { color: #a17024; }
.data-quality-row.error span { color: #aa5555; }
.data-quality-row.missing span { color: #81786d; }
.data-quality-row em { color: #7d8c87; font-size: 10px; font-style: normal; }
.macro-target-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); margin-top: 16px; }
.macro-target-grid div { border-radius: 7px; padding: 16px; background: #eef5ef; }
.macro-target-grid strong, .macro-target-grid span { display: block; }
.macro-target-grid strong { font: 800 24px "Manrope"; }
.macro-target-grid span { color: var(--ink-soft); font-size: 11px; }
.insight-notes { margin-top: 16px; color: var(--ink-soft); font-size: 12px; }
.recommendation-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); margin-top: 18px; }
.recommendation-card { border-left: 3px solid var(--green); border-radius: 6px; padding: 14px; background: #f5f8f4; }
.recommendation-card.fuel { border-color: var(--amber); background: #fbf5ec; }
.recommendation-card.recover { border-color: var(--rose); background: #fbf1ef; }
.recommendation-card.quality { border-color: var(--blue); background: #f0f6f8; }
.recommendation-card h4 { margin: 0; font: 700 14px "Manrope"; }
.recommendation-card p:last-child { margin: 5px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.65; }
.recommendation-reason { border-top: 1px solid rgba(80, 111, 99, .15); margin-top: 10px !important; padding-top: 8px; color: #7d8c87 !important; }
.recommendation-feedback { display: flex; flex-wrap: wrap; gap: 7px; border-top: 1px solid rgba(80, 111, 99, .15); margin-top: 10px; padding-top: 10px; }
.feedback-button { border: 1px solid #dce5dc; border-radius: 999px; padding: 6px 9px; color: var(--green-dark); background: #fff; font: 800 10px "Manrope"; cursor: pointer; }
.feedback-button:hover { background: #e9f4ed; }
.feedback-last { width: 100%; color: #7d8c87; font-size: 10px; text-transform: uppercase; }
.weekly-review-card { border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: var(--paper); }
.weekly-review-metrics { display: grid; gap: 10px; grid-template-columns: repeat(4, 1fr); margin-top: 15px; }
.weekly-review-metrics div, .weekly-review-grid article { border-radius: 8px; padding: 13px; background: #f3f7f3; }
.weekly-review-metrics small, .weekly-review-metrics strong { display: block; }
.weekly-review-metrics small { color: #8a9993; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.weekly-review-metrics strong { margin-top: 3px; font: 900 16px "Manrope"; }
.weekly-review-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-top: 16px; }
.weekly-review-grid ul { margin: 8px 0 0; padding-left: 18px; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.weekly-feedback-strip { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 14px; color: var(--ink-soft); font-size: 12px; }
.coach-learning-strip { border: 1px solid #e8eee8; border-radius: 10px; display: grid; gap: 11px; margin-top: 14px; padding: 14px; background: #fbf5ec; }
.coach-learning-strip h4 { margin: 3px 0 0; color: var(--green-dark); font: 800 13px "Manrope"; }
.coach-learning-strip p { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.coach-learning-metrics { display: flex; flex-wrap: wrap; gap: 8px; }
.coach-learning-metrics span { border-radius: 999px; padding: 7px 10px; color: var(--ink-soft); background: #fff; font-size: 10px; }
.coach-learning-metrics strong { margin-right: 5px; color: var(--ink); }
.agent-run-guidance { margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.agent-run-row { border: 1px solid #e5ece5 !important; border-radius: 12px; display: grid !important; gap: 13px; margin-top: 12px; padding: 16px !important; background: #fffdf9; }
.agent-run-row.reviewed { opacity: .78; }
.mini-history .agent-run-heading, .mini-history .agent-run-source, .mini-history .agent-run-controls { border-top: 0; display: flex; padding: 0; }
.agent-run-heading { align-items: flex-start; gap: 16px; justify-content: space-between; }
.agent-run-heading strong, .agent-run-heading span { display: block; }
.agent-run-heading strong { font-size: 14px; }
.agent-run-heading span { margin-top: 4px; color: var(--ink-soft); line-height: 1.45; }
.agent-priority { border-radius: 999px; padding: 6px 10px; color: var(--green-dark); background: #f3f7f3; font-size: 10px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.agent-priority.high { color: #8f4a41; background: #fbf1ef; }
.agent-priority.medium { color: #8a681f; background: #fbf5ec; }
.agent-run-summary { display: flex !important; gap: 8px; border-top: 0 !important; padding-top: 0 !important; }
.agent-run-summary span { border-radius: 999px; padding: 7px 10px; color: var(--ink-soft); background: #f3f7f3; font-size: 10px; }
.agent-run-summary strong { margin-right: 5px; }
.agent-run-status-note { margin: 10px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.5; }
.agent-run-section-label { margin: 10px 0 0; color: #8a9993; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.agent-run-actions { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.agent-run-actions li { border-radius: 8px; padding: 10px; background: #f3f7f3; }
.agent-run-actions strong, .agent-run-actions span, .agent-run-actions em { display: block; }
.agent-run-actions strong { color: var(--ink); font-size: 11px; }
.agent-run-actions span { margin-top: 3px; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.agent-run-actions em { margin-top: 4px; color: var(--green-dark); font-size: 10px; font-style: normal; font-weight: 800; }
.agent-run-more { color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.agent-run-source { display: flex; flex-wrap: wrap; gap: 7px; }
.agent-run-source span { border: 1px solid #dce5dc; border-radius: 999px; padding: 6px 9px; color: var(--ink-soft); background: #fff; font-size: 10px; white-space: normal; }
.agent-run-source strong { margin-right: 5px; color: var(--green-dark); text-transform: capitalize; }
.agent-run-controls { flex-wrap: wrap; gap: 8px; justify-content: flex-start; }
.agent-run-review { margin: 0; color: var(--ink-soft); font-size: 10px; text-transform: capitalize; }
.agent-run-review strong { margin-right: 5px; color: var(--green-dark); }
.agent-run-empty { margin: 0; color: var(--ink-soft); font-size: 11px; }
.agent-run-empty-state { border: 1px dashed #dce5dc; border-radius: 10px; margin: 14px 0 0; padding: 14px; color: var(--ink-soft); background: #f8faf6; font-size: 11px; line-height: 1.5; }
.agent-run-empty-state strong, .agent-run-empty-state span { display: block; }
.agent-run-empty-state strong { color: var(--ink); font: 800 12px "Manrope"; }
.agent-run-empty-state span { margin-top: 5px; }

@media (max-width: 1150px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .connection-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 790px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-panel { min-height: 42vh; padding: 30px; }
  .login-insights { margin-top: 45px; gap: 21px; }
  .login-form-wrap { min-height: 58vh; }
  .dashboard-shell { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .dashboard-main { padding: 24px 18px; }
  .hero-grid, .lower-grid, .metric-grid, .connection-grid, .admin-grid, .strava-totals, .strava-workspace, .insight-dashboard, .planner-grid, .today-plan-card { grid-template-columns: 1fr; }
  .macro-target-grid { grid-template-columns: repeat(2, 1fr); }
  .weekly-report-metrics { grid-template-columns: repeat(2, 1fr); }
  .weekly-review-metrics, .weekly-review-grid { grid-template-columns: 1fr; }
  .selected-day-metrics, .selected-day-sections { grid-template-columns: 1fr; }
  .today-macro-grid, .today-checklist.compact { grid-template-columns: 1fr; }
  .import-center-summary, .preview-grid { grid-template-columns: 1fr; }
  .data-quality-list { grid-template-columns: 1fr; }
  .recommendation-grid { grid-template-columns: 1fr; }
  .detail-grid { grid-template-columns: 1fr; }
  .provider-health-row { grid-template-columns: 1fr; }
  .provider-health-actions { justify-content: flex-start; }
  .topbar h1 { font-size: 21px; }
  .icon-button { display: none; }
  .mobile-nav-button { display: block; }
  .profile-menu { top: 76px; right: 18px; bottom: auto; left: auto; }
  .wellness-row { grid-template-columns: 1fr 1fr; }
}

.callback-body { display: grid; min-height: 100vh; place-items: center; padding: 24px; background: #e6eee6; }
.callback-card { width: min(530px, 100%); border: 1px solid var(--line); border-radius: 10px; padding: 34px; background: var(--paper); box-shadow: var(--shadow); }
.callback-card .brand { margin-bottom: 48px; }
.callback-card h1 { font-size: 34px; }
.callback-card p:not(.eyebrow) { margin: 15px 0 26px; color: var(--ink-soft); line-height: 1.75; }
.callback-link { text-decoration: none; }
