/* 首页：信息先出现，入口自然跟随。 */
#home-page .workspace-head { padding:8px 0 22px; margin-bottom:22px; }
.home-date { text-align:right; flex-shrink:0; }
.home-date b { display:block; font-size:15px; font-weight:600; }
.home-date span { display:block; margin-top:8px; color:#809088; font-size:12px; }
.sky-panel { display:grid; grid-template-columns:.8fr 1.6fr; padding:4px 2px 16px; margin-bottom:12px; background:radial-gradient(ellipse at 73% 40%,#fff1d84d 0%,#ffffff36 36%,transparent 72%); color:#303a4a; border:0; box-shadow:none; overflow:visible; }
.sky-heading,.sky-light-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.sky-kicker { font-size:12px; letter-spacing:.14em; color:#7b8492; }
.sky-refresh { color:#64748b; background:transparent; border:0; padding:4px; font-size:12px; }
.sky-refresh:disabled { opacity:.5; cursor:wait; }
.sky-panel h2 { font-size:16px; margin:8px 0 6px; font-weight:600; }
.weather-reading { display:flex; align-items:center; gap:12px; margin:5px 0; }
.weather-reading strong { font-size:38px; font-weight:500; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.weather-reading span { font-size:15px; }
.sky-weather { padding-right:28px; }
.sky-weather p { margin:0 0 9px; font-size:12px; line-height:1.7; color:#64748b; }
.sky-weather small { font-size:12px; color:#7b8492; }
.sky-location-controls { display:flex; gap:8px; margin:8px 0; }
.sky-location-controls button { border:1px solid #e1e5eb; background:#fff; color:#64748b; border-radius:7px; padding:6px 9px; font-size:12px; }
.sky-location-controls button:disabled { opacity:.5; }
.sky-city-form { display:flex; gap:10px; }
.sky-city-form input { min-width:0; }
.sky-city-error { color:#64748b; font-size:14px; line-height:1.7; }
.sky-city-result { display:block; width:100%; border:1px solid #dbe5f1; border-radius:9px; text-align:left; padding:12px; background:#f8fafc; color:#172554; margin:8px 0; }
.sky-city-presets { display:flex; flex-wrap:wrap; gap:10px; margin-top:15px; }
.sky-light { padding-left:30px; }
.sky-light h2 { font-size:16px; margin-top:6px; }
.sky-now { font-size:12px; border:1px solid #e1e5eb; background:#ffffffb0; border-radius:30px; padding:6px 10px; white-space:nowrap; color:#64748b; }
.sun-orbit { height:70px; position:relative; margin:0 0 10px; }
.sun-orbit[hidden] { display:none; }
.sun-orbit svg { display:block; width:100%; height:100%; overflow:visible; }
.sun-orbit path { fill:none; vector-effect:non-scaling-stroke; }
.sun-horizon { stroke:#d8e0e8; stroke-width:1; }
.sun-day-arc { stroke:#d7b16a; stroke-width:2; }
.sun-night-arc { stroke:#d9cbb1; stroke-width:1.5; stroke-dasharray:3 5; }
.moon-day-arc { stroke:#8095b9; stroke-width:2; }
.moon-night-arc { stroke:#aab7cc; stroke-width:1.5; stroke-dasharray:3 5; }
.sun-orbit-dot,.moon-orbit-dot { position:absolute; transform:translate(-50%,-50%); width:26px; height:26px; display:grid; place-items:center; font-size:20px; line-height:1; transition:left 1s ease,top 1s ease; }
.sun-orbit-dot.below-horizon,.moon-orbit-dot.below-horizon { opacity:.5; }
.sun-crossing { position:absolute; top:63%; transform:translateX(-50%); padding-top:8px; font-size:12px; color:#7b8492; }
.sun-crossing::before { content:''; position:absolute; top:-5px; left:50%; width:5px; height:5px; transform:translateX(-50%); border-radius:50%; background:#d7b16a; }
.sun-horizon-label { position:absolute; right:0; top:43%; color:#94a0ae; font-size:12px; }
.orbit-legend { display:flex; gap:14px; margin:0 0 2px; color:#5b6b81; font-size:12px; }
.orbit-legend span { white-space:nowrap; }
.sun-crossing[hidden] { display:none; }
.sky-times { display:grid; grid-template-columns:1.5fr .8fr .8fr 1.5fr; gap:10px; }
.sky-times span { display:block; font-size:12px; color:#7b8492; }
.sky-times b { display:block; margin-top:8px; font-size:16px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sky-caption { display:none; }
.sky-source { display:flex; justify-content:space-between; font-size:12px; color:#7b8492; gap:10px; margin-top:12px; }
.sky-source a { color:inherit; text-decoration:none; }
#home-page .workspace-card { padding:24px 26px; min-height:285px; }
#home-page .workspace-icon { width:38px; height:38px; margin-bottom:13px; }
#home-page .workspace-card h2 { font-size:20px; margin-bottom:7px; }
#home-page .home-card-meta { font-size:12px; }
#home-page .card-arrow { padding-top:14px; border-top:1px solid #edf0f4; margin-top:18px; font-size:12px; }
.home-count { display:inline-block; font-size:11px; font-weight:500; color:#6d7b8e; background:#f0f3f7; padding:4px 7px; border-radius:7px; vertical-align:middle; margin-left:5px; }
.home-preview-list { margin-top:14px; display:grid; gap:10px; }
.home-preview-row { display:flex; gap:12px; align-items:center; font-size:13px; min-width:0; }
.home-preview-row>div { flex:1; min-width:0; }
.home-preview-row b { display:block; font-weight:550; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-preview-row small { display:block; font-size:11px; margin-top:4px; color:#7b8492; }
.home-time { font-size:11px; color:#546a88; font-variant-numeric:tabular-nums; white-space:nowrap; }
.home-dot { width:7px; height:7px; border-radius:50%; background:#81a092; flex-shrink:0; }
.home-preview-row.overdue .home-dot { background:#b87967; }
.home-preview-row.overdue small { color:#a56551; }
.home-empty { font-size:13px; line-height:1.8; color:#7b8492; padding:5px 0; }
.home-break-copy { color:#567a69; font-size:21px; padding-top:4px; }
.home-money-numbers { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:19px 0 15px; }
.home-money-numbers span { font-size:11px; color:#7b8492; }
.home-money-numbers b { display:block; font-size:26px; letter-spacing:-.04em; font-weight:600; margin-top:7px; font-variant-numeric:tabular-nums; }
.home-category-preview { display:flex; gap:7px; flex-wrap:wrap; margin-top:13px; color:#8a775f; font-size:11px; }
.home-category-preview span { border-radius:6px; background:#faf5ed; padding:5px 7px; }
.home-habit-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:18px; }
.home-habit-grid label { display:flex; align-items:center; gap:8px; border:1px solid #e8eaf1; border-radius:10px; padding:12px 9px; font-size:12px; cursor:pointer; color:#606a7d; }
.home-habit-grid label.checked { border-color:#d4e4da; background:#f2f7f4; color:#4b7962; }
.home-habit-grid input { accent-color:#658778; width:15px; height:15px; flex-shrink:0; }
.home-text-button { border:0; background:transparent; color:#414b5c; font-size:12px; font-weight:650; padding:14px 0 0; margin-top:18px; width:100%; text-align:left; border-top:1px solid #edf0f4; }
#home-page .home-footer { padding:12px 2px 0; }
.home-footer img { object-fit:contain; }
/* 主要信息保持易读，细节也不缩成小字。 */
.sky-kicker,.sky-refresh,.sky-weather p,.sky-weather small,.sky-now,.sky-times span,.sky-caption,.sky-source,.home-time,.home-preview-row small,.home-count,.home-money-numbers span,.home-category-preview { font-size:12px; }
.home-preview-row,.home-empty,.home-habit-grid label { font-size:14px; }
.home-preview-row b { line-height:1.6; }
@media(max-width:760px) { .sky-panel { grid-template-columns:1fr; padding:2px 2px 12px; } .sky-weather { display:grid; grid-template-columns:1fr auto; column-gap:10px; padding:0 0 6px; } .sky-heading { grid-column:1/-1; } .sky-weather h2 { grid-column:1; grid-row:2; margin:7px 0; } .sky-location-controls { grid-column:1; grid-row:3; margin:3px 0 8px; } .weather-reading { grid-column:2; grid-row:2/4; margin:0; gap:8px; } .weather-reading strong { font-size:34px; } .weather-reading span { font-size:13px; } .sky-weather p,.sky-weather small { grid-column:1/-1; } .sky-weather p { margin:0 0 3px; } .sky-light { padding:10px 0 0; } .sun-orbit { height:68px; } }
@media(prefers-reduced-motion:reduce) { .sun-orbit-dot { transition:none; } }
@media(max-width:520px) { .home-date b { font-size:12px; } .home-date span { font-size:10px; } #home-page .workspace-head h1 { font-size:27px; } .home-english { max-width:190px; line-height:1.7; } .sky-times { grid-template-columns:1fr 1fr; row-gap:15px; } .sky-times div:nth-child(2) { grid-column:1; grid-row:1; } .sky-times div:nth-child(3) { grid-column:2; grid-row:1; } .sky-times b { font-size:17px; } #home-page .workspace-card { padding:22px; } #home-page .home-footer { flex-direction:row; align-items:center; } }

/* 紧凑总览：减少重复说明，不压缩真正要读的内容。 */
#app { padding-top:26px; padding-bottom:26px; }
#home-page .workspace-head { padding:0 0 16px; margin-bottom:16px; }
#home-page .workspace-head h1 { font-size:32px; }
#home-page .home-english,#home-page .card-index,#home-page .home-card-meta,
#home-page .sky-kicker,#home-page .sky-source>span,#home-page .sun-horizon-label,
#home-page .home-footer .panda-note { display:none; }
#home-page .sky-panel { padding:2px 2px 14px; margin-bottom:14px; grid-template-columns:.7fr 1.7fr; }
#home-page .sky-weather { position:relative; padding-right:20px; }
#home-page .sky-heading { position:absolute; top:0; right:20px; }
#home-page .sky-weather h2 { margin:0 0 5px; }
#home-page .sky-location-controls { margin:4px 0; }
#home-page .sky-location-controls button { padding:5px 8px; }
#home-page .weather-reading strong { font-size:32px; }
#home-page .sky-weather p { margin-bottom:2px; }
#home-page #sky-weather-status:empty { display:none; }
#home-page .sky-light { padding-left:16px; }
#home-page .sky-light h2 { margin:0; font-size:15px; }
#home-page .sky-now { padding:3px 8px; }
#home-page .sun-orbit { height:62px; margin-bottom:10px; }
#home-page .sky-times b { margin-top:3px; font-size:15px; }
#home-page .moon-times { grid-template-columns:.8fr .8fr 1.2fr .8fr; }
#home-page .sky-times.moon-times { margin-top:8px; padding-top:8px; border-top:1px solid #e7ebf0; }
#home-page .sky-source { margin-top:6px; justify-content:flex-end; }
#home-page .sky-glow-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:12px; }
#home-page .sky-glow-links a { color:#8b4b35; font-size:14px; text-decoration:none; padding:5px 0; }
#home-page .sky-glow-links a:hover { text-decoration:underline; }
#home-page .sky-glow-links a:focus-visible { outline:2px solid #2d62d6; outline-offset:4px; border-radius:4px; }
#home-page .sky-glow-links a { display:grid; gap:4px; flex:0 1 calc(50% - 8px); min-width:180px; }
#home-page .sky-glow-links a span { color:#344058; font-size:14px; }
#home-page #sky-glow-city { color:#66738b; font-size:12px; flex-basis:100%; order:3; }
#home-page .sky-glow-links button { padding:7px 10px; font-size:14px; border:1px solid #dae2ee; border-radius:9px; background:#ffffff80; color:#344058; }
#home-page .workspace-grid { gap:16px; }
#home-page .workspace-card { display:grid; grid-template-columns:32px minmax(0,1fr); gap:8px 12px; min-height:200px; padding:18px 20px; border-radius:18px; }
#home-page .workspace-card>* { grid-column:1/-1; }
#home-page .workspace-card .workspace-icon { grid-column:1; grid-row:1; width:32px; height:32px; border-radius:10px; margin:0; }
#home-page .workspace-icon svg { width:21px; height:21px; }
#home-page .workspace-card h2 { grid-column:2; grid-row:1; align-self:center; font-size:18px; margin:0; }
#home-page .home-preview-list { margin-top:7px; gap:9px; }
#home-page .home-preview-row b { line-height:1.45; }
#home-page .home-preview-row small { margin-top:3px; }
#home-page .home-empty { padding:2px 0; line-height:1.6; }
#home-page .home-break-copy { font-size:19px; padding-top:2px; }
#home-page .card-arrow,#home-page .home-text-button { align-self:end; padding-top:9px; margin-top:7px; }
#home-page .home-money-numbers { margin:6px 0 4px; gap:10px; }
#home-page .home-money-numbers b { font-size:24px; margin-top:4px; }
#home-page .home-category-preview { margin-top:4px; gap:5px; }
#home-page .home-category-preview span { padding:3px 6px; }
#home-page .home-habit-grid { margin-top:8px; gap:9px; }
#home-page .home-habit-grid label { padding:10px; }
#home-page .home-footer { padding:0; height:28px; justify-content:flex-end; }
#home-page .home-footer img { width:54px; height:36px; }
@media(max-width:760px) {
  #home-page .sky-panel { grid-template-columns:1fr; }
  #home-page .sky-weather { padding-right:0; padding-bottom:4px; }
  #home-page .sky-heading { position:static; grid-column:2; grid-row:1; justify-content:flex-end; }
  #home-page .sky-weather h2 { grid-column:1; grid-row:1; }
  #home-page .sky-location-controls { grid-column:1; grid-row:2; }
  #home-page .weather-reading { grid-column:2; grid-row:2; }
  #home-page .sky-light { padding:6px 0 0; }
  #home-page .sky-times { grid-template-columns:1.3fr .7fr .7fr 1.3fr; gap:5px; }
  #home-page .sky-times div:nth-child(2),#home-page .sky-times div:nth-child(3) { grid-column:auto; grid-row:auto; }
  #home-page .sky-times span { font-size:12px; }
  #home-page .sky-times b { font-size:13px; }
  #home-page .workspace-card { padding:18px; }
}

/* 天气总览：轨迹与时间并排，朝晚霞收在一条信息带里。 */
#home-page .sky-panel { grid-template-columns:210px minmax(0,1fr); gap:20px; padding:0 2px 12px; margin-bottom:14px; }
#home-page .sky-weather { padding-right:0; }
#home-page .sky-heading { right:0; }
#home-page .sky-light { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,340px); grid-template-areas:"head solar" "legend solar" "orbit lunar" "glow glow" "source source"; column-gap:22px; row-gap:2px; padding:0; }
#home-page .sky-light-heading { grid-area:head; }
#home-page .orbit-legend { grid-area:legend; align-self:end; margin:0; }
#home-page .sun-orbit { grid-area:orbit; height:64px; margin:0; }
#home-page .sky-times:not(.moon-times) { grid-area:solar; }
#home-page .sky-times.moon-times { grid-area:lunar; margin:0; padding-top:6px; border-top:1px solid #e7ebf0; }
#home-page .sky-times { grid-template-columns:1fr 1fr; gap:4px 8px; align-content:center; }
#home-page .sky-times div:nth-child(2),#home-page .sky-times div:nth-child(3) { grid-column:auto; grid-row:auto; }
#home-page .sky-times span { font-size:12px; }
#home-page .sky-times b { font-size:14px; margin-top:1px; }
#home-page .sky-glow-links { grid-area:glow; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:2px 16px; align-items:center; padding-top:8px; margin-top:3px; border-top:1px solid #e7ebf0; }
#home-page .sky-glow-links a { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; min-width:0; padding:0; font-size:13px; }
#home-page .sky-glow-links a span { font-size:13px; }
#home-page .sky-glow-links button { grid-column:3; grid-row:1; white-space:nowrap; padding:5px 9px; font-size:12px; }
#home-page #sky-glow-city { grid-column:1/-1; order:initial; font-size:12px; }
#home-page .sky-source { grid-area:source; margin:0; }
.lesson-clock { margin:-3px 0 18px; padding:14px 16px 12px; border:1px solid #dbe6f5; border-radius:14px; background:linear-gradient(110deg,#f3f7ff,#f8fafc); }
.lesson-clock-head,.lesson-clock-ends { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.lesson-clock-head strong { color:#1d3d70; font-size:17px; font-weight:750; }
.lesson-clock-head span { color:#64748b; font-size:13px; white-space:nowrap; }
.lesson-progress { height:9px; margin:12px 0 7px; overflow:hidden; border-radius:99px; background:#dfe7f2; }
.lesson-progress span { display:block; width:0; height:100%; border-radius:inherit; background:#4477bb; transition:width .6s ease; }
.lesson-clock-ends { color:#718198; font-size:12px; font-variant-numeric:tabular-nums; }
.lesson-clock[data-status="finished"] .lesson-progress span { background:#8a9bae; }
.lesson-clock[data-status="finished"] .lesson-clock-head strong { color:#596c82; }
@media(max-width:1000px) {
  #home-page .sky-panel { grid-template-columns:1fr; gap:8px; }
  #home-page .sky-weather { display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:0; }
  #home-page .sky-heading { position:static; grid-column:2; grid-row:1; }
  #home-page .sky-weather h2 { grid-column:1; grid-row:1; }
  #home-page .sky-location-controls { grid-column:1; grid-row:2; }
  #home-page .weather-reading { grid-column:2; grid-row:2; }
  #home-page .sky-weather p,#home-page .sky-weather small { grid-column:1/-1; }
  #home-page .sky-light { grid-template-columns:minmax(0,1fr) minmax(270px,320px); }
}
@media(max-width:760px) {
  #home-page .sky-light { grid-template-columns:1fr; grid-template-areas:"head" "legend" "orbit" "solar" "lunar" "glow" "source"; row-gap:6px; }
  #home-page .sun-orbit { height:66px; }
  #home-page .sky-times { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  #home-page .sky-times.moon-times { grid-template-columns:repeat(4,minmax(0,1fr)); }
  #home-page .sky-glow-links { grid-template-columns:1fr 1fr; gap:8px 10px; }
  #home-page .sky-glow-links button { grid-column:2; grid-row:2; justify-self:end; }
  #home-page #sky-glow-city { grid-column:1; grid-row:2; align-self:center; }
}
@media(max-width:520px) {
  #home-page .sky-times,#home-page .sky-times.moon-times { grid-template-columns:1fr 1fr; gap:7px 12px; }
  #home-page .sky-glow-links { grid-template-columns:1fr; }
  #home-page .sky-glow-links button { grid-column:1; grid-row:auto; justify-self:start; }
  #home-page #sky-glow-city { grid-column:1; grid-row:auto; }
  .lesson-clock-head { align-items:flex-start; flex-direction:column; gap:3px; }
}
@media(prefers-reduced-motion:reduce) { .lesson-progress span { transition:none; } }

/* 待办的两轴分类，以及主页上真正需要先处理的事。 */
#planner-page .planner-layout > .panel { min-width:0; }
#planner-page .quick-add { grid-template-columns:repeat(3,minmax(0,1fr)); }
#planner-page .quick-add > * { min-width:0; }
#planner-page .quick-add #task-title { grid-column:1/-1; }
#planner-page .quick-add .add-task { grid-column:span 2; }
#planner-page .quick-add .add-task { min-height:43px; }
.todo-item.urgent { background:linear-gradient(90deg,#fff5f1,#fff 45%); border-radius:10px; padding-left:10px; }
.todo-classifiers { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.todo-classifier { max-width:100%; border:1px solid #dce4ee; border-radius:999px; padding:5px 8px; background:#f8fafc; color:#516177; font:inherit; font-size:12px; cursor:pointer; }
.todo-classifier.urgency:has(option[value="urgent"]:checked) { background:#fff0e9; border-color:#ffc8aa; color:#b54922; font-weight:700; }
.home-urgent[hidden] { display:none; }
.home-urgent { display:grid; grid-template-columns:minmax(180px,.35fr) minmax(0,1fr); gap:14px 22px; align-items:center; margin:0 0 16px; padding:16px 20px; border:1px solid #f2c7ad; border-radius:17px; background:linear-gradient(100deg,#fff7f1 0%,#fffaf7 58%,#fff 100%); }
.home-urgent-head { display:flex; align-items:center; justify-content:space-between; gap:12px; grid-column:1/-1; }
.home-urgent-kicker { color:#b65832; font-size:11px; font-weight:800; letter-spacing:.08em; }
.home-urgent h2 { margin:3px 0 0; font-size:17px; letter-spacing:-.02em; color:#6c3825; }
.home-urgent-head button { flex:0 0 auto; border:0; background:none; color:#a54d2c; font-weight:750; font-size:12px; cursor:pointer; }
.home-urgent-list { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.home-urgent-item { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 10px; min-width:0; max-width:100%; padding:8px 12px; border:1px solid #f6ded0; border-radius:10px; background:#fff; }
.home-urgent-item b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:280px; color:#6c3825; font-size:13px; }
.home-urgent-item span,.home-urgent-more { color:#a1644b; font-size:11px; white-space:nowrap; }
/* 时间写在轨迹线上：暖色是太阳，蓝色是月亮；即使同一时刻也不会叠字。 */
#home-page .sun-crossing,#home-page .moon-crossing { position:absolute; z-index:2; left:50%; width:max-content; max-width:56px; transform:translateX(-50%); font-size:10px; line-height:1.1; font-variant-numeric:tabular-nums; white-space:nowrap; pointer-events:none; }
#home-page .sun-crossing { top:66%; padding:2px 3px 0; color:#9a6d2c; background:#fff9efda; border-radius:4px; }
#home-page .sun-crossing::before { top:-4px; width:4px; height:4px; }
#home-page .moon-crossing { top:62%; transform:translate(-50%,-100%); padding:1px 3px; color:#506990; background:#f5f8ffdf; border-radius:4px; }
#home-page .moon-crossing::after { content:''; position:absolute; left:50%; bottom:-5px; width:4px; height:4px; transform:translateX(-50%); border-radius:50%; background:#8095b9; }
#home-page .moon-crossing[hidden] { display:none; }
#home-page .sky-times:not(.moon-times)>div:nth-child(2),#home-page .sky-times:not(.moon-times)>div:nth-child(3),#home-page .sky-times.moon-times>div:nth-child(1),#home-page .sky-times.moon-times>div:nth-child(2) { display:none; }
#home-page .sky-times,#home-page .sky-times.moon-times { grid-template-columns:1fr 1fr; }
@media(max-width:1000px) { #planner-page .quick-add { grid-template-columns:repeat(2,minmax(0,1fr)); } #planner-page .quick-add .add-task { grid-column:1/-1; } }
@media(max-width:540px) { #planner-page .quick-add { grid-template-columns:minmax(0,1fr); } .home-urgent { padding:13px 14px; } .home-urgent-item { width:100%; } .home-urgent-item b { max-width:min(230px,65vw); } }
.backup-open { margin-left:auto; border:1px solid #dce3ed; border-radius:999px; padding:7px 11px; background:#fff; color:#58677d; font:inherit; font-size:12px; cursor:pointer; }
.backup-open:hover { background:#f3f7fb; color:#244677; }
.backup-copy { color:#40516a; font-size:14px; line-height:1.7; }
.backup-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:18px 0 12px; }
.backup-actions button:disabled { opacity:.55; cursor:wait; }
.backup-import-label { display:inline-flex; align-items:center; cursor:pointer; font-size:14px; }
.backup-status { min-height:24px; color:#16734d; font-size:13px; line-height:1.5; }
.backup-status.error { color:#b42318; }
.backup-warning { margin:12px 0 0; color:#77849a; font-size:12px; line-height:1.6; }
.completion-open { display:inline-flex; margin-top:9px; padding:5px 9px; border:1px solid #ccddec; border-radius:999px; background:#f5f9ff; color:#315b85; font-size:12px; font-weight:700; cursor:pointer; }
.completion-summary .workspace-sub { margin:4px 0 0; }
.completion-head-actions { display:flex; align-items:center; gap:9px; }
.completion-head-actions select { width:auto; min-width:150px; padding:7px 9px; font-size:12px; }
.completion-stats { display:flex; flex-wrap:wrap; gap:7px; margin:2px 0 14px; }
.completion-stats span { border-radius:999px; padding:6px 10px; background:#f3f7fb; color:#4c627b; font-size:12px; }
.completion-list { display:grid; gap:7px; max-height:460px; overflow:auto; }
.completion-row { display:grid; grid-template-columns:115px minmax(0,1fr) minmax(100px,.6fr); align-items:center; gap:12px; width:100%; padding:12px 13px; border:1px solid #e5edf5; border-radius:11px; background:#fff; text-align:left; color:#243b57; cursor:pointer; }
.completion-row:hover { border-color:#a9c2dc; background:#f8fbff; }
.completion-row small { color:#70819a; font-size:12px; }
.completion-row b { overflow-wrap:anywhere; }
.completion-row span { color:#6e7e91; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.completion-empty,.completion-file-empty { color:#8997a9; font-size:13px; }
.completion-attachments { display:grid; gap:7px; margin-top:18px; }
.completion-attachments>strong { color:#3a4c65; font-size:13px; }
.completion-file { display:block; padding:9px 11px; border:1px solid #d9e5f1; border-radius:9px; color:#235a95; text-decoration:none; overflow-wrap:anywhere; }
.completion-file:hover { background:#f5f9ff; }
@media(max-width:620px) { .completion-summary .planner-title { align-items:flex-start; flex-direction:column; } .completion-row { grid-template-columns:1fr; gap:4px; } .completion-row span { white-space:normal; } }
.home-weekly-goal { min-width:0; border:1px solid #e8eaf1; border-radius:10px; padding:9px 10px; background:#fff; }
.home-weekly-goal:last-child { grid-column:1/-1; }
.home-weekly-goal.complete { border-color:#cce7d6; background:#f5fbf7; }
.home-weekly-goal-line { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; }
.home-weekly-goal-line strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-weight:700; }
.home-weekly-goal-line span { color:#607186; font-weight:750; white-space:nowrap; }
.home-weekly-goal-track { height:5px; margin-top:8px; border-radius:99px; background:#e7edf4; overflow:hidden; }
.home-weekly-goal-track i { display:block; height:100%; border-radius:inherit; background:#6a9c7b; }

/* 工作台四个入口：统一信息结构，用不同色彩辨认主题。 */
#home-page .workspace-grid { gap:18px; align-items:stretch; }
#home-page .workspace-card { --card-accent:#426cb2; --card-tint:#eef5ff; --card-icon:#e5efff; --card-line:#d8e4f4; position:relative; display:flex; flex-direction:column; align-items:stretch; min-width:0; min-height:292px; padding:23px 25px 20px; overflow:hidden; border:1px solid var(--card-line); border-radius:21px; background:linear-gradient(145deg,#fff 45%,var(--card-tint)); box-shadow:0 10px 28px #1b345b0a; text-align:left; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
#home-page .workspace-card::before { content:''; position:absolute; inset:0 0 auto; height:4px; background:var(--card-accent); }
#home-page #open-planner { --card-accent:#a86338; --card-tint:#fff6ed; --card-icon:#fff0de; --card-line:#f0dfcb; }
#home-page #open-money { --card-accent:#2a806d; --card-tint:#ecf8f3; --card-icon:#ddf1e8; --card-line:#cfe8dd; }
#home-page #home-open-growth { --card-accent:#705caf; --card-tint:#f4f1ff; --card-icon:#eae4fa; --card-line:#e3ddf4; }
#home-page .workspace-card:not(:disabled):hover { transform:translateY(-3px); border-color:var(--card-accent); box-shadow:0 18px 36px #1b345b16; }
#home-page .workspace-card:focus-visible { outline:3px solid var(--card-accent); outline-offset:3px; }
#home-page .home-card-top { display:flex; align-items:center; justify-content:space-between; width:100%; gap:12px; }
#home-page .workspace-card .workspace-icon { display:grid; place-items:center; width:45px; height:45px; margin:0; border-radius:13px; background:var(--card-icon); color:var(--card-accent); }
#home-page .workspace-card .workspace-icon svg { width:24px; height:24px; }
#home-page .card-index { display:inline-flex; align-items:center; position:static; color:var(--card-accent); font-size:11px; font-weight:800; letter-spacing:.15em; }
#home-page .workspace-card h2 { display:flex; align-items:center; align-self:stretch; gap:8px; flex-wrap:wrap; margin:15px 0 0; color:#1e2f4a; font-size:23px; font-weight:800; letter-spacing:-.03em; line-height:1.2; text-align:left; }
#home-page #open-study .workspace-icon,#home-page #open-planner .workspace-icon,#home-page #open-money .workspace-icon,#home-page #home-open-growth .workspace-icon { background:var(--card-icon); color:var(--card-accent); }
#home-page .home-card-meta { display:block; margin:7px 0 0; color:#66758a; font-size:13px; line-height:1.5; }
#home-page .home-count { margin:0; padding:5px 9px; border-radius:8px; background:var(--card-icon); color:var(--card-accent); font-size:13px; font-weight:800; letter-spacing:0; }
#home-page .home-preview-list { margin-top:16px; gap:10px; }
#home-page .home-preview-row { padding:0 0 8px; border-bottom:1px solid #dce5ef9c; }
#home-page .home-preview-row:last-child { padding-bottom:0; border-bottom:0; }
#home-page .home-preview-row b { color:#283a55; font-size:15px; font-weight:700; }
#home-page .home-preview-row small,#home-page .home-time { color:#65758a; font-size:13px; }
#home-page .home-empty { color:#64748b; font-size:14px; }
#home-page .card-arrow { display:block; width:100%; margin-top:auto; padding:15px 0 0; border-top:1px solid var(--card-line); color:var(--card-accent); font-size:14px; font-weight:800; }
#home-page .home-money-numbers { margin:16px 0 10px; gap:10px; }
#home-page .home-money-numbers > div { min-width:0; padding:12px; border:1px solid var(--card-line); border-radius:12px; background:#ffffffb8; }
#home-page .home-money-numbers span { color:#62738a; font-size:13px; }
#home-page .home-money-numbers b { overflow-wrap:anywhere; color:#1b5a4d; font-size:24px; font-weight:800; }
#home-page .home-category-preview { margin:2px 0 14px; color:#547466; font-size:12px; }
#home-page .home-category-preview span { background:#ffffffb8; border:1px solid var(--card-line); border-radius:7px; padding:5px 8px; }
#home-page .home-habit-grid { margin:15px 0 17px; gap:8px; }
#home-page .home-weekly-goal { background:#ffffffb8; border-color:var(--card-line); }
#home-page .home-weekly-goal-line { color:#293b55; font-size:13px; }
#home-page .home-weekly-goal-track i { background:var(--card-accent); }
@media(max-width:620px) { #home-page .workspace-card { min-height:0; padding:21px; } #home-page .workspace-card h2 { font-size:21px; } #home-page .home-money-numbers b { font-size:21px; } }
@media(prefers-reduced-motion:reduce) { #home-page .workspace-card { transition:none; } }

/* 更安静的卡片版式：主题由图标与内容带出，不再靠顶部色条。 */
#home-page .workspace-card { min-height:270px; padding:24px 25px 21px; border-color:#e1e7ef; background:linear-gradient(140deg,#fff 70%,var(--card-tint)); box-shadow:0 8px 28px #1b345b0b; }
#home-page .workspace-card::before { content:none; }
#home-page .workspace-card:not(:disabled):hover { border-color:var(--card-line); box-shadow:0 16px 34px #1b345b16; }
#home-page .home-card-top { min-height:48px; justify-content:flex-start; gap:14px; }
#home-page .workspace-card .workspace-icon { flex:0 0 48px; width:48px; height:48px; border-radius:15px; }
#home-page .home-card-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; color:#1e2f4a; font-size:23px; font-weight:800; letter-spacing:-.03em; line-height:1.25; }
#home-page .home-card-meta { margin:9px 0 0 62px; }
#home-page .home-preview-list { margin-top:18px; }
#home-page .home-money-numbers,#home-page .home-habit-grid { margin-top:22px; }
#home-page .card-arrow { border-top-color:#e8edf3; }
@media(max-width:620px) { #home-page .workspace-card { min-height:0; padding:21px; } #home-page .home-card-title { font-size:21px; } #home-page .home-card-meta { margin-left:62px; } }

/* 轨迹上的两个天体采用相同占位，压低月相 emoji 的光学尺寸。 */
#home-page .sun-orbit-dot,#home-page .moon-orbit-dot { width:24px; height:24px; line-height:1; }
#home-page .sun-orbit-dot { font-size:20px; }
#home-page .moon-orbit-dot { font-size:17px; }

.day.makeup { border-color:#b9d8ef; background:#f7fbff; }
.makeup-note { margin-top:12px; padding:8px 10px; border-radius:8px; background:#e7f2ff; color:#315b86; font-size:13px; font-weight:750; }
.todo-actions { display:flex; align-items:center; gap:6px; }
.todo-edit { border:1px solid #dbe5f1; border-radius:8px; background:#f8fafc; color:#315b86; padding:6px 10px; font:inherit; font-size:13px; font-weight:750; cursor:pointer; }
.todo-edit:hover,.todo-edit:focus-visible { border-color:#a9c5e5; background:#eff6ff; }
