/* 首页布局按用户 2026-09-05 参考图；尺寸以 480px 页面等比适配。 */
:root{--paper:#faf5ef;--card:#fdfaf6;--ink:#392e29;--gray:#917b72;--red:#b34739;--line:#eddfd6;--gold:#c18455}
body{box-shadow:0 0 24px #7850390b}
button{cursor:pointer}button:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.topbar{padding:14px 20px;min-height:51px;background:#faf5eff5}.topbar-title{font-size:16px;letter-spacing:.4px}.topbar-brand{font-size:13px}
#v-home{padding:0 19px 96px;background:radial-gradient(ellipse at 45% 48%,#fffcf8a0,transparent 68%)}
.home-intro{height:121px;position:relative;margin:0 -19px;padding:24px 21px 0;overflow:hidden}.home-landscape{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;pointer-events:none;mix-blend-mode:multiply}.home-intro p{position:relative;font-family:"Kaiti SC","STKaiti","KaiTi",serif;font-size:20px;line-height:1.5;letter-spacing:2px;color:#826958}.intro-stroke{position:relative;display:block;width:54px;height:8px;margin:6px 0 0 8px;border-top:1.5px solid #dfa88a;border-radius:50%;transform:rotate(-8deg)}
.home-surface{border:1px solid var(--line);border-radius:15px;background:#fffdf9ad;box-shadow:0 3px 14px #a36e4f06}.home-task{position:relative;min-height:207px;padding:19px 24px 21px;overflow:hidden;margin-bottom:11px}.home-task-label{position:relative;font-size:17px;letter-spacing:2px;color:#bf8051;font-weight:700}.home-task-count{position:absolute;right:12px;top:14px;background:#f5ece5bf;border-radius:30px;min-width:70px;padding:5px 14px;font-size:14px;color:#76574a}.home-task-count b{color:var(--red);font-weight:500}.home-task h1{position:relative;font-size:50px;line-height:1.1;letter-spacing:1px;margin:8px 0 7px;font-weight:750}.home-task>p{position:relative;font-size:17px;font-weight:600;letter-spacing:1px;max-width:64%;line-height:1.45;min-height:25px}.home-checklist{position:absolute;right:8px;bottom:9px;width:47%;height:82%;object-fit:contain;pointer-events:none}.home-start{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:17px;padding:10px 8px;width:53%;min-height:40px;border:0;border-radius:999px;background:linear-gradient(110deg,#b84d3d,#b34739);color:#fffaf6;font-family:inherit;font-size:16px;font-weight:650;letter-spacing:1px}.home-start span{font-size:26px;line-height:16px}
.home-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.home-grid button{position:relative;text-align:left;font-family:inherit;color:var(--ink);min-width:0;overflow:hidden}.home-grid h2{font-size:16px;line-height:1.5;font-weight:650;position:relative;white-space:nowrap}.home-grid p{font-size:13px;color:var(--gray);line-height:1.5;position:relative;white-space:nowrap}.home-map{grid-column:span 4;min-height:131px;padding:15px 20px}.home-map h2{font-size:19px;margin-bottom:7px}.home-map h2 span{color:#91512e;margin-right:2px}.home-map p{color:#7c6257;font-size:14px}.home-map p b{font-size:22px;font-weight:500;color:var(--red);margin:0 2px}.home-journey{position:absolute;width:44%;height:100%;right:3px;top:0;object-fit:contain;pointer-events:none}.home-dots{display:flex;gap:9px;position:relative;margin-top:18px}.home-dots i{width:7px;height:7px;border-radius:50%;background:#e9ddd5}.home-dots i.on{background:var(--red)}.home-dots i.current{outline:4px solid #f5e9e1}.home-arrow{position:absolute;right:15px;bottom:17px;color:var(--red);font-size:25px;line-height:1}.home-test{grid-column:span 2;min-height:131px;padding:14px 15px}.home-test h2{margin:5px 0 6px}.home-test .home-arrow{right:13px;bottom:21px}.home-icon{display:flex;align-items:center;justify-content:center;width:48px;height:49px;border-radius:15px;background:linear-gradient(140deg,#f9f0e5,#faf2e8);color:#c18658;flex-shrink:0}.home-icon svg{width:28px;height:28px;filter:drop-shadow(0 1px 1px #ac633523)}
.home-small{grid-column:span 2;padding:13px 16px 18px;min-height:132px}.home-small h2{margin:5px 0}.home-small .home-arrow{right:13px;bottom:20px}.home-small p{font-size:12px}.home-wide{grid-column:span 3;display:flex;align-items:center;gap:12px;min-height:82px;padding:12px 16px}.home-wide h2{font-size:15px;margin-bottom:5px}.home-wide p{font-size:11px}.home-wide .home-arrow{right:12px;bottom:23px}.home-wide .home-icon{width:50px;height:50px}.home-wide:last-child{padding-left:15px}
.tabbar{min-height:65px;background:#fffaf6f5;backdrop-filter:blur(12px);z-index:60;padding:7px 0 calc(8px + env(safe-area-inset-bottom))}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0;font-size:13px;color:#9a8378}.tabbar button>span:first-child{height:28px}.tabbar svg{width:25px;height:25px}.tabbar button.active{color:var(--red)}.tabbar button.active .home-nav-fill{fill:currentColor}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:12px}.calendar-heading h1,#v-vent h1{font-size:25px;letter-spacing:1px}.calendar-heading p{font-size:12px;color:var(--gray);margin-top:7px}.calendar-heading button{border:1px solid var(--line);background:var(--card);color:var(--red);border-radius:20px;font-family:inherit;padding:8px 10px;font-size:12px;white-space:nowrap}.calendar-card{padding:16px 12px}.calendar-month{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-month h2{font-size:18px;letter-spacing:1px}.calendar-month button{width:36px;height:36px;border:none;border-radius:50%;background:#f6eae1;color:var(--red);font-size:26px}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{text-align:center;font-size:12px;color:var(--gray);margin-bottom:10px}.calendar-days button{position:relative;aspect-ratio:1;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);font:15px inherit;min-height:35px;padding-bottom:5px}.calendar-days button.is-today{border-color:#c48968}.calendar-days button.selected{background:var(--red);color:#fff}.calendar-days button.has-entry::after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#bd825c;bottom:5px;left:calc(50% - 2px)}.calendar-days button.selected::after{background:#fff}.calendar-legend{display:flex;gap:5px;align-items:center;color:var(--gray);font-size:11px;margin:16px 3px 0}.calendar-legend i{width:5px;height:5px;border-radius:50%;background:#bd825c}.calendar-legend span{margin-left:auto}.calendar-entry{margin-top:16px;padding:20px}.calendar-entry h2{font-size:18px;margin-bottom:14px}.calendar-entry label{display:block;font-size:14px;font-weight:600;margin-top:20px}.calendar-entry textarea{margin-top:10px;min-height:130px;resize:vertical;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffcf8;font:14px/1.8 inherit;color:var(--ink);font-family:inherit}.calendar-entry #calendar-save-status{font-size:11px;color:var(--gray);margin-top:9px}.calendar-empty{font-size:13px;line-height:1.8;color:var(--gray);padding:12px;background:#f8eee5;border-radius:10px}.calendar-log{width:100%;text-align:left;font-family:inherit;display:block;background:#f8eee5;border:0;border-radius:10px;padding:12px;margin-top:8px;color:var(--ink)}.calendar-log b{font-size:13px;line-height:1.8}.calendar-log small{display:block;color:var(--gray);font-size:12px;line-height:1.8;white-space:pre-wrap}.calendar-log span{display:block;color:var(--red);margin-top:6px;font-size:11px}.daily-note{margin-top:18px}.daily-note textarea{margin-top:8px}
.vent-intro{text-align:center;margin:25px 0 30px}.vent-symbol{display:flex;align-items:center;justify-content:center;margin:0 auto 22px;width:100px;height:100px;border-radius:35px;background:#f3e3d6;color:#c18455}.vent-symbol svg{width:54px;height:54px}.vent-intro p{font-size:15px;line-height:1.9;color:var(--gray);margin-top:14px}.vent-coming{text-align:center;padding:35px 20px}.vent-tag{display:inline-block;color:#a36b44;background:#f6eadd;font-size:11px;padding:5px 12px;border-radius:20px;letter-spacing:1px}.vent-coming h2{font-size:21px;margin:16px 0 12px}.vent-coming p{font-size:14px;color:var(--gray);line-height:1.9}
@media(max-width:420px){.topbar{padding:13px 17px;min-height:45px}.topbar-title{font-size:14px}.topbar-brand{font-size:12px}#v-home{padding:0 16px 90px}.home-intro{height:103px;margin:0 -16px;padding:22px 18px 0}.home-intro p{font-size:17px}.home-task{min-height:175px;padding:17px 20px}.home-task-label{font-size:15px}.home-task h1{font-size:43px;margin:6px 0}.home-task>p{font-size:14px;letter-spacing:.6px}.home-start{font-size:14px;min-height:35px;padding:7px 5px;margin-top:13px;width:54%}.home-task-count{font-size:12px;min-width:58px;padding:4px 11px;top:12px}.home-grid{gap:9px}.home-map,.home-test{min-height:111px}.home-map{padding:13px 16px}.home-map h2{font-size:17px;margin-bottom:5px}.home-map p{font-size:12px}.home-map p b{font-size:19px}.home-dots{gap:8px;margin-top:13px}.home-dots i{width:6px;height:6px}.home-icon{width:40px;height:41px;border-radius:12px}.home-icon svg{width:24px;height:24px}.home-test{padding:12px}.home-grid h2{font-size:14px}.home-test h2{margin:4px 0 5px}.home-grid p{font-size:11px}.home-small{min-height:113px;padding:12px 13px 16px}.home-small h2{font-size:13px;margin:6px 0 5px}.home-small p{font-size:10.5px}.home-arrow{right:11px;font-size:22px}.home-small .home-arrow{right:11px;bottom:18px}.home-wide{min-height:72px;padding:11px 13px;gap:10px}.home-wide .home-icon{width:42px;height:43px}.home-wide h2{font-size:13px;margin-bottom:4px}.home-wide p{font-size:9.5px}.home-wide .home-arrow{right:11px;bottom:21px}.home-wide:last-child{padding-left:13px}}
@media(max-width:360px){#v-home{padding-left:12px;padding-right:12px}.home-intro{margin-left:-12px;margin-right:-12px}.home-task{padding-left:17px}.home-task>p{font-size:12px}.home-task h1{font-size:39px}.home-grid{gap:7px}.home-small{padding-left:10px;padding-right:10px}.home-small h2{font-size:11.5px}.home-small p{font-size:9px}.home-wide{padding-left:10px;gap:7px}.home-wide:last-child{padding-left:10px}.home-wide .home-icon{width:32px;height:36px}.home-wide h2{font-size:11.5px}.home-wide p{font-size:8px}.home-wide .home-arrow{right:7px}.home-map{padding-left:13px}.home-test{padding-left:10px}.home-grid h2{letter-spacing:0}.home-test h2{font-size:13px}}
/* 品牌字、横幅文案、DAY 和数字均来自生成图片，保留无障碍文字。 */
.brand-art{display:inline-block;width:160px;height:25px;background:url('img/home-brand.png') no-repeat;background-size:103.9234% 223.4568%;background-position:50% 43%;vertical-align:middle;flex-shrink:0}
.home-intro{padding:0}.home-landscape{object-fit:cover;mix-blend-mode:multiply}
#home-day{--day-height:35px;display:flex;align-items:center;gap:9px;height:51px;margin:8px 0 7px;max-width:68%}.day-glyph{display:block;flex-shrink:0;height:var(--day-height);background-image:url('img/home-day-lettering.webp');background-repeat:no-repeat}.day-glyph:nth-child(n+3){margin-left:-7px}
.home-checklist{opacity:.72}.home-journey{opacity:.76}
@media(max-width:420px){.brand-art{width:141px;height:22px}#home-day{--day-height:31px;height:44px;margin:6px 0;gap:8px}.day-glyph:nth-child(n+3){margin-left:-6px}.home-intro{padding:0}}
@media(max-width:360px){.brand-art{width:137px;height:21px}#home-day{--day-height:27px;height:40px;gap:7px}}
/* 最终截图对照：页眉、任务卡和字形高度。 */
.topbar{align-items:center;padding-top:12px;padding-bottom:12px;height:51px}.home-task{padding-bottom:15px}#home-day{--day-height:45px}.home-checklist{opacity:.54}
@media(max-width:420px){.topbar{height:44px;min-height:44px;padding-top:10px;padding-bottom:10px}.home-task{padding-bottom:12px}.home-task>p{min-height:20px}#home-day{--day-height:39px}}
@media(max-width:360px){#home-day{--day-height:33px}}

/* 用户最终补充：左上角恢复原品牌文字与字体，不使用生成字图。 */
.topbar-title{font-size:13px;font-weight:800;letter-spacing:1px;color:#B0493E;font-family:inherit}

/* imagegen 生成的九枚极简图标，共用一张透明图集。 */
.minimal-icon{
  display:block;background-image:url('img/home-icons-minimal-v3.webp');
  background-repeat:no-repeat;background-size:300% 300%;
}
.icon-test{background-position:0 0}.icon-ladder{background-position:50% 0}.icon-scripts{background-position:100% 0}
.icon-rules{background-position:0 50%}.icon-plan{background-position:50% 50%}.icon-budget{background-position:100% 50%}
.icon-home{background-position:0 100%}.icon-calendar{background-position:50% 100%}.icon-vent{background-position:100% 100%}
.home-icon.home-minimal-icon{
  width:48px;height:48px;border-radius:0;background-color:transparent;overflow:visible;
  filter:drop-shadow(0 1px 1px rgba(113,68,48,.06));
}
.home-test .home-minimal-icon{width:50px;height:50px;margin:-1px 0}
.home-small .home-minimal-icon{width:46px;height:46px}
.home-wide .home-icon.home-minimal-icon{width:48px;height:48px;margin-left:-1px}
.nav-minimal-icon{width:28px;height:28px;margin:0 auto;opacity:.5;filter:grayscale(.2)}
.tabbar button.active .nav-minimal-icon{opacity:1;filter:none}
@media(max-width:420px){
  .home-test .home-minimal-icon{width:44px;height:44px}
  .home-small .home-minimal-icon{width:41px;height:41px}
  .home-wide .home-icon.home-minimal-icon{width:43px;height:43px}
  .nav-minimal-icon{width:26px;height:26px}
}
@media(max-width:360px){
  .home-test .home-minimal-icon{width:40px;height:40px}
  .home-small .home-minimal-icon{width:37px;height:37px}
  .home-wide .home-icon.home-minimal-icon{width:37px;height:37px}
  .nav-minimal-icon{width:24px;height:24px}
}

/* ---------- 完整版引导（.upsell-）：轻量文字入口，不抢主视觉 ---------- */
.upsell-line{margin:14px 2px 2px;padding:0 4px}
.upsell-t{font-size:12px;font-weight:650;letter-spacing:.5px;color:var(--gray)}
.upsell-d{font-size:11.5px;line-height:1.7;color:var(--gray);opacity:.85;margin-top:4px}
.upsell-link{
  background:none;border:none;padding:4px 0 0;font-family:inherit;cursor:pointer;
  font-size:12px;color:var(--red);letter-spacing:.5px;
}
.upsell-block{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);text-align:center}
.upsell-block .upsell-t{font-size:13px;color:var(--ink)}
.upsell-block .upsell-d{margin:6px auto 0;max-width:310px}
.upsell-btn{
  margin-top:12px;min-height:40px;padding:8px 24px;border:1.5px solid var(--red);border-radius:999px;
  background:none;color:var(--red);font-size:13px;font-weight:650;letter-spacing:1px;
  font-family:inherit;cursor:pointer;
}
.upsell-cat{
  display:inline-block;margin-top:8px;padding:3px 12px;border-radius:999px;
  border:1px solid var(--line-dark);color:var(--gray);font-size:11px;letter-spacing:.5px;
}
.upsell-rep{margin:6px 4px 0}
@media(max-width:420px){.upsell-line{margin-top:12px}.upsell-block{margin-top:20px}}
