/* v3.6.9 layout polish
   目标：收紧排版、减少无效留白、让仪表盘/历史/分析/计划/动作百科形成统一的产品级布局。 */
:root {
  --bg: #f3f6f3;
  --bg-soft: #e9f0ec;
  --card: rgba(255,255,255,.94);
  --card-solid: #fff;
  --card-soft: #f7faf8;
  --text: #101d18;
  --muted: #64766c;
  --muted-2: #88978f;
  --line: rgba(18, 103, 80, .14);
  --line-strong: rgba(18, 103, 80, .24);
  --brand: #128267;
  --brand-2: #20a77a;
  --brand-deep: #0b5848;
  --brand-soft: #e8f6ef;
  --danger: #d85858;
  --danger-soft: #fff0f0;
  --shadow: 0 14px 38px rgba(20, 73, 56, .075);
  --shadow-soft: 0 6px 18px rgba(20, 73, 56, .055);
  --radius: 18px;
  --radius-lg: 24px;
  --radius-sm: 12px;
}
html[data-theme="dark"] {
  --bg: #0c1210;
  --bg-soft: #121a16;
  --card: rgba(23, 34, 29, .94);
  --card-solid: #17221d;
  --card-soft: #1d2a24;
  --text: #eff7f3;
  --muted: #a5b7ae;
  --muted-2: #81948b;
  --line: rgba(128, 226, 192, .15);
  --line-strong: rgba(128, 226, 192, .26);
  --brand: #6bd8b8;
  --brand-2: #8de8c8;
  --brand-deep: #d7fff0;
  --brand-soft: rgba(107,216,184,.13);
  --danger-soft: rgba(216,88,88,.14);
  --shadow: 0 18px 44px rgba(0,0,0,.28);
  --shadow-soft: 0 8px 20px rgba(0,0,0,.20);
}

html { background: var(--bg) !important; }
body {
  background:
    radial-gradient(circle at 6% -6%, rgba(32,167,122,.13), transparent 30rem),
    radial-gradient(circle at 94% 0%, rgba(102,216,181,.11), transparent 32rem),
    linear-gradient(180deg, var(--bg), var(--bg-soft) 60%, var(--bg)) !important;
  color: var(--text) !important;
  letter-spacing: -.012em !important;
}
body::before { opacity: .45 !important; }
.app-header,
.container { width: min(1180px, calc(100% - 44px)) !important; }
.container { padding: 8px 0 44px !important; }
.app-header {
  padding: 18px 0 12px !important;
  grid-template-columns: minmax(260px, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
}
.header-copy { padding-left: 50px !important; }
.header-copy::before { width: 38px !important; height: 38px !important; border-radius: 13px !important; top: 4px !important; }
.header-copy::after { left: 9px !important; top: 22px !important; width: 20px !important; height: 3px !important; }
.header-copy h1 { font-size: clamp(28px, 3vw, 38px) !important; margin: 0 0 5px !important; line-height: 1.05 !important; }
.header-copy .sub { max-width: 620px; }
.eyebrow { letter-spacing: .08em !important; font-size: 11px !important; margin-bottom: 6px !important; }
.sub, .page-head p, .section-title p, .trend-title-row span, .training-advice-text { line-height: 1.65 !important; }

.nav-tabs,
.system-nav-tabs { min-height: 48px !important; padding: 5px !important; gap: 3px !important; box-shadow: var(--shadow-soft) !important; }
.nav-tabs a,
.system-nav-tabs a { min-height: 36px !important; padding: 8px 13px !important; font-size: 13px !important; }
.user-pill, .ghost-btn, .primary-btn, .danger-btn, .filter-btn, .icon-btn { min-height: 38px !important; border-radius: 999px !important; }
.primary-btn { background: linear-gradient(135deg, var(--brand), var(--brand-2)) !important; box-shadow: 0 10px 20px rgba(32,167,122,.14) !important; }
.ghost-btn, .icon-btn, .filter-btn { background: rgba(255,255,255,.78) !important; border-color: var(--line) !important; box-shadow: none !important; }
html[data-theme="dark"] .ghost-btn,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .filter-btn { background: rgba(255,255,255,.05) !important; }
.ghost-btn:hover, .icon-btn:hover, .filter-btn:hover { transform: none !important; background: var(--brand-soft) !important; border-color: var(--line-strong) !important; color: var(--brand-deep) !important; }

.card {
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: var(--radius-lg) !important;
  background: var(--card) !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden !important;
}
html[data-theme="dark"] .card { border-color: rgba(255,255,255,.08) !important; }
.card:hover { transform: none !important; box-shadow: var(--shadow) !important; }
.form-card, .trend-card, .dashboard-card, .records-card, .quick-template-card, .analysis-card, .analysis-summary-card, .analysis-trend-card, .history-day, .icon-preview-card, .empty-state { padding: 20px !important; }
.page-head {
  padding: 20px !important;
  margin-bottom: 16px !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}
.page-head h1 { font-size: clamp(26px, 2.6vw, 34px) !important; margin: 0 0 6px !important; }
.section-title, .trend-title-row, .history-head { margin-bottom: 14px !important; }
.section-title h2, .trend-title-row h2, .history-head h2 { font-size: 20px !important; line-height: 1.2 !important; }

input, select, textarea {
  min-height: 42px !important;
  padding: 9px 12px !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.78) !important;
}
textarea { min-height: 92px !important; }
label { gap: 6px !important; font-size: 12px !important; }

/* 顶部仪表盘：不再过度膨胀 */
.dashboard-status-shell,
.coach-hero-shell {
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr) !important;
  gap: 14px !important;
  margin-bottom: 14px !important;
}
.status-card,
.coach-status-card {
  min-height: 210px !important;
  grid-template-columns: minmax(0,1fr) 200px !important;
  gap: 14px !important;
  padding: 20px !important;
}
.status-card-main h2,
.coach-status-card h2,
.status-card-main h1 { font-size: clamp(30px, 3.5vw, 42px) !important; margin-bottom: 8px !important; }
.status-sync-line { margin-top: 10px !important; padding: 7px 10px !important; font-size: 12px !important; }
.coach-primary-action { align-content: start !important; }
.big-start-btn { min-height: 50px !important; border-radius: 14px !important; }
.status-kpi-grid {
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 9px !important;
}
.status-kpi-grid > div,
.status-kpi-grid .status-kpi-item { min-height: 66px !important; padding: 12px !important; border-radius: 15px !important; }
.status-kpi-grid strong { font-size: 22px !important; margin-top: 4px !important; }
.recommended-plan-card,
.coach-plan-card { padding: 20px !important; min-height: 210px !important; }
.recommended-plan-card h3, .coach-plan-card h3 { margin: 6px 0 10px !important; font-size: 22px !important; }
.plan-meta-strip { margin: 12px 0 !important; }

.today-grid,
.fitness-today-grid,
.dashboard-metrics-row {
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 10px !important;
  margin-bottom: 14px !important;
}
.today-item,
.metric-card { min-height: 86px !important; padding: 14px !important; border-radius: 18px !important; }
.today-item strong,
.metric-card strong { font-size: clamp(24px, 2.2vw, 31px) !important; margin: 4px 0 2px !important; }
.today-item::after, .metric-card::after { width: 62px !important; height: 62px !important; right: -20px !important; bottom: -22px !important; }

/* 仪表盘主体：训练记录不再被挤到窄列 */
.coach-system-grid,
.dashboard-panels,
.dashboard-system-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0,1fr)) !important;
  gap: 14px !important;
  align-items: start !important;
}
.training-mode-card { grid-column: 1 / -1 !important; order: 1 !important; }
.compact-week-card { grid-column: 1 / 7 !important; order: 2 !important; }
.joint-health-card { grid-column: 7 / 13 !important; order: 3 !important; }
.dashboard-meta-card { grid-column: 1 / 7 !important; order: 4 !important; }
.sync-detail-card { grid-column: 7 / 13 !important; order: 5 !important; }
.training-mode-card .section-title { align-items: center !important; }
.training-mode-steps { grid-template-columns: repeat(4, minmax(0,1fr)) !important; margin-bottom: 12px !important; }
.training-mode-steps span { min-height: 30px !important; padding: 5px 8px !important; }
.training-mode-form,
.workout-form-refined {
  grid-template-columns: minmax(150px,.8fr) minmax(260px,1.3fr) minmax(220px,1fr) minmax(110px,.55fr) !important;
  gap: 12px !important;
}
.training-mode-form .span-2 { grid-column: span 1 !important; }
.training-mode-form .wide, .wide { grid-column: 1 / -1 !important; }
.exercise-insight-box, .rest-timer-panel, .set-panel, .quick-set-panel, .live-set-panel, .sync-note-preview, .notice, .week-insight-card, .exercise-personal-panel, .exercise-detail-panel, .pr-strip, .template-item-row, .planned-item, .history-entry-card, .analysis-day-row {
  border-radius: 14px !important;
  background: rgba(255,255,255,.58) !important;
}
.rest-timer-panel { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 12px 14px !important; }
.rest-timer-panel strong { display: block; }
#restTimerDisplay { font-size: 22px !important; color: var(--brand) !important; font-weight: 900 !important; }
.timer-actions { display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 8px !important; min-width: min(460px, 55%); }
.set-panel-head { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; }
.set-panel-actions, .segmented-actions { width: min(520px, 54%) !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.quick-bump-row { grid-template-columns: repeat(4, minmax(0,1fr)) !important; max-width: 520px; }
.set-row {
  grid-template-columns: 42px minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) 42px !important;
  min-height: 48px !important;
  padding: 7px !important;
  border-radius: 13px !important;
}
.set-row input { min-height: 36px !important; }
.sticky-submit, .live-submit { min-height: 48px !important; border-radius: 14px !important; }
.compact-week-grid, .joint-health-grid, .backup-status-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.compact-week-grid > div, .joint-health-grid > div, .backup-status-grid > div, .personal-stat-grid > div, .plan-stat-grid > div, .week-summary-grid > div, .analysis-summary-grid > div, .quality-card-list > div, .coach-advice-list > div, .quality-mini-list > div, .template-help-list > div { padding: 12px !important; border-radius: 14px !important; }
.compact-week-grid strong, .joint-health-grid strong, .backup-status-grid strong, .personal-stat-grid strong, .plan-stat-grid strong { font-size: 21px !important; }
.quality-mini-list, .coach-advice-list { gap: 8px !important; }
.sync-detail-card { min-height: 0 !important; }
.sync-chip-group { display: flex !important; flex-wrap: wrap !important; gap: 7px !important; }
.sync-missing-line { margin-top: 12px !important; }

/* 计划与当天记录 */
.planned-workout-card, .quick-template-card, .records-card { margin-top: 14px !important; }
.planned-item-list, .template-quick-list, .record-list, .records-list { gap: 10px !important; }
.planned-item, .template-quick-item { padding: 12px !important; border-radius: 14px !important; }
.record-item {
  grid-template-columns: 68px minmax(0,1fr) 86px !important;
  gap: 12px !important;
  padding: 14px !important;
  border-radius: 16px !important;
}
.exercise-art { width: 62px !important; height: 62px !important; border-radius: 16px !important; }
.record-top h3 { font-size: 18px !important; margin-bottom: 4px !important; }
.record-volume { min-width: 76px !important; font-size: 20px !important; }
.daily-meta-summary { grid-template-columns: 180px minmax(0,1fr) !important; }
.daily-meta-summary div { min-height: 52px !important; padding: 10px 12px !important; border-radius: 13px !important; }

/* 历史记录：降低行高和卡片厚度 */
.history-calendar-strip { grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)) !important; gap: 10px !important; margin-bottom: 14px !important; }
.history-calendar-day { min-height: 68px !important; padding: 10px 12px !important; border-radius: 15px !important; }
.history-list { gap: 14px !important; }
.history-day { padding: 20px !important; }
.history-head { align-items: center !important; }
.history-table-wrap { border-radius: 15px !important; }
.history-table { min-width: 820px !important; font-size: 14px !important; }
.history-table th, .history-table td { padding: 10px 11px !important; }
.mini-icon { width: 34px !important; height: 34px !important; border-radius: 11px !important; margin-right: 7px !important; }
.sets-badge { min-height: 26px !important; padding: 4px 9px !important; }
.history-entry-cards { display: none !important; }

/* 分析页：卡片密度和图表高度统一 */
.analysis-summary-grid, .week-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.week-insight-card { display: grid !important; grid-template-columns: 220px minmax(0,1fr) !important; gap: 12px !important; padding: 14px !important; margin-top: 14px !important; }
.professional-analysis-grid, .analysis-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 14px !important; }
.quality-card-list { gap: 9px !important; }
.muscle-bar-row { display: grid !important; grid-template-columns: 1fr !important; gap: 7px !important; padding: 7px 0 !important; }
.muscle-bar-row i, .muscle-bar-track { height: 10px !important; border-radius: 999px !important; background: var(--brand-soft) !important; }
.muscle-bar-row i::before { content: ""; display: block; width: var(--muscle-bar, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.analysis-pr-list { display: grid !important; gap: 9px !important; }
.pr-card-mini { padding: 12px !important; border-radius: 14px !important; }
.analysis-trend-grid, .mini-trend-grid.two-only { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.analysis-trend-panel, .mini-trend { padding: 14px !important; border-radius: 16px !important; }
.analysis-stat-chips { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 8px !important; }
.analysis-stat-chips div { padding: 10px !important; border-radius: 13px !important; }
.bar-chart { min-height: 210px !important; height: 210px !important; border-radius: 16px !important; }
.bar-value { font-size: 12px !important; }
.analysis-history-list { gap: 8px !important; }
.analysis-day-row { padding: 12px 14px !important; }

/* 训练计划：降低卡片重量 */
.template-admin-grid, .plan-admin-grid { grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr) !important; gap: 14px !important; }
.template-card, .plan-card { border-radius: var(--radius-lg) !important; }
.template-card-head, .plan-card-head { padding: 20px !important; }
.plan-stat-grid { grid-template-columns: repeat(5, minmax(0,1fr)) !important; gap: 9px !important; }
.template-items, .plan-items, .template-add-action-form, .plan-add-action-form, .template-edit-panel { padding-left: 20px !important; padding-right: 20px !important; padding-bottom: 20px !important; }
.template-item-row, .plan-item-row { grid-template-columns: 42px minmax(0,1fr) auto auto !important; padding: 10px !important; border-radius: 14px !important; }
.template-add-action-form, .plan-add-action-form { grid-template-columns: minmax(200px,1.4fr) repeat(5, minmax(90px,.7fr)) minmax(220px,1.2fr) auto !important; gap: 10px !important; align-items: end !important; }
.template-add-action-form .add-note-field, .plan-add-action-form .add-note-field { grid-column: auto !important; }
.template-item-edit-form { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }

/* 动作百科：从“大块堆叠”改为紧凑卡片库 */
.library-grid { grid-template-columns: minmax(0,1fr) minmax(360px,.78fr) !important; gap: 14px !important; }
.icon-grid { grid-template-columns: repeat(auto-fill, minmax(96px,1fr)) !important; gap: 10px !important; }
.icon-option { min-height: 92px !important; border-radius: 15px !important; }
.exercise-library-head { margin: 16px 0 12px !important; }
.exercise-filter-bar { gap: 7px !important; }
.filter-btn { min-height: 34px !important; padding: 7px 10px !important; font-size: 12px !important; }
.exercise-library { grid-template-columns: repeat(auto-fit, minmax(345px, 1fr)) !important; gap: 14px !important; }
.exercise-card {
  grid-template-columns: 70px minmax(0,1fr) !important;
  gap: 12px !important;
  padding: 16px !important;
  border-radius: var(--radius-lg) !important;
}
.exercise-art.large { width: 70px !important; height: 70px !important; border-radius: 17px !important; }
.exercise-title-line h3 { font-size: 18px !important; margin: 0 !important; }
.exercise-info > p { margin: 8px 0 4px !important; line-height: 1.55 !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.exercise-info > small { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5 !important; }
.exercise-personal-panel, .exercise-detail-panel, .pr-strip { margin-top: 10px !important; padding: 10px !important; border-radius: 13px !important; }
.personal-stat-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 8px !important; }
.personal-stat-grid > div { min-height: 76px !important; padding: 9px !important; }
.personal-stat-grid strong { font-size: 18px !important; }
.exercise-detail-panel { display: grid !important; gap: 4px !important; }
.pr-strip { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 8px !important; }
.pr-strip > div { padding: 8px !important; border-radius: 11px !important; }
.exercise-edit-panel { grid-column: 1 / -1 !important; margin-top: 4px !important; }
.exercise-edit-form { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.exercise-card-actions { justify-content: flex-start !important; }

@media (max-width: 1100px) {
  .app-header { grid-template-columns: 1fr !important; }
  .header-right { justify-items: start !important; width: 100%; }
  .dashboard-status-shell, .coach-hero-shell { grid-template-columns: 1fr !important; }
  .status-card, .coach-status-card { grid-template-columns: 1fr !important; }
  .coach-primary-action { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .coach-system-grid, .dashboard-panels, .dashboard-system-grid { grid-template-columns: 1fr !important; }
  .training-mode-card, .compact-week-card, .joint-health-card, .dashboard-meta-card, .sync-detail-card { grid-column: 1 / -1 !important; }
  .template-admin-grid, .plan-admin-grid, .library-grid, .professional-analysis-grid, .analysis-grid { grid-template-columns: 1fr !important; }
  .template-add-action-form, .plan-add-action-form { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
  .template-add-action-form .add-exercise-select, .plan-add-action-form .add-exercise-select { grid-column: span 2 !important; }
  .template-add-action-form .add-note-field, .plan-add-action-form .add-note-field { grid-column: span 2 !important; }
}

@media (max-width: 760px) {
  .app-header, .container { width: min(100% - 22px, 1180px) !important; }
  .container { padding-bottom: 96px !important; }
  .header-copy h1 { font-size: 25px !important; }
  .nav-tabs { display: none !important; }
  .page-head { padding: 17px !important; }
  .page-head .date-switcher, .history-switcher, .daily-switcher { display: grid !important; grid-template-columns: 40px minmax(0,1fr) 56px 40px 56px !important; gap: 7px !important; width: 100% !important; }
  .history-switcher { grid-template-columns: 1fr 1fr 62px 82px !important; }
  .today-grid, .fitness-today-grid, .dashboard-metrics-row { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .status-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .training-mode-form, .workout-form-refined, .workout-form, .daily-meta-form, .template-create-form, .exercise-edit-form { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .training-mode-form .span-2, .training-mode-form .wide, .workout-form .wide, .daily-meta-form .wide, .template-create-form .wide, .exercise-edit-form .wide, .span-2 { grid-column: 1 / -1 !important; }
  .rest-timer-panel { display: grid !important; }
  .timer-actions { min-width: 0 !important; width: 100% !important; }
  .set-panel-head { display: grid !important; }
  .set-panel-actions, .segmented-actions { width: 100% !important; }
  .set-row, .live-set-list .set-row:not(.set-head) {
    grid-template-columns: 34px minmax(0,1fr) minmax(0,1fr) 42px !important;
    grid-template-areas: "idx weight reps del" "idx rpe rpe del" !important;
  }
  .set-index { grid-area: idx !important; }
  .set-row input[name="set_weight"] { grid-area: weight !important; }
  .set-row input[name="set_reps"] { grid-area: reps !important; }
  .set-row input[name="set_rpe"] { grid-area: rpe !important; }
  .set-row .remove-set { grid-area: del !important; align-self: stretch !important; min-height: 82px !important; }
  .compact-week-grid, .joint-health-grid, .backup-status-grid, .analysis-summary-grid, .week-summary-grid, .analysis-trend-grid, .mini-trend-grid.two-only, .plan-stat-grid, .personal-stat-grid, .pr-strip { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .week-insight-card { grid-template-columns: 1fr !important; }
  .bar-chart { height: 190px !important; min-height: 190px !important; }
  .history-calendar-strip { display: flex !important; overflow-x: auto !important; padding-bottom: 4px !important; }
  .history-calendar-day { min-width: 132px !important; }
  .desktop-history-table { display: none !important; }
  .history-entry-cards { display: grid !important; gap: 10px !important; }
  .record-item { grid-template-columns: 54px minmax(0,1fr) !important; }
  .record-volume { grid-column: 2 / -1 !important; text-align: left !important; }
  .daily-meta-summary { grid-template-columns: 1fr !important; }
  .template-add-action-form, .plan-add-action-form { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .template-add-action-form .add-exercise-select, .plan-add-action-form .add-exercise-select, .template-add-action-form .add-note-field, .plan-add-action-form .add-note-field { grid-column: 1 / -1 !important; }
  .exercise-library { grid-template-columns: 1fr !important; }
}

@media (max-width: 430px) {
  .app-header, .container { width: min(100% - 16px, 1180px) !important; }
  .header-copy .sub { display: none !important; }
  .page-head .date-switcher, .daily-switcher { grid-template-columns: 38px minmax(0,1fr) 52px 38px 50px !important; }
  .status-kpi-grid, .today-grid, .fitness-today-grid, .dashboard-metrics-row, .compact-week-grid, .joint-health-grid, .backup-status-grid, .analysis-summary-grid, .week-summary-grid, .analysis-trend-grid, .mini-trend-grid.two-only, .plan-stat-grid, .personal-stat-grid, .pr-strip { grid-template-columns: 1fr !important; }
  .training-mode-form, .workout-form-refined, .workout-form, .daily-meta-form, .template-create-form, .exercise-edit-form, .template-add-action-form, .plan-add-action-form { grid-template-columns: 1fr !important; }
  .set-panel-actions, .segmented-actions, .timer-actions { grid-template-columns: 1fr !important; }
  .quick-bump-row { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
