/* ==================== 变量与重置 ==================== */
:root {
  /* ===== 高达配色 RX-78-2：绀碧蓝 + 红 + 黄 + 白 ===== */
  --c-primary: #1452cc;          /* 绀碧蓝（主色） */
  --c-primary-light: #e6f0fc;
  --c-primary-dark: #0d3a8f;
  --c-success: #22c55e;          /* 完成 / 达标 */
  --c-success-light: #e6f7ee;
  --c-danger: #d11a2a;           /* 高达红（强调/危险） */
  --c-danger-light: #fdeaea;
  --c-warning: #f5b800;          /* 高达黄（高亮/收藏） */
  --c-warning-light: #fff7da;
  --c-info: #1452cc;
  --c-info-light: #e6f0fc;
  --c-purple: #f5b800;
  --c-purple-light: #fff7da;

  --c-bg: #eef1f6;
  --c-surface: #ffffff;
  --c-sidebar: #e6edf9;          /* 浅蓝驾驶舱白（浅色侧边栏） */
  --c-sidebar-hover: #d3e0f5;
  --c-text: #1e293b;
  --c-text-2: #5b6b82;
  --c-text-3: #94a3b8;
  --c-border: #dbe2ec;
  --c-border-light: #eef2f7;

  --r-sm: 8px; --r-md: 12px; --r-lg: 16px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
  --shadow-md: 0 4px 14px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 36px rgba(0,0,0,.14);
  --t: .2s ease;
  --sidebar-w: 230px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; background:var(--c-bg); color:var(--c-text); font-size:14px; line-height:1.6; -webkit-font-smoothing:antialiased; }

/* ==================== 布局 ==================== */
#app { display:flex; min-height:100vh; }

/* ==================== 侧边栏 ==================== */
.sidebar { width:var(--sidebar-w); background:var(--c-sidebar); display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; z-index:100; }
.sidebar-header { padding:20px; display:flex; align-items:center; gap:12px; border-bottom:2px solid var(--c-danger); }
.sidebar-header .logo { font-size:28px; }
.sidebar-title { color:#fff; font-size:16px; font-weight:700; }
.sidebar-sub { color:var(--c-text-3); font-size:11px; margin-top:2px; }
.sidebar-nav { flex:1; padding:12px 10px; display:flex; flex-direction:column; gap:2px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:10px 14px; color:#a1a1aa; text-decoration:none; border-radius:var(--r-sm); font-size:14px; font-weight:500; transition:var(--t); }
.nav-item:hover { background:var(--c-sidebar-hover); color:#fff; }
.nav-item.active { background:var(--c-primary); color:#fff; box-shadow:inset 4px 0 0 var(--c-danger); }
.nav-icon { font-size:18px; width:22px; text-align:center; }
.sidebar-footer { padding:14px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:6px; }
.btn-side { padding:7px 12px; border:1px solid rgba(255,255,255,.15); background:transparent; color:#a1a1aa; border-radius:var(--r-sm); font-size:12px; cursor:pointer; transition:var(--t); }
.btn-side:hover { background:var(--c-sidebar-hover); color:#fff; }

/* ==================== 主内容 ==================== */
.main-content { flex:1; margin-left:var(--sidebar-w); min-height:100vh; }
.page { display:none; padding:28px 32px; animation:fadeIn .3s ease; }
.page.active { display:block; }
@keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

.page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:12px; }
.page-header h1 { font-size:24px; font-weight:700; }
.page-subtitle { font-size:13px; color:var(--c-text-2); margin-top:2px; }
.page-actions { display:flex; gap:10px; align-items:center; }

/* ==================== 按钮 ==================== */
.btn { padding:9px 18px; border:none; border-radius:var(--r-sm); font-size:14px; font-weight:600; cursor:pointer; transition:var(--t); display:inline-flex; align-items:center; gap:6px; }
.btn-primary { background:var(--c-primary); color:#fff; } .btn-primary:hover{background:var(--c-primary-dark);}
.btn-secondary { background:var(--c-surface); color:var(--c-text); border:1px solid var(--c-border); } .btn-secondary:hover{background:var(--c-border-light);}
.btn-success { background:var(--c-success); color:#fff; }
.btn-danger { background:var(--c-danger); color:#fff; }
.btn-sm { padding:5px 12px; font-size:12px; }
.btn-ghost { background:transparent; color:var(--c-text-2); padding:4px 8px; font-size:13px; border:none; cursor:pointer; } .btn-ghost:hover{color:var(--c-primary);}

/* ==================== BMI Banner ==================== */
.bmi-banner { background:var(--c-surface); border-radius:var(--r-lg); padding:24px; margin-bottom:20px; box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:32px; }
.bmi-info { text-align:center; flex-shrink:0; }
.bmi-value { font-size:32px; font-weight:800; color:var(--c-primary); }
.bmi-label { font-size:12px; color:var(--c-text-2); margin-top:2px; }
.bmi-bar-wrap { flex:1; }
.bmi-bar { height:10px; border-radius:5px; background:linear-gradient(90deg,#1452cc 0%,#1452cc 25%,#22c55e 25%,#22c55e 50%,#f5b800 50%,#f5b800 70%,#d11a2a 70%,#d11a2a 100%); position:relative; margin-bottom:6px; }
.bmi-marker { position:absolute; top:-4px; width:4px; height:18px; background:var(--c-text); border-radius:2px; transition:left .5s ease; }
.bmi-scale { display:flex; justify-content:space-between; font-size:10px; color:var(--c-text-3); }

/* ==================== 统计卡片 ==================== */
.dash-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
.stat-card { background:var(--c-surface); border-radius:var(--r-md); padding:18px; display:flex; align-items:center; gap:14px; box-shadow:var(--shadow-sm); transition:var(--t); }
.stat-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.stat-icon { font-size:28px; width:52px; height:52px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
/* 仪表盘图标底色：蓝 / 绿 / 红 / 黄 = 高达四色 */
.bg-orange{background:var(--c-primary-light);} .bg-green{background:var(--c-success-light);} .bg-blue{background:var(--c-danger-light);} .bg-purple{background:var(--c-warning-light);}
.stat-label { font-size:13px; color:var(--c-text-2); }
.stat-value { font-size:22px; font-weight:700; }

/* ==================== 面板 ==================== */
.dash-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.panel { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; }
.panel-header { padding:14px 20px; border-bottom:1px solid var(--c-border-light); display:flex; align-items:center; justify-content:space-between; }
.panel-header h2 { font-size:16px; font-weight:600; }
.panel-link { color:var(--c-primary); text-decoration:none; font-size:13px; font-weight:500; } .panel-link:hover{text-decoration:underline;}
.panel-body { padding:20px; }

/* ==================== 营养环形图 ==================== */
.macro-rings { display:flex; justify-content:space-around; gap:12px; }
.macro-ring { text-align:center; }
.macro-ring-svg { width:90px; height:90px; transform:rotate(-90deg); }
.macro-ring-bg { fill:none; stroke:var(--c-border-light); stroke-width:8; }
.macro-ring-fg { fill:none; stroke-width:8; stroke-linecap:round; transition:stroke-dashoffset .5s ease; }
.macro-ring-text { font-size:14px; font-weight:700; }
.macro-ring-label { font-size:12px; color:var(--c-text-2); margin-top:4px; }

/* ==================== 周训练图表 ==================== */
.week-chart { display:flex; align-items:flex-end; gap:8px; height:160px; padding:8px 0; }
.week-bar-col { flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; justify-content:flex-end; }
.week-bar { width:100%; max-width:36px; border-radius:6px 6px 0 0; min-height:4px; transition:height .5s ease; background:var(--c-primary); }
.week-bar.rest { background:var(--c-border-light); }
.week-bar-label { font-size:11px; color:var(--c-text-2); }

/* ==================== 最近列表 ==================== */
.recent-list { display:flex; flex-direction:column; gap:8px; max-height:300px; overflow-y:auto; }
.recent-item { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:var(--r-sm); background:var(--c-border-light); }
.recent-icon { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.recent-info { flex:1; min-width:0; }
.recent-title { font-size:14px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.recent-sub { font-size:12px; color:var(--c-text-2); }
.recent-val { font-weight:700; font-size:15px; white-space:nowrap; }

/* ==================== 表单 ==================== */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:13px; font-weight:600; color:var(--c-text); margin-bottom:6px; }
.form-input,.form-select,.form-textarea { width:100%; padding:10px 14px; border:1px solid var(--c-border); border-radius:var(--r-sm); font-size:14px; color:var(--c-text); background:var(--c-surface); outline:none; transition:var(--t); font-family:inherit; }
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(249,115,22,.1); }
.form-textarea { resize:vertical; min-height:70px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.type-toggle { display:flex; border:1px solid var(--c-border); border-radius:var(--r-sm); overflow:hidden; }
.type-toggle button { flex:1; padding:9px; border:none; background:var(--c-surface); font-size:14px; font-weight:600; color:var(--c-text-2); cursor:pointer; transition:var(--t); }
.type-toggle button.active { background:var(--c-primary); color:#fff; }
.form-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }

/* ==================== 输入框 ==================== */
.input-search,.input-date,.input-select,.input-month { padding:8px 12px; border:1px solid var(--c-border); border-radius:var(--r-sm); font-size:14px; color:var(--c-text); background:var(--c-surface); outline:none; transition:var(--t); font-family:inherit; }
.input-search { width:260px; }
.input-search:focus,.input-date:focus { border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(249,115,22,.1); }

/* ==================== 表格 ==================== */
.table-wrap { overflow-x:auto; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th { text-align:left; padding:10px 14px; font-size:12px; font-weight:600; color:var(--c-text-2); border-bottom:2px solid var(--c-border-light); white-space:nowrap; }
.data-table td { padding:12px 14px; font-size:14px; border-bottom:1px solid var(--c-border-light); }
.data-table tbody tr:hover { background:var(--c-border-light); }
.tag { display:inline-block; padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.tag-green{background:var(--c-success-light);color:var(--c-success);} .tag-orange{background:var(--c-primary-light);color:var(--c-primary-dark);} .tag-gray{background:var(--c-border-light);color:var(--c-text-2);} .tag-blue{background:var(--c-info-light);color:var(--c-info);}

/* ==================== 空状态 ==================== */
.empty-state { text-align:center; padding:48px 20px; color:var(--c-text-2); }
.empty-icon { font-size:48px; display:block; margin-bottom:12px; }

/* ==================== 子标签页 ==================== */
.sub-tabs { display:flex; gap:4px; margin-bottom:20px; border-bottom:2px solid var(--c-border-light); }
.sub-tab { padding:10px 20px; border:none; background:transparent; font-size:14px; font-weight:600; color:var(--c-text-2); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; transition:var(--t); }
.sub-tab:hover{color:var(--c-primary);} .sub-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary);}
.sub-tab-content { display:none; } .sub-tab-content.active{display:block;}

/* ==================== 计划卡片 ==================== */
.plans-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px; }
.plan-card { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; transition:var(--t); }
.plan-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.plan-card-head { padding:16px 20px; background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark)); display:flex; align-items:center; justify-content:space-between; }
.plan-card-head h3 { font-size:16px; font-weight:700; color:#fff; }
.plan-badge { padding:3px 10px; border-radius:20px; font-size:11px; font-weight:600; background:rgba(255,255,255,.25); color:#fff; }
.plan-card-body { padding:16px 20px; }
.plan-info-row { display:flex; justify-content:space-between; margin-bottom:8px; font-size:13px; }
.plan-info-label{color:var(--c-text-2);} .plan-info-val{font-weight:600;}
.plan-days { display:flex; gap:5px; margin:12px 0; }
.plan-day-dot { flex:1; height:28px; border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; background:var(--c-border-light); color:var(--c-text-3); }
.plan-day-dot.active{background:var(--c-primary-light);color:var(--c-primary-dark);}
.plan-day-dot.today{outline:2px solid var(--c-primary);}
.plan-card-foot { padding:12px 20px; border-top:1px solid var(--c-border-light); display:flex; gap:8px; }

/* ==================== 动作卡片 ==================== */
.filter-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.filter-tag { padding:6px 16px; border:1px solid var(--c-border); background:var(--c-surface); border-radius:20px; font-size:13px; font-weight:500; color:var(--c-text-2); cursor:pointer; transition:var(--t); }
.filter-tag:hover{border-color:var(--c-primary);color:var(--c-primary);}
.filter-tag.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary);}
.exercises-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.exercise-card { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; cursor:pointer; transition:var(--t); border:1px solid var(--c-border-light); }
.exercise-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--c-primary); }
.ex-card-head { padding:16px; display:flex; align-items:center; gap:12px; }
.ex-emoji { font-size:28px; width:52px; height:52px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; background:var(--c-primary-light); flex-shrink:0; }
.ex-name{font-size:16px;font-weight:700;} .ex-en{font-size:12px;color:var(--c-text-2);}
.ex-card-body{padding:0 16px 16px;}
.ex-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.ex-tag{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;}
.t-muscle{background:#e0e7ff;color:#4338ca;} .t-easy{background:var(--c-success-light);color:var(--c-success);} .t-medium{background:var(--c-warning-light);color:var(--c-warning);} .t-hard{background:var(--c-danger-light);color:var(--c-danger);}
.ex-desc{font-size:13px;color:var(--c-text-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ex-card-foot{padding:10px 16px;background:var(--c-border-light);display:flex;justify-content:space-between;font-size:12px;color:var(--c-text-2);}

/* ==================== 模态框 ==================== */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:1000; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.active { display:flex; animation:fadeIn .2s ease; }
.modal { background:var(--c-surface); border-radius:var(--r-lg); width:100%; max-width:560px; max-height:85vh; overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow-lg); animation:slideUp .3s ease; }
.modal.modal-lg { max-width:760px; }
@keyframes slideUp { from{transform:translateY(16px);opacity:0} to{transform:translateY(0);opacity:1} }
.modal-header { padding:18px 24px; border-bottom:1px solid var(--c-border-light); display:flex; align-items:center; justify-content:space-between; }
.modal-header h2 { font-size:18px; font-weight:700; }
.modal-close { background:none; border:none; font-size:20px; color:var(--c-text-2); cursor:pointer; padding:4px; } .modal-close:hover{color:var(--c-text);}
.modal-body { padding:24px; overflow-y:auto; }

/* ==================== 动作详情 ==================== */
.detail-sec { margin-bottom:20px; }
.detail-sec h3 { font-size:15px; font-weight:700; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
.step-list { list-style:none; counter-reset:step; }
.step-list li { counter-increment:step; padding:10px 0 10px 36px; position:relative; font-size:14px; border-bottom:1px solid var(--c-border-light); }
.step-list li:last-child{border-bottom:none;}
.step-list li::before { content:counter(step); position:absolute; left:0; top:10px; width:24px; height:24px; border-radius:50%; background:var(--c-primary); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.mistake-list,.tip-list { list-style:none; }
.mistake-list li { padding:8px 0 8px 24px; position:relative; font-size:13px; color:var(--c-text-2); }
.mistake-list li::before { content:"✕"; position:absolute; left:0; color:var(--c-danger); font-weight:700; }
.tip-list li { padding:8px 0 8px 24px; position:relative; font-size:13px; color:var(--c-text-2); }
.tip-list li::before { content:"💡"; position:absolute; left:0; }

/* ==================== 分类选择 ==================== */
.cat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:8px; }
.cat-item { display:flex; flex-direction:column; align-items:center; gap:4px; padding:12px 8px; border:2px solid var(--c-border); border-radius:var(--r-md); cursor:pointer; transition:var(--t); }
.cat-item:hover{border-color:var(--c-primary);background:var(--c-primary-light);}
.cat-item.selected{border-color:var(--c-primary);background:var(--c-primary-light);}
.cat-item .ci{font-size:24px;} .cat-item .cn{font-size:12px;font-weight:500;}

/* ==================== 预设计划 ==================== */
.preset-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.preset-card { border:2px solid var(--c-border); border-radius:var(--r-md); padding:16px; cursor:pointer; transition:var(--t); }
.preset-card:hover{border-color:var(--c-primary);background:var(--c-primary-light);}
.preset-card h4{font-size:15px;font-weight:700;margin-bottom:6px;}
.preset-card p{font-size:12px;color:var(--c-text-2);margin-bottom:8px;}
.preset-meta{display:flex;gap:10px;font-size:12px;color:var(--c-text-2);}

/* ==================== 训练动作列表 ==================== */
.wo-ex-item { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--c-border-light); border-radius:var(--r-sm); margin-bottom:8px; }
.wo-check { width:26px; height:26px; border:2px solid var(--c-border); border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:var(--t); color:#fff; font-size:14px; }
.wo-check.checked { background:var(--c-success); border-color:var(--c-success); }
.wo-name{flex:1;font-weight:600;font-size:14px;}
.wo-detail{font-size:13px;color:var(--c-text-2);}

/* ==================== Profile ==================== */
.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.analysis-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--c-border-light); font-size:14px; }
.analysis-row:last-child{border-bottom:none;}
.analysis-label{color:var(--c-text-2);} .analysis-val{font-weight:700;}
.macro-target { display:flex; gap:12px; margin-bottom:12px; }
.macro-target-card { flex:1; text-align:center; padding:16px; border-radius:var(--r-md); }
.macro-target-card.protein{background:#fef2f2;}
.macro-target-card.carbs{background:var(--c-warning-light);}
.macro-target-card.fat{background:var(--c-info-light);}
.mt-val{font-size:24px;font-weight:800;}
.mt-label{font-size:12px;color:var(--c-text-2);margin-top:4px;}
.mt-sub{font-size:11px;color:var(--c-text-3);margin-top:2px;}

/* ==================== 饮食推荐 ==================== */
.diet-hero { background:linear-gradient(135deg,var(--c-primary),var(--c-danger)); border-radius:var(--r-lg); padding:28px; color:#fff; margin-bottom:20px; display:flex; align-items:center; justify-content:space-between; }
.diet-hero-val { font-size:40px; font-weight:800; }
.diet-hero-label { font-size:14px; opacity:.9; }
.meal-plan-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.meal-card { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; }
.meal-card-head { padding:14px 18px; display:flex; align-items:center; justify-content:space-between; }
.meal-card-head h3{font-size:15px;font-weight:700;}
.meal-cal{font-size:13px;font-weight:700;color:var(--c-primary);}
.meal-card-body{padding:14px 18px;}
.meal-food-item { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--c-border-light); font-size:13px; }
.meal-food-item:last-child{border-bottom:none;}
.meal-food-name{color:var(--c-text);} .meal-food-amount{color:var(--c-text-2);}
.diet-tip { background:var(--c-primary-light); border-radius:var(--r-md); padding:16px 20px; margin-top:16px; }
.diet-tip h3{font-size:14px;font-weight:700;color:var(--c-primary-dark);margin-bottom:8px;}
.diet-tip ul{list-style:none;}
.diet-tip li{padding:4px 0 4px 20px;position:relative;font-size:13px;color:var(--c-text-2);}
.diet-tip li::before{content:"✓";position:absolute;left:0;color:var(--c-success);font-weight:700;}

/* ==================== 热量记录 ==================== */
.calorie-overview { background:var(--c-surface); border-radius:var(--r-md); padding:24px; margin-bottom:20px; box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:32px; }
.calorie-ring-wrap { position:relative; width:140px; height:140px; flex-shrink:0; }
.calorie-ring-svg { width:140px; height:140px; transform:rotate(-90deg); }
.calorie-ring-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.calorie-ring-val { font-size:28px; font-weight:800; }
.calorie-ring-label { font-size:11px; color:var(--c-text-2); }
.calorie-stats { flex:1; display:grid; grid-template-columns:repeat(auto-fit,minmax(74px,1fr)); gap:10px; }
.cal-stat { text-align:center; padding:12px; border-radius:var(--r-sm); background:var(--c-border-light); }
.cal-stat-val{font-size:18px;font-weight:700;}
.cal-stat-label{font-size:12px;color:var(--c-text-2);}
.meal-section { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); margin-bottom:16px; overflow:hidden; }
.meal-section-head { padding:14px 20px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--c-border-light); }
.meal-section-head h3{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;}
.meal-section-body{padding:12px 20px;}
.food-log-item { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--c-border-light); }
.food-log-item:last-child{border-bottom:none;}
.food-log-name{flex:1;font-size:14px;}
.food-log-amount{font-size:13px;color:var(--c-text-2);}
.food-log-cal{font-weight:700;font-size:15px;color:var(--c-primary);min-width:70px;text-align:right;}
.food-log-macro{font-weight:500;font-size:12px;color:var(--c-text-3);margin-left:6px;}

/* 添加食物时三大营养素预估 */
.macro-preview{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;font-weight:600;margin-top:-4px;padding:8px 12px;background:var(--c-border-light);border-radius:var(--r-sm);}

/* ==================== 食物搜索 ==================== */
.food-search-results { max-height:320px; overflow-y:auto; }
.food-search-item { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--c-border); border-radius:var(--r-sm); margin-bottom:8px; cursor:pointer; transition:var(--t); }
.food-search-item:hover{border-color:var(--c-primary);background:var(--c-primary-light);}
.food-search-icon{font-size:24px;width:40px;height:40px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:var(--c-border-light);flex-shrink:0;}
.food-search-info{flex:1;}
.food-search-name{font-size:14px;font-weight:600;}
.food-search-sub{font-size:12px;color:var(--c-text-2);}
.food-search-cal{font-weight:700;color:var(--c-primary);}

/* ==================== Toast ==================== */
.toast-container { position:fixed; top:20px; right:20px; z-index:2000; display:flex; flex-direction:column; gap:8px; }
.toast { padding:12px 20px; border-radius:var(--r-sm); font-size:14px; font-weight:500; color:#fff; box-shadow:var(--shadow-md); animation:toastIn .3s ease; max-width:320px; }
@keyframes toastIn { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }
.toast-success{background:var(--c-success);} .toast-error{background:var(--c-danger);} .toast-info{background:var(--c-primary);}

/* ==================== 响应式 ==================== */
@media(max-width:1024px){ .dash-grid-4{grid-template-columns:repeat(2,1fr);} .dash-row{grid-template-columns:1fr;} .profile-grid{grid-template-columns:1fr;} }
@media(max-width:768px){ .sidebar{position:relative;width:100%;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;} .sidebar-header{border-bottom:none;padding:12px;} .sidebar-nav{flex-direction:row;flex-wrap:wrap;padding:0 8px;} .sidebar-footer{display:none;} .main-content{margin-left:0;} .page{padding:16px;} .dash-grid-4{grid-template-columns:1fr;} .form-row{grid-template-columns:1fr;} .preset-grid{grid-template-columns:1fr;} .bmi-banner{flex-direction:column;gap:16px;} .calorie-overview{flex-direction:column;} .calorie-stats{width:100%;} }
::-webkit-scrollbar{width:6px;height:6px;} ::-webkit-scrollbar-track{background:transparent;} ::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:3px;} ::-webkit-scrollbar-thumb:hover{background:var(--c-text-3);}

/* ==================== 备考计划 ==================== */
.modal-sm { max-width:420px; }
.ex-card { background:var(--c-surface); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; transition:var(--t); border:1px solid var(--c-border-light); }
.ex-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--c-primary); }
.ex-muscle{font-size:12px;color:var(--c-text-2);margin-top:2px;}

/* 倒计时 */
.exam-countdown { margin-bottom:20px; }
.countdown-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.countdown-card { background:var(--c-surface); border-radius:var(--r-md); padding:18px 22px; box-shadow:var(--shadow-sm); }
.countdown-type { font-size:13px; font-weight:600; color:var(--c-text-2); }
.countdown-num { font-size:30px; font-weight:800; margin:4px 0; }
.countdown-date { font-size:12px; color:var(--c-text-3); }

/* 阶段时间轴 */
.exam-stage-timeline { display:flex; flex-direction:column; gap:14px; }
.exam-stage { border:1px solid var(--c-border-light); border-radius:var(--r-md); padding:14px 16px; background:var(--c-surface); }
.exam-stage-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.exam-stage-idx { background:var(--c-primary); color:#fff; font-size:12px; font-weight:700; padding:3px 10px; border-radius:20px; }
.exam-stage-name { font-size:15px; font-weight:700; flex:1; }
.exam-stage-week { font-size:12px; color:var(--c-text-3); }
.exam-stage-focus { font-size:13px; color:var(--c-text-2); margin-bottom:10px; line-height:1.5; }
.exam-stage-subjects { display:flex; flex-wrap:wrap; gap:6px; }
.exam-subj-tag { background:var(--c-border-light); border-radius:6px; padding:4px 10px; font-size:12px; color:var(--c-text); }
.exam-subj-tag b { color:var(--c-primary-dark); }

/* 学习打卡进度卡 */
.study-progress-card { background:var(--c-surface); border-radius:var(--r-md); padding:20px; box-shadow:var(--shadow-sm); margin-bottom:18px; }
.study-progress-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.study-progress-title { font-size:15px; font-weight:700; }
.study-progress-focus { font-size:13px; color:var(--c-text-2); }
.study-bar { height:10px; border-radius:5px; background:var(--c-border-light); margin-top:16px; overflow:hidden; }
.study-bar-fill { height:100%; border-radius:5px; background:linear-gradient(90deg,var(--c-primary),var(--c-primary-dark)); transition:width .5s ease; }

.study-tasks-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.study-tasks { display:flex; flex-direction:column; gap:10px; }
.study-task { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border:1px solid var(--c-border-light); border-radius:var(--r-md); background:var(--c-surface); }
.study-task-name { font-size:14px; font-weight:600; }
.study-task-detail { font-size:12px; color:var(--c-text-2); margin-top:2px; }
.study-task-input { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.study-task-unit { font-size:13px; color:var(--c-text-2); }

/* 科目详情选项卡 */
.subj-tabs { display:flex; gap:8px; margin:10px 0 14px; border-bottom:1px solid var(--c-border-light); }
.subj-tab { background:none; border:none; padding:10px 14px; font-size:14px; font-weight:600; color:var(--c-text-2); cursor:pointer; border-bottom:2px solid transparent; transition:var(--t); }
.subj-tab:hover { color:var(--c-text); }
.subj-tab.active { color:var(--c-primary); border-bottom-color:var(--c-primary); }

/* 课程大纲 */
.course-summary { font-size:13px; color:var(--c-text-2); margin-bottom:12px; padding:10px 14px; background:var(--c-border-light); border-radius:var(--r-sm); }
.course-summary b { color:var(--c-text); }
.course-chapter { border:1px solid var(--c-border-light); border-radius:var(--r-md); padding:14px 16px; margin-bottom:10px; background:var(--c-surface); }
.course-ch-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.course-idx { width:24px; height:24px; border-radius:50%; background:var(--c-primary); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.course-name { font-size:14px; font-weight:700; flex:1; }
.course-hours { font-size:12px; font-weight:700; color:var(--c-primary); background:var(--c-primary-light); padding:2px 8px; border-radius:12px; }
.course-topics { display:flex; flex-wrap:wrap; gap:6px; }
.course-topic { font-size:12px; color:var(--c-text-2); background:var(--c-border-light); padding:4px 10px; border-radius:6px; }

/* 近10年真题跟踪 */
.paper-tip { font-size:12px; color:var(--c-text-2); background:var(--c-info-light); border-radius:var(--r-sm); padding:10px 12px; margin-bottom:12px; line-height:1.6; }
.paper-tip b { color:var(--c-primary-dark); }
.paper-summary { display:flex; gap:12px; margin-bottom:14px; }
.paper-summary > div { flex:1; text-align:center; background:var(--c-border-light); border-radius:var(--r-sm); padding:10px; }
.ps-val { font-size:22px; font-weight:800; color:var(--c-primary); }
.ps-label { display:block; font-size:12px; color:var(--c-text-2); margin-top:2px; }
.paper-table { border:1px solid var(--c-border-light); border-radius:var(--r-md); overflow:hidden; }
.paper-row { display:grid; grid-template-columns:80px 1fr 1fr; align-items:stretch; }
.paper-row:not(:last-child) { border-bottom:1px solid var(--c-border-light); }
.paper-row-h { background:var(--c-border-light); font-size:12px; font-weight:700; color:var(--c-text-2); }
.paper-row-h > div { padding:8px 10px; text-align:center; }
.paper-y { display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--c-text); border-right:1px solid var(--c-border-light); background:var(--c-surface); }
.paper-cell { border:none; border-right:1px solid var(--c-border-light); background:var(--c-surface); padding:10px 6px; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:2px; transition:var(--t); font-family:inherit; }
.paper-cell:last-child { border-right:none; }
.paper-cell:hover { background:var(--c-primary-light); }
.paper-cell .pc-state { font-size:11px; color:var(--c-text-3); }
.paper-cell .pc-state.todo { color:var(--c-text-3); }
.paper-cell.done { background:var(--c-success-light); }
.paper-cell.done .pc-pct { font-size:15px; font-weight:800; color:var(--c-success); }
.paper-cell.done .pc-state { color:var(--c-success); font-size:11px; }
.paper-source { margin-top:14px; font-size:12px; color:var(--c-text-2); line-height:1.7; background:var(--c-surface); border:1px solid var(--c-border-light); border-radius:var(--r-md); padding:12px 14px; }
.paper-source .ps-title { font-weight:700; color:var(--c-text); margin-bottom:4px; }
.paper-source p { margin:0 0 6px; }
.paper-trend { margin-top:6px; padding-top:8px; border-top:1px dashed var(--c-border); }
.paper-trend b { color:var(--c-primary-dark); }

/* ==================== 时政时评 ==================== */
.news-today { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.today-news-card, .today-comment-card { background:var(--c-surface); border:1px solid var(--c-border-light); border-radius:var(--r-md); padding:14px 16px; box-shadow:var(--shadow-sm); }
.today-news-label { font-size:12px; font-weight:700; color:var(--c-text-3); margin-bottom:10px; letter-spacing:1px; }
.today-news-main { display:flex; align-items:center; gap:8px; cursor:pointer; transition:var(--t); flex-wrap:wrap; }
.today-news-main:hover b { color:var(--c-primary); }
.today-news-main b { font-size:14px; }
.today-news-go { margin-left:auto; font-size:12px; color:var(--c-primary); font-weight:600; white-space:nowrap; }
.today-comment-main { cursor:pointer; }
.today-comment-quote { font-size:14px; font-weight:600; color:var(--c-text); line-height:1.7; font-style:italic; }
.today-comment-from { font-size:12px; color:var(--c-text-3); margin-top:8px; }

.news-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.news-subtabs { display:flex; gap:8px; }
.news-subtab { background:var(--c-surface); border:1px solid var(--c-border); border-radius:20px; padding:7px 16px; font-size:13px; font-weight:600; color:var(--c-text-2); cursor:pointer; transition:var(--t); }
.news-subtab:hover { border-color:var(--c-primary); }
.news-subtab.active { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }
.news-toolbar .input-search { width:200px; }
.news-toolbar-right { display:flex; align-items:center; gap:10px; }
.news-updated { font-size:12px; color:var(--c-text-3); white-space:nowrap; }

.news-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.news-card { background:var(--c-surface); border:1px solid var(--c-border-light); border-radius:var(--r-md); padding:14px 16px; box-shadow:var(--shadow-sm); cursor:pointer; transition:var(--t); }
.news-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--c-primary); }
.news-card.read { opacity:.72; }
.news-card.comment.fav { border-color:var(--c-warning); background:var(--c-warning-light); }
.news-card-top { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.news-cat { font-size:11px; font-weight:700; padding:2px 9px; border-radius:12px; color:#fff; white-space:nowrap; }
.news-cat-pol{background:#ef4444;} .news-cat-eco{background:#16a34a;} .news-cat-tech{background:#2563eb;} .news-cat-law{background:#7c3aed;} .news-cat-soc{background:#d11a2a;} .news-cat-env{background:#0d9488;} .news-cat-cul{background:#db2777;} .news-cat-culture{background:#db2777;} .news-cat-intl{background:#4f46e5;}
.news-date { font-size:12px; color:var(--c-text-3); }
.news-read { margin-left:auto; font-size:11px; color:#047857; font-weight:600; background:var(--c-success-light); padding:2px 8px; border-radius:10px; }
.news-fav { margin-left:auto; font-size:11px; color:#b45309; font-weight:600; }
.news-title { font-size:15px; font-weight:700; line-height:1.4; margin-bottom:8px; color:var(--c-text); }
.news-summary { font-size:13px; color:var(--c-text-2); line-height:1.65; margin-bottom:10px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-point { font-size:12px; color:var(--c-text-2); background:var(--c-border-light); border-radius:var(--r-sm); padding:8px 10px; line-height:1.5; }
.news-card.comment .news-point { background:var(--c-info-light); }

.news-detail-point { font-size:13px; color:var(--c-text); background:var(--c-border-light); border-radius:var(--r-sm); padding:12px 14px; line-height:1.7; margin-bottom:12px; }
.news-detail-tip { font-size:12px; color:var(--c-text-2); background:var(--c-primary-light); border-radius:var(--r-sm); padding:12px 14px; line-height:1.7; }

.comment-essence { font-size:14px; color:var(--c-text); line-height:1.95; margin-bottom:16px; text-align:justify; }
.comment-quotes-title { font-size:13px; font-weight:700; color:var(--c-primary); margin-bottom:8px; }
.comment-quotes { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.comment-quote { font-size:14px; color:var(--c-text); background:var(--c-warning-light); border-left:3px solid var(--c-warning); padding:10px 14px; border-radius:0 var(--r-sm) var(--r-sm) 0; line-height:1.7; font-style:italic; }

@media(max-width:768px){ .news-today{grid-template-columns:1fr;} .news-toolbar .input-search{width:100%;} }


/* ==================== 高达 RX-78-2 元素符号点缀 ==================== */

/* 侧边栏：浅蓝驾驶舱白 + 顶部三色条（红/蓝/黄） */
.sidebar { background:linear-gradient(180deg,#eaf1fb,#dde8f7); border-right:1px solid rgba(20,82,204,.18); }
.sidebar::before {
  content:""; position:absolute; top:0; left:0; right:0; height:4px; z-index:101;
  background:linear-gradient(90deg,var(--c-danger) 0 33.33%,var(--c-primary) 33.33% 66.66%,var(--c-warning) 66.66% 100%);
}
.sidebar-header { position:relative; border-bottom:3px solid var(--c-danger); }
.sidebar-title { color:var(--c-primary-dark); }
.sidebar-sub { color:var(--c-text-2); }
.nav-item { color:#3a4a63; }
.nav-item:hover { background:var(--c-sidebar-hover); color:var(--c-primary-dark); }
.nav-item.active { background:var(--c-primary); color:#fff; box-shadow:inset 4px 0 0 var(--c-danger); }
.sidebar-footer { border-top:1px solid rgba(20,82,204,.14); }
.btn-side { border:1px solid rgba(20,82,204,.25); color:#3a4a63; }
.btn-side:hover { background:var(--c-sidebar-hover); color:var(--c-primary-dark); }

/* V 字天线（高达红）：仪表盘统计卡顶部 */
.stat-card { position:relative; }
.stat-card::after {
  content:"";
  position:absolute; top:-7px; left:50%; transform:translateX(-50%);
  width:30px; height:15px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='15' viewBox='0 0 30 15'%3E%3Cpath d='M3 2 L15 13 L27 2' fill='none' stroke='%23d11a2a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  filter: drop-shadow(0 0 3px rgba(209,26,42,.4));
  z-index:3;
}

/* 地球联邦徽记（☋ 带天线圆标）：面板 / 计划卡 / 弹窗 标题前 */
.panel-header h2,
.plan-card-head h3,
.modal-header h2 { position:relative; padding-left:24px; }
.panel-header h2::before,
.plan-card-head h3::before,
.modal-header h2::before {
  content:"☋";
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  font-size:16px; font-weight:700; color:var(--c-primary); line-height:1;
}
.plan-card-head h3::before { color:#fff; }

/* 「RX-78-2」机体编号水印（仪表盘，衬于内容之下） */
#page-dashboard { position:relative; overflow:hidden; }
#page-dashboard > * { position:relative; z-index:1; }
.gundam-watermark {
  position:absolute; right:22px; bottom:14px; z-index:0;
  text-align:right; pointer-events:none; user-select:none;
  line-height:1; opacity:.10;
}
.gundam-watermark .gw-unit {
  display:block;
  font-family:"Courier New",ui-monospace,Menlo,monospace;
  font-size:68px; font-weight:800; letter-spacing:2px;
  color:var(--c-primary-dark);
  text-shadow:0 0 1px rgba(20,82,204,.25);
}
.gundam-watermark .gw-sub {
  display:block;
  margin-top:6px;
  font-family:"Courier New",ui-monospace,Menlo,monospace;
  font-size:11px; font-weight:700; letter-spacing:4px;
  color:var(--c-text-2);
}
@media(max-width:768px){ .gundam-watermark .gw-unit{font-size:46px;} }

/* ==================== 账号同步 UI ==================== */
.sync-status {
  font-size:12px; font-weight:600; color:var(--c-text-2);
  background:rgba(20,82,204,.10); border:1px solid rgba(20,82,204,.18);
  border-radius:var(--r-sm); padding:7px 10px; line-height:1.3;
}
.sync-status.ok { color:var(--c-primary-dark); background:var(--c-success-light); border-color:rgba(34,197,94,.35); }
.sync-status.ok.busy { color:var(--c-warning); }

.acct-tabs { display:flex; gap:8px; }
.acct-tab {
  flex:1; background:var(--c-border-light); border:1px solid var(--c-border);
  border-radius:var(--r-sm); padding:9px; font-size:14px; font-weight:600; color:var(--c-text-2); cursor:pointer;
}
.acct-tab.active { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }
.acct-msg { font-size:13px; color:var(--c-danger); min-height:18px; margin:8px 0 0; }
.acct-note { font-size:12px; color:var(--c-text-3); line-height:1.6; margin:14px 0 0; background:var(--c-border-light); border-radius:var(--r-sm); padding:10px 12px; }


/* ==================== 手机可用：在手机上打开卡片 ==================== */
.phone-open-card .po-body { display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.phone-open-card .po-left { flex:1; min-width:240px; }
.phone-open-card .po-tip { font-size:13px; color:var(--c-text-2); line-height:1.6; margin:0 0 10px; }
.phone-open-card .po-url-box { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.phone-open-card .po-url { flex:1; background:var(--c-border-light); border:1px solid var(--c-border); border-radius:var(--r-sm); padding:8px 10px; font-size:13px; word-break:break-all; color:var(--c-primary-dark); }
.phone-open-card .po-url-box .btn { white-space:nowrap; }
.phone-open-card .po-actions { display:flex; gap:8px; margin-top:4px; }
.phone-open-card .po-right { flex:0 0 auto; text-align:center; }
.phone-open-card .po-qr { border:1px solid var(--c-border); border-radius:var(--r-sm); background:#fff; }
.phone-open-card .po-qr-tip { font-size:12px; color:var(--c-text-2); margin:8px 0 0; }
.phone-open-card .po-section { margin-bottom:14px; }
.phone-open-card .po-public { padding:12px 14px; border:1px solid var(--c-primary); border-left:4px solid var(--c-primary); background:linear-gradient(180deg, rgba(20,82,204,.07), rgba(20,82,204,.02)); border-radius:var(--r-sm); }
.phone-open-card .po-badge { display:inline-block; font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; margin-bottom:8px; }
.phone-open-card .po-badge-public { color:#fff; background:var(--c-primary); }
.phone-open-card .po-url-public { flex:1; background:var(--c-border-light); border:1px solid var(--c-primary); border-radius:var(--r-sm); padding:8px 10px; font-size:13px; word-break:break-all; color:var(--c-primary-dark); font-weight:600; }
.phone-open-card .po-tip-weak { color:var(--c-text-2); opacity:.85; font-size:12px; }
.phone-open-card .po-lan { border:1px solid var(--c-border); border-radius:var(--r-sm); padding:10px 14px; background:var(--c-bg-2); }
.phone-open-card .po-lan > summary { cursor:pointer; font-size:13px; font-weight:600; color:var(--c-text-1); outline:none; }
.phone-open-card .po-lan > summary::-webkit-details-marker { color:var(--c-primary); }
.phone-open-card .po-lan[open] { padding-bottom:14px; }
.phone-open-card .po-lan .po-url-box, .phone-open-card .po-lan .po-tip { margin-top:10px; }

/* ==================== 移动端底部导航 + 同步悬浮按钮（默认隐藏，手机显示） ==================== */
.bottom-nav { display:none; }
.sync-fab { display:none; }

@media(max-width:768px){
  .sidebar { display:none; }
  .main-content { margin-left:0; padding-bottom:84px; }
  .bottom-nav {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:200;
    background:rgba(234,241,251,.98); backdrop-filter:blur(6px);
    border-top:1px solid rgba(20,82,204,.18);
    box-shadow:0 -4px 16px rgba(20,82,204,.12);
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding:6px 4px calc(env(safe-area-inset-bottom,4px) + 4px);
  }
  .bottom-nav .bn-item {
    flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; min-width:62px; padding:6px 8px; background:none; border:none; cursor:pointer;
    color:#3a4a63; font-size:11px; -webkit-tap-highlight-color:transparent;
  }
  .bottom-nav .bn-item .bn-ico { font-size:20px; line-height:1; }
  .bottom-nav .bn-item.active { color:var(--c-primary); }
  .bottom-nav .bn-item.active .bn-ico { filter:drop-shadow(0 0 4px rgba(20,82,204,.5)); }
  .sync-fab {
    display:flex; align-items:center; justify-content:center;
    position:fixed; right:16px; bottom:76px; z-index:210;
    width:52px; height:52px; border-radius:50%; font-size:24px;
    background:var(--c-primary); color:#fff; border:none; cursor:pointer;
    box-shadow:0 6px 18px rgba(20,82,204,.45); -webkit-tap-highlight-color:transparent;
  }
  .sync-fab:active { transform:scale(.94); }
  .page-header { flex-direction:column; align-items:flex-start; gap:10px; }
  .page-header .page-actions { width:100%; flex-wrap:wrap; }
  .form-row { flex-direction:column; }
  .dash-row { grid-template-columns:1fr; }
  .dash-grid-4 { grid-template-columns:repeat(2,1fr); }
  .profile-grid { grid-template-columns:1fr; }
  .table-wrap { overflow-x:auto; }
  .input-search, .input-date { width:100%; }
  .modal { width:calc(100% - 24px); max-height:88vh; }
}

/* ========== 饮食趋势图 ========== */
#diet-trend { margin-top:18px; }
.trend-card { margin-top:0; }
.trend-card .panel-header { flex-wrap:wrap; gap:10px; }
.trend-tabs { display:inline-flex; gap:4px; background:var(--c-border-light); padding:3px; border-radius:8px; }
.trend-tab { border:none; background:transparent; padding:5px 14px; border-radius:6px; font-size:13px; font-weight:600; color:var(--c-text-2); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.trend-tab.active { background:#fff; color:var(--c-primary); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.trend-sub { font-size:13px; font-weight:600; color:var(--c-text-2); margin-bottom:6px; }
.trend-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; font-size:12px; color:var(--c-text-2); }
.trend-legend span { display:inline-flex; align-items:center; gap:6px; }
.trend-legend i { width:10px; height:10px; border-radius:2px; display:inline-block; }
.trend-card .empty-state { padding:30px 0; }


