/* 共用透明风景：固定在页面底层，所有页面使用同一个奶油底色。 */
:root{--paper:#faf5ef}
body{position:relative;isolation:isolate;background:var(--paper)}
.global-scenery{position:absolute;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:min(100vw,480px);background:url('img/global-landscape-simple.webp') top center/100% auto no-repeat;pointer-events:none;z-index:-1;opacity:.65;mask-image:linear-gradient(#000 0%,#000 75%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0%,#000 75%,transparent 100%)}
.view,#v-home{background:transparent}.topbar{background:#faf5efba;backdrop-filter:blur(10px);border-bottom-color:#eddfd677}.home-landscape{mix-blend-mode:normal}.home-intro{background:none}.topbar-subtitle{display:none}
/* 今日任务：大号天数 → 朱红主题卡 → 任务入口 → 打卡。 */
body.today-mode .topbar{height:69px;align-items:flex-start;padding:17px 25px 0;background:transparent;backdrop-filter:none;border-bottom:0;position:relative}
body.today-mode .topbar-subtitle{display:block;position:absolute;left:25px;top:42px;font-size:12px;color:#a59084;letter-spacing:1px}
body.today-mode .topbar-title{line-height:20px}body.today-mode .topbar-brand{font-size:14px}
#v-today{padding:0 21px 105px}
.today-hero{position:relative;height:215px;padding-top:30px;text-align:center}
#t-day{--day-height:61px;display:flex;justify-content:center;align-items:center;gap:14px;height:68px;margin:0;line-height:1}.today-hero .day-glyph:nth-child(n+3){margin-left:-9px}
.today-hero .day-orn{display:flex;align-items:center;justify-content:center;gap:9px;margin:17px 0 12px;font-size:17px;color:#c58b65;line-height:20px}.day-orn span{display:block;height:1px;width:44px;background:linear-gradient(90deg,transparent,#d9a17f)}.day-orn span:last-child{transform:rotate(180deg)}
.today-hero .stage-sub{font-size:18px;font-weight:650;line-height:1.55;color:#6e5c50;letter-spacing:1px;max-width:100%;margin:auto}
.today-side-note{position:absolute;left:4px;bottom:26px;color:#a38d80;font-size:10px;line-height:1.65;letter-spacing:1px;text-align:left}.today-side-note span{display:block;margin-top:9px;width:17px;height:1px;background:#c9916d}
#t-back{margin:0 0 12px;font-size:11px;line-height:1.6}
#v-today .today-card{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#b6533f,#ad4c3b);border:1px solid #ba635088;border-radius:13px;box-shadow:0 5px 12px #a9583520;padding:26px 22px 18px;margin:0;min-height:216px;color:#fffaf4}
.today-card::before{content:'';position:absolute;z-index:-1;right:-38px;top:-35px;width:170px;height:170px;border-radius:50%;background:#f5bc9220}.today-card::after{content:'';position:absolute;z-index:-1;width:230px;height:190px;border-radius:50%;right:-43px;bottom:-131px;background:#f5bc921b}
#v-today .card-chip{display:inline-block;margin:0;padding:6px 16px;background:#fff8ee;border:0;color:#b35a3c;letter-spacing:1px;font-size:14px;font-weight:600;line-height:18px}
.today-card-en{position:absolute;right:21px;top:23px;color:#e6b4a1;font-size:8px;letter-spacing:1px;line-height:1.5;text-align:right}.today-card-en i{display:block;width:16px;height:1px;background:#dfab94;margin:9px 0 0 auto}
#v-today .card-title{position:relative;text-align:left;font-family:"Songti SC","STSong",serif;color:#fffaf4;font-size:31px;line-height:1.35;font-weight:700;letter-spacing:1px;margin:20px 0 10px}
#v-today .card-action{position:relative;text-align:left;font-size:13px;line-height:1.8;letter-spacing:.5px;color:#fff3e9;margin:0}
.today-card-art{position:absolute;right:5px;bottom:13px;width:97px;height:115px;transform:rotate(10deg);color:#efbd9f;opacity:.24;z-index:-1}
.today-card-note{font-size:11px;letter-spacing:1px;color:#dfab97;margin-top:26px;line-height:1.7}.today-card-note span{display:block;height:1px;width:16px;background:#e5ad95;margin-bottom:8px}
.today-actions{margin-top:16px;display:grid;gap:12px}#t-task:empty{display:none}.today-actions .mini-task{margin-top:0;background:#fffaf4c9;border:1px solid #eddfd6;border-radius:13px;padding:18px}
.today-entry{display:flex;align-items:center;gap:19px;width:100%;min-height:100px;padding:16px 21px;border:1px solid #eddfd67a;border-radius:14px;background:#fffdf9c9;box-shadow:0 4px 12px #a3715206;font-family:inherit;text-align:left;color:var(--ink);position:relative}
.today-entry-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#f8e9dcbb;color:#b34f3e;flex-shrink:0}.today-entry-icon svg{width:29px;height:32px}.today-entry-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.today-entry-label{font-size:13px;letter-spacing:1px;color:#8b7567}.today-entry-copy strong{font-size:18px;letter-spacing:1px;font-weight:650;line-height:1.5}.today-entry-hint{font-size:12px;color:#a08c80;line-height:1.6;letter-spacing:.6px}.today-entry-arrow{font-size:28px;color:#9b8477;line-height:1;flex-shrink:0}
#v-today .done-btn{display:block;width:calc(100% - 6px);margin:16px 3px 0;min-height:61px;padding:15px;border-radius:19px;border:0;background:linear-gradient(110deg,#b34e3a,#b3513d);box-shadow:0 5px 12px #a75f3420;color:#fff7ed;font-family:inherit;font-size:21px;font-weight:600;letter-spacing:3px}
.today-encouragement{display:flex;align-items:center;justify-content:center;gap:17px;font-size:11px;letter-spacing:1px;color:#b19b8e;margin:19px 0 0;white-space:nowrap}.today-encouragement span{height:1px;width:45px;background:linear-gradient(90deg,transparent,#dfae93);flex-shrink:1}.today-encouragement span:last-child{transform:rotate(180deg)}
.daily-note-fold{margin-top:22px;color:#a89183}.daily-note-fold summary{font-size:11px;cursor:pointer;text-align:center;list-style:none}.daily-note-fold summary::-webkit-details-marker{display:none}.daily-note-fold summary::before{content:'＋ ';color:#bd8262}.daily-note-fold[open] summary::before{content:'− '}.daily-note-fold summary span{font-size:10px;margin-left:7px;color:#b8a395}.daily-note-fold .daily-note{margin:12px 0 0;background:#fffaf5d9}.done-info{line-height:1.8}
body.today-mode .tabbar{border-radius:24px 24px 0 0;border-top-color:#eddfd677;padding-top:12px;background:#fffaf5e6;min-height:72px}
@media(max-width:420px){body.today-mode .topbar{height:57px;padding:14px 21px 0}body.today-mode .topbar-subtitle{left:21px;top:35px;font-size:10px}body.today-mode .topbar-brand{font-size:12px}#v-today{padding:0 18px 102px}.today-hero{height:175px;padding-top:25px}#t-day{--day-height:49px;height:55px;gap:12px}.today-hero .day-glyph:nth-child(n+3){margin-left:-8px}.today-hero .day-orn{font-size:15px;margin:12px 0 9px;gap:8px}.day-orn span{width:36px}.today-hero .stage-sub{font-size:15px;letter-spacing:.5px}.today-side-note{font-size:8px;bottom:21px;left:3px}.today-side-note span{margin-top:7px;width:14px}#v-today .today-card{min-height:175px;padding:21px 18px 15px;border-radius:11px}#v-today .card-chip{font-size:12px;padding:4px 13px;line-height:17px}.today-card-en{font-size:6px;top:20px;right:18px}#v-today .card-title{font-size:26px;margin:17px 0 10px;letter-spacing:.5px}#v-today .card-action{font-size:10.5px;letter-spacing:.3px}.today-card-note{font-size:9px;margin-top:21px}.today-card-note span{margin-bottom:6px}.today-card-art{width:81px;height:98px;right:1px;bottom:10px}.today-actions{margin-top:13px;gap:10px}.today-entry{min-height:82px;padding:13px 17px;gap:15px;border-radius:12px}.today-entry-icon{width:52px;height:52px}.today-entry-icon svg{width:24px;height:26px}.today-entry-label{font-size:11px}.today-entry-copy{gap:3px}.today-entry-copy strong{font-size:15px;letter-spacing:.6px}.today-entry-hint{font-size:10px;letter-spacing:.3px}.today-entry-arrow{font-size:25px}#v-today .done-btn{min-height:50px;font-size:18px;margin-top:13px;padding:12px;border-radius:17px}.today-encouragement{font-size:9px;gap:12px;margin-top:17px;letter-spacing:.7px}.today-encouragement span{width:37px}.daily-note-fold{margin-top:20px}}
@media(max-width:360px){.today-hero{height:165px}#t-day{--day-height:43px;height:49px}.today-hero .stage-sub{font-size:13px}.today-side-note{bottom:18px}#v-today .card-title{font-size:22px}#v-today .card-action{font-size:10px}.today-entry{gap:10px;padding:12px}.today-entry-icon{width:44px;height:44px}.today-entry-copy strong{font-size:13px}.today-entry-hint{font-size:9px}.today-encouragement{font-size:8px;gap:7px}.today-encouragement span{width:24px}}
.today-return{position:absolute;left:2px;top:0;border:none;background:none;color:#a77258;font-family:inherit;font-size:10px;padding:2px;line-height:1.5}
/* 长阶段名优先保证阅读空间，避免与装饰小字重叠。 */
.today-hero.long-stage .today-side-note{display:none}.today-hero.long-stage .stage-sub{max-width:95%;font-size:16px}
@media(max-width:420px){.today-hero.long-stage .stage-sub{font-size:13px}}
/* 首页字图留出呼吸空间；共用风景保持低对比，不干扰卡片内容。 */
.home-landscape{width:88%;height:100%;left:14px;right:auto;object-fit:contain;object-position:left center}.global-scenery{opacity:.45}

/* 边界自测生成正式报告后，使用纯色纸张背景，避免风景干扰报告阅读与截图。 */
body.report-mode .global-scenery{display:none}

/* 今日任务沿用工具页导航栏：左返回、中间标题。 */
body.today-mode.tool-mode .topbar{
  height:auto; align-items:baseline; padding:14px 20px; position:sticky;
  background:#faf5efba; backdrop-filter:blur(10px); border-bottom:1px solid #eddfd677;
}
body.today-mode.tool-mode .topbar-subtitle{display:none}
