:root {
  --ink: #20304a;
  --muted: #718097;
  --paper: #fffdf8;
  --cream: #fff8e8;
  --orange: #ff7a45;
  --orange-dark: #e85c2d;
  --yellow: #ffc94d;
  --blue: #50a9e8;
  --mint: #52c6a4;
  --purple: #8d82e9;
  --line: #eee9de;
  --shadow: 0 14px 34px rgba(58, 55, 45, .08);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
#main, #subjects, #growth { scroll-margin-top: 94px; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 4% 22%, rgba(255, 201, 77, .12) 0 80px, transparent 81px),
    radial-gradient(circle at 92% 56%, rgba(80, 169, 232, .09) 0 110px, transparent 111px),
    #fbfaf6;
  font-family: "Nunito", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px; border-radius: 10px; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.topbar {
  height: 78px;
  padding: 0 max(28px, calc((100vw - 1280px) / 2));
  display: flex;
  align-items: center;
  gap: 42px;
  background: rgba(255, 253, 248, .94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand { display: flex; align-items: center; gap: 11px; min-width: 205px; }
.brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border-radius: 45% 55% 48% 52%;
  color: #fff;
  background: var(--orange);
  box-shadow: inset -4px -5px 0 rgba(194, 64, 27, .14), 0 5px 0 #ffe0c7;
  transform: rotate(-7deg);
}
.brand-mark:after { content: ""; position: absolute; width: 8px; height: 8px; top: 3px; right: 5px; border-radius: 50%; background: var(--yellow); }
.brand-mark span { font-size: calc(21px * var(--fs, 1)); transform: rotate(7deg); }
.brand > span:last-child, .profile > span:nth-child(2) { display: flex; flex-direction: column; }
.brand b { font-size: calc(18px * var(--fs, 1)); letter-spacing: .03em; }
.brand small, .profile small { color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); margin-top: 2px; }
.main-nav { height: 100%; display: flex; align-items: stretch; gap: 12px; margin: 0 auto; }
.main-nav a { position: relative; display: flex; align-items: center; gap: 8px; padding: 0 17px; color: #667389; font-weight: 700; font-size: calc(15px * var(--fs, 1)); transition: color .18s ease; }
.main-nav a:after { content: ""; position: absolute; left: 20px; right: 20px; bottom: 0; height: 4px; border-radius: 4px 4px 0 0; transform: scaleX(0); background: var(--orange); transition: transform .2s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--orange-dark); }
.main-nav a.active:after { transform: scaleX(1); }
.main-nav .now-entry { min-width: 78px; align-self: center; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 12px; border: 1px solid #b8d9cc; border-radius: 14px; color: #2f725d; background: #e5f5ee; cursor: pointer; font-size: calc(14px * var(--fs, 1)); font-weight: 900; }
.main-nav .now-entry:hover:not(:disabled) { border-color: #8ac2ad; background: #d8efe5; }
.main-nav .now-entry [data-now-icon] { font-size: calc(17px * var(--fs, 1)); }
.main-nav .now-entry:disabled { cursor: default; color: #777a86; border-color: #d2d2dc; background: #f0f0f4; }
.profile { display: flex; align-items: center; gap: 10px; padding: 7px 9px; min-width: 168px; border: 0; border-radius: 16px; background: transparent; cursor: pointer; text-align: left; }
.profile:hover { background: var(--cream); }
.profile .avatar { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 auto; border-radius: 14px; color: #256d66; background: #c9f2e6; font-weight: 900; }
.profile b { font-size: calc(14px * var(--fs, 1)); }
.profile svg { width: 16px; margin-left: auto; }

.page-shell { width: min(1280px, calc(100% - 56px)); margin: 28px auto 70px; }
.hero {
  min-height: 280px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 34px 40px;
  border: 1px solid #f2dfbe;
  border-radius: 30px;
  background: linear-gradient(110deg, #fff8e3 0%, #fffaf1 52%, #e9f7fb 100%);
  box-shadow: var(--shadow);
}
.hero:before { content: ""; position: absolute; width: 280px; height: 280px; right: -90px; top: -140px; border: 46px solid rgba(255,255,255,.42); border-radius: 50%; }
.hero-copy { position: relative; z-index: 3; width: 51%; }
.eyebrow, .section-kicker { color: var(--orange-dark); font-size: calc(14.5px * var(--fs, 1)); font-weight: 900; letter-spacing: .1em; }
.eyebrow { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; color: #a45621; background: #fff0b6; border-radius: 99px; letter-spacing: .04em; }
.hero h1 { margin: 14px 0 9px; font-size: clamp(29px, 2.7vw, 39px); line-height: 1.18; letter-spacing: -.02em; }
.hero p { margin: 0; color: #59677a; font-size: calc(17px * var(--fs, 1)); }
.hero p strong { color: var(--orange-dark); }
.hero-task-lead[hidden], .hero-route-lead[hidden] { display: none; }
.hero-actions { display: flex; align-items: center; gap: 17px; margin-top: 20px; }
.primary-button, .secondary-button { min-height: 48px; border: 0; border-radius: 15px; font-weight: 900; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 21px; color: #fff; background: var(--orange); box-shadow: 0 6px 0 #d95126, 0 11px 20px rgba(232, 92, 45, .18); }
.primary-button:hover { background: #ff6c34; transform: translateY(-2px); box-shadow: 0 8px 0 #d95126, 0 13px 22px rgba(232, 92, 45, .2); }
.primary-button:active { transform: translateY(4px); box-shadow: 0 2px 0 #d95126; }
.hero .primary-button:disabled { cursor: default; background: #8f969f; box-shadow: 0 4px 0 #717881; transform: none; }
.primary-button svg { width: 18px; fill: currentColor; }
.hero-pause-button { min-height:46px; padding:0 15px; border:1px solid #c8d8df; border-radius:14px; color:#526d78; background:rgba(255,255,255,.82); cursor:pointer; font-size:calc(12.5px * var(--fs,1)); font-weight:900; }
.hero-pause-button:hover { border-color:#9fbcc7; background:#fff; }
.hero-tip { max-width: 160px; color: #788493; font-size: calc(14px * var(--fs, 1)); line-height: 1.5; }
.hero-study-shortcuts { display:grid; grid-template-columns:auto minmax(0,1fr); gap:9px 12px; align-items:center; margin-top:18px; }
.hero-study-shortcuts[hidden] { display:none; }
.hero-study-shortcuts>span { color:#7a8490; font-size:calc(11.5px * var(--fs,1)); font-weight:850; }
.hero-study-shortcuts>div { min-width:0; display:flex; gap:7px; }
.hero-study-shortcuts button { min-height:42px; display:inline-flex; align-items:center; gap:6px; padding:0 11px; border:1px solid #d2dee5; border-radius:12px; color:#516b7e; background:rgba(255,255,255,.82); cursor:pointer; font-size:calc(12px * var(--fs,1)); font-weight:900; }
.hero-study-shortcuts button[hidden] { display:none; }
.hero-study-shortcuts button:hover { border-color:#9fbfce; background:#fff; }
.hero-study-shortcuts button i { min-width:23px; height:23px; display:grid; place-items:center; border-radius:7px; color:#347fae; background:#e2f3ff; font-size:calc(11px * var(--fs,1)); font-style:normal; font-weight:950; }
.hero-study-shortcuts button[data-hero-study="english"] i { color:#397c69; background:#dff5ed; }
.hero-study-shortcuts button[data-hero-study="reading"] i { color:#c65f49; background:#ffe7df; }
.hero-secondary-links { display:flex; flex-wrap:wrap; gap:15px; margin-top:13px; }
.hero-secondary-links a { color:#6b7784; font-size:calc(11.5px * var(--fs,1)); font-weight:850; text-decoration:underline; text-decoration-color:#c3ccd3; text-underline-offset:4px; }
.hero-secondary-links a:hover { color:#315f8b; }
.hero-art { position: absolute; right: -14px; bottom: -52px; width: 53%; height: 350px; object-fit: cover; object-position: center; mix-blend-mode: multiply; filter: saturate(.96); }
.sticker { position: absolute; z-index: 4; display: grid; place-items: center; color: #fff; filter: drop-shadow(0 5px 4px rgba(45,49,59,.12)); }
.sticker-star { width: 43px; height: 43px; top: 30px; right: 45%; border-radius: 12px; background: var(--yellow); transform: rotate(11deg); }
.sticker-pencil { width: 38px; height: 38px; right: 25px; bottom: 26px; border-radius: 50%; background: var(--blue); font-size: calc(23px * var(--fs, 1)); transform: rotate(-20deg); }

.welcome-back-card { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 18px; padding: 15px 17px; border: 1px solid #cddfd7; border-radius: 22px; background: linear-gradient(115deg, #f2fbf6, #fffaf0 56%, #f5f1ff); box-shadow: 0 8px 24px rgba(56,76,67,.055); }
.welcome-back-card[hidden] { display: none; }
.welcome-back-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 19px; background: #dff3ea; font-size: calc(30px * var(--fs, 1)); transform: rotate(-3deg); }
.welcome-back-copy { min-width: 0; display: flex; flex-direction: column; }
.welcome-back-copy .section-kicker { color: #43816d; font-size: calc(12.5px * var(--fs, 1)); }
.welcome-back-copy h2 { margin: 2px 0 0; color: #405b52; font-size: calc(18px * var(--fs, 1)); line-height: 1.3; }
.welcome-back-copy p { margin: 4px 0 0; color: #667970; font-size: calc(13px * var(--fs, 1)); line-height: 1.45; }
.welcome-back-copy small { margin-top: 3px; color: #7f8b85; font-size: calc(11.5px * var(--fs, 1)); }
.welcome-back-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; width: 330px; }
.welcome-back-actions button { min-width: 0; min-height: 44px; padding: 0 10px; border: 1px solid #bad5c8; border-radius: 11px; color: #326c58; background: #dff3e9; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.welcome-back-actions button:hover { background: #d1ebdf; }
.welcome-back-actions #welcomeBackHabit { color: #6e5c2e; border-color: #e1d09e; background: #fff1c9; }
.welcome-back-actions #welcomeBackHabit:hover { background: #ffe9ad; }
.welcome-back-actions #welcomeBackLater { grid-column: 1 / -1; min-height: 44px; color: #7a827e; border-color: transparent; background: transparent; }
.welcome-back-actions #welcomeBackLater:hover { background: rgba(255,255,255,.7); }
.today-footprint-ribbon { display: grid; grid-template-areas: "icon copy list action" ". note note note"; grid-template-columns: 52px minmax(190px, .82fr) minmax(270px, 1.18fr) auto; gap: 9px 13px; align-items: center; margin-top: 14px; padding: 13px 15px; border: 1px solid #d8d2e7; border-radius: 21px; background: linear-gradient(115deg, #f7f3fc, #fffaf0 52%, #eef8f3); box-shadow: 0 7px 22px rgba(65,62,79,.05); }
.today-footprint-ribbon[hidden] { display: none; }
.today-footprint-icon { grid-area: icon; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; background: #ebe4f5; font-size: calc(27px * var(--fs, 1)); transform: rotate(-3deg); }
.today-footprint-copy { grid-area: copy; min-width: 0; display: flex; flex-direction: column; }
.today-footprint-copy small { color: #7e7096; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; line-height: 1.35; }
.today-footprint-copy h2 { margin: 2px 0 0; color: #544d63; font-size: calc(16.5px * var(--fs, 1)); line-height: 1.3; }
.today-footprint-copy p { margin: 3px 0 0; color: #7a7481; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.today-footprint-list { grid-area: list; min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.today-footprint-list span { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 5px 9px; border: 1px solid #d7d3e1; border-radius: 99px; color: #625b70; background: rgba(255,255,255,.82); font-size: calc(11px * var(--fs, 1)); font-weight: 850; line-height: 1.25; }
.today-footprint-list span i { font-size: calc(16px * var(--fs, 1)); font-style: normal; }
.today-footprint-ribbon > button { grid-area: action; min-width: 128px; min-height: 44px; padding: 0 12px; border: 1px solid #c6b9da; border-radius: 12px; color: #66547f; background: #eee8f7; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.today-footprint-ribbon > button:hover { background: #e5dcf0; }
.today-footprint-note { grid-area: note; color: #8a858d; font-size: calc(10px * var(--fs, 1)); line-height: 1.35; }
.family-cheer-card { display: grid; grid-template-columns: 58px minmax(0, 1fr) minmax(330px, .9fr); gap: 14px; align-items: center; margin-top: 14px; padding: 16px 17px; border: 1px solid #ead7a9; border-radius: 22px; background: linear-gradient(120deg, #fff9e8, #fffdf6 48%, #f6f1ff); box-shadow: 0 8px 24px rgba(76,62,37,.055); }
.family-cheer-card[hidden] { display: none; }
.family-cheer-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 19px; background: #ffedb8; font-size: calc(30px * var(--fs, 1)); transform: rotate(-3deg); }
.family-cheer-copy { min-width: 0; display: flex; flex-direction: column; }
.family-cheer-copy .section-kicker { color: #8b672c; font-size: calc(12.5px * var(--fs, 1)); }
.family-cheer-copy h2 { margin: 2px 0 0; color: #594a34; font-size: calc(18px * var(--fs, 1)); line-height: 1.3; }
.family-cheer-copy p { margin: 5px 0 0; color: #5f5648; font-size: calc(14px * var(--fs, 1)); font-weight: 850; line-height: 1.5; }
.family-cheer-copy small { margin-top: 3px; color: #847b6e; font-size: calc(11.5px * var(--fs, 1)); }
.family-cheer-reactions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.family-cheer-reactions button { min-width: 0; min-height: 48px; padding: 7px 8px; border: 1px solid #e2d4ad; border-radius: 12px; color: #6b572d; background: rgba(255,255,255,.84); cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; line-height: 1.25; }
.family-cheer-reactions button span { display: block; margin-bottom: 2px; font-size: calc(18px * var(--fs, 1)); }
.family-cheer-reactions button:hover { border-color: #d4b765; background: #fff7dc; }
.family-cheer-reactions button[aria-pressed="true"] { border-color: #c99d3d; color: #684c16; background: #ffeab0; box-shadow: inset 0 0 0 1px #c99d3d; }
.family-cheer-response { grid-column: 2 / -1; min-height: 18px; margin: -7px 0 0; color: #80672e; font-size: calc(12px * var(--fs, 1)); font-weight: 800; text-align: right; }

.daily-tools-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: stretch; margin-top: 18px; }
.daily-gentle-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) minmax(240px, .8fr) auto; gap: 12px; align-items: center; margin-top: 18px; padding: 14px 16px; border: 1px solid #d9d3e8; border-radius: 21px; background: linear-gradient(115deg, #f5f2fb, #fffaf1 55%, #eef8f5); box-shadow: 0 8px 24px rgba(71,67,91,.06); }
.daily-gentle-card[hidden] { display: none; }
.daily-gentle-card.complete { border-color: #cbdcbe; background: linear-gradient(115deg, #f1faed, #fff9e9); }
.daily-gentle-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: #e9e3f4; font-size: calc(28px * var(--fs, 1)); }
.daily-gentle-card.complete .daily-gentle-icon { background: #e3f1db; }
.daily-gentle-copy { min-width: 0; display: flex; flex-direction: column; }
.daily-gentle-copy > span { color: #796f96; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; letter-spacing: .04em; }
.daily-gentle-copy h2 { margin: 2px 0 0; color: #514c68; font-size: calc(16px * var(--fs, 1)); line-height: 1.35; }
.daily-gentle-copy p { margin: 3px 0 0; color: #777287; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.daily-gentle-next { min-width: 0; display: grid; grid-template-columns: 39px minmax(0, 1fr); gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #ddd7e8; border-radius: 14px; background: rgba(255,255,255,.74); }
.daily-gentle-next > span { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 13px; background: #f0ebf7; font-size: calc(21px * var(--fs, 1)); }
.daily-gentle-next > div { min-width: 0; display: flex; flex-direction: column; }
.daily-gentle-next small { color: #8a819c; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.daily-gentle-next b { overflow: hidden; margin-top: 1px; color: #5b566a; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.daily-gentle-next p { margin: 2px 0 0; color: #827d8b; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.35; }
.daily-gentle-actions { display: grid; gap: 6px; min-width: 130px; }
.daily-gentle-actions button { min-height: 44px; padding: 0 10px; border: 1px solid #d3cbe1; border-radius: 11px; color: #6b6382; background: #f2edf8; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.daily-gentle-actions button:first-child { color: #fff; border-color: #7f74a3; background: #8277a7; }
.daily-gentle-actions button:first-child:hover { background: #74699a; }
.daily-gentle-actions button[hidden] { display: none; }
.daily-gentle-pause { grid-column: 1 / -1; padding: 12px 13px; border: 1px solid #d9d2e8; border-radius: 15px; background: rgba(255,255,255,.78); }
.daily-gentle-pause[hidden] { display: none; }
.daily-gentle-pause:focus { outline: 3px solid rgba(127,116,163,.23); outline-offset: 2px; }
.daily-gentle-pause > div { display: flex; align-items: center; gap: 8px; color: #57516a; }
.daily-gentle-pause > div span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; background: #eee9f6; font-size: calc(19px * var(--fs, 1)); }
.daily-gentle-pause > div b { font-size: calc(13.5px * var(--fs, 1)); }
.daily-gentle-pause ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; padding: 0; margin: 10px 0 0; list-style: none; counter-reset: gentle-pause; }
.daily-gentle-pause li { min-width: 0; padding: 9px; border-radius: 11px; color: #666174; background: #f7f4fa; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; counter-increment: gentle-pause; }
.daily-gentle-pause li::before { content: counter(gentle-pause); width: 21px; height: 21px; display: grid; place-items: center; margin-bottom: 5px; border-radius: 7px; color: #fff; background: #8378a5; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.daily-gentle-pause > p { margin: 8px 0 0; color: #817988; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.daily-checkin-card {
  display: grid;
  grid-template-columns: auto minmax(205px, .85fr) minmax(390px, 1.55fr) auto;
  gap: 17px;
  align-items: center;
  min-width: 0;
  padding: 17px 19px;
  border: 1px solid #dedbf1;
  border-radius: 23px;
  background: linear-gradient(110deg, #f7f4ff, #fffaf0 54%, #f2fbf7);
  box-shadow: 0 9px 26px rgba(62, 69, 107, .06);
}
.daily-checkin-icon { width: 53px; height: 53px; display: grid; place-items: center; border-radius: 18px; background: #eae5ff; font-size: calc(28px * var(--fs, 1)); transform: rotate(-4deg); }
.daily-checkin-copy { min-width: 0; }
.daily-checkin-copy .section-kicker { color: #6b61b4; font-size: calc(12.5px * var(--fs, 1)); }
.daily-checkin-copy h2 { margin: 2px 0 0; font-size: calc(18px * var(--fs, 1)); line-height: 1.3; }
.daily-checkin-copy p { overflow: hidden; margin: 4px 0 0; color: var(--muted); font-size: calc(13px * var(--fs, 1)); line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; }
.daily-checkin-progress { height: 6px; overflow: hidden; margin-top: 8px; border-radius: 99px; background: #e4e4e7; }
.daily-checkin-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8c7dd8, #eeb85a); transition: width .22s ease; }
.daily-checkin-status { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.daily-checkin-status > span { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 7px; align-items: center; padding: 9px 10px; border: 1px solid rgba(215, 213, 224, .85); border-radius: 14px; background: rgba(255,255,255,.72); }
.daily-checkin-status i { grid-row: 1 / 3; font-size: calc(21px * var(--fs, 1)); font-style: normal; }
.daily-checkin-status small, .daily-checkin-status b { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.daily-checkin-status small { color: #7f8490; font-size: calc(12px * var(--fs, 1)); }
.daily-checkin-status b { margin-top: 2px; color: #485164; font-size: calc(13px * var(--fs, 1)); }
.daily-checkin-status > span.done { border-color: #cfc8ef; background: #f5f2ff; }
.daily-checkin-button { min-width: 130px; min-height: 48px; padding: 0 15px; border: 0; border-radius: 14px; color: #fff; background: #7569c8; box-shadow: 0 5px 0 #5d52ae; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.daily-checkin-button:hover { background: #6b5fbd; transform: translateY(-1px); }
.daily-checkin-button:active { transform: translateY(3px); box-shadow: 0 2px 0 #5d52ae; }
.daily-mood-weather { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(190px, .6fr) minmax(0, 1.4fr); gap: 12px; align-items: center; padding: 11px 12px; border: 1px solid rgba(210,207,229,.86); border-radius: 16px; background: rgba(255,255,255,.62); }
.daily-mood-weather-copy { min-width: 0; display: flex; flex-direction: column; }
.daily-mood-weather-copy > small { color: #8278a7; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.daily-mood-weather-copy > b { margin-top: 1px; color: #54506b; font-size: calc(13px * var(--fs, 1)); }
.daily-mood-weather-copy > p { margin: 3px 0 0; color: #747482; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.daily-mood-weather-copy > em { margin-top: 3px; color: #8b8992; font-size: calc(9.5px * var(--fs, 1)); font-style: normal; line-height: 1.35; }
.daily-mood-week { min-width: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.daily-mood-day { min-width: 0; min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4px 2px; border: 1px solid #e0dfe7; border-radius: 11px; color: #9a98a0; background: rgba(248,248,250,.8); text-align: center; }
.daily-mood-day small { color: #92909a; font-size: calc(9.5px * var(--fs, 1)); font-weight: 900; }
.daily-mood-day i { min-height: 22px; margin-top: 1px; font-size: calc(18px * var(--fs, 1)); font-style: normal; line-height: 1.15; }
.daily-mood-day b { width: 100%; overflow: hidden; margin-top: 1px; color: #9997a0; font-size: calc(9px * var(--fs, 1)); line-height: 1.2; white-space: nowrap; text-overflow: ellipsis; }
.daily-mood-day.has-mood { border-color: #d2caee; color: #5d5678; background: #f3effd; }
.daily-mood-day.has-mood b { color: #625a7e; }
.daily-mood-day.today { border-color: #b8a9e5; box-shadow: 0 0 0 2px rgba(117,105,200,.1); }
.daily-mood-day.today small { color: #6559aa; }
.daily-surprise-card { min-width: 0; display: flex; flex-direction: column; padding: 17px; border: 1px solid #ecd8ae; border-radius: 23px; background: linear-gradient(145deg, #fffaf0, #fff5db); box-shadow: 0 9px 26px rgba(91, 71, 31, .06); }
.daily-surprise-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; }
.daily-surprise-card > header h2 { margin: 2px 0 0; font-size: calc(18px * var(--fs, 1)); line-height: 1.3; }
.daily-surprise-card > header .section-kicker { color: #a46a23; font-size: calc(12.5px * var(--fs, 1)); }
.surprise-interest-hint { display: block; margin-top: 7px; color: #8b7858; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.surprise-state { flex: 0 0 auto; padding: 5px 8px; border-radius: 9px; color: #8b6518; background: #ffedb5; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.surprise-closed { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 12px; }
.surprise-gift { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 16px; background: #ffeab3; font-size: calc(27px * var(--fs, 1)); transform: rotate(-4deg); }
.surprise-closed > div { min-width: 0; display: flex; flex-direction: column; }
.surprise-closed b { overflow: hidden; color: #5f5136; font-size: calc(13.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.surprise-closed small { margin-top: 3px; color: #83765e; font-size: calc(12.5px * var(--fs, 1)); }
.surprise-closed button, .surprise-open > button { grid-column: 1 / -1; min-height: 44px; border: 0; border-radius: 12px; color: #76551c; background: #ffe6a2; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.surprise-closed button:hover, .surprise-open > button:hover { background: #ffdc7e; }
.surprise-open { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: start; margin-top: 12px; }
.surprise-open[hidden], .surprise-safety[hidden] { display: none; }
.surprise-task-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 16px; background: #fff; font-size: calc(27px * var(--fs, 1)); transform: rotate(-3deg); }
.surprise-task-copy { min-width: 0; }
.surprise-task-meta { display: flex; align-items: center; gap: 7px; }
.surprise-task-meta span { padding: 3px 6px; border-radius: 7px; color: #74531c; background: #ffeab6; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.surprise-task-meta small { color: #83765e; font-size: calc(12px * var(--fs, 1)); }
.surprise-task-copy h3 { margin: 5px 0 0; color: #574a33; font-size: calc(15px * var(--fs, 1)); line-height: 1.3; }
.surprise-task-copy p { margin: 4px 0 0; color: #756952; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.5; }
.surprise-safety { display: block; margin-top: 5px; padding: 5px 7px; border-radius: 8px; color: #7a6540; background: rgba(255,255,255,.68); font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.surprise-open > button { margin-top: 2px; }
.surprise-open > button:disabled { color: #587266; background: #dff2e9; cursor: default; }
.surprise-open > button.surprise-reader-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid #d8c58d; color: #795f28; background: #fff7db; }
.surprise-open > button.surprise-reader-button:hover { background: #ffefbd; }
.surprise-open > button.surprise-reader-button[aria-pressed="true"] { color: #fff; border-color: #9a7a38; background: #a88642; }
.surprise-reader-button span { font-size: calc(16px * var(--fs, 1)); }
.surprise-reader-button b { font: inherit; }
.surprise-open > .surprise-reader-status { grid-column: 1 / -1; display: block; color: #89795d; }
.daily-surprise-card.is-complete { border-color: #b9dccb; background: linear-gradient(145deg, #f7fff9, #fff8de); }
.daily-surprise-card.is-complete .surprise-state { color: #28765f; background: #dff4ea; }
.daily-brain-card { grid-column: 1 / -1; padding: 17px 19px; border: 1px solid #c9dbe8; border-radius: 23px; background: linear-gradient(115deg, #eef8ff, #fffdf5 52%, #f3effc); box-shadow: 0 9px 26px rgba(57,79,105,.06); }
.daily-brain-card.is-solved { border-color: #badbcf; background: linear-gradient(115deg, #edf9f5, #fffdf3 52%, #f4f0fb); }
.daily-brain-card > header { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.daily-brain-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; background: #dfefff; font-size: calc(27px * var(--fs, 1)); transform: rotate(-4deg); }
.daily-brain-card.is-solved .daily-brain-icon { background: #dff3eb; }
.daily-brain-card > header > div { min-width: 0; display: flex; flex-direction: column; }
.daily-brain-card > header .section-kicker { color: #477ca3; font-size: calc(11.5px * var(--fs, 1)); }
.daily-brain-card > header h2 { margin: 2px 0 0; color: #40566c; font-size: calc(18px * var(--fs, 1)); line-height: 1.3; }
.daily-brain-card > header small { overflow: hidden; margin-top: 3px; color: #718092; font-size: calc(12px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.daily-brain-state { padding: 5px 9px; border-radius: 99px; color: #47799c; background: #deeffb; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; white-space: nowrap; }
.daily-brain-card.is-solved .daily-brain-state { color: #28745e; background: #dff3e9; }
.daily-brain-play { display: grid; grid-template-columns: minmax(250px, .82fr) minmax(0, 1.18fr); gap: 14px; margin-top: 13px; }
.daily-brain-question, .daily-brain-answer { min-width: 0; padding: 13px 14px; border: 1px solid rgba(195,211,222,.86); border-radius: 16px; background: rgba(255,255,255,.78); }
.daily-brain-question > span { display: inline-flex; padding: 3px 7px; border-radius: 8px; color: #517c98; background: #e5f2fa; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.daily-brain-question p { margin: 7px 0 0; color: #4c5b6b; font-size: calc(13.5px * var(--fs, 1)); font-weight: 850; line-height: 1.5; }
.daily-brain-question strong { display: block; overflow-x: auto; margin-top: 9px; padding: 10px 8px; border-radius: 12px; color: #3f4c5c; background: #f6fafc; font-size: calc(22px * var(--fs, 1)); line-height: 1.35; text-align: center; white-space: nowrap; }
.daily-brain-reader { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin-top: 9px; padding: 0 10px; border: 1px solid #bdd2df; border-radius: 11px; color: #456f88; background: #edf7fc; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.daily-brain-reader:hover { background: #e1f1f9; }
.daily-brain-reader[aria-pressed="true"] { color: #fff; border-color: #6685a2; background: #6f8fac; }
.daily-brain-reader span { font-size: calc(16px * var(--fs, 1)); }
.daily-brain-reader b { font: inherit; }
.daily-brain-reader-status { display: block; margin-top: 6px; color: #718392; }
.daily-brain-answer { display: flex; flex-direction: column; justify-content: center; }
.daily-brain-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.daily-brain-choice { min-width: 0; min-height: 50px; padding: 8px 10px; border: 1px solid #bdd2df; border-radius: 12px; color: #45677e; background: #f3faff; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; line-height: 1.35; }
.daily-brain-choice:hover:not(:disabled) { border-color: #74a8c7; background: #e7f5fc; }
.daily-brain-choice.is-wrong { border-color: #e5b9a9; color: #8b5b49; background: #fff1ec; }
.daily-brain-choice.is-correct { border-color: #72ae98; color: #286e58; background: #dff4eb; box-shadow: inset 0 0 0 1px #72ae98; }
.daily-brain-choice:disabled { cursor: default; opacity: .78; }
.daily-brain-choice.is-correct:disabled { opacity: 1; }
.daily-brain-answer > p { min-height: 20px; margin: 9px 1px 0; color: #687c8c; font-size: calc(11.5px * var(--fs, 1)); font-weight: 750; line-height: 1.45; }
.daily-brain-card.is-solved .daily-brain-answer > p { color: #397662; }
.daily-brain-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 11px; }
.daily-brain-card > footer > div:first-child { display: flex; flex-direction: column; }
.daily-brain-card > footer b { color: #53697a; font-size: calc(12px * var(--fs, 1)); }
.daily-brain-card > footer small { margin-top: 2px; color: #83909a; font-size: calc(10.5px * var(--fs, 1)); }
.daily-brain-week { display: grid; grid-template-columns: repeat(7, 29px); gap: 5px; }
.daily-brain-day { height: 29px; display: grid; place-items: center; border: 1px solid #d8e2e8; border-radius: 10px; color: #91a0aa; background: rgba(255,255,255,.72); font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.daily-brain-day.is-today { border-color: #8fb8d0; }
.daily-brain-day.is-solved { border-color: #8bc0aa; color: #267059; background: #dff3ea; }

.interest-radar-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 18px; padding: 14px 16px; border: 1px solid #d8d4e9; border-radius: 21px; background: linear-gradient(115deg, #f6f2fc, #fffaf0 55%, #eef8f5); box-shadow: 0 8px 24px rgba(66,63,91,.06); }
.interest-radar-card.has-interests { border-color: #c9c5e5; background: linear-gradient(115deg, #f1edfb, #fff7e5 54%, #eaf7f2); }
.interest-radar-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: #ebe5f6; font-size: calc(27px * var(--fs, 1)); transform: rotate(-3deg); }
.interest-radar-card.has-interests .interest-radar-icon { background: linear-gradient(145deg, #e5ddf5, #fff0b9); }
.interest-radar-copy { min-width: 0; display: flex; flex-direction: column; }
.interest-radar-copy > small { color: #7e7390; font-size: calc(11px * var(--fs, 1)); font-weight: 900; }
.interest-radar-copy h2 { margin: 2px 0 0; color: #504a65; font-size: calc(16px * var(--fs, 1)); line-height: 1.35; }
.interest-radar-copy p { margin: 5px 0 0; color: #777280; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.interest-radar-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.interest-radar-chips:empty { display: none; }
.interest-radar-chips span { padding: 4px 7px; border: 1px solid #d7cce8; border-radius: 99px; color: #695a7d; background: rgba(255,255,255,.72); font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.interest-radar-card > button { min-width: 96px; min-height: 44px; padding: 0 11px; border: 1px solid #cfc4e2; border-radius: 12px; color: #685783; background: #eee8f7; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.interest-radar-card > button:hover { background: #e5dcf2; }
.dashboard-shortcuts-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 18px; padding: 15px 16px; border: 1px solid #d6dfc5; border-radius: 21px; background: linear-gradient(115deg, #f4faee, #fffaf0 52%, #eef5fb); box-shadow: 0 8px 24px rgba(63,80,57,.055); }
.dashboard-shortcuts-card[hidden], .dashboard-shortcuts-dialog[hidden] { display: none !important; }
.dashboard-shortcuts-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: #e5f1d8; font-size: calc(27px * var(--fs, 1)); transform: rotate(-4deg); }
.dashboard-shortcuts-copy { min-width: 0; display: flex; flex-direction: column; }
.dashboard-shortcuts-copy small { color: #71845e; font-size: calc(11px * var(--fs, 1)); font-weight: 900; }
.dashboard-shortcuts-copy h2 { margin: 2px 0 0; color: #4f6146; font-size: calc(16px * var(--fs, 1)); line-height: 1.35; }
.dashboard-shortcuts-copy p { margin: 4px 0 0; color: #74806e; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.dashboard-shortcuts-card > button { min-width: 96px; min-height: 44px; padding: 0 11px; border: 1px solid #c8d8b7; border-radius: 12px; color: #5f784d; background: #edf6e5; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.dashboard-shortcuts-card > button:hover { background: #e2f0d7; }
.dashboard-shortcuts-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dashboard-shortcut-button { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #d6dfd0; border-radius: 14px; color: #536454; background: rgba(255,255,255,.78); cursor: pointer; text-align: left; }
.dashboard-shortcut-button:hover { border-color: #aabf9f; background: #fbfef8; transform: translateY(-1px); }
.dashboard-shortcut-button > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--shortcut-bg, #e9f2e1); font-size: calc(21px * var(--fs, 1)); }
.dashboard-shortcut-button > span + span { width: auto; height: auto; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; background: transparent; font-size: inherit; }
.dashboard-shortcut-button b { overflow: hidden; max-width: 100%; color: var(--shortcut-ink, #536454); font-size: calc(12.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.dashboard-shortcut-button small { overflow: hidden; max-width: 100%; margin-top: 2px; color: #859087; font-size: calc(10px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.dashboard-shortcuts-note { grid-column: 1 / -1; color: #848d82; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; text-align: right; }
.surprise-week-wrap { margin-top: auto; padding-top: 11px; }
.surprise-week-wrap > span { color: #796b51; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.surprise-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 6px; }
.surprise-day { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.surprise-day span { color: #8d816d; font-size: calc(10.5px * var(--fs, 1)); }
.surprise-day i { width: 27px; height: 27px; display: grid; place-items: center; border: 1px dashed #decfae; border-radius: 9px; color: #b9aa8d; background: rgba(255,255,255,.55); font-size: calc(13px * var(--fs, 1)); font-style: normal; }
.surprise-day.done i { border-style: solid; border-color: #e0bd66; background: #fff0b7; }
.surprise-day.today i { outline: 2px solid #cfb6eb; outline-offset: 1px; }

.daily-route-card { margin-top: 18px; padding: 20px 22px; border: 1px solid #d8e3ee; border-radius: 24px; background: linear-gradient(120deg, #f5faff, #fffdf7 50%, #f5fbf7); box-shadow: 0 9px 26px rgba(51,72,98,.06); }
.daily-route-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.daily-route-heading .section-kicker { color: #4778a8; font-size: calc(12.5px * var(--fs, 1)); }
.daily-route-day-mode { display: inline-flex; align-items: center; min-height: 44px; margin: -10px 0 -10px 7px; padding: 0 10px; border: 1px solid #d7e0e8; border-radius: 99px; color: #6c7d8b; background: rgba(255,255,255,.74); cursor: pointer; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; vertical-align: middle; }
.daily-route-day-mode:hover { border-color: #bfcbd5; background: #fff; }
.daily-route-day-mode:focus-visible { outline: 3px solid rgba(79,136,179,.24); outline-offset: 2px; }
.daily-route-heading h2 { margin: 3px 0 0; color: #31475d; font-size: calc(20px * var(--fs, 1)); line-height: 1.3; }
.daily-route-timing { flex: 0 0 auto; display: grid; grid-template-columns: auto auto; gap: 4px 7px; justify-items: end; }
.daily-route-now { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #edcf91; border-radius: 99px; color: #8a5c18; background: #fff4cd; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.daily-route-timing .daily-route-now { grid-column: 1 / -1; }
.daily-route-timing small { align-self: center; color: #748493; font-size: calc(12px * var(--fs, 1)); font-weight: 800; }
.daily-route-timing button { min-height: 44px; padding: 0 10px; border: 1px solid #c8dce9; border-radius: 11px; color: #426e91; background: #eaf4fa; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.daily-route-timing button:hover { background: #ddecf6; }
.daily-route-overall { display: grid; grid-template-columns: auto minmax(180px, 1fr); gap: 16px; align-items: center; margin-top: 14px; }
.daily-route-overall > span { display: flex; flex-direction: column; }
.daily-route-overall b { color: #486074; font-size: calc(13px * var(--fs, 1)); }
.daily-route-overall small { margin-top: 2px; color: #7b8791; font-size: calc(12px * var(--fs, 1)); }
.daily-route-overall > div { height: 9px; overflow: hidden; border-radius: 99px; background: #e4eaed; }
.daily-route-overall i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #76acd2, #68b498, #e5b653); transition: width .22s ease; }
.daily-route-stations { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 15px; }
.daily-route-stations:before { content: ""; position: absolute; z-index: 0; left: 12%; right: 12%; top: 50%; border-top: 3px dashed #d4e0e7; transform: translateY(-50%); }
.daily-route-stations > button { position: relative; z-index: 1; min-width: 0; min-height: 96px; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid #dbe4ea; border-radius: 17px; color: #405469; background: rgba(255,255,255,.94); box-shadow: 0 5px 16px rgba(52,72,91,.05); cursor: pointer; text-align: left; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.daily-route-stations > button:hover { border-color: #9fc0d8; background: #f7fcff; transform: translateY(-2px); }
.daily-route-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: #eaf3f9; font-size: calc(24px * var(--fs, 1)); }
.daily-route-copy { min-width: 0; display: flex; flex-direction: column; }
.daily-route-copy small { color: #7c8994; font-size: calc(12px * var(--fs, 1)); font-weight: 850; }
.daily-route-copy b { margin-top: 2px; color: #3d5063; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.daily-route-copy em { margin-top: 4px; overflow: hidden; color: #74818d; font-size: calc(12.5px * var(--fs, 1)); font-style: normal; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.daily-route-status { align-self: start; padding: 4px 7px; border-radius: 8px; color: #6e7f8d; background: #edf1f3; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.daily-route-stations > button.current { border-color: #e5bb67; background: #fff9e8; box-shadow: 0 0 0 3px rgba(229,187,103,.12); }
.daily-route-stations > button.current .daily-route-icon { background: #ffedb9; }
.daily-route-stations > button.current .daily-route-status { color: #855b1d; background: #ffe9a9; }
.daily-route-stations > button.done { border-color: #add7c8; background: #f2fbf7; }
.daily-route-stations > button.done .daily-route-icon { background: #dff4eb; }
.daily-route-stations > button.done .daily-route-status { color: #28755f; background: #d9f0e7; }
.daily-route-stations > button.done .daily-route-status:before { content: "✓ "; }
.daily-route-stations > button.info-only { border-style: dashed; border-color: #c8d9e4; background: #f5f9fc; }
.daily-route-stations > button.info-only .daily-route-icon { background: #e4f0f6; }
.daily-route-stations > button.info-only .daily-route-status { color: #426f8c; background: #e1eff7; }
.daily-route-stations > button.info-only.current { border-color: #86b5cf; background: #eff8fc; box-shadow: 0 0 0 3px rgba(111,166,197,.11); }
.daily-route-stations > button.info-only.current .daily-route-icon { background: #dceef7; }
.daily-route-card.school-morning { border-color: #c8dce8; background: linear-gradient(120deg, #f2f9fd, #fffdf4 58%, #f3faf7); }
.daily-route-card.school-morning .daily-route-now { color: #3e6e8a; border-color: #bad4e3; background: #e5f2f8; }
.daily-route-card.school-morning .daily-route-next { border-color: #d4e3eb; background: rgba(255,255,255,.9); }
.daily-route-card.school-day-route .daily-route-stations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.daily-route-card.school-day-route .daily-route-stations:before { left: 23%; right: 23%; }
.daily-route-next { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; margin-top: 14px; padding: 11px 12px 11px 14px; border: 1px solid #dce5eb; border-radius: 15px; background: rgba(255,255,255,.82); }
.daily-route-next p { min-width: 0; flex: 1 1 320px; display: flex; align-items: center; gap: 7px; margin: 0; color: #586b7b; font-size: calc(13px * var(--fs, 1)); line-height: 1.45; }
.daily-route-next p span { font-size: calc(20px * var(--fs, 1)); }
.daily-route-next-actions { display: flex; align-items: stretch; gap: 8px; }
.daily-route-next #dailyRouteAction { min-width: 150px; min-height: 46px; padding: 0 14px; border: 0; border-radius: 12px; color: #fff; background: #4f88b3; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.daily-route-next #dailyRouteAction:hover { background: #407ba8; }
.daily-route-next button.study-reader-button { min-width: 116px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 11px; border: 1px solid #bdd4e4; border-radius: 12px; color: #3f718f; background: #edf6fb; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.daily-route-next button.study-reader-button:hover { background: #e0f0f8; }
.daily-route-next button.study-reader-button[aria-pressed="true"] { color: #fff; border-color: #6c83aa; background: #748bb2; }
.daily-route-next button.study-reader-button span { font-size: calc(16px * var(--fs, 1)); }
.daily-route-next button.study-reader-button b { font: inherit; }
.study-reader-button[hidden], .study-reader-status[hidden] { display: none!important; }
.study-reader-status { flex: 1 0 100%; color: #7c8791; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
button.study-reader-button.daily-flow-reader { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 12px; border: 1px solid #c9d6df; border-radius: 12px; color: #557182; background: #f0f6f8; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
button.study-reader-button.daily-flow-reader:hover { background: #e4f0f4; }
button.study-reader-button.daily-flow-reader[aria-pressed="true"] { color: #fff; border-color: #6c83aa; background: #748bb2; }
button.study-reader-button.daily-flow-reader span { font-size: calc(16px * var(--fs, 1)); }
button.study-reader-button.daily-flow-reader b { font: inherit; }
.daily-checkin-reader { width: 100%; margin-top: 12px; }
.daily-checkin-reader-status { display: block; margin-top: 6px; text-align: center; }
.after-school-reader-status { display: block; margin-top: 7px; text-align: right; }
.morning-departure-card { margin-top: 13px; padding: 14px; border: 1px solid #cbded6; border-radius: 18px; background: linear-gradient(120deg, #f0f9f5, #fff9e9 60%, #eef7fb); }
.morning-departure-card[hidden] { display: none; }
.morning-departure-card:focus-visible { outline: 3px solid rgba(79,136,179,.24); outline-offset: 3px; }
.morning-departure-heading { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.morning-departure-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #dcefe6; font-size: calc(25px * var(--fs, 1)); }
.morning-departure-heading > div { min-width: 0; }
.morning-departure-heading .section-kicker { color: #4f7d69; font-size: calc(11.5px * var(--fs, 1)); }
.morning-departure-heading h3 { margin: 2px 0 0; color: #3f5d52; font-size: calc(16px * var(--fs, 1)); line-height: 1.35; }
.morning-departure-heading p { margin: 3px 0 0; color: #77847e; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.morning-departure-state { align-self: start; padding: 5px 8px; border-radius: 9px; color: #557566; background: #deeee6; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.morning-departure-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 11px 0 0; padding: 0; list-style: none; }
.morning-departure-list li { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: start; padding: 10px; border: 1px solid #d8e3df; border-radius: 14px; background: rgba(255,255,255,.8); }
.morning-departure-list li > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #e9f3ef; font-size: calc(20px * var(--fs, 1)); }
.morning-departure-list li > div { min-width: 0; display: flex; flex-direction: column; }
.morning-departure-list small { color: #72877d; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.morning-departure-list b { margin-top: 2px; color: #486358; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; }
.morning-departure-list p { margin: 3px 0 0; color: #77837e; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.morning-departure-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.morning-departure-actions button { min-width: 126px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 11px; color: #fff; background: #4f8b75; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.morning-departure-actions button:hover { background: #407b66; }
.morning-departure-actions button.secondary { color: #477162; border: 1px solid #bfd8ce; background: #edf7f3; }
.morning-departure-actions button.secondary:hover { background: #e1f1ea; }
.morning-departure-actions button.study-reader-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.morning-departure-actions button.study-reader-button[aria-pressed="true"] { color: #fff; border-color: #6c83aa; background: #748bb2; }
.morning-departure-actions button.study-reader-button span { font-size: calc(15px * var(--fs, 1)); }
.morning-departure-actions button.study-reader-button b { font: inherit; }
.morning-departure-reader-status { margin-top: 8px; text-align: right; }
.morning-departure-note { display: block; margin-top: 8px; color: #858c88; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; text-align: right; }
.daily-route-card.all-done { border-color: #b9dacd; background: linear-gradient(120deg, #f1fbf6, #fffbee); }
.daily-route-card.all-done .daily-route-now { color: #28755f; border-color: #b8decf; background: #dff4eb; }
.daily-route-card.all-done .daily-route-next #dailyRouteAction { background: #50a98c; }
.daily-route-card.free-day-mode:not(.gentle-mode):not(.sleep-guard) { border-color: #ddd1e7; background: linear-gradient(120deg, #f8f4fc, #fffaf0 54%, #f0f9f4); }
.daily-route-card.free-day-mode:not(.gentle-mode):not(.sleep-guard) .daily-route-day-mode { color: #6e5f89; border-color: #d9cce7; background: #f0e9f8; }
.daily-route-card.free-day-mode:not(.gentle-mode):not(.sleep-guard) .daily-route-now { color: #6d5d86; border-color: #d9cce7; background: #f0e9f8; }
.daily-route-card.free-day-mode:not(.gentle-mode):not(.sleep-guard) .daily-route-next #dailyRouteAction { background: #806fa2; }
.daily-route-card.gentle-mode { border-color: #d6d0e5; background: linear-gradient(120deg, #f6f3fb, #fffaf2 58%, #f0f8f5); }
.daily-route-card.gentle-mode .daily-route-now { color: #6b6287; border-color: #d7d0e8; background: #eee9f7; }
.daily-route-card.gentle-mode .daily-route-next { border-color: #ddd7e8; background: rgba(250,248,253,.92); }
.daily-route-card.gentle-mode .daily-route-next #dailyRouteAction { background: #8277a7; }
.daily-route-card.gentle-mode .daily-route-next #dailyRouteAction:hover { background: #74699a; }
.daily-route-card.sleep-guard { border-color: #c9c7dd; background: linear-gradient(120deg, #f4f3fb, #fffaf1 58%, #eef5f6); }
.daily-route-card.sleep-guard .daily-route-now { color: #5f5a83; border-color: #d3cfea; background: #ece9f8; }
.daily-route-card.sleep-guard .daily-route-next { border-color: #d7d3e6; background: rgba(247,245,252,.9); }
.daily-route-card.sleep-guard .daily-route-next p { color: #615f77; }
.daily-route-card.sleep-guard .daily-route-next #dailyRouteAction { background: #746c9e; }
.daily-route-card.sleep-guard .daily-route-next #dailyRouteAction:hover { background: #665e91; }
.daily-route-card.wind-down-complete { border-color: #c9c7dd; background: linear-gradient(120deg, #f5f3fb, #fffaf2 62%, #f0f5f7); }
.daily-route-card.wind-down-complete .daily-route-now { color: #5f5a83; border-color: #d3cfea; background: #ece9f8; }
.daily-route-card.wind-down-complete .daily-route-next { border-color: #d7d3e6; background: rgba(247,245,252,.9); }
.daily-route-card.wind-down-complete .daily-route-next p { color: #615f77; }
.daily-route-card.wind-down-complete .daily-route-next #dailyRouteAction { background: #746c9e; }
.daily-route-card.wind-down-complete .daily-route-next #dailyRouteAction:hover { background: #665e91; }
.tomorrow-letter { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 12px; padding: 13px 14px; border: 1px dashed #d7dce5; border-radius: 17px; background: rgba(248,249,252,.86); transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.tomorrow-letter-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 17px; color: #7a8090; background: #ebeef3; font-size: calc(27px * var(--fs, 1)); filter: grayscale(.25); }
.tomorrow-letter-copy { min-width: 0; display: flex; flex-direction: column; }
.tomorrow-letter-copy > span { color: #818795; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; letter-spacing: .02em; }
.tomorrow-letter-copy b { margin-top: 2px; color: #4d5666; font-size: calc(14px * var(--fs, 1)); line-height: 1.35; }
.tomorrow-letter-copy p { margin: 3px 0 0; color: #6f7784; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.45; }
.tomorrow-letter-copy small { margin-top: 4px; color: #8b8295; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.tomorrow-letter > button { min-width: 128px; min-height: 46px; padding: 0 13px; border: 0; border-radius: 12px; color: #7a7f8a; background: #e7e9ed; cursor: not-allowed; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.tomorrow-letter.is-unlocked { border-style: solid; border-color: #d9c1ed; background: linear-gradient(120deg, #fff9ec, #f6f0ff); box-shadow: 0 7px 18px rgba(104,78,131,.07); }
.tomorrow-letter.is-unlocked .tomorrow-letter-icon { color: #7c58a1; background: #eee1fa; filter: none; }
.tomorrow-letter.is-unlocked .tomorrow-letter-copy > span { color: #865e9e; }
.tomorrow-letter.is-unlocked > button:not(:disabled) { color: #fff; background: #8a68ac; cursor: pointer; box-shadow: 0 4px 0 #6e4f8c; }
.tomorrow-letter.is-unlocked > button:not(:disabled):hover { background: #7d5c9f; transform: translateY(-1px); }
.tomorrow-letter.is-unlocked > button:not(:disabled):active { box-shadow: 0 2px 0 #6e4f8c; transform: translateY(2px); }
.tomorrow-letter.is-opened { border-color: #b7dacb; background: linear-gradient(120deg, #f1fbf6, #fff9e8); }
.tomorrow-letter.is-opened .tomorrow-letter-icon { color: #28755f; background: #dff4eb; }
.tomorrow-letter.is-opened .tomorrow-letter-copy > span { color: #327a66; }

.after-school-reset-card { margin-top: 14px; padding: 18px 20px; border: 1px solid #d9dfcf; border-radius: 22px; background: linear-gradient(118deg, #f5faef, #fffaf0 48%, #f1f6fb); box-shadow: 0 8px 24px rgba(60,75,54,.055); }
.after-school-reset-card[hidden] { display: none; }
.after-school-reset-heading { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.after-school-reset-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: #e8f2dc; font-size: calc(27px * var(--fs, 1)); transform: rotate(-3deg); }
.after-school-reset-heading > div { min-width: 0; }
.after-school-reset-heading .section-kicker { color: #71845e; font-size: calc(11.5px * var(--fs, 1)); }
.after-school-reset-heading h2 { margin: 2px 0 0; color: #4e6146; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.after-school-reset-heading p { margin: 3px 0 0; color: #768171; font-size: calc(12px * var(--fs, 1)); line-height: 1.4; }
.after-school-reset-state { align-self: start; padding: 6px 9px; border-radius: 99px; color: #7a6b43; background: #fff0c7; font-size: calc(11px * var(--fs, 1)); font-weight: 950; white-space: nowrap; }
.after-school-reset-card.is-settled .after-school-reset-state { color: #39745d; background: #dff2e8; }
.after-school-reset-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0; margin: 14px 0 0; list-style: none; }
.after-school-reset-steps li { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 38px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 8px; align-content: center; padding: 9px 10px; border: 1px solid #dde4d7; border-radius: 14px; background: rgba(255,255,255,.76); }
.after-school-reset-steps li > span { grid-row: 1 / 3; width: 38px; height: 38px; display: grid; place-items: center; align-self: center; border-radius: 12px; background: #edf4e8; font-size: calc(20px * var(--fs, 1)); }
.after-school-reset-steps b { color: #566453; font-size: calc(12.5px * var(--fs, 1)); }
.after-school-reset-steps small { margin-top: 2px; color: #858c82; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.3; }
.after-school-reset-card.is-settled .after-school-reset-steps li { border-color: #cde0d4; background: rgba(242,250,246,.84); }
.after-school-reset-card.is-settled .after-school-reset-steps li > span { background: #dff1e7; }
.after-school-energy { min-width: 0; padding: 0; margin: 14px 0 0; border: 0; }
.after-school-energy legend { padding: 0; color: #5d6859; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.after-school-energy > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 7px; }
.after-school-energy button { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #dce2d8; border-radius: 14px; color: #5b6657; background: #fbfcfa; cursor: pointer; text-align: left; }
.after-school-energy button > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #edf3e8; font-size: calc(21px * var(--fs, 1)); }
.after-school-energy button > span + span { width: auto; height: auto; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; background: transparent; font-size: inherit; }
.after-school-energy button b { font-size: calc(12.5px * var(--fs, 1)); }
.after-school-energy button small { margin-top: 2px; color: #858d82; font-size: calc(10px * var(--fs, 1)); line-height: 1.3; }
.after-school-energy button:hover:not(:disabled), .after-school-energy button[aria-pressed="true"] { color: #53733f; border-color: #9eba8b; background: #eef6e8; box-shadow: 0 0 0 2px rgba(111,151,84,.09); }
.after-school-energy button[aria-pressed="true"] > span { background: #dcebd0; }
.after-school-energy button:disabled { cursor: default; opacity: .76; }
.after-school-reset-result { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 14px; padding: 11px 12px; border: 1px solid #cfe0d5; border-radius: 15px; background: #f2faf5; }
.after-school-reset-result > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #dff1e7; font-size: calc(23px * var(--fs, 1)); }
.after-school-reset-result b { color: #416a56; font-size: calc(13.5px * var(--fs, 1)); }
.after-school-reset-result p { margin: 3px 0 0; color: #6c7e73; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.after-school-reset-status { min-height: 18px; margin: 9px 0 0; color: #7b8477; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.after-school-reset-status.error { color: #a55448; font-weight: 850; }
.after-school-reset-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 9px; }
.after-school-reset-actions button { min-height: 46px; padding: 0 14px; border: 0; border-radius: 12px; color: #fff; background: #69944f; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.after-school-reset-actions button:hover:not(:disabled) { background: #5b8542; }
.after-school-reset-actions button.secondary { color: #65705f; border: 1px solid #d5ddd0; background: #f5f7f3; }
.after-school-reset-actions button.secondary:hover:not(:disabled) { background: #ecefe9; }
.after-school-reset-actions button:disabled { color: #92998e; background: #e6e9e3; cursor: not-allowed; }
.after-school-reset-actions button.study-reader-button.daily-flow-reader { color: #60745a; border: 1px solid #cedac7; background: #f2f7ee; }
.after-school-reset-actions button.study-reader-button.daily-flow-reader:hover { background: #e8f2e1; }
.after-school-reset-actions button.study-reader-button.daily-flow-reader[aria-pressed="true"] { color: #fff; border-color: #698b57; background: #739760; }
.after-school-reset-note { display: block; margin-top: 9px; color: #899087; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; text-align: right; }

.after-school-choice-card { margin-top: 14px; padding: 18px 20px; border: 1px solid #d8d6e9; border-radius: 22px; background: linear-gradient(118deg, #f8f6ff, #fffaf1 52%, #eef8f4); box-shadow: 0 8px 24px rgba(65,61,86,.055); }
.after-school-choice-card[hidden] { display: none; }
.after-school-choice-heading { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.after-school-choice-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: #e9e3f5; font-size: calc(27px * var(--fs, 1)); transform: rotate(3deg); }
.after-school-choice-heading > div { min-width: 0; }
.after-school-choice-heading .section-kicker { color: #7a6e92; font-size: calc(11.5px * var(--fs, 1)); }
.after-school-choice-heading h2 { margin: 2px 0 0; color: #594f6b; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.after-school-choice-heading p { margin: 3px 0 0; color: #7a7283; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.after-school-choice-state { align-self: start; padding: 6px 9px; border-radius: 99px; color: #716584; background: #eee8f6; font-size: calc(11px * var(--fs, 1)); font-weight: 950; white-space: nowrap; }
.after-school-choice-card.has-choice .after-school-choice-state, .after-school-choice-card.is-started .after-school-choice-state { color: #35725d; background: #dff2e9; }
.after-school-choice-card.is-skipped .after-school-choice-state { color: #7a692d; background: #fff0bd; }
.after-school-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.after-school-choice-grid button { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #ddd9e9; border-radius: 14px; color: #5f586d; background: rgba(255,255,255,.84); cursor: pointer; text-align: left; }
.after-school-choice-grid button > span:first-child { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 13px; background: #eee9f6; font-size: calc(22px * var(--fs, 1)); }
.after-school-choice-grid button > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.after-school-choice-grid button b { font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; }
.after-school-choice-grid button small { margin-top: 2px; color: #85808d; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.35; }
.after-school-choice-grid button em { padding: 4px 6px; border-radius: 99px; color: #746027; background: #fff0bd; font-size: calc(9.5px * var(--fs, 1)); font-style: normal; font-weight: 950; white-space: nowrap; }
.after-school-choice-grid button em[hidden] { display: none; }
.after-school-choice-grid button:hover { border-color: #b6a8cd; background: #faf7fd; }
.after-school-choice-grid button[aria-pressed="true"] { color: #5c4777; border-color: #aa95c5; background: #eee6f6; box-shadow: 0 0 0 2px rgba(109,83,145,.1); }
.after-school-choice-grid button[aria-pressed="true"] > span:first-child { background: #ded2eb; }
.after-school-choice-selected { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 12px; padding: 11px 12px; border: 1px solid #cfded6; border-radius: 15px; background: #f4faf7; }
.after-school-choice-selected[hidden] { display: none; }
.after-school-choice-selected > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: #deefe7; font-size: calc(23px * var(--fs, 1)); }
.after-school-choice-selected div { min-width: 0; display: flex; flex-direction: column; }
.after-school-choice-selected small { color: #74867c; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.after-school-choice-selected b { margin-top: 1px; color: #476858; font-size: calc(13.5px * var(--fs, 1)); }
.after-school-choice-selected p { margin: 3px 0 0; color: #6e7f76; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.after-school-choice-status { min-height: 18px; margin: 9px 0 0; color: #797381; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.after-school-choice-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 9px; }
.after-school-choice-actions button { min-height: 46px; padding: 0 14px; border: 0; border-radius: 12px; color: #fff; background: #7962a0; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.after-school-choice-actions button:hover:not(:disabled) { background: #68518e; }
.after-school-choice-actions button.secondary { color: #6e6777; border: 1px solid #dad6df; background: #f6f4f7; }
.after-school-choice-actions button.secondary:hover:not(:disabled) { background: #eeebf1; }
.after-school-choice-actions button:disabled { color: #96919b; background: #e8e6e9; cursor: default; }
.after-school-choice-actions button.study-reader-button.daily-flow-reader { color: #6d6380; border: 1px solid #d7d0e1; background: #f5f1f8; }
.after-school-choice-actions button.study-reader-button.daily-flow-reader:hover { background: #ece6f2; }
.after-school-choice-actions button.study-reader-button.daily-flow-reader[aria-pressed="true"] { color: #fff; border-color: #756290; background: #806b9c; }
.after-school-choice-note { display: block; margin-top: 9px; color: #89848d; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; text-align: right; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 26px; margin-top: 34px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin: 0 4px 16px; }
.section-heading h2, .panel-heading h2, .focus-copy h2 { margin: 5px 0 0; font-size: calc(23px * var(--fs, 1)); line-height: 1.25; }
.text-button { display: flex; align-items: center; gap: 4px; padding: 8px; border: 0; color: var(--muted); background: none; cursor: pointer; font-size: calc(14.5px * var(--fs, 1)); font-weight: 800; }
.text-button:hover { color: var(--orange-dark); }
.text-button svg { width: 16px; }
.learning-map-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(150px, 210px);
  gap: 14px;
  align-items: center;
  margin-bottom: 16px;
  padding: 15px 18px;
  border: 1px solid #eadfca;
  border-radius: 20px;
  background: linear-gradient(115deg, #fffaf0, #f5fbf8);
  box-shadow: 0 8px 24px rgba(56, 64, 79, .045);
}
.home-documentary-pick { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: 14px 0 16px; padding: 14px 15px; border: 1px solid #d6d0e8; border-radius: 20px; background: linear-gradient(115deg, #f3effb, #fff9eb 58%, #edf7f5); box-shadow: 0 7px 22px rgba(64,61,89,.055); }
.home-documentary-pick.today-done { border-color: #bcd9cf; background: linear-gradient(115deg, #eff9f4, #fffaf0 60%, #f0f5fb); }
.home-documentary-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: linear-gradient(145deg, #8b7eb7, #5b7598); font-size: calc(27px * var(--fs, 1)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); }
.home-documentary-pick.today-done .home-documentary-icon { background: linear-gradient(145deg, #70aa97, #567e83); }
.home-documentary-copy { min-width: 0; display: flex; flex-direction: column; }
.home-documentary-copy > span { color: #796f91; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.home-documentary-pick.today-done .home-documentary-copy > span { color: #4f7d70; }
.home-documentary-copy h3 { margin: 2px 0 0; overflow: hidden; color: #4d4960; font-size: calc(15px * var(--fs, 1)); line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; }
.home-documentary-copy p { margin: 3px 0 0; color: #737181; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.home-documentary-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.home-documentary-meta span { padding: 3px 7px; border: 1px solid #d8d0e5; border-radius: 99px; color: #6e6283; background: rgba(255,255,255,.76); font-size: calc(10px * var(--fs, 1)); font-weight: 900; }
.home-documentary-pick > button { min-width: 116px; min-height: 46px; padding: 0 13px; border: 0; border-radius: 12px; color: #fff; background: #74669a; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.home-documentary-pick > button:hover:not(:disabled) { background: #65588a; }
.home-documentary-pick.today-done > button { background: #5f887b; }
.home-documentary-pick > button:disabled { cursor: default; opacity: .58; }
.home-documentary-note { grid-column: 2 / -1; color: #888391; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.map-compass { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 16px; background: #fff0c9; font-size: calc(25px * var(--fs, 1)); transform: rotate(-4deg); }
.map-summary-copy, .map-summary-progress, .map-summary-progress > span { display: flex; flex-direction: column; min-width: 0; }
.map-summary-copy > span { color: #aa7624; font-size: calc(13px * var(--fs, 1)); font-weight: 950; letter-spacing: .08em; }
.map-summary-copy b { overflow: hidden; margin-top: 3px; color: var(--ink); font-size: calc(14px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.map-summary-copy small { overflow: hidden; margin-top: 4px; color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.map-compass-action { min-width: 112px; min-height: 46px; padding: 0 13px; border: 0; border-radius: 12px; color: #fff; background: #d07b3d; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.map-compass-action:hover:not(:disabled) { background: #bc6a30; }
.map-compass-action:disabled { cursor: default; opacity: .55; }
.learning-map-summary.today-settled .map-compass-action { color: #38715f; border: 1px solid #bcd8cf; background: #e8f5f0; }
.learning-map-summary.today-settled .map-compass-action:hover { background: #dceee7; }
.map-summary-progress { gap: 7px; }
.map-summary-progress > span { align-items: flex-end; }
.map-summary-progress strong { color: #35816b; font-size: calc(18px * var(--fs, 1)); line-height: 1; }
.map-summary-progress small { margin-top: 3px; color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.map-summary-progress > i { height: 7px; overflow: hidden; border-radius: 9px; background: #e3ebe6; }
.map-summary-progress em { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--mint), #80c994); transition: width .3s ease; }
.subject-grid { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.subject-grid:before { content: ""; position: absolute; z-index: 0; inset: 25% 19%; border: 3px dashed #e7d8b9; border-radius: 46%; transform: rotate(-6deg); pointer-events: none; }
.subject-card {
  min-height: 134px;
  z-index: 1;
  position: relative;
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) 30px;
  grid-template-rows: 1fr auto;
  gap: 8px 16px;
  align-items: center;
  overflow: hidden;
  padding: 19px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--paper);
  box-shadow: 0 8px 24px rgba(56, 64, 79, .055);
  cursor: pointer;
  text-align: left;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.subject-card:before { content: ""; position: absolute; width: 88px; height: 88px; right: -41px; top: -42px; border: 15px solid currentColor; border-radius: 50%; opacity: .07; }
.subject-card:hover { transform: translateY(-4px) rotate(-.25deg); box-shadow: 0 14px 30px rgba(56,64,79,.1); border-color: color-mix(in srgb, currentColor 28%, white); }
.subject-card.chinese { color: #dc6347; }
.subject-card.math { color: #3d97d3; }
.subject-card.english { color: #408f79; }
.subject-card.explore { color: #7669d1; }
.subject-card.documentary { color: #327f78; }
.subject-card.code { color: #b66543; }
.subject-card.chess { color: #424c88; }
.subject-card.chess .subject-progress em { min-width:68px; white-space:nowrap; }
.subject-icon { grid-row: 1 / 3; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; color: inherit; background: color-mix(in srgb, currentColor 13%, white); font-size: calc(26px * var(--fs, 1)); font-weight: 950; transform: rotate(-3deg); }
.subject-copy { display: flex; flex-direction: column; min-width: 0; color: var(--ink); }
.subject-copy b { font-size: calc(17px * var(--fs, 1)); }
.subject-copy small { margin-top: 6px; color: var(--muted); font-size: calc(14px * var(--fs, 1)); }
.subject-copy .subject-next { overflow: hidden; color: currentColor; font-size: calc(13.5px * var(--fs, 1)); font-weight: 850; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.subject-progress { grid-column: 2 / 4; display: flex; align-items: center; gap: 8px; }
.subject-progress i { display: block; width: 100%; height: 6px; overflow: hidden; border-radius: 9px; background: #eef0f1; }
.subject-progress i:before { content: ""; display: block; width: var(--progress); height: 100%; border-radius: inherit; background: currentColor; }
.subject-progress em { min-width: 29px; color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); font-style: normal; font-weight: 800; }
.card-arrow { width: 19px; color: #9ca6b4; }
.new-tag { position: absolute; z-index: 2; top: 8px; right: 8px; padding: 4px 8px; border-radius: 99px; color: #26826a; background: #d9f6e9; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.new-tag.math-tag { color:#246e9f; background:#dff2ff; }
.subject-card .new-tag { color: currentColor; background: color-mix(in srgb, currentColor 13%, white); }
.subject-card.today-done .new-tag { color: #28765f; background: #dff6ed; }
.subject-card.is-complete .new-tag { color: #8b6518; background: #fff0b8; }
.subject-card.daily-compass-pick { border-color: color-mix(in srgb, currentColor 48%, white); box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 12%, transparent), 0 12px 28px rgba(56,64,79,.09); }

.focus-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 18px; align-items: center; margin-top: 24px; padding: 23px 25px; border: 1px solid #dfe6fa; border-radius: var(--radius); background: linear-gradient(105deg, #f4f3ff, #f8fbff); box-shadow: 0 8px 24px rgba(77,82,138,.06); }
.focus-icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 19px; color: #fff; background: var(--purple); box-shadow: 0 6px 0 #6f64c8; }
.focus-icon svg { width: 29px; height: 29px; }
.focus-copy { min-width: 0; }
.focus-copy .section-kicker { color: #7569cf; }
.focus-copy h2 { font-size: calc(18px * var(--fs, 1)); }
.focus-copy p { margin: 6px 0 0; color: var(--muted); font-size: calc(14px * var(--fs, 1)); }
.focus-task-picker { display: flex; flex-direction: column; gap: 5px; margin-top: 11px; color: #676080; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.focus-task-picker select { width: 100%; min-height: 44px; padding: 0 34px 0 10px; border: 1px solid #d7d2eb; border-radius: 11px; color: #514a70; background: rgba(255,255,255,.88); cursor: pointer; font: inherit; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.focus-task-picker select:focus { outline: 3px solid rgba(117,105,200,.17); border-color: #a79ee0; }
.focus-task-picker select:disabled { color: #6f6981; background: #eeecf5; cursor: default; opacity: 1; }
.focus-task-hint { display: block; margin-top: 5px; color: #77718a; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.focus-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 11px; }
.focus-modes button { min-width: 0; min-height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 5px 6px; border: 1px solid #d9d5ed; border-radius: 11px; color: #6d6788; background: rgba(255,255,255,.76); cursor: pointer; }
.focus-modes button b { font-size: calc(12.5px * var(--fs, 1)); }
.focus-modes button small { margin-top: 2px; overflow: hidden; max-width: 100%; font-size: calc(12px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.focus-modes button[aria-pressed="true"] { color: #5d53ac; border-color: #a79ee0; background: #e9e5ff; box-shadow: 0 0 0 2px rgba(117,105,200,.1); }
.focus-modes button:disabled { cursor: not-allowed; opacity: .62; }
.focus-today { display: block; margin-top: 8px; color: #686284; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.timer { display: flex; flex-direction: column; align-items: center; padding: 0 20px; border-left: 1px dashed #d8d4ed; }
.timer span { font-size: calc(27px * var(--fs, 1)); line-height: 1; font-weight: 950; font-variant-numeric: tabular-nums; }
.timer small { margin-top: 6px; color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); }
.focus-actions { display: flex; flex-direction: column; gap: 7px; }
.focus-actions #focusReset { min-height: 44px; padding: 0 12px; border: 1px solid #d9d4e9; border-radius: 12px; color: #716a85; background: #fff; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.focus-actions #focusReset[hidden] { display: none; }
.secondary-button { min-width: 102px; padding: 0 16px; color: #655bb7; background: #e7e3ff; }
.secondary-button:hover { transform: translateY(-2px); background: #ddd8ff; }
.secondary-button.running { color: #a45b22; background: #ffecbd; }
.focus-rest { grid-column: 1 / -1; min-height: 62px; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 11px 12px; border: 1px solid #cde1cf; border-radius: 15px; background: #f1f9ec; }
.focus-rest[hidden] { display: none; }
.focus-rest > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #dff0d6; font-size: calc(23px * var(--fs, 1)); }
.focus-rest b { color: #4e684c; font-size: calc(13.5px * var(--fs, 1)); }
.focus-rest p { margin: 3px 0 0; color: #6c7d69; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.4; }
.focus-rest > button { min-width: 108px; min-height: 44px; padding: 0 11px; border: 1px solid #b8d4b7; border-radius: 11px; color: #4c7148; background: #e2f2d9; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.focus-task-finish { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 2px; padding-top: 11px; border-top: 1px dashed #c8dbc7; }
.focus-task-finish[hidden] { display: none; }
.focus-task-finish > div:first-child { min-width: 0; }
.focus-task-finish > div:first-child b { display: block; overflow: hidden; color: #4d654d; white-space: nowrap; text-overflow: ellipsis; }
.focus-task-finish-actions { display: flex; gap: 7px; }
.focus-task-finish-actions[hidden] { display: none; }
.focus-task-finish-actions button { min-height: 44px; padding: 0 11px; border: 1px solid #b7d3b5; border-radius: 11px; color: #416d43; background: #def0d8; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.focus-task-finish-actions #focusTaskKeep { color: #6f6b73; border-color: #d7d3da; background: #f4f2f5; }
.focus-task-finish-actions button:hover { filter: brightness(.97); }
.focus-card.is-running { border-color: #c9c2ec; box-shadow: 0 8px 24px rgba(95,83,172,.1); }
.focus-card.is-complete { border-color: #c9ddc9; background: linear-gradient(105deg, #f4faef, #fbfcff); }

.side-column { display: flex; flex-direction: column; gap: 20px; }
.task-panel, .schedule-panel, .habit-panel, .reading-shelf-panel, .daily-note-panel, .daily-spark-panel, .family-points-panel, .weekly-goal-panel, .streak-panel { padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 8px 24px rgba(56,64,79,.055); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; }
.progress-ring { --value: 0; width: 56px; height: 56px; display: grid; place-items: center; position: relative; border-radius: 50%; background: conic-gradient(var(--mint) calc(var(--value) * 1%), #e9eeeb 0); }
.progress-ring:after { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--paper); }
.progress-ring span { z-index: 1; color: #33836c; font-size: calc(13.5px * var(--fs, 1)); font-weight: 950; }
.task-plan-guide { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 14px; padding: 11px 12px; border: 1px solid #d9e5dc; border-radius: 15px; background: linear-gradient(120deg, #f2faf5, #fffaf0); }
.task-plan-guide-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #e2f1e6; font-size: calc(21px * var(--fs, 1)); }
.task-plan-guide > div { min-width: 0; }
.task-plan-guide b { display: block; color: #496954; font-size: calc(13.5px * var(--fs, 1)); }
.task-plan-guide p { margin: 3px 0 0; color: #718078; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.task-list { padding: 0; margin: 14px 0 13px; list-style: none; }
.task-list li { position: relative; border-top: 1px dashed #e9e5db; }
.task-list li.task-list-heading { min-height: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 0; border-radius: 10px; background: #f6f7f5; }
.task-list li.task-list-heading b { color: #5d6961; font-size: calc(11.5px * var(--fs, 1)); white-space: normal; }
.task-list li.task-list-heading small { margin: 0; color: #818981; font-size: calc(10.5px * var(--fs, 1)); text-align: right; }
.task-list li.personal-task-heading { margin-top: 10px; background: #f2f6fa; }
.task-list li.personal-task-heading b { color: #4f667a; }
.task-list label { min-height: 68px; display: flex; align-items: center; gap: 10px; padding-right: 61px; cursor: pointer; }
.task-list input { position: absolute; opacity: 0; pointer-events: none; }
.checkmark { width: 21px; height: 21px; display: grid; place-items: center; flex: 0 0 auto; border: 2px solid #c9d0d8; border-radius: 7px; transition: .16s ease; }
.checkmark svg { width: 14px; height: 14px; color: #fff; stroke-width: 3; opacity: 0; transform: scale(.4); transition: .16s ease; }
.task-list input:focus-visible + .checkmark { outline: 3px solid rgba(80,169,232,.28); outline-offset: 2px; }
.task-list input:checked + .checkmark { border-color: var(--mint); background: var(--mint); }
.task-list input:checked + .checkmark svg { opacity: 1; transform: scale(1); }
.task-list input:checked ~ span:last-child b { color: #97a0ac; text-decoration: line-through; }
.task-emoji { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; font-size: calc(14.5px * var(--fs, 1)); font-weight: 950; }
.math-dot { color: #2f8ac6; background: #e2f3ff; }
.english-dot { color: #31826c; background: #dff5ed; }
.chinese-dot { color: #ce583d; background: #ffe7df; }
.task-list label > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.task-list b { overflow: hidden; font-size: calc(14.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; transition: color .15s; }
.task-list small { margin-top: 4px; color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); }
.task-go { position: absolute; right: 0; top: 50%; min-height: 31px; padding: 0 8px; border: 0; border-radius: 9px; color: #b64b31; background: #ffe7df; transform: translateY(-50%); cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.task-go:hover { background: #ffd8cb; }
.task-list li.personal-task-item label { min-height: 70px; padding-right: 51px; }
.task-starter-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 9px; align-items: center; margin: 2px 0 12px; padding: 11px; border: 1px solid #ddd8ee; border-radius: 15px; background: linear-gradient(120deg, #f7f4fc, #fffaf0); }
.task-starter-card[hidden] { display: none; }
.task-starter-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #ebe5f6; font-size: calc(22px * var(--fs, 1)); }
.task-starter-copy { min-width: 0; display: flex; flex-direction: column; }
.task-starter-copy small { color: #83759b; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.task-starter-copy b { overflow: hidden; margin-top: 2px; color: #5c526c; font-size: calc(13px * var(--fs, 1)); line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.task-starter-copy p { margin: 3px 0 0; color: #7d7783; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.task-starter-card > button { grid-column: 1 / -1; min-height: 44px; border: 1px solid #c7bade; border-radius: 11px; color: #675582; background: #eee8f7; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.task-starter-card > button:hover { background: #e4daef; }
.task-starter-note { grid-column: 1 / -1; color: #8b858d; font-size: calc(10px * var(--fs, 1)); line-height: 1.4; text-align: center; }
.task-carry { margin: 10px 0 13px; padding: 11px; border: 1px solid #d5dfeb; border-radius: 14px; background: #f3f7fb; }
.task-carry[hidden] { display: none; }
.task-carry > header { display: grid; grid-template-columns: 39px minmax(0, 1fr); gap: 9px; align-items: center; }
.task-carry > header > span { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; background: #e3edf7; font-size: calc(20px * var(--fs, 1)); }
.task-carry > header div { min-width: 0; display: flex; flex-direction: column; }
.task-carry > header b { color: #4c6075; font-size: calc(13.5px * var(--fs, 1)); }
.task-carry > header small { margin-top: 2px; color: #728092; font-size: calc(12px * var(--fs, 1)); line-height: 1.4; }
.task-carry-list { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.task-carry-item { padding: 9px; border: 1px solid #dce4ec; border-radius: 12px; background: #fff; }
.task-carry-item-copy { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.task-carry-item-copy b { overflow: hidden; color: #4b5e72; font-size: calc(13px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.task-carry-item-copy small { flex: 0 0 auto; color: #718094; font-size: calc(12px * var(--fs, 1)); }
.task-carry-item-actions { display: grid; grid-template-columns: 1fr 1fr 54px; gap: 6px; margin-top: 8px; }
.task-carry-item-actions button, .task-carry-release-all { min-width: 0; min-height: 44px; padding: 0 7px; border: 1px solid #cddbe8; border-radius: 10px; color: #426c91; background: #eaf3fa; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.task-carry-item-actions button[data-release-carry-task], .task-carry-release-all { color: #746c64; border-color: #ddd8d1; background: #f7f4ef; }
.task-carry-item-actions button:disabled { color: #8793a0; background: #edf0f2; cursor: not-allowed; opacity: .8; }
.task-carry-release-all { width: 100%; margin-top: 8px; }
.personal-task-delete { position: absolute; right: 0; top: 50%; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #ead9d4; border-radius: 12px; color: #a45d4d; background: #fff5f1; transform: translateY(-50%); cursor: pointer; font-size: calc(16px * var(--fs, 1)); }
.personal-task-delete:hover { background: #ffe7df; }
.task-personal-tools { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin: 2px 0 12px; }
.task-personal-tools button { min-height: 44px; padding: 0 12px; border: 1px solid #cddceb; border-radius: 12px; color: #456f96; background: #edf6fd; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.task-personal-tools button:hover { background: #deeffb; }
.task-personal-tools button:disabled { color: #8a949e; border-color: #dde1e4; background: #f1f2f2; cursor: default; }
.task-personal-tools small { color: var(--muted); font-size: calc(12px * var(--fs, 1)); text-align: right; }
.task-undo { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -3px 0 12px; padding: 5px 6px 5px 11px; border: 1px solid #d9e7df; border-radius: 12px; color: #587166; background: #f2faf6; }
.task-undo[hidden] { display: none; }
.task-undo span { overflow: hidden; font-size: calc(12.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.task-undo button { min-width: 58px; min-height: 44px; border: 0; border-radius: 10px; color: #28765f; background: #dff3e9; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.task-cheer { display: flex; gap: 7px; margin: 0; padding: 10px 12px; border-radius: 12px; color: #7e734d; background: #fff9df; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.4; }
.task-break-card { margin-top: 11px; padding: 11px; border: 1px solid #cfe0d5; border-radius: 15px; background: linear-gradient(120deg, #f1faf4, #fffaf0); }
.task-break-card[hidden] { display: none; }
.task-break-card > header { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 9px; align-items: center; }
.task-break-card > header > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #dff0e5; font-size: calc(22px * var(--fs, 1)); }
.task-break-card > header div { min-width: 0; display: flex; flex-direction: column; }
.task-break-card > header small { color: #63806d; font-size: calc(10px * var(--fs, 1)); font-weight: 900; line-height: 1.3; }
.task-break-card > header b { overflow: hidden; margin-top: 2px; color: #4c6756; font-size: calc(13px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.task-break-card > header p { margin: 3px 0 0; color: #76847b; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.35; }
.task-break-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.task-break-choices button { min-width: 0; min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 6px 4px; border: 1px solid #d6e1d9; border-radius: 12px; color: #5b6c60; background: rgba(255,255,255,.8); cursor: pointer; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; line-height: 1.25; }
.task-break-choices button span { font-size: calc(21px * var(--fs, 1)); }
.task-break-choices button:hover, .task-break-choices button[aria-pressed="true"] { color: #3f6d51; border-color: #9fc1aa; background: #e9f5ed; }
.task-break-guide { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 9px; align-items: center; margin-top: 9px; padding: 9px; border: 1px solid #c9ded0; border-radius: 13px; background: #f4faf6; }
.task-break-guide > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: #dff0e5; font-size: calc(21px * var(--fs, 1)); }
.task-break-guide b { color: #416451; font-size: calc(12px * var(--fs, 1)); }
.task-break-guide p { margin: 3px 0 0; color: #6d7d72; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.task-break-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.task-break-actions button { min-height: 44px; padding: 0 9px; border: 0; border-radius: 11px; color: #fff; background: #659578; cursor: pointer; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.task-break-actions button.secondary { color: #69756c; border: 1px solid #d6ddd8; background: #f4f6f4; }
.task-break-actions button:hover { filter: brightness(.97); }
.task-break-note { display: block; margin-top: 8px; color: #888f89; font-size: calc(9.5px * var(--fs, 1)); line-height: 1.4; text-align: center; }

.schedule-panel { background: linear-gradient(145deg, #f7fbff, #f3f7ff); }
.schedule-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.schedule-heading h2 { margin: 2px 0 0; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.schedule-heading .section-kicker { color: #4778a8; }
.schedule-heading button { min-width: 78px; min-height: 44px; padding: 0 10px; border: 1px solid #c6dbed; border-radius: 12px; color: #346c9b; background: #e4f1fb; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.schedule-heading button:hover { background: #d7eaf8; }
.schedule-next[hidden], .reading-shelf-heading > button[hidden], .weekly-goal-heading > button[hidden] { display: none; }
.schedule-source { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 10px; margin-top: 13px; padding: 9px 11px; border: 1px solid #d7e6ef; border-radius: 12px; color: #496b83; background: #f4f9fc; }
.schedule-source[hidden] { display: none; }
.schedule-source span { font-size: calc(12px * var(--fs, 1)); font-weight: 850; }
.schedule-source b { color: #326d99; font-size: calc(12px * var(--fs, 1)); }
.schedule-day-line { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 16px; padding-top: 13px; border-top: 1px dashed #d8e3ed; }
.schedule-day-line b { color: #405d78; font-size: calc(13.5px * var(--fs, 1)); }
.schedule-day-line span { color: #74869a; font-size: calc(12.5px * var(--fs, 1)); }
.daily-weather-card { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 9px; align-items: center; margin-top: 11px; padding: 10px; border: 1px solid #d8e2eb; border-radius: 15px; background: linear-gradient(125deg, #edf7fc, #fffaf0); }
.daily-weather-card.observed { border-color: #c8dbc8; background: linear-gradient(125deg, #eff8f2, #fff9e8); }
.daily-weather-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: #deeff8; font-size: calc(25px * var(--fs, 1)); }
.daily-weather-card.observed .daily-weather-icon { background: #e4f2df; }
.daily-weather-copy { min-width: 0; display: flex; flex-direction: column; }
.daily-weather-copy small { color: #4f7894; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.daily-weather-copy b { margin-top: 1px; color: #3e5a70; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.daily-weather-copy p { margin: 2px 0 0; color: #6f8190; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.daily-weather-copy em { margin-top: 3px; color: #89939a; font-size: calc(10px * var(--fs, 1)); font-style: normal; line-height: 1.35; }
.daily-weather-card > button { min-width: 84px; min-height: 44px; padding: 0 9px; border: 1px solid #b9d3e4; border-radius: 11px; color: #3a7198; background: #e5f2fa; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.daily-weather-card > button:hover { background: #d9eaf6; }
.daily-weather-week-wrap { grid-column: 1 / -1; padding-top: 9px; border-top: 1px dashed #d7e2e7; }
.daily-weather-week-wrap > span { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 8px; }
.daily-weather-week-wrap > span b { color: #567487; font-size: calc(11.5px * var(--fs, 1)); }
.daily-weather-week-wrap > span small { color: #87949b; font-size: calc(10px * var(--fs, 1)); font-weight: 750; }
.daily-weather-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin-top: 7px; }
.daily-weather-week > span { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 5px 2px; border-radius: 10px; color: #859198; background: rgba(255,255,255,.55); }
.daily-weather-week > span small { font-size: calc(9.5px * var(--fs, 1)); font-weight: 850; }
.daily-weather-week > span i { min-height: 25px; display: grid; place-items: center; font-size: calc(20px * var(--fs, 1)); font-style: normal; line-height: 1; }
.daily-weather-week > span:not(.observed) i { color: #b5c0c5; font-size: calc(17px * var(--fs, 1)); }
.daily-weather-week > span.observed { color: #477089; background: #e9f4f8; }
.daily-weather-week > span.today { outline: 2px solid #e9c866; outline-offset: 1px; }
.schedule-empty { margin: 10px 0 0; color: #718398; font-size: calc(13px * var(--fs, 1)); line-height: 1.5; }
.schedule-empty[hidden] { display: none; }
.schedule-next { margin-top: 14px; padding: 11px 12px; border: 1px solid #d9e5ef; border-radius: 13px; background: rgba(255,255,255,.78); }
.schedule-next > span { display: flex; align-items: center; gap: 6px; color: #48657f; }
.schedule-next > span i { font-size: calc(17px * var(--fs, 1)); font-style: normal; }
.schedule-next > span b { font-size: calc(13px * var(--fs, 1)); }
.schedule-next p { margin: 6px 0 0; color: #718398; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.5; }
.schoolbag-helper { margin-top: 11px; padding-top: 11px; border-top: 1px dashed #d8e3ed; }
.schoolbag-helper-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #46647f; }
.schoolbag-helper-heading span { font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.schoolbag-helper-heading b { padding: 3px 7px; border-radius: 8px; color: #366e9c; background: #e7f3fb; font-size: calc(12px * var(--fs, 1)); }
.schoolbag-progress-track { height: 8px; overflow: hidden; margin-top: 8px; border-radius: 99px; background: #e1eaf0; }
.schoolbag-progress-track i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #4b91c2, #5eb99b); transition: width .2s ease; }
.schoolbag-helper small { display: block; margin-top: 8px; color: #6d8092; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.45; }
.schoolbag-helper button { width: 100%; min-height: 44px; margin-top: 9px; border: 1px solid #bcd6e9; border-radius: 11px; color: #316e9e; background: #e5f2fb; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.schoolbag-helper button:hover { background: #d8ebf8; }
.schoolbag-helper.complete .schoolbag-helper-heading b { color: #28755f; background: #ddf3ea; }
.schoolbag-helper.complete .schoolbag-progress-track i { background: #50a98c; }
.schoolbag-helper.complete button { color: #28755f; border-color: #b9dfd2; background: #e5f6ef; }

.habit-panel { background: linear-gradient(145deg, #f9fffc, #f2fbf7); }
.habit-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.habit-heading h2 { margin-top: 2px; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.habit-heading button { min-width: 58px; min-height: 44px; padding: 0 11px; border: 1px solid #bfe4d7; border-radius: 12px; color: #28765f; background: #e5f7f0; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.habit-heading button:hover { background: #d8f2e8; }
.habit-progress-copy { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 16px; }
.habit-progress-copy b { color: #315f54; font-size: calc(13.5px * var(--fs, 1)); }
.habit-progress-copy span { color: #6b7f79; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.habit-progress-track { height: 9px; overflow: hidden; margin-top: 8px; border-radius: 99px; background: #dfece7; }
.habit-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #5fbea1, #e9b84e); transition: width .22s ease; }
.habit-next-cue { display: grid; grid-template-columns: 43px minmax(0, 1fr) auto; gap: 9px; align-items: center; margin-top: 12px; padding: 10px; border: 1px solid #c7dfd5; border-radius: 15px; background: linear-gradient(120deg, #edf9f4, #fff9e9); }
.habit-next-cue.complete { border-color: #e5d395; background: linear-gradient(120deg, #fff8dc, #f1faed); }
.habit-next-cue-icon { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 14px; background: #dff2ea; font-size: calc(23px * var(--fs, 1)); }
.habit-next-cue.complete .habit-next-cue-icon { background: #fff0b8; }
.habit-next-cue-copy { min-width: 0; display: flex; flex-direction: column; }
.habit-next-cue-copy small { color: #568474; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.habit-next-cue-copy b { margin-top: 2px; color: #34584d; font-size: calc(13px * var(--fs, 1)); line-height: 1.35; }
.habit-next-cue-copy p { margin: 3px 0 0; color: #70817a; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.habit-next-cue-actions { display: grid; gap: 6px; min-width: 96px; }
.habit-next-cue button { min-width: 90px; min-height: 44px; padding: 0 9px; border: 1px solid #acd4c5; border-radius: 11px; color: #2f725c; background: #dff3ea; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-next-cue button:hover { background: #d1ebdf; }
.habit-next-cue button[hidden] { display: none; }
.habit-next-cue button.study-reader-button { min-width: 90px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: #547468; border-color: #c8dcd4; background: #f4faf7; }
.habit-next-cue button.study-reader-button:hover { background: #e8f5f0; }
.habit-next-cue button.study-reader-button[aria-pressed="true"] { color: #fff; border-color: #66927f; background: #6d9b87; }
.habit-next-cue button.study-reader-button span { font-size: calc(15px * var(--fs, 1)); }
.habit-next-cue button.study-reader-button b { font: inherit; }
.habit-next-cue > .study-reader-status { grid-column: 2 / -1; }
.habit-anchor-card { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 11px; padding: 11px; border: 1px solid #d8d4e8; border-radius: 16px; background: linear-gradient(135deg, #f8f5ff, #fffaf0); }
.habit-anchor-card.waiting { border-style: dashed; background: linear-gradient(135deg, #faf9fc, #fffdf7); }
.habit-anchor-card.complete { border-color: #c8d99e; background: linear-gradient(135deg, #f1f8df, #fff8dd); }
.habit-anchor-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #ebe6f5; font-size: calc(24px * var(--fs, 1)); }
.habit-anchor-card.complete .habit-anchor-icon { background: #e3efbd; }
.habit-anchor-copy { min-width: 0; display: flex; flex-direction: column; }
.habit-anchor-copy small { color: #7a6f94; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-anchor-copy b { margin-top: 2px; color: #514b65; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.habit-anchor-copy p { margin: 3px 0 0; color: #716d79; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.habit-anchor-copy em { margin-top: 4px; color: #8a8490; font-size: calc(10.5px * var(--fs, 1)); font-style: normal; line-height: 1.4; }
.habit-anchor-actions { display: grid; gap: 6px; }
.habit-anchor-actions button { min-width: 88px; min-height: 44px; padding: 0 9px; border: 1px solid #c7bddb; border-radius: 11px; color: #6c568f; background: #f1ecf8; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-anchor-actions #startHabitAnchor { color: #356f5d; border-color: #a9d2c4; background: #e3f4ed; }
.habit-anchor-actions button:hover { filter: brightness(.97); }
.habit-anchor-actions button[hidden] { display: none; }
.habit-secret-card { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 11px; padding: 11px; border: 1px dashed #d8c998; border-radius: 16px; background: linear-gradient(135deg, #fffaf0, #f4f7ff); }
.habit-secret-card[hidden], .habit-secret-body[hidden], .habit-secret-reveal[hidden] { display: none; }
.habit-secret-card[data-opened="true"] { border-style: solid; border-color: #d5bd6d; background: linear-gradient(135deg, #fff6d8, #eef8f3); }
.habit-secret-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #fff0bd; font-size: calc(24px * var(--fs, 1)); }
.habit-secret-heading { min-width: 0; display: flex; flex-direction: column; }
.habit-secret-heading small { color: #8b7134; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-secret-heading b { margin-top: 2px; color: #5d5137; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.4; }
.habit-secret-heading p { margin: 3px 0 0; color: #7c7568; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.habit-secret-reveal { min-width: 98px; min-height: 44px; padding: 0 10px; border: 1px solid #dbc376; border-radius: 11px; color: #806323; background: #fff0bc; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-secret-reveal:hover { background: #ffe9a3; }
.habit-secret-body { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; padding-top: 10px; border-top: 1px dashed #ddcf9f; }
.habit-secret-body > p { grid-column: 1 / -1; margin: 0; color: #5f5d54; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.55; }
.habit-secret-body > p strong { color: #806828; }
.habit-secret-body > div { min-width: 0; padding: 9px 10px; border-radius: 12px; background: rgba(255,255,255,.72); }
.habit-secret-body > div small { display: block; color: #668474; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-secret-body > div b { display: block; margin-top: 3px; color: #586d63; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.5; }
.habit-secret-body > button { min-width: 106px; min-height: 44px; padding: 0 10px; border: 1px solid #add1c3; border-radius: 11px; color: #346f5d; background: #e3f3ed; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-secret-body > button:hover { background: #d6ede4; }
.habit-secret-body > button.habit-secret-reader { grid-column: 1 / -1; width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: #665682; border-color: #c9bade; background: #f1eaf8; }
.habit-secret-body > button.habit-secret-reader:hover { background: #e8ddf2; }
.habit-secret-body > button.habit-secret-reader[aria-pressed="true"] { color: #fff; border-color: #796499; background: #826ba3; }
.habit-secret-reader span { font-size: calc(15px * var(--fs, 1)); }
.habit-secret-reader b { font: inherit; }
.habit-secret-reader-status { grid-column: 1 / -1; margin-top: -2px!important; color: #81788b!important; }
.habit-secret-note { grid-column: 1 / -1; color: #868076; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.habit-reflection-card { margin-top: 12px; padding: 12px; border: 1px solid #cfdcc7; border-radius: 17px; background: linear-gradient(135deg, #f3faed, #fff9e8); }
.habit-reflection-card[hidden], .habit-reflection-choices[hidden], .habit-reflection-heading > button[hidden], .habit-reflection-clear[hidden] { display: none; }
.habit-reflection-card[data-mode="recorded"] { border-color: #ddc678; background: linear-gradient(135deg, #fff7d8, #eef8ec); }
.habit-reflection-card[data-mode="memory"] { border-style: dashed; border-color: #d7d2c1; background: linear-gradient(135deg, #faf8f0, #f4f7f2); }
.habit-reflection-heading { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.habit-reflection-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #e4f0d8; font-size: calc(24px * var(--fs, 1)); }
.habit-reflection-card[data-mode="recorded"] .habit-reflection-icon { background: #fff0b7; }
.habit-reflection-copy { min-width: 0; display: flex; flex-direction: column; }
.habit-reflection-copy small { color: #69815e; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-reflection-copy b { margin-top: 2px; color: #4f6149; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.4; }
.habit-reflection-copy p { margin: 3px 0 0; color: #727b6d; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.habit-reflection-heading > button, .habit-reflection-clear { min-height: 44px; padding: 0 11px; border: 1px solid #c7bb8e; border-radius: 11px; color: #776225; background: #fff2c7; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-reflection-heading > button:hover, .habit-reflection-clear:hover { background: #ffe9ae; }
.habit-reflection-choices { display: grid; gap: 10px; margin-top: 11px; padding-top: 11px; border-top: 1px dashed #d3ddcc; }
.habit-reflection-choices fieldset { min-width: 0; padding: 0; border: 0; }
.habit-reflection-choices legend { margin-bottom: 6px; color: #6f796a; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-reflection-habits, .habit-reflection-strategies { display: grid; gap: 7px; }
.habit-reflection-habits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.habit-reflection-strategies { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.habit-reflection-habits button, .habit-reflection-strategies button { min-width: 0; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 6px 8px; border: 1px solid #cedac8; border-radius: 11px; color: #5b6c54; background: rgba(255,255,255,.8); cursor: pointer; font-size: calc(11px * var(--fs, 1)); font-weight: 900; line-height: 1.3; }
.habit-reflection-habits button:hover, .habit-reflection-strategies button:hover { border-color: #9dbd91; background: #f1f8eb; }
.habit-reflection-habits button[aria-pressed="true"], .habit-reflection-strategies button[aria-pressed="true"] { color: #356f5b; border-color: #7eb79e; background: #dcf1e7; box-shadow: 0 0 0 2px rgba(93,164,136,.12); }
.habit-reflection-habits button span, .habit-reflection-strategies button span { flex: 0 0 auto; font-size: calc(16px * var(--fs, 1)); }
.habit-reflection-clear { justify-self: start; color: #7b6f62; border-color: #d8cdc0; background: #faf7f1; }
.habit-reflection-note { display: block; margin-top: 9px; color: #81867d; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.habit-method-pocket { margin-top: 12px; padding: 12px; border: 1px solid #d7cde0; border-radius: 17px; background: linear-gradient(135deg, #faf5ff, #fff9e9); }
.habit-method-pocket[hidden] { display: none; }
.habit-method-pocket-heading { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: center; }
.habit-method-pocket-heading > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #eee4f4; font-size: calc(24px * var(--fs, 1)); }
.habit-method-pocket-heading > div { min-width: 0; display: flex; flex-direction: column; }
.habit-method-pocket-heading small { color: #806f8d; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.habit-method-pocket-heading b { margin-top: 2px; color: #5c5164; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.4; }
.habit-method-pocket-heading p { margin: 3px 0 0; color: #786f7b; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.habit-method-pocket-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin-top: 11px; }
.habit-method-pocket-days span { min-width: 0; min-height: 51px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: 1px dashed #ded8e2; border-radius: 11px; color: #938c96; background: rgba(255,255,255,.62); }
.habit-method-pocket-days span.filled { color: #675873; border-style: solid; border-color: #cbb8d8; background: #f2e9f7; }
.habit-method-pocket-days span.today { box-shadow: inset 0 0 0 2px rgba(103,151,128,.2); }
.habit-method-pocket-days span.today.filled { border-color: #8fb9a4; background: #e9f5ef; }
.habit-method-pocket-days small { font-size: calc(9.5px * var(--fs, 1)); font-weight: 950; }
.habit-method-pocket-days i { font-size: calc(18px * var(--fs, 1)); font-style: normal; line-height: 1; }
.habit-method-pocket-note { display: block; margin-top: 8px; color: #89838c; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.habit-list { padding: 0; margin: 12px 0 5px; list-style: none; }
.habit-list li { border-top: 1px dashed #dcebe5; }
.habit-list label { min-height: 62px; display: grid; grid-template-columns: 26px 37px minmax(0, 1fr); align-items: center; gap: 9px; cursor: pointer; }
.habit-list input { position: absolute; opacity: 0; pointer-events: none; }
.habit-check { width: 24px; height: 24px; display: grid; place-items: center; border: 2px solid #b9cfc7; border-radius: 8px; background: #fff; transition: .16s ease; }
.habit-check svg { width: 15px; height: 15px; color: #fff; opacity: 0; transform: scale(.5); transition: .16s ease; }
.habit-list input:focus-visible + .habit-check { outline: 3px solid rgba(80,169,140,.28); outline-offset: 2px; }
.habit-list input:checked + .habit-check { border-color: #50a98c; background: #50a98c; }
.habit-list input:checked + .habit-check svg { opacity: 1; transform: scale(1); }
.habit-emoji { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 12px; background: #e8f6f1; font-size: calc(20px * var(--fs, 1)); }
.habit-copy { display: flex; flex-direction: column; min-width: 0; }
.habit-copy b { overflow: hidden; color: #354e48; font-size: calc(14px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.habit-copy small { margin-top: 3px; color: #75847f; font-size: calc(12.5px * var(--fs, 1)); }
.habit-list input:checked ~ .habit-copy b { color: #84948e; text-decoration: line-through; }
.habit-part-row { padding: 10px 0 11px; }
.habit-part-main { min-height: 44px; display: grid; grid-template-columns: 26px 37px minmax(0, 1fr); align-items: center; gap: 9px; }
.habit-part-row.complete .habit-check { border-color: #50a98c; background: #50a98c; }
.habit-part-row.complete .habit-check svg { opacity: 1; transform: scale(1); }
.habit-part-row.complete .habit-copy b { color: #84948e; text-decoration: line-through; }
.habit-part-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 8px 0 0 72px; }
.habit-part-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; border: 1px solid #bfd8cf; border-radius: 12px; color: #477166; background: #fff; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.habit-part-button:hover { border-color: #83bea9; background: #edf8f4; }
.habit-part-button.done { color: #27735b; border-color: #8bc9b2; background: #dcf2e9; }
.habit-part-button.waiting { color: #858e8b; border-style: dashed; background: #f7faf9; }
.habit-part-button:disabled { cursor: default; opacity: .78; }
.habit-part-button span { font-size: calc(15px * var(--fs, 1)); }
.habit-part-button:focus-visible { outline: 3px solid rgba(80,169,140,.28); outline-offset: 2px; }
.habit-part-note { display: block; margin: 7px 0 0 72px; color: #788a84; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.habit-care-lights { margin-top: 13px; padding: 12px; border: 1px solid #d8d8e6; border-radius: 17px; background: linear-gradient(135deg, #f8f5fc, #fffaf0 58%, #edf8f3); }
.habit-care-lights.complete { border-color: #dfc977; background: linear-gradient(135deg, #fff8d9, #f2faed); }
.habit-care-lights-heading { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 9px; align-items: center; }
.habit-care-lights-heading > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: #ebe6f3; font-size: calc(25px * var(--fs, 1)); }
.habit-care-lights.complete .habit-care-lights-heading > span { background: #fff0b7; }
.habit-care-lights-heading > div { min-width: 0; display: flex; flex-direction: column; }
.habit-care-lights-heading small { color: #807596; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.habit-care-lights-heading b { margin-top: 1px; color: #514b64; font-size: calc(14px * var(--fs, 1)); line-height: 1.35; }
.habit-care-lights-heading p { margin: 2px 0 0; color: #777383; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.habit-care-light-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.habit-care-light { min-width: 0; min-height: 78px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 7px 4px; border: 1px solid #d8d3e3; border-radius: 13px; color: #686174; background: rgba(255,255,255,.76); cursor: pointer; }
.habit-care-light:hover:not(:disabled) { border-color: #aaa0c3; background: #f5f0fb; }
.habit-care-light > span { font-size: calc(22px * var(--fs, 1)); filter: grayscale(.45); opacity: .78; }
.habit-care-light b { overflow: hidden; max-width: 100%; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.3; white-space: nowrap; text-overflow: ellipsis; }
.habit-care-light small { color: #8a8491; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.3; }
.habit-care-light.partial { border-color: #dbc98e; background: #fff9e7; }
.habit-care-light.partial > span { filter: grayscale(.1); opacity: 1; }
.habit-care-light.waiting { color: #77727f; border-style: dashed; background: #faf8fc; }
.habit-care-light.lit { color: #417461; border-color: #9fd1be; background: #e2f4ec; box-shadow: 0 0 0 2px rgba(95,190,161,.08); }
.habit-care-light.lit > span { filter: none; opacity: 1; }
.habit-care-light.lit small { color: #3d7962; font-weight: 900; }
.habit-care-light.inactive { color: #9a979e; border-style: dashed; background: rgba(246,246,246,.65); }
.habit-care-light:disabled { cursor: default; opacity: 1; }
.habit-care-light:focus-visible { outline: 3px solid rgba(127,116,163,.25); outline-offset: 2px; }
.habit-care-lights-note { display: block; margin-top: 8px; color: #7d7786; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.habit-week-wrap { margin-top: 13px; padding-top: 13px; border-top: 1px dashed #cfe3dc; }
.habit-week-wrap > span { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 7px; color: #596f68; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.habit-week-wrap > span small { color: #83938d; font-size: calc(10.5px * var(--fs, 1)); font-weight: 750; }
.habit-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; margin-top: 9px; }
.habit-day { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.habit-day span { color: #73847e; font-size: calc(12px * var(--fs, 1)); }
.habit-day i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #d5e4df; border-radius: 9px; color: #98a7a2; background: rgba(255,255,255,.75); font-size: calc(12px * var(--fs, 1)); font-style: normal; font-weight: 900; }
.habit-day.some i { color: #31745f; border-color: #a9d9c9; background: #e1f5ee; }
.habit-day.done i { color: #fff; border-color: #50a98c; background: #50a98c; }
.habit-day.today i { outline: 2px solid #f0c75e; outline-offset: 2px; }
.habit-garden { display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 12px; align-items: center; margin-top: 14px; padding: 12px; border: 1px solid #cde4d8; border-radius: 16px; background: linear-gradient(135deg, #f4fbf7, #fffbea); }
.habit-garden-plant { position: relative; width: 66px; height: 78px; display: grid; place-items: center; overflow: hidden; border-radius: 19px; background: linear-gradient(#e8f7ff 0 58%, #d8ebca 58%); }
.habit-garden-plant span { position: relative; z-index: 1; margin-top: -6px; font-size: calc(36px * var(--fs, 1)); filter: drop-shadow(0 4px 3px rgba(63,97,66,.12)); }
.habit-garden-plant i { position: absolute; right: -8px; bottom: -14px; left: -8px; height: 36px; border-radius: 50% 50% 0 0; background: #a7ce91; }
.habit-garden-copy { min-width: 0; display: flex; flex-direction: column; }
.habit-garden-copy > small { color: #5c8877; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.habit-garden-copy > b { margin-top: 2px; color: #345b4d; font-size: calc(14px * var(--fs, 1)); line-height: 1.35; }
.habit-garden-copy > p { margin: 3px 0 0; color: #687c74; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.habit-garden-copy > em { margin-top: 6px; color: #7d8067; font-size: calc(11.5px * var(--fs, 1)); font-style: normal; line-height: 1.4; }
.habit-garden-milestones { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin-top: 8px; }
.habit-garden-milestones span { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 3px; padding: 4px 2px; border: 1px dashed #cfdbcd; border-radius: 8px; color: #8a948d; background: rgba(255,255,255,.64); font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.habit-garden-milestones i { font-style: normal; }
.habit-garden-milestones span.done { color: #2f755f; border-style: solid; border-color: #9fd3bf; background: #e0f4eb; }
.habit-garden-milestones span.next { color: #856925; border-color: #dec67c; background: #fff5d4; }
.habit-cheer { display: flex; gap: 7px; margin: 13px 0 0; padding: 10px 12px; border-radius: 12px; color: #587168; background: rgba(255,255,255,.78); font-size: calc(13px * var(--fs, 1)); line-height: 1.45; }

.reading-shelf-panel { background: linear-gradient(145deg, #f7fbff, #fffaf0); }
.reading-shelf-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.reading-shelf-heading .section-kicker { color: #5981a0; font-size: calc(12.5px * var(--fs, 1)); }
.reading-shelf-heading h2 { margin: 2px 0 0; color: #465e72; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.reading-shelf-heading > button { min-height: 44px; padding: 0 10px; border: 1px solid #bfd2df; border-radius: 11px; color: #53778f; background: #edf7fc; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.reading-shelf-empty { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 14px; padding: 13px; border: 1px dashed #bfd4e1; border-radius: 16px; background: rgba(255,255,255,.72); }
.reading-shelf-empty[hidden], .reading-shelf-active[hidden] { display: none; }
.reading-shelf-empty > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 16px; background: #e5f1f8; font-size: calc(26px * var(--fs, 1)); }
.reading-shelf-empty div { min-width: 0; }
.reading-shelf-empty b { color: #4d6475; font-size: calc(14px * var(--fs, 1)); }
.reading-shelf-empty p { margin: 3px 0 0; color: #748390; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.reading-shelf-empty button { grid-column: 1 / -1; min-height: 46px; border: 0; border-radius: 12px; color: #fff; background: #5d89a5; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.reading-shelf-active { margin-top: 13px; }
.reading-current-book { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid #c9dbe6; border-radius: 16px; background: rgba(255,255,255,.78); }
.reading-book-cover { width: 50px; height: 58px; display: grid; place-items: center; border-radius: 8px 15px 15px 8px; background: linear-gradient(135deg, #d9ecf7, #ece3f4); box-shadow: inset 5px 0 rgba(75,112,139,.1); font-size: calc(27px * var(--fs, 1)); }
.reading-book-copy { min-width: 0; display: flex; flex-direction: column; }
.reading-book-copy small { color: #698ba2; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.reading-book-copy b { overflow: hidden; margin-top: 2px; color: #465d70; font-size: calc(15px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.reading-book-copy p { overflow: hidden; margin: 3px 0 0; color: #7b8790; font-size: calc(11.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.reading-current-book > button { min-height: 44px; padding: 0 9px; border: 1px solid #c7d8e2; border-radius: 10px; color: #5b788d; background: #f5fafc; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 900; }
.reading-book-progress { margin-top: 10px; }
.reading-book-progress > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.reading-book-progress b { color: #526979; font-size: calc(12.5px * var(--fs, 1)); }
.reading-book-progress small { color: #86929a; font-size: calc(10.5px * var(--fs, 1)); }
.reading-book-progress > div:last-child { height: 7px; overflow: hidden; margin-top: 7px; border-radius: 99px; background: #dfe8ed; }
.reading-book-progress i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #6b9bb8, #8f82bd); }
.reading-detective-card { margin-top: 11px; padding: 12px; border: 1px dashed #b8cce0; border-radius: 16px; background: linear-gradient(135deg, #eef8ff, #f8f2ff); transition: border-color .18s ease, background .18s ease; }
.reading-detective-card[hidden] { display: none; }
.reading-detective-card.is-revealed { border-style: solid; border-color: #9ebbd3; background: linear-gradient(135deg, #e8f6ff, #f5efff); }
.reading-detective-card.is-ready { border-color: #9bc7b6; background: linear-gradient(135deg, #edf9f4, #f8f5ff); }
.reading-detective-heading { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.reading-detective-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: #fff; box-shadow: 0 5px 14px rgba(73,102,129,.1); font-size: calc(23px * var(--fs, 1)); }
.reading-detective-heading > div { min-width: 0; display: flex; flex-direction: column; }
.reading-detective-heading small { color: #6988a0; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.reading-detective-heading b { margin-top: 2px; color: #4e6177; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.reading-detective-heading p { margin: 3px 0 0; color: #798898; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.reading-detective-heading > button { min-height: 46px; padding: 0 11px; border: 1px solid #9ebbd3; border-radius: 11px; color: #55758f; background: rgba(255,255,255,.86); cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.reading-detective-body { margin-top: 11px; padding: 11px 12px; border-radius: 13px; background: rgba(255,255,255,.84); }
.reading-detective-body[hidden] { display: none; }
.reading-detective-body > span { display: inline-flex; align-items: center; min-height: 29px; padding: 4px 9px; border-radius: 999px; color: #526e88; background: #e6f1fa; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.reading-detective-body > p { margin: 8px 0 0; color: #465d70; font-size: calc(13px * var(--fs, 1)); font-weight: 900; line-height: 1.55; }
.reading-detective-body > small { display: block; margin-top: 6px; color: #74838f; font-size: calc(11px * var(--fs, 1)); line-height: 1.5; }
.reading-detective-actions { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 8px; margin-top: 10px; }
.reading-detective-actions button { min-height: 46px; padding: 6px 10px; border: 1px solid #b8ccdb; border-radius: 11px; color: #55758c; background: #f2f8fc; cursor: pointer; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; }
.reading-detective-actions #startReadingDetective { color: #fff; border-color: #6d91aa; background: #6d91aa; }
.reading-detective-actions #startReadingDetective:disabled { color: #527363; border-color: #aad0bf; background: #dff2ea; cursor: default; }
.reading-detective-reader-status { margin-top: 7px!important; color: #718391!important; }
.reading-detective-note { display: block; margin-top: 8px; color: #7e8d98; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.reading-today { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 11px; padding: 11px 12px; border: 1px solid #e4d6b9; border-radius: 14px; background: #fffaf0; }
.reading-today > div { min-width: 0; display: flex; flex-direction: column; }
.reading-today small { color: #9a7943; font-size: calc(10.5px * var(--fs, 1)); font-weight: 950; }
.reading-today b { margin-top: 2px; color: #67573e; font-size: calc(13.5px * var(--fs, 1)); }
.reading-today p { margin: 3px 0 0; color: #837965; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.reading-today > button { min-height: 46px; padding: 0 11px; border: 0; border-radius: 11px; color: #fff; background: #90703c; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.reading-habit-sync { width: 100%; min-height: 46px; margin-top: 9px; border: 1px solid #9cc9b7; border-radius: 12px; color: #34735d; background: #e2f4ed; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.reading-habit-sync[hidden] { display: none; }
.reading-shelf-mini { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 10px; }
.reading-shelf-mini > span { color: #70828e; font-size: calc(11px * var(--fs, 1)); font-weight: 900; white-space: nowrap; }
.reading-shelf-mini > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.reading-mini-book { min-width: 28px; min-height: 32px; display: grid; place-items: center; padding: 3px 6px; border: 1px solid #c9d8e2; border-radius: 6px 9px 9px 6px; color: #637e91; background: #eef6fa; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.reading-mini-book.is-active { color: #fff; border-color: #678da8; background: #6d93ad; }
.reading-mini-book.is-finished { color: #7d6f42; border-color: #dfce91; background: #fff5ce; }
.reading-shelf-privacy { display: block; margin-top: 10px; color: #899199; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; }
.reading-shelf-dialog, .reading-log-dialog { width: min(620px, calc(100% - 30px)); max-height: calc(100vh - 24px); overflow: auto; }
.reading-shelf-list { display: grid; gap: 8px; margin-top: 16px; text-align: left; }
.reading-shelf-dialog-empty { margin: 0!important; padding: 12px; border: 1px dashed #cbdce5; border-radius: 12px; color: #758792!important; background: #f6fafc; font-size: calc(12.5px * var(--fs, 1))!important; text-align: center!important; }
.reading-shelf-row { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 9px; align-items: center; padding: 10px; border: 1px solid #d6e0e6; border-radius: 13px; background: #fff; }
.reading-shelf-row > span { width: 38px; height: 43px; display: grid; place-items: center; border-radius: 6px 10px 10px 6px; background: #e9f3f8; font-size: calc(20px * var(--fs, 1)); }
.reading-shelf-row.is-active { border-color: #8eb4ca; background: #f1f9fc; }
.reading-shelf-row.is-finished { border-color: #e4d7a8; background: #fffaf0; }
.reading-shelf-row-copy { min-width: 0; display: flex; flex-direction: column; }
.reading-shelf-row-copy b { overflow: hidden; color: #4d6272; font-size: calc(13.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.reading-shelf-row-copy small { margin-top: 3px; color: #7e8a92; font-size: calc(11px * var(--fs, 1)); }
.reading-shelf-row-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.reading-shelf-row-actions button { min-height: 44px; padding: 5px 7px; border: 1px solid #c9d9e3; border-radius: 10px; color: #607b8d; background: #f4f9fb; cursor: pointer; font-size: calc(11px * var(--fs, 1)); font-weight: 900; }
.reading-shelf-row-actions button.danger-soft { color: #9a5a4e; border-color: #edcfc8; background: #fff2ef; }
.reading-shelf-status, .reading-log-error { min-height: 20px; margin: 8px 0 0!important; color: #9b594d!important; font-size: calc(12px * var(--fs, 1))!important; font-weight: 850; text-align: left!important; }
.reading-book-form { display: grid; gap: 9px; margin-top: 13px; padding: 13px; border: 1px solid #d7e1e7; border-radius: 15px; background: #f7fafb; text-align: left; }
.reading-book-form > b { color: #526a7a; font-size: calc(13.5px * var(--fs, 1)); }
.reading-book-form label, .reading-page-field { display: flex; flex-direction: column; gap: 5px; color: #677986; font-size: calc(11.5px * var(--fs, 1)); font-weight: 900; text-align: left; }
.reading-book-form input, .reading-page-field input { width: 100%; height: 46px; padding: 0 11px; border: 1px solid #cbd8df; border-radius: 11px; color: var(--ink); background: #fff; font-size: calc(13px * var(--fs, 1)); }
.reading-book-form input:focus, .reading-page-field input:focus { border-color: #6f9cb7; outline: 3px solid rgba(95,144,174,.16); }
.reading-book-form > button { min-height: 46px; border: 0; border-radius: 11px; color: #fff; background: #668ca5; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.reading-book-form[hidden] { display: none; }
.reading-shelf-limit { display: block; margin-top: 7px; color: #7e8c95; font-size: calc(11px * var(--fs, 1)); text-align: center; }
.reading-minute-choices { padding: 0; margin: 17px 0 0; border: 0; text-align: left; }
.reading-minute-choices legend { color: #586d7c; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.reading-minute-choices > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.reading-minute-choices button { min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #c9d9e2; border-radius: 12px; color: #52758b; background: #f2f8fb; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.reading-minute-choices button small { margin-top: 2px; color: #84929b; font-size: calc(10.5px * var(--fs, 1)); }
.reading-minute-choices button[aria-pressed="true"] { border-color: #6c99b3; background: #dfeff7; box-shadow: inset 0 0 0 1px #6c99b3; }
.reading-page-field { margin-top: 13px; }
.reading-page-field small, .reading-log-note { margin-top: 2px; color: #858f95; font-size: calc(10.5px * var(--fs, 1)); font-weight: 700; line-height: 1.4; }
.reading-log-note { display: block; text-align: left; }

.daily-note-panel { background: linear-gradient(145deg, #fff9f1, #f7f3ff); }
.daily-note-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.daily-note-heading .section-kicker { color: #9a6b7d; font-size: calc(12.5px * var(--fs, 1)); }
.daily-note-heading h2 { margin: 2px 0 0; color: #5c4f67; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.daily-note-heading > span { width: 45px; height: 45px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 15px; background: #f3e2ed; font-size: calc(24px * var(--fs, 1)); transform: rotate(3deg); }
.daily-note-prompt { display: flex; flex-direction: column; margin: 14px 0 0; padding: 12px 13px; border: 1px solid #e8d8ea; border-radius: 14px; background: rgba(255,255,255,.76); }
.daily-note-prompt span { color: #a06f84; font-size: calc(11.5px * var(--fs, 1)); font-weight: 950; letter-spacing: .06em; }
.daily-note-prompt b { margin-top: 4px; color: #5c5367; font-size: calc(14px * var(--fs, 1)); line-height: 1.45; }
.daily-note-editor { margin-top: 12px; }
.daily-note-editor[hidden], .daily-note-view[hidden] { display: none; }
.daily-note-starters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.daily-note-starters button { min-width: 0; min-height: 44px; padding: 0 7px; border: 1px solid #dfd4e8; border-radius: 11px; color: #745f84; background: #f8f2fc; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.daily-note-starters button:hover { background: #eee3f6; }
.daily-note-starters button:disabled { cursor: default; opacity: .55; }
.daily-note-input-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 11px; }
.daily-note-input-heading label { color: #6b6174; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.daily-note-input-heading button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 11px; border: 1px solid #d7c6df; border-radius: 11px; color: #755d82; background: #f4eaf8; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.daily-note-input-heading button[hidden] { display: none; }
.daily-note-input-heading button[aria-pressed="true"] { color: #fff; border-color: #9a6d8c; background: #a67595; box-shadow: 0 0 0 3px rgba(166,117,149,.14); }
.daily-note-input-heading button[aria-pressed="true"] span { animation: daily-note-listening 1s ease-in-out infinite alternate; }
.daily-note-editor textarea { width: 100%; min-height: 86px; resize: vertical; margin-top: 6px; padding: 10px 11px; border: 1px solid #ddd4e4; border-radius: 12px; color: var(--ink); background: rgba(255,255,255,.9); font: inherit; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.55; }
.daily-note-editor textarea:focus { outline: 3px solid rgba(159,111,140,.16); border-color: #c29db4; }
.daily-note-editor textarea[readonly] { color: #63576b; background: #f6f1f7; }
.daily-note-voice-privacy { display: block; margin-top: 5px; color: #8b8190; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.daily-note-voice-privacy[hidden] { display: none; }
.daily-note-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.daily-note-actions small { color: #82798a; font-size: calc(11.5px * var(--fs, 1)); }
.daily-note-actions button { min-height: 44px; padding: 0 13px; border: 0; border-radius: 11px; color: #fff; background: #9873a7; box-shadow: 0 4px 0 #795b87; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.daily-note-actions button:hover { background: #896599; }
.daily-note-actions button:active { box-shadow: 0 2px 0 #795b87; transform: translateY(2px); }
.daily-note-actions button:disabled { cursor: default; opacity: .55; box-shadow: none; transform: none; }
#dailyNoteStatus { min-height: 18px; margin: 7px 0 0; color: #7d6c83; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.4; }
.daily-note-week-wrap { margin-top: 13px; padding-top: 12px; border-top: 1px dashed #dfd6e2; }
.daily-note-week-wrap > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.daily-note-week-wrap span { color: #675e70; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.daily-note-week-wrap small { color: #8a8290; font-size: calc(11.5px * var(--fs, 1)); }
.daily-note-week { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }
.daily-note-day { min-width: 0; min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 4px 3px; border: 1px solid #e1dae5; border-radius: 11px; color: #8a8290; background: rgba(255,255,255,.7); cursor: pointer; }
.daily-note-day span { color: inherit; font-size: calc(11.5px * var(--fs, 1)); }
.daily-note-day i { color: #a39ca8; font-size: calc(15px * var(--fs, 1)); font-style: normal; }
.daily-note-day.has-note { color: #765b84; border-color: #cdb8d7; background: #f1e8f6; }
.daily-note-day.today { outline: 2px solid #e2b86b; outline-offset: 1px; }
.daily-note-day[aria-pressed="true"] { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px #ad88b9; }
.daily-note-view { margin-top: 12px; padding: 12px; border: 1px solid #dccfe2; border-radius: 14px; background: rgba(255,255,255,.82); }
.daily-note-view header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.daily-note-view header button { min-height: 44px; padding: 0 9px; border: 1px solid #ded4e4; border-radius: 10px; color: #735e80; background: #f6f0fa; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.daily-note-view time { color: #8b8290; font-size: calc(11.5px * var(--fs, 1)); }
.daily-note-view > b { display: block; margin-top: 9px; color: #62566a; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.4; }
.daily-note-view > p { margin: 6px 0 0; color: #51485a; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.family-share-card { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 9px; align-items: center; margin-top: 13px; padding: 12px; border: 1px solid #ddd6ea; border-radius: 15px; background: rgba(255,255,255,.76); }
.family-share-card.has-message { border-color: #c9b7df; background: linear-gradient(120deg, #fff, #f3edfa); }
.family-share-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: #eee6f7; font-size: calc(24px * var(--fs, 1)); }
.family-share-copy { min-width: 0; display: flex; flex-direction: column; }
.family-share-copy small { color: #897790; font-size: calc(10.5px * var(--fs, 1)); font-weight: 900; }
.family-share-copy b { margin-top: 2px; color: #5d5069; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; }
.family-share-copy p { margin: 3px 0 0; color: #746a7b; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.family-share-card > button { min-height: 44px; padding: 0 11px; border: 1px solid #cdbddd; border-radius: 11px; color: #6d5680; background: #f1eaf7; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.family-share-card > button:hover { background: #e8ddf2; }
.family-share-note { grid-column: 2 / -1; color: #8b8490; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.daily-note-gentle { display: block; margin-top: 10px; color: #87808c; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; text-align: center; }
.daily-note-panel.has-note { border-color: #dbc8df; background: linear-gradient(145deg, #fff8ed, #f2edf9); }
@keyframes daily-note-listening { from { transform: scale(.9); opacity: .72; } to { transform: scale(1.12); opacity: 1; } }

.daily-spark-panel { border-color: #e4d0a8; background: linear-gradient(145deg, #fff9e8, #f4f0ff); }
.daily-spark-panel.has-card { border-color: #dec17f; background: linear-gradient(145deg, #fff6d8, #f2edff); }
.daily-spark-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.daily-spark-heading .section-kicker { color: #986e35; font-size: calc(12.5px * var(--fs, 1)); }
.daily-spark-heading h2 { margin: 2px 0 0; color: #5d526b; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.daily-spark-heading > button { min-width: 92px; min-height: 44px; padding: 0 10px; border: 1px solid #e2c982; border-radius: 12px; color: #7b5c1d; background: #fff0b8; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.daily-spark-heading > button:hover { background: #ffe89c; }
.daily-spark-heading > button:disabled { color: #979087; border-color: #ddd7cc; background: #f2eee8; cursor: default; }
.daily-spark-feature { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 14px; padding: 13px; border: 1px dashed #dfd2b4; border-radius: 16px; background: rgba(255,255,255,.7); }
.daily-spark-panel.has-card .daily-spark-feature { border-style: solid; border-color: #e1c87e; background: linear-gradient(125deg, rgba(255,255,255,.88), rgba(248,241,255,.88)); }
.daily-spark-panel.viewing-past .daily-spark-feature { border-color: #cfc4df; background: linear-gradient(125deg, #fbf8ff, #fff9e8); }
.daily-spark-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; background: #f6e9bd; font-size: calc(28px * var(--fs, 1)); transform: rotate(-2deg); }
.daily-spark-panel.has-card .daily-spark-icon { background: linear-gradient(145deg, #ffe7a1, #eadfff); box-shadow: 0 5px 12px rgba(117,88,38,.1); }
.daily-spark-copy { min-width: 0; display: flex; flex-direction: column; }
.daily-spark-copy small { color: #92744e; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.daily-spark-copy b { margin-top: 2px; color: #51485f; font-size: calc(14px * var(--fs, 1)); line-height: 1.4; }
.daily-spark-copy p { margin: 4px 0 0; color: #746b7b; font-size: calc(12px * var(--fs, 1)); line-height: 1.5; overflow-wrap: anywhere; }
.daily-spark-copy em { margin-top: 5px; color: #8a818f; font-size: calc(10.5px * var(--fs, 1)); font-style: normal; line-height: 1.4; }
.daily-spark-feature > button { grid-column: 1 / -1; min-height: 44px; border: 1px solid #d7cbe2; border-radius: 11px; color: #705d83; background: #f4eef9; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.daily-spark-feature > button[hidden] { display: none; }
.daily-spark-week-wrap { margin-top: 13px; padding-top: 12px; border-top: 1px dashed #ddd2bc; }
.daily-spark-week-wrap > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.daily-spark-week-wrap span { color: #655c6e; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.daily-spark-week-wrap small { color: #877f8b; font-size: calc(11px * var(--fs, 1)); text-align: right; }
.daily-spark-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 9px; }
.daily-spark-day { min-width: 0; min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 4px 2px; border: 1px solid #e2dbd0; border-radius: 10px; color: #928b91; background: rgba(255,255,255,.64); font-size: calc(11px * var(--fs, 1)); cursor: default; }
.daily-spark-day i { font-size: calc(17px * var(--fs, 1)); font-style: normal; line-height: 1; }
.daily-spark-day.has-card { color: #725d36; border-color: #dfc47f; background: #fff0ba; cursor: pointer; }
.daily-spark-day.today { outline: 2px solid #d8b34f; outline-offset: 1px; }
.daily-spark-day[aria-pressed="true"] { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px #a78ab8; }
.daily-spark-day:disabled { opacity: .78; }
.daily-spark-privacy { display: block; margin-top: 10px; color: #8a838b; font-size: calc(11px * var(--fs, 1)); line-height: 1.45; text-align: center; }

.weekly-goal-panel { background: linear-gradient(145deg, #fffdf4, #f5fbf2); }
.weekly-goal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.weekly-goal-heading .section-kicker { color: #7f712b; font-size: calc(12.5px * var(--fs, 1)); }
.weekly-goal-heading h2 { margin: 2px 0 0; color: #4e5c41; font-size: calc(18px * var(--fs, 1)); line-height: 1.35; }
.weekly-goal-heading button { min-width: 78px; min-height: 44px; padding: 0 10px; border: 1px solid #dfd397; border-radius: 12px; color: #78661d; background: #fff3bf; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.weekly-goal-heading button:hover { background: #ffeba0; }
.weekly-goal-empty { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 15px; padding: 13px; border: 1px dashed #d9d3a8; border-radius: 15px; background: rgba(255,255,255,.7); }
.weekly-goal-empty[hidden], .weekly-goal-active[hidden] { display: none; }
.weekly-goal-empty > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: #eaf4dc; font-size: calc(25px * var(--fs, 1)); }
.weekly-goal-empty > div { min-width: 0; }
.weekly-goal-empty b { color: #4f5e45; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.weekly-goal-empty p { margin: 4px 0 0; color: #75806e; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.45; }
.weekly-goal-empty button { grid-column: 1 / -1; min-height: 44px; border: 1px solid #cfd9a6; border-radius: 11px; color: #63712d; background: #eff6d8; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.weekly-goal-empty button:hover { background: #e4efc5; }
.weekly-goal-active { margin-top: 14px; }
.weekly-goal-title-row { display: grid; grid-template-columns: 45px minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.weekly-goal-title-row > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: #edf4dc; font-size: calc(24px * var(--fs, 1)); }
.weekly-goal-title-row > div { min-width: 0; display: flex; flex-direction: column; }
.weekly-goal-title-row small { color: #7f8878; font-size: calc(12px * var(--fs, 1)); }
.weekly-goal-title-row b { overflow: hidden; margin-top: 2px; color: #46543d; font-size: calc(14px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.weekly-goal-title-row em { padding: 4px 7px; border-radius: 8px; color: #75631b; background: #ffefad; font-size: calc(12px * var(--fs, 1)); font-style: normal; font-weight: 950; }
.weekly-goal-progress-copy { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; }
.weekly-goal-progress-copy b { color: #56634e; font-size: calc(13px * var(--fs, 1)); }
.weekly-goal-progress-copy span { color: #7a8475; font-size: calc(12px * var(--fs, 1)); text-align: right; }
.weekly-goal-progress-track { height: 9px; overflow: hidden; margin-top: 8px; border-radius: 99px; background: #e5e8d7; }
.weekly-goal-progress-track i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #92b75a, #e6b747); transition: width .22s ease; }
.weekly-goal-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 13px; }
.weekly-goal-day { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.weekly-goal-day span { color: #7d8677; font-size: calc(12px * var(--fs, 1)); }
.weekly-goal-day i { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #dfe3d2; border-radius: 10px; color: #a0a79a; background: rgba(255,255,255,.78); font-size: calc(15px * var(--fs, 1)); font-style: normal; }
.weekly-goal-day.future { opacity: .58; }
.weekly-goal-day.done i { color: #4e772d; border-color: #bbd39b; background: #e6f2d4; }
.weekly-goal-day.today i { outline: 2px solid #e5be4e; outline-offset: 2px; }
.weekly-goal-today { width: 100%; min-height: 46px; margin-top: 13px; border: 0; border-radius: 12px; color: #fff; background: #7da94b; box-shadow: 0 4px 0 #638d36; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 950; }
.weekly-goal-today:hover { background: #729e42; }
.weekly-goal-today[aria-pressed="true"] { color: #426729; background: #dff0ca; box-shadow: 0 4px 0 #bad797; }
.weekly-goal-note { display: block; margin-top: 10px; color: #7a8474; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; text-align: center; }
.weekly-goal-panel.linked .weekly-goal-note { padding: 8px 10px; border-radius: 10px; color: #527049; background: rgba(225,241,211,.78); }
.weekly-goal-panel.complete { border-color: #cfdb9f; background: linear-gradient(145deg, #fff9d9, #f0fae8); }
.weekly-goal-panel.complete .weekly-goal-title-row em { color: #52722f; background: #dff0c5; }
.weekly-goal-panel.complete .weekly-goal-progress-track i { background: linear-gradient(90deg, #7faa4a, #e5b442); }

.streak-panel { padding-bottom: 19px; background: linear-gradient(145deg, #fffdf8, #fff9e9); }
.streak-top { display: flex; align-items: center; gap: 12px; }
.flame { display: grid; place-items: center; width: 47px; height: 47px; border-radius: 16px; color: var(--orange); background: #ffe8d8; }
.flame svg { width: 27px; height: 27px; }
.streak-top span { color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); }
.streak-top h2 { margin: 2px 0 0; font-size: calc(15px * var(--fs, 1)); }
.streak-top h2 strong { color: var(--orange-dark); font-size: calc(25px * var(--fs, 1)); }
.streak-top .streak-badge { margin-left: auto; padding: 5px 8px; color: #a45b22; border-radius: 9px; background: #ffedb9; font-weight: 900; transform: rotate(3deg); }
.growth-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 15px; }
.growth-metrics > span { display: flex; flex-direction: column; align-items: center; padding: 9px 4px 8px; border: 1px solid #ece5d7; border-radius: 12px; background: rgba(255,255,255,.72); }
.growth-metrics strong { color: #40516a; font-size: calc(15px * var(--fs, 1)); line-height: 1; }
.growth-metrics small { margin-top: 5px; color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.word-growth-summary { display:grid; grid-template-columns:48px minmax(0,1fr) minmax(250px,.7fr) auto; gap:12px; align-items:center; margin-top:15px; padding:13px; border:1px solid #d9e6e1; border-radius:16px; background:linear-gradient(120deg,#f1faf7,#fff); }
.word-growth-mark { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; color:#fff; background:#408f79; font-size:calc(16px * var(--fs,1)); font-weight:950; }
.word-growth-copy { min-width:0; display:flex; flex-direction:column; }
.word-growth-copy > small { color:#4f816f; font-size:calc(11px * var(--fs,1)); font-weight:950; }
.word-growth-copy > b { margin-top:2px; color:#36584e; font-size:calc(14px * var(--fs,1)); }
.word-growth-copy > p { margin:3px 0 0; color:#6c7f79; font-size:calc(11.5px * var(--fs,1)); line-height:1.45; }
.word-growth-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.word-growth-metrics > span { min-width:0; display:flex; flex-direction:column; align-items:center; padding:7px 4px; border-radius:10px; background:rgba(255,255,255,.82); text-align:center; }
.word-growth-metrics strong { color:#347663; font-size:calc(16px * var(--fs,1)); line-height:1; }
.word-growth-metrics small { margin-top:4px; color:#73847e; font-size:calc(10.5px * var(--fs,1)); white-space:nowrap; }
.word-growth-summary > a { min-height:42px; display:flex; align-items:center; justify-content:center; padding:0 13px; border-radius:12px; color:#fff; background:#408f79; font-size:calc(12px * var(--fs,1)); font-weight:950; white-space:nowrap; }
.word-growth-summary > a:hover { background:#347966; }
.growth-week-story { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 9px 10px; align-items: center; margin-top: 13px; padding: 12px; border: 1px solid #d9e1cf; border-radius: 16px; background: linear-gradient(125deg, #f4faf2, #fff9e9); }
.growth-week-story.empty { border-style: dashed; border-color: #e4dfd1; background: rgba(255,255,255,.6); }
.growth-week-story-icon { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: #e3f1dd; font-size: calc(24px * var(--fs, 1)); }
.growth-week-story.empty .growth-week-story-icon { filter: grayscale(.25); background: #f0eee8; }
.growth-week-story-copy { min-width: 0; display: flex; flex-direction: column; }
.growth-week-story-copy small { color: #728169; font-size: calc(11px * var(--fs, 1)); font-weight: 950; }
.growth-week-story-copy b { margin-top: 2px; color: #43543d; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.35; }
.growth-week-story-copy p { margin: 3px 0 0; color: #727c6d; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.growth-week-story-chips { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
.growth-week-story-chips span { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 2px; border-radius: 9px; color: #6c7568; background: rgba(255,255,255,.74); font-size: calc(10px * var(--fs, 1)); text-align: center; }
.growth-week-story-chips b { color: #485a45; font-size: calc(12.5px * var(--fs, 1)); }
.growth-week-story > em { grid-column: 1 / -1; color: #7d826f; font-size: calc(11px * var(--fs, 1)); font-style: normal; line-height: 1.4; text-align: center; }
.growth-week-toolbar { display: grid; grid-template-columns: 31px 1fr 31px; gap: 7px; align-items: center; margin-top: 14px; }
.growth-week-toolbar b { color: #59677a; font-size: calc(13.5px * var(--fs, 1)); text-align: center; }
.growth-week-toolbar button { width: 31px; height: 28px; border: 1px solid #e4dfd3; border-radius: 9px; color: #687487; background: #fff; cursor: pointer; font-size: calc(18px * var(--fs, 1)); line-height: 1; }
.growth-week-toolbar button:disabled { opacity: .35; cursor: default; }
.week-row { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; margin-top: 17px; }
.week-row button { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0; border: 0; border-radius: 11px; background: transparent; cursor: pointer; }
.week-row button:disabled { cursor: default; opacity: .48; }
.week-row i { color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); font-style: normal; }
.week-row b { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 10px; color: #aab1ba; background: #f1f1ed; font-size: calc(13.5px * var(--fs, 1)); }
.week-row button.done b { color: #fff; background: var(--mint); }
.week-row button.today b { color: #8d6610; outline: 2px solid var(--yellow); outline-offset: 2px; background: #ffeca4; }
.week-row button.selected { background: rgba(255, 220, 121, .22); }
.week-row button.selected b { box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(218, 160, 41, .35); }
.growth-day-detail { min-height: 61px; margin-top: 13px; padding: 11px 12px; border: 1px solid #ebe3d4; border-radius: 13px; background: rgba(255,255,255,.72); }
.growth-day-detail header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.growth-day-detail header b { color: #40516a; font-size: calc(13.5px * var(--fs, 1)); }
.growth-day-detail header small { color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.growth-day-detail > p { margin: 7px 0 0; color: var(--muted); font-size: calc(13px * var(--fs, 1)); line-height: 1.55; text-align: left; }
.growth-day-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.growth-day-chips span { padding: 4px 7px; border-radius: 8px; color: #536277; background: #f0f2f1; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.streak-panel > p { margin: 15px 0 0; color: var(--muted); font-size: calc(13.5px * var(--fs, 1)); text-align: center; }
.growth-distribution { margin-top: 15px; padding-top: 13px; border-top: 1px dashed #e5dfd1; }
.growth-distribution > b { display: block; margin-bottom: 9px; color: #59677a; font-size: calc(13.5px * var(--fs, 1)); }
.growth-distribution > div { display: grid; grid-template-columns: 30px minmax(0, 1fr) 24px; gap: 7px; align-items: center; margin-top: 7px; }
.growth-distribution span, .growth-distribution strong { color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.growth-distribution strong { text-align: right; }
.growth-distribution i { height: 6px; overflow: hidden; border-radius: 8px; background: #ececea; }
.growth-distribution em { display: block; width: var(--growth); height: 100%; border-radius: inherit; background: var(--growth-color); }
.poem-checkins { margin-top: 15px; padding-top: 13px; border-top: 1px dashed #e5dfd1; }
.poem-checkins > span { display: block; margin-bottom: 9px; color: #59677a; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.poem-checkins > div { display: grid; grid-template-columns: repeat(14, 1fr); gap: 4px; }
.poem-checkins i { aspect-ratio: 1; border: 1px solid #e0ddd4; border-radius: 4px; background: #f2f1ec; }
.poem-checkins i.done { border-color: #e29a6d; background: #efad82; }
.poem-checkins i.today { outline: 2px solid #efc54a; outline-offset: 1px; }
.badge-wall-button { width: 100%; min-height: 39px; margin-top: 15px; border: 1px solid #ead694; border-radius: 12px; color: #8b6518; background: #fff5cf; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.badge-wall-button:hover { background: #ffedb1; }

.mobile-nav { display: none; }
.module-dialog { width: min(420px, calc(100% - 36px)); padding: 34px; border: 0; border-radius: 28px; color: var(--ink); background: var(--paper); box-shadow: 0 30px 80px rgba(32,48,74,.26); text-align: center; }
.module-dialog::backdrop { background: rgba(32,48,74,.35); backdrop-filter: blur(4px); }
.module-dialog[open] { animation: dialog-in .22s ease-out; }
.dialog-close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 12px; color: var(--muted); background: #f3f1eb; cursor: pointer; }
.dialog-close svg { width: 18px; }
.dialog-mascot { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 24px; background: #fff0d5; font-size: calc(38px * var(--fs, 1)); transform: rotate(-4deg); }
.module-dialog h2 { margin: 8px 0; font-size: calc(27px * var(--fs, 1)); }
.module-dialog > p { margin: 0 auto; max-width: 310px; color: var(--muted); line-height: 1.7; font-size: calc(14px * var(--fs, 1)); }
.profile-avatar-large { width: 74px; height: 74px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 25px; color: #26735f; background: #d7f3e9; font-size: calc(30px * var(--fs, 1)); font-weight: 950; transform: rotate(-3deg); }
.profile-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 22px 0 16px; border: 1px solid var(--line); border-radius: 17px; }
.profile-stats div { display: flex; flex-direction: column; padding: 14px 5px; border-right: 1px dashed var(--line); }
.profile-stats div:last-child { border: 0; }
.profile-stats strong { color: var(--orange-dark); font-size: calc(20px * var(--fs, 1)); }
.profile-stats small { margin-top: 3px; color: var(--muted); font-size: calc(13px * var(--fs, 1)); }
.profile-theme { margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-align: left; }
.profile-theme .section-kicker { margin-bottom: 8px; display: inline-flex; }
.profile-theme-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.profile-theme-grid button {
  min-height: 40px;
  border: 1px solid #d9dfe6;
  border-radius: 11px;
  background: #f9fafc;
  cursor: pointer;
  text-align: left;
  position: relative;
  padding-left: 32px;
  color: #2e425f;
  font-size: calc(13.5px * var(--fs, 1));
  font-weight: 900;
}
.profile-theme-grid button::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 50%;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  transform: translateY(-50%);
  background: var(--profile-swatch, #e6764f);
}
.profile-theme-grid button[aria-pressed="true"] { border-color: var(--global-accent); box-shadow: 0 0 0 2px rgba(36, 76, 132, 0.12); }
.profile-settings { display: grid; grid-template-columns: 1fr; gap: 8px; }
.profile-settings button, .profile-settings a { min-height: 45px; border: 1px solid #dfe3e7; border-radius: 13px; background: #f7f8f8; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.profile-settings a { display: flex; align-items: center; justify-content: center; padding: 2px 6px; }
.profile-dialog { max-height: calc(100vh - 24px); overflow: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.dialog-button-row { display: grid; grid-template-columns: 1fr 1.2fr; gap: 9px; margin-top: 20px; }
.dialog-button-row button { min-height: 47px; border: 0; border-radius: 13px; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.dialog-button-row .secondary { color: #536277; background: #eef1f3; }
.dialog-button-row .primary { color: #fff; background: var(--orange); }
.habit-dialog { width: min(510px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.habit-grade2-preset { width: 100%; min-height: 68px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 18px; padding: 10px 12px; border: 1px solid #d8d2ad; border-radius: 15px; color: #45584e; background: linear-gradient(120deg, #fff9e7, #f1faf5); cursor: pointer; text-align: left; }
.habit-grade2-preset > span:first-child { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #ffedbd; font-size: calc(22px * var(--fs, 1)); }
.habit-grade2-preset > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.habit-grade2-preset b { font-size: calc(14px * var(--fs, 1)); }
.habit-grade2-preset small { color: #6f7d76; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.35; }
.habit-grade2-preset em { padding: 6px 8px; border-radius: 9px; color: #85612b; background: #fff0be; font-size: calc(11.5px * var(--fs, 1)); font-style: normal; font-weight: 900; white-space: nowrap; }
.habit-grade2-preset[aria-pressed="true"] { border-color: #72b99e; background: #e9f8f1; box-shadow: inset 0 0 0 1px #72b99e; }
.habit-preset-note { display: block; margin-top: 7px; color: #718078; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.habit-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 20px; text-align: left; }
.habit-choice-grid label { min-height: 66px; display: grid; grid-template-columns: 24px 34px minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #dce7e2; border-radius: 14px; background: #f9fcfb; cursor: pointer; }
.habit-choice-grid label:has(input:checked) { border-color: #7bc4ab; background: #eaf8f3; box-shadow: 0 0 0 2px rgba(80,169,140,.1); }
.habit-choice-grid input { width: 20px; height: 20px; margin: 0; accent-color: #50a98c; }
.habit-choice-grid em { font-size: calc(21px * var(--fs, 1)); font-style: normal; }
.habit-choice-grid span { display: flex; flex-direction: column; min-width: 0; }
.habit-choice-grid b { color: #354e48; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.3; }
.habit-choice-grid small { margin-top: 3px; color: #75847f; font-size: calc(12px * var(--fs, 1)); line-height: 1.3; }
.habit-choice-error { min-height: 22px; margin: 10px 0 -8px !important; color: #b34f3d !important; font-weight: 850; }
.habit-anchor-dialog { width: min(560px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.habit-anchor-field { min-width: 0; padding: 0; margin: 18px 0 0; border: 0; text-align: left; }
.habit-anchor-field legend { padding: 0; color: #53615f; font-size: calc(13.5px * var(--fs, 1)); font-weight: 950; }
.habit-anchor-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.habit-anchor-choice-grid button { min-height: 50px; display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid #ded9e8; border-radius: 12px; color: #625b72; background: #fbf9fd; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; text-align: left; }
.habit-anchor-choice-grid button span { flex: 0 0 auto; font-size: calc(20px * var(--fs, 1)); }
.habit-anchor-choice-grid button[aria-pressed="true"] { color: #654e89; border-color: #b5a5ce; background: #eee8f6; box-shadow: 0 0 0 2px rgba(112,82,148,.1); }
.habit-anchor-habit-grid button { color: #45665d; border-color: #d3e4dd; background: #f8fcfa; }
.habit-anchor-habit-grid button[aria-pressed="true"] { color: #2f725d; border-color: #8fc8b3; background: #e5f5ef; box-shadow: 0 0 0 2px rgba(80,169,140,.1); }
.habit-anchor-empty { grid-column: 1 / -1; margin: 2px 0; padding: 12px; border: 1px dashed #d9d3e2; border-radius: 12px; color: #7a7482; background: #fbfafc; font-size: calc(12px * var(--fs, 1)); line-height: 1.5; }
.habit-anchor-field > small, .habit-anchor-privacy { display: block; margin-top: 7px; color: #7e8582; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; text-align: left; }
.habit-anchor-dialog-actions { grid-template-columns: 1fr 1fr 1.2fr; }
.habit-anchor-dialog-actions .danger-soft { color: #a5554c; background: #f8ece9; }
.daily-spark-dialog { width: min(580px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.daily-spark-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 17px; }
.daily-spark-choice { min-width: 0; min-height: 76px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: center; padding: 9px; border: 1px solid #e2d8c7; border-radius: 13px; color: #62596a; background: #fdfbf7; cursor: pointer; text-align: left; }
.daily-spark-choice > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #f6e9c2; font-size: calc(21px * var(--fs, 1)); }
.daily-spark-choice > span + span { width: auto; height: auto; display: flex; align-items: flex-start; flex-direction: column; background: transparent; font-size: inherit; }
.daily-spark-choice b { font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; }
.daily-spark-choice small { margin-top: 3px; color: #817984; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.daily-spark-choice[aria-pressed="true"] { color: #6c5425; border-color: #d4ad52; background: #fff1bc; box-shadow: 0 0 0 2px rgba(208,169,77,.13); }
.daily-spark-error { min-height: 20px; margin: 9px 0 -5px !important; color: #a85346 !important; font-size: calc(12px * var(--fs, 1)) !important; font-weight: 850; }
.daily-spark-dialog-note { display: block; margin-top: 8px; color: #827c82; font-size: calc(11px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.daily-spark-dialog-actions { grid-template-columns: 1.25fr 1fr 1.2fr; }
.daily-spark-dialog-actions .danger-soft { color: #a5554c; background: #f8ece9; }
.interest-radar-dialog { width: min(590px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.interest-radar-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.interest-radar-choice { min-width: 0; min-height: 58px; display: flex; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid #ded8e8; border-radius: 13px; color: #615b70; background: #faf8fc; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; text-align: left; }
.interest-radar-choice span { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; background: #eee8f7; font-size: calc(20px * var(--fs, 1)); }
.interest-radar-choice[aria-pressed="true"] { color: #5f4b7b; border-color: #ac9bc8; background: #eee8f7; box-shadow: 0 0 0 2px rgba(106,82,143,.11); }
.interest-radar-choice[aria-pressed="true"] span { background: #ded3ed; }
.interest-radar-status { min-height: 20px; margin: 10px 0 -5px !important; color: #746c7d !important; font-size: calc(11.5px * var(--fs, 1)) !important; font-weight: 850; }
.interest-radar-status.error { color: #aa5044 !important; }
.interest-radar-privacy { display: block; margin-top: 8px; color: #817a87; font-size: calc(11px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.interest-radar-dialog-actions { grid-template-columns: 1fr 1fr 1.2fr; }
.interest-radar-dialog-actions .danger-soft { color: #a5554c; background: #f8ece9; }
.family-share-dialog { width: min(600px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.family-share-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; text-align: left; }
.family-share-choice { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #ded6e8; border-radius: 13px; color: #62576c; background: #fbf9fd; cursor: pointer; text-align: left; }
.family-share-choice > span:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #eee7f7; font-size: calc(21px * var(--fs, 1)); }
.family-share-choice > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.family-share-choice b { font-size: calc(12.5px * var(--fs, 1)); line-height: 1.35; }
.family-share-choice small { margin-top: 3px; color: #817888; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.4; }
.family-share-choice:hover { border-color: #bbaaD0; background: #f6f1fa; }
.family-share-choice[aria-pressed="true"] { color: #5e4776; border-color: #a991c2; background: #eee5f6; box-shadow: 0 0 0 2px rgba(113,84,145,.11); }
.family-share-choice[aria-pressed="true"] > span:first-child { background: #ded0ec; }
.family-share-status { min-height: 20px; margin: 10px 0 -5px!important; max-width: none!important; color: #72687a!important; font-size: calc(11.5px * var(--fs, 1))!important; font-weight: 850; }
.family-share-privacy { display: block; margin-top: 8px; color: #827a88; font-size: calc(11px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.family-share-dialog-actions { grid-template-columns: 1.15fr 1fr 1.2fr; }
.family-share-dialog-actions .danger-soft { color: #a5554c; background: #f8ece9; }
.dashboard-shortcuts-dialog { width: min(620px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.dashboard-shortcut-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.dashboard-shortcut-choice { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #d9e0d3; border-radius: 13px; color: #5c6758; background: #fafcf8; cursor: pointer; text-align: left; }
.dashboard-shortcut-choice > span:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--shortcut-bg, #e9f2e1); font-size: calc(21px * var(--fs, 1)); }
.dashboard-shortcut-choice > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.dashboard-shortcut-choice b { font-size: calc(12.5px * var(--fs, 1)); }
.dashboard-shortcut-choice small { margin-top: 2px; color: #838c81; font-size: calc(10.5px * var(--fs, 1)); }
.dashboard-shortcut-choice em { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid #cdd8c6; border-radius: 8px; color: #8b9687; background: #fff; font-size: calc(12px * var(--fs, 1)); font-style: normal; font-weight: 950; }
.dashboard-shortcut-choice[aria-pressed="true"] { color: #4e6b40; border-color: #9fbd8b; background: #edf6e6; box-shadow: 0 0 0 2px rgba(111,151,84,.1); }
.dashboard-shortcut-choice[aria-pressed="true"] em { color: #fff; border-color: #6f9c53; background: #6f9c53; }
.dashboard-shortcut-status { min-height: 20px; margin: 10px 0 -5px!important; color: #71806c!important; font-size: calc(11.5px * var(--fs, 1))!important; font-weight: 850; }
.dashboard-shortcut-status.error { color: #aa5044!important; }
.dashboard-shortcut-privacy { display: block; margin-top: 8px; color: #818a7d; font-size: calc(11px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.dashboard-shortcut-dialog-actions { grid-template-columns: 1.2fr 1fr 1.2fr; }
.weekly-goal-dialog { width: min(560px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.weekly-goal-templates { min-width: 0; padding: 0; margin: 18px 0 0; border: 0; text-align: left; }
.weekly-goal-templates legend, .weekly-goal-targets legend { padding: 0; color: #53615a; font-size: calc(13.5px * var(--fs, 1)); font-weight: 950; }
.weekly-goal-templates > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.weekly-goal-templates button { min-height: 48px; padding: 7px 10px; border: 1px solid #dbe2d6; border-radius: 11px; color: #536450; background: #f8fbf5; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; text-align: left; }
.weekly-goal-templates button:hover, .weekly-goal-templates button[aria-pressed="true"] { color: #567b35; border-color: #9fc47d; background: #edf7df; }
.weekly-goal-custom { display: flex; flex-direction: column; gap: 6px; margin-top: 13px; text-align: left; }
.weekly-goal-custom > span { color: #53615a; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.weekly-goal-custom input { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid #d6e0d4; border-radius: 11px; color: #405166; background: #fff; font-size: calc(13.5px * var(--fs, 1)); font-weight: 800; }
.weekly-goal-custom input:focus { border-color: #8ab36b; outline: 3px solid rgba(125,169,75,.17); }
.weekly-goal-targets { min-width: 0; padding: 0; margin: 14px 0 0; border: 0; text-align: left; }
.weekly-goal-targets > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.weekly-goal-targets label { min-width: 0; min-height: 62px; display: flex; align-items: center; justify-content: center; padding: 7px; border: 1px solid #dce3d8; border-radius: 12px; background: #fafcf8; cursor: pointer; text-align: center; }
.weekly-goal-targets label:has(input:checked) { border-color: #91b970; background: #edf7e1; box-shadow: 0 0 0 2px rgba(125,169,75,.11); }
.weekly-goal-targets input { position: absolute; opacity: 0; pointer-events: none; }
.weekly-goal-targets span { display: flex; flex-direction: column; }
.weekly-goal-targets b { color: #51604b; font-size: calc(14px * var(--fs, 1)); }
.weekly-goal-targets small { margin-top: 3px; color: #7b8676; font-size: calc(12px * var(--fs, 1)); }
.weekly-goal-targets input:focus-visible + span { outline: 3px solid rgba(125,169,75,.3); outline-offset: 4px; border-radius: 5px; }
.weekly-goal-warning { min-height: 22px; margin: 10px 0 -8px !important; color: #a8553d !important; font-size: calc(12.5px * var(--fs, 1)) !important; font-weight: 850; }
.daily-checkin-dialog { width: min(610px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.daily-choice-group { min-width: 0; padding: 0; margin: 19px 0 0; border: 0; text-align: left; }
.daily-choice-group legend { padding: 0; color: #455268; font-size: calc(14px * var(--fs, 1)); font-weight: 950; }
.daily-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 9px; }
.daily-choice-grid.mood-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.daily-choice-grid button { min-height: 58px; display: flex; align-items: center; justify-content: flex-start; gap: 7px; padding: 8px 10px; border: 1px solid #dfe1e8; border-radius: 13px; color: #4d586b; background: #fafafa; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 850; line-height: 1.3; text-align: left; }
.daily-choice-grid button span { flex: 0 0 auto; font-size: calc(21px * var(--fs, 1)); }
.daily-choice-grid button:hover { border-color: #bdb5e8; background: #f6f3ff; }
.daily-choice-grid button[aria-pressed="true"] { color: #54499d; border-color: #9689da; background: #eeeaff; box-shadow: 0 0 0 2px rgba(117,105,200,.11); }
.daily-mood-note { display: block; margin-top: 8px; color: #7f8190; font-size: calc(11px * var(--fs, 1)); line-height: 1.5; }
.daily-plan-summary { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 18px; padding: 12px; border: 1px solid #e5dfc9; border-radius: 15px; background: #fffaf0; }
.daily-plan-summary span { padding: 6px 9px; border-radius: 10px; color: #5c6370; background: #fff; font-size: calc(13px * var(--fs, 1)); font-weight: 850; }
.daily-edit-plan { min-height: 44px; margin-top: 13px; padding: 0 14px; border: 1px solid #d6d4df; border-radius: 12px; color: #676d7a; background: #f6f6f7; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 850; }
.daily-checkin-error { min-height: 22px; margin: 11px 0 -8px !important; color: #b34f3d !important; font-weight: 850; }
.daily-rhythm-dialog { width: min(540px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.daily-rhythm-dialog .dialog-close { width: 46px; height: 46px; }
.daily-rhythm-fields { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.daily-rhythm-fields label { min-height: 66px; display: grid; grid-template-columns: minmax(0, 1fr) 128px; gap: 12px; align-items: center; padding: 9px 10px; border: 1px solid #dce5eb; border-radius: 13px; background: #f8fbfd; text-align: left; }
.daily-rhythm-fields label > span { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); }
.daily-rhythm-fields i { grid-row: 1 / 3; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: #e7f0f6; font-size: calc(18px * var(--fs, 1)); font-style: normal; }
.daily-rhythm-fields b { padding-left: 8px; color: #465d72; font-size: calc(13.5px * var(--fs, 1)); }
.daily-rhythm-fields small { padding-left: 8px; color: #758494; font-size: calc(12px * var(--fs, 1)); }
.daily-rhythm-fields input { width: 100%; min-height: 48px; padding: 0 8px; border: 1px solid #ccdce7; border-radius: 11px; color: #3f5d77; background: #fff; font-size: calc(15px * var(--fs, 1)); font-weight: 900; text-align: center; }
.daily-rhythm-fields input:focus { border-color: #72a8cd; outline: 3px solid rgba(80,169,232,.17); }
.day-mode-dialog { width: min(540px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.day-mode-dialog .dialog-close { width: 46px; height: 46px; }
.day-mode-choices { min-width: 0; padding: 0; margin: 18px 0 0; border: 0; text-align: left; }
.day-mode-choices legend { padding: 0; color: #4f596b; font-size: calc(13.5px * var(--fs, 1)); font-weight: 950; }
.day-mode-choices > div { display: grid; gap: 8px; margin-top: 8px; }
.day-mode-choices label { min-height: 70px; display: grid; grid-template-columns: 24px 38px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #dde2e8; border-radius: 14px; background: #fafbfc; cursor: pointer; }
.day-mode-choices label:has(input:checked) { border-color: #9c8dcc; background: #f2eef9; box-shadow: 0 0 0 2px rgba(127,116,163,.1); }
.day-mode-choices input { grid-row: 1 / 3; width: 20px; height: 20px; margin: 0; accent-color: #7f74a3; }
.day-mode-choices label > span { grid-row: 1 / 3; font-size: calc(23px * var(--fs, 1)); }
.day-mode-choices b { align-self: end; color: #4d5262; font-size: calc(13.5px * var(--fs, 1)); line-height: 1.3; }
.day-mode-choices small { align-self: start; margin-top: 2px; color: #777e8b; font-size: calc(11.5px * var(--fs, 1)); line-height: 1.35; }
.day-mode-preview { min-height: 42px; display: flex; align-items: center; margin: 11px 0 -5px !important; padding: 8px 10px; border-radius: 11px; color: #6b617f !important; background: #f4f0f8; font-size: calc(12px * var(--fs, 1)) !important; font-weight: 850; text-align: left; }
.daily-weather-dialog { width: min(560px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.daily-weather-dialog .dialog-close { width: 46px; height: 46px; }
.daily-weather-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.daily-weather-choices button { min-height: 62px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 7px; align-items: center; padding: 8px 10px; border: 1px solid #dce3e8; border-radius: 13px; color: #4b5968; background: #fafbfc; cursor: pointer; text-align: left; }
.daily-weather-choices button:hover { border-color: #9fc2d6; background: #eff8fc; }
.daily-weather-choices button[aria-pressed="true"] { color: #356b8e; border-color: #78abc8; background: #e7f4fa; box-shadow: 0 0 0 2px rgba(78,145,184,.11); }
.daily-weather-choices button span { font-size: calc(25px * var(--fs, 1)); }
.daily-weather-choices button b { font-size: calc(13px * var(--fs, 1)); line-height: 1.3; }
.daily-weather-error { min-height: 22px; margin: 10px 0 -8px !important; color: #a75342 !important; font-size: calc(12.5px * var(--fs, 1)) !important; font-weight: 850; }
.daily-rhythm-defaults { width: 100%; min-height: 46px; margin-top: 10px; border: 1px solid #d5dfe7; border-radius: 11px; color: #5b6e7e; background: #f3f6f8; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.daily-rhythm-error { min-height: 22px; margin: 9px 0 -8px !important; color: #a35b3d !important; font-size: calc(12.5px * var(--fs, 1)) !important; font-weight: 850; }
.schedule-dialog { width: min(580px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.schedule-day-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 19px; }
.schedule-day-tabs button { min-width: 0; min-height: 44px; border: 1px solid #dce3ea; border-radius: 11px; color: #637184; background: #f6f8fa; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.schedule-day-tabs button[aria-pressed="true"] { color: #2f6797; border-color: #84b4da; background: #e6f3fc; box-shadow: 0 0 0 2px rgba(72,133,184,.1); }
.schedule-day-tabs button.has-courses:after { content: ""; width: 6px; height: 6px; display: inline-block; margin-left: 4px; border-radius: 50%; background: #55a88d; vertical-align: middle; }
.schedule-editor-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 16px; text-align: left; }
.schedule-editor-toolbar > b { color: #405d78; font-size: calc(14px * var(--fs, 1)); }
.schedule-editor-toolbar > span { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.schedule-editor-toolbar button { min-height: 44px; padding: 0 9px; border: 1px solid #d5e0e9; border-radius: 10px; color: #506a80; background: #f3f7fa; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 850; }
.schedule-editor-toolbar button:hover { background: #e8f1f7; }
.schedule-slot-list { display: grid; gap: 8px; margin-top: 11px; }
.schedule-slot-list label { display: grid; grid-template-columns: 94px minmax(0, 1fr); gap: 9px; align-items: center; text-align: left; }
.schedule-slot-list label > span { display: flex; flex-direction: column; color: #67788a; }
.schedule-slot-list label > span b { font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.schedule-slot-list label > span small { margin-top: 2px; color: #8996a1; font-size: calc(10px * var(--fs, 1)); font-weight: 800; }
.schedule-slot-list select { width: 100%; min-height: 46px; padding: 0 34px 0 11px; border: 1px solid #d6e0e8; border-radius: 11px; color: #405166; background: #fff; font-size: calc(13.5px * var(--fs, 1)); font-weight: 850; }
.schedule-slot-list select:focus { border-color: #6fa6d2; outline: 3px solid rgba(80,169,232,.18); }
.schedule-editor-status { min-height: 22px; margin: 10px 0 -9px !important; color: #537067 !important; font-size: calc(12.5px * var(--fs, 1)) !important; font-weight: 850; }
.schoolbag-dialog { width: min(610px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.schoolbag-dialog-summary { margin-top: 17px; padding: 13px; border: 1px solid #dbe7ef; border-radius: 15px; background: #f6fbfe; text-align: left; }
.schoolbag-dialog-summary > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.schoolbag-dialog-summary b { color: #365f80; font-size: calc(14px * var(--fs, 1)); }
.schoolbag-dialog-summary span { color: #6d7f8e; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.schoolbag-dialog-progress { height: 10px; overflow: hidden; margin-top: 9px; border-radius: 99px; background: #e0eaf0; }
.schoolbag-dialog-progress i { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #4b91c2, #5eb99b); transition: width .2s ease; }
.schoolbag-dialog.complete .schoolbag-dialog-summary { border-color: #bde0d4; background: #effaf5; }
.schoolbag-dialog.complete .schoolbag-dialog-summary b { color: #28755f; }
.schoolbag-dialog.complete .schoolbag-dialog-progress i { background: #50a98c; }
.schoolbag-group { margin-top: 16px; text-align: left; }
.schoolbag-group h3 { margin: 0 0 7px; color: #465a6d; font-size: calc(13.5px * var(--fs, 1)); }
.schoolbag-list { display: grid; gap: 7px; }
.schoolbag-item-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: center; }
.schoolbag-item-row label { min-width: 0; min-height: 58px; display: grid; grid-template-columns: 25px 36px minmax(0, 1fr); gap: 9px; align-items: center; padding: 7px 10px; border: 1px solid #dfe7ec; border-radius: 13px; background: #fbfdfe; cursor: pointer; }
.schoolbag-item-row label:has(input:checked) { border-color: #a9d8c8; background: #eff9f5; }
.schoolbag-item-row input { position: absolute; opacity: 0; pointer-events: none; }
.schoolbag-check { width: 25px; height: 25px; display: grid; place-items: center; border: 2px solid #b9cad5; border-radius: 8px; background: #fff; transition: .16s ease; }
.schoolbag-check svg { width: 15px; height: 15px; color: #fff; opacity: 0; transform: scale(.5); transition: .16s ease; }
.schoolbag-item-row input:focus-visible + .schoolbag-check { outline: 3px solid rgba(80,169,232,.3); outline-offset: 2px; }
.schoolbag-item-row input:checked + .schoolbag-check { border-color: #50a98c; background: #50a98c; }
.schoolbag-item-row input:checked + .schoolbag-check svg { opacity: 1; transform: scale(1); }
.schoolbag-item-emoji { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: #eaf3f8; font-size: calc(19px * var(--fs, 1)); }
.schoolbag-item-copy { min-width: 0; display: flex; flex-direction: column; }
.schoolbag-item-copy b { overflow: hidden; color: #405468; font-size: calc(13.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.schoolbag-item-copy small { overflow: hidden; margin-top: 3px; color: #748493; font-size: calc(12px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.schoolbag-item-row input:checked ~ .schoolbag-item-copy b { color: #83928c; text-decoration: line-through; }
.schoolbag-item-delete { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #ead9d4; border-radius: 12px; color: #a45d4d; background: #fff5f1; cursor: pointer; font-size: calc(16px * var(--fs, 1)); }
.schoolbag-item-delete:hover { background: #ffe7df; }
.schoolbag-custom { padding-top: 14px; border-top: 1px dashed #dce5ea; }
.schoolbag-custom form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.schoolbag-custom input { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid #d6e0e7; border-radius: 11px; color: #405166; background: #fff; font-size: calc(13.5px * var(--fs, 1)); font-weight: 800; }
.schoolbag-custom input:focus { border-color: #70a7d2; outline: 3px solid rgba(80,169,232,.18); }
.schoolbag-custom form button { min-width: 78px; min-height: 48px; padding: 0 11px; border: 1px solid #bdd7e8; border-radius: 11px; color: #346e9c; background: #e9f4fb; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.schoolbag-custom form button:disabled, .schoolbag-custom input:disabled { color: #8b969e; border-color: #dde3e6; background: #f0f2f3; cursor: default; }
.schoolbag-custom > p { min-height: 19px; margin: 6px 0 0; color: #b34f3d; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; }
.schoolbag-custom-list { margin-top: 2px; }
.schoolbag-note { max-width: none !important; margin: 15px 0 0 !important; padding: 10px 12px; border-radius: 12px; color: #6c684d !important; background: #fff9df; font-size: calc(12.5px * var(--fs, 1)) !important; line-height: 1.5; text-align: left; }
.schoolbag-dialog-actions { grid-template-columns: 1fr; }
.schoolbag-dialog-actions .primary { background: #4b91c2; }
.personal-task-dialog { width: min(540px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.personal-task-dialog form { margin-top: 17px; }
.personal-task-templates { min-width: 0; padding: 0; margin: 0; border: 0; text-align: left; }
.personal-task-templates legend { padding: 0; color: #526176; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.personal-task-templates > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.personal-task-templates button { min-height: 48px; padding: 7px 9px; border: 1px solid #dce3e8; border-radius: 11px; color: #506074; background: #f8fafb; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 850; text-align: left; }
.personal-task-templates button:hover, .personal-task-templates button[aria-pressed="true"] { color: #376c98; border-color: #8db8d9; background: #eaf5fc; }
.task-starter-dialog { width: min(600px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow: auto; }
.task-starter-picker { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 17px; text-align: left; }
.task-starter-picker > span { color: #5f6171; font-size: calc(12.5px * var(--fs, 1)); font-weight: 950; }
.task-starter-picker select { width: 100%; min-height: 48px; padding: 0 34px 0 11px; border: 1px solid #d8d4e5; border-radius: 12px; color: #524d62; background: #fff; font-size: calc(13px * var(--fs, 1)); font-weight: 850; }
.task-starter-picker select:focus { border-color: #a797c5; outline: 3px solid rgba(125,105,165,.14); }
.task-starter-plan { margin-top: 13px; padding: 13px; border: 1px solid #ded8ea; border-radius: 16px; background: #faf8fc; text-align: left; }
.task-starter-plan > header { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 9px; align-items: center; }
.task-starter-plan > header > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #ece6f6; font-size: calc(23px * var(--fs, 1)); }
.task-starter-plan > header div { min-width: 0; display: flex; flex-direction: column; }
.task-starter-plan > header small { color: #817691; font-size: calc(10.5px * var(--fs, 1)); font-weight: 850; }
.task-starter-plan > header b { overflow: hidden; margin-top: 2px; color: #554d64; font-size: calc(14px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.task-starter-reader { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin-top: 10px; border: 1px solid #c9bddb; border-radius: 11px; color: #685780; background: #f0eaf6; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 950; }
.task-starter-reader:hover { background: #e7dff0; }
.task-starter-reader[aria-pressed="true"] { color: #fff; border-color: #81709d; background: #8875a4; }
.task-starter-reader span { font-size: calc(16px * var(--fs, 1)); }
.task-starter-reader b { font: inherit; }
.task-starter-plan > .study-reader-status { display: block; margin-top: 6px; color: #7d7487; }
.task-starter-plan ol { display: grid; gap: 7px; padding: 0; margin: 12px 0 0; list-style: none; counter-reset: starter-step; }
.task-starter-plan li { counter-increment: starter-step; }
.task-starter-plan li button { width: 100%; min-height: 62px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid #ddd8e6; border-radius: 13px; color: #5d5866; background: #fff; cursor: pointer; text-align: left; }
.task-starter-plan li button:before { content: counter(starter-step); width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: #6c5a86; background: #eee8f7; font-size: calc(13px * var(--fs, 1)); font-weight: 950; }
.task-starter-plan li button:after { content: "○"; color: #a39aaa; font-size: calc(18px * var(--fs, 1)); font-weight: 950; }
.task-starter-plan li button:hover { border-color: #b8acca; background: #f9f6fc; }
.task-starter-plan li button[aria-pressed="true"] { color: #55715a; border-color: #b7d2bd; background: #f1f8f3; }
.task-starter-plan li button[aria-pressed="true"]:before { color: #39704a; background: #dceee0; }
.task-starter-plan li button[aria-pressed="true"]:after { content: "✓"; color: #4f9865; }
.task-starter-dialog-status { min-height: 20px; margin: 10px 0 -4px !important; color: #756d80 !important; font-size: calc(11.5px * var(--fs, 1)) !important; font-weight: 850; }
.task-starter-privacy { display: block; margin-top: 8px; color: #85808a; font-size: calc(10.5px * var(--fs, 1)); line-height: 1.45; text-align: left; }
.task-starter-dialog-actions { grid-template-columns: 1fr 1.25fr; }
.personal-task-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; margin-top: 13px; text-align: left; }
.personal-task-field > span { color: #526176; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.personal-task-field input, .personal-task-field select { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid #d6e0e7; border-radius: 11px; color: #405166; background: #fff; font-size: calc(13.5px * var(--fs, 1)); font-weight: 800; }
.personal-task-field input:focus, .personal-task-field select:focus { border-color: #70a7d2; outline: 3px solid rgba(80,169,232,.18); }
.personal-task-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.personal-task-error { min-height: 22px; margin: 9px 0 -9px !important; color: #b34f3d !important; font-size: calc(12.5px * var(--fs, 1)) !important; font-weight: 850; }
.archive-import-warning { display: flex; flex-direction: column; gap: 4px; margin-top: 18px; padding: 12px 13px; border: 1px solid #efd29e; border-radius: 14px; color: #765421; background: #fff8e7; text-align: left; }
.archive-import-warning b { font-size: calc(13.5px * var(--fs, 1)); }
.archive-import-warning span { font-size: calc(13.5px * var(--fs, 1)); line-height: 1.55; }
.archive-import-dialog { max-height: calc(100vh - 24px); overflow: auto; }
.parent-view-dialog { width: min(690px, calc(100% - 30px)); max-height: min(820px, calc(100vh - 24px)); overflow: auto; text-align: left; }
.parent-view-dialog > h2, .parent-view-dialog > p, .parent-view-dialog > .section-kicker { display: block; text-align: center; }
.parent-streak-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 20px 0 12px; }
.parent-streak-stats article { display: flex; flex-direction: column; align-items: center; padding: 15px; border: 1px solid #eadfc9; border-radius: 16px; background: #fffaf0; }
.parent-streak-stats strong { color: var(--orange-dark); font-size: calc(26px * var(--fs, 1)); }
.parent-streak-stats span { margin-top: 3px; color: var(--muted); font-size: calc(13px * var(--fs, 1)); }
.parent-report-section { margin-top: 11px; padding: 14px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.parent-report-section header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.parent-report-section header b { font-size: calc(14.5px * var(--fs, 1)); }
.parent-report-section header small { color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.parent-week-bars { display: grid; gap: 8px; }
.parent-week-bars article { display: grid; grid-template-columns: 62px minmax(0,1fr) 35px; gap: 9px; align-items: center; }
.parent-week-bars span { color: #526176; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.parent-week-bars i { height: 8px; overflow: hidden; border-radius: 99px; background: #edf0f1; }
.parent-week-bars em { width: var(--parent-week,0%); height: 100%; display: block; border-radius: inherit; background: var(--parent-color,var(--orange)); }
.parent-week-bars strong { color: #536277; font-size: calc(13.5px * var(--fs, 1)); text-align: right; }
.parent-subject-progress { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.parent-subject-progress article { min-width: 0; display: flex; flex-direction: column; padding: 11px; border-radius: 13px; background: #f7f8f8; }
.parent-subject-progress b { font-size: calc(13.5px * var(--fs, 1)); }
.parent-subject-progress span { margin-top: 4px; color: #526176; font-size: calc(13px * var(--fs, 1)); line-height: 1.45; }
.parent-attention { margin-top: 12px!important; max-width: none!important; padding: 11px 13px; border: 1px solid #dce7ec; border-radius: 14px; color: #425d6e!important; background: #f1f7f9; font-size: calc(13.5px * var(--fs, 1))!important; text-align: left; }
.parent-family-share { margin-top: 12px; padding: 15px; border: 1px solid #ddd2e9; border-radius: 17px; background: #faf7fd; }
.parent-family-share.has-message { border-color: #bea9d2; background: linear-gradient(120deg, #faf6fd, #fffaf1); }
.parent-family-share > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.parent-family-share > header div { display: flex; flex-direction: column; gap: 3px; }
.parent-family-share > header b { color: #5d4e69; font-size: calc(15px * var(--fs, 1)); }
.parent-family-share > header small { color: #85778e; font-size: calc(12.5px * var(--fs, 1)); }
.parent-family-share > header > span { font-size: calc(24px * var(--fs, 1)); }
.parent-family-share article { display: flex; flex-direction: column; gap: 4px; margin-top: 11px; padding: 12px 13px; border: 1px solid #e4dce9; border-radius: 14px; background: #fff; }
.parent-family-share article b { color: #584c61; font-size: calc(14px * var(--fs, 1)); line-height: 1.5; }
.parent-family-share article small { color: #897e90; font-size: calc(11.5px * var(--fs, 1)); }
.parent-family-share > p { margin: 9px 0 0; color: #756c7a; font-size: calc(12px * var(--fs, 1)); line-height: 1.5; }
.parent-cheer-section { margin-top: 12px; padding: 15px; border: 1px solid #ead6a1; border-radius: 17px; background: #fffaf0; }
.parent-cheer-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.parent-cheer-section > header div { display: flex; flex-direction: column; gap: 3px; }
.parent-cheer-section > header b { color: #5e4b2b; font-size: calc(15px * var(--fs, 1)); }
.parent-cheer-section > header small { color: #84755a; font-size: calc(12.5px * var(--fs, 1)); }
.parent-cheer-section > header > span { font-size: calc(24px * var(--fs, 1)); }
.parent-cheer-current { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 12px; padding: 12px; border: 1px solid #e7d8b8; border-radius: 14px; background: #fff; }
.parent-cheer-current[hidden] { display: none; }
.parent-cheer-current > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #ffedbd; font-size: calc(22px * var(--fs, 1)); }
.parent-cheer-current div { min-width: 0; display: flex; flex-direction: column; }
.parent-cheer-current small { color: #87795d; font-size: calc(11.5px * var(--fs, 1)); }
.parent-cheer-current p { margin: 3px 0 0; color: #594d39; font-size: calc(13.5px * var(--fs, 1)); font-weight: 850; line-height: 1.45; }
.parent-cheer-current em { margin-top: 4px; color: #6c5ca2; font-size: calc(12px * var(--fs, 1)); font-style: normal; font-weight: 800; }
.parent-cheer-current button { min-height: 44px; padding: 0 11px; border: 1px solid #ddcfae; border-radius: 11px; color: #806c48; background: #fffaf0; cursor: pointer; font-size: calc(12px * var(--fs, 1)); font-weight: 850; }
.parent-cheer-empty { margin: 11px 0 0!important; max-width: none!important; color: #746b5c!important; font-size: calc(12.5px * var(--fs, 1))!important; line-height: 1.5; text-align: left!important; }
.parent-cheer-templates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.parent-cheer-template { min-height: 62px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 7px; align-items: center; padding: 9px 10px; border: 1px solid #e2d7bf; border-radius: 12px; color: #62553f; background: #fff; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 800; line-height: 1.4; text-align: left; }
.parent-cheer-template > span { font-size: calc(20px * var(--fs, 1)); text-align: center; }
.parent-cheer-template:hover { border-color: #d2b66d; background: #fffdf7; }
.parent-cheer-template[aria-pressed="true"] { border-color: #c9a24d; background: #fff0c7; box-shadow: inset 0 0 0 1px #c9a24d; }
.parent-cheer-status { min-height: 20px; margin: 10px 0 0!important; max-width: none!important; color: #736b5f!important; font-size: calc(12px * var(--fs, 1))!important; line-height: 1.45; text-align: left!important; }
.parent-cheer-save { width: 100%; min-height: 46px; margin-top: 8px; border: 0; border-radius: 12px; color: #fff; background: #9d7332; cursor: pointer; font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.parent-cheer-save:hover { background: #865f27; }
.parent-readonly-note { display: block; margin-top: 10px; color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); line-height: 1.5; text-align: center; }
.all-dialog { width: min(520px, calc(100% - 30px)); }
.all-module-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; text-align: left; }
.all-module-grid a { display: grid; grid-template-columns: 37px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.all-module-grid a > span { font-size: calc(24px * var(--fs, 1)); }
.all-module-grid a > div { display: flex; flex-direction: column; min-width: 0; }
.all-module-grid b { color: var(--ink); font-size: calc(14.5px * var(--fs, 1)); }
.all-module-grid small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); white-space: nowrap; text-overflow: ellipsis; }
.all-module-grid em { padding: 4px 6px; border-radius: 8px; color: #397863; background: #e6f5ef; font-size: calc(13px * var(--fs, 1)); font-style: normal; font-weight: 950; }
.all-module-grid a:hover { border-color: var(--orange); background: var(--cream); }
.dialog-roadmap { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 22px 0; color: #687487; font-size: calc(13.5px * var(--fs, 1)); font-weight: 800; }
.dialog-roadmap i { width: 18px; border-top: 2px dotted #c5cbd2; }
.workbench-tour-invite { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 18px; padding: 18px 20px; border: 1px solid #e7d5a6; border-radius: 23px; background: linear-gradient(120deg, #fff9e9, #f7fbff 56%, #f3faf5); box-shadow: 0 9px 26px rgba(51,72,98,.06); }
.workbench-tour-invite[hidden], .workbench-tour-coach[hidden] { display: none; }
.workbench-tour-invite-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 21px; background: #ffedbd; font-size: calc(34px * var(--fs, 1)); transform: rotate(-3deg); }
.workbench-tour-invite-copy { min-width: 0; }
.workbench-tour-invite-copy h2 { margin: 4px 0; color: var(--ink); font-size: calc(21px * var(--fs, 1)); }
.workbench-tour-invite-copy p { margin: 0; color: #5d6876; font-size: calc(14px * var(--fs, 1)); font-weight: 700; line-height: 1.55; }
.workbench-tour-invite-copy small { display: block; margin-top: 5px; color: #7c7468; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.workbench-tour-invite-actions { display: grid; grid-template-columns: 1fr; gap: 7px; min-width: 164px; }
.workbench-tour-invite-actions button { min-height: 45px; padding: 0 14px; border: 1px solid #decfbd; border-radius: 12px; color: #665c50; background: #fff; cursor: pointer; font-size: calc(13px * var(--fs, 1)); font-weight: 900; }
.workbench-tour-invite-actions #startWorkbenchTour { border-color: #d79661; color: #fff; background: #cf7446; }
.workbench-tour-invite-actions #startWorkbenchTour:hover { background: #bc6338; }
.workbench-tour-coach { position: fixed; z-index: 55; right: 24px; bottom: 24px; width: min(430px, calc(100% - 48px)); max-height: calc(100vh - 48px); overflow: auto; padding: 19px; border: 1px solid #dfc885; border-radius: 23px; color: var(--ink); background: rgba(255,253,247,.98); box-shadow: 0 22px 64px rgba(36,49,67,.24); }
.workbench-tour-close { position: absolute; top: 9px; right: 9px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 12px; color: #6d7480; background: #f3efe6; cursor: pointer; }
.workbench-tour-close svg { width: 17px; height: 17px; }
.workbench-tour-progress { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; padding-right: 47px; color: #756a5a; font-size: calc(12px * var(--fs, 1)); font-weight: 900; }
.workbench-tour-progress [role="progressbar"] { height: 8px; overflow: hidden; border-radius: 999px; background: #eee8db; }
.workbench-tour-progress i { width: 25%; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #dd8a4a, #e4b54f); transition: width .2s ease; }
.workbench-tour-coach-body { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; align-items: start; margin-top: 16px; }
.workbench-tour-coach-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 17px; background: #fff0c8; font-size: calc(28px * var(--fs, 1)); }
.workbench-tour-coach-body h2 { margin: 4px 0 6px; font-size: calc(21px * var(--fs, 1)); }
.workbench-tour-coach-body p { margin: 0; color: #576574; font-size: calc(14px * var(--fs, 1)); font-weight: 700; line-height: 1.58; }
.workbench-tour-coach-body small { display: block; margin-top: 7px; color: #796d5b; font-size: calc(12px * var(--fs, 1)); font-weight: 750; line-height: 1.45; }
.workbench-tour-actions { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(100px, auto); gap: 8px; margin-top: 17px; }
.workbench-tour-actions button { min-height: 45px; padding: 0 12px; border: 1px solid #ded8cc; border-radius: 12px; color: #5b6775; background: #f4f1ea; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.workbench-tour-actions #skipWorkbenchTour { background: #fff; }
.workbench-tour-actions #workbenchTourNext { border-color: #d27745; color: #fff; background: #cf7446; }
.workbench-tour-actions #workbenchTourNext:hover { background: #bc6338; }
.workbench-tour-target { outline: 4px solid rgba(221,145,73,.8); outline-offset: 5px; box-shadow: 0 0 0 9px rgba(255,234,184,.42), 0 15px 36px rgba(69,73,80,.14)!important; }
.toast { position: fixed; z-index: 60; left: 50%; bottom: 30px; max-width: calc(100% - 40px); padding: 12px 18px; color: #fff; border-radius: 13px; background: #283a53; box-shadow: 0 10px 30px rgba(30,44,64,.2); font-size: calc(14.5px * var(--fs, 1)); font-weight: 800; opacity: 0; transform: translate(-50%, 18px); pointer-events: none; transition: .25s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

button:focus-visible, a:focus-visible { outline: 3px solid rgba(80,169,232,.5); outline-offset: 3px; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(15px) scale(.97); } }

@media (max-width: 1050px) {
  .topbar { gap: 20px; }
  .main-nav a { padding: 0 10px; }
  .main-nav .now-entry { min-width: 68px; padding: 0 8px; }
  .profile { min-width: auto; }
  .profile > span:nth-child(2), .profile > svg { display: none; }
  .hero-copy { width: 58%; }
  .hero-art { width: 52%; height: 330px; }
  .dashboard-grid { grid-template-columns: minmax(0,1fr) 315px; }
  .subject-card { grid-template-columns: 55px minmax(0,1fr) 22px; padding: 16px; gap: 8px 12px; }
  .subject-icon { width: 55px; height: 55px; }
  .focus-card { grid-template-columns: auto minmax(0, 1fr); }
  .focus-card .timer { grid-column: 1 / -1; width: 100%; padding: 12px 0 0; border-top: 1px dashed #d8d4ed; border-left: 0; }
  .focus-actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; }
  .focus-actions > button { min-width: 140px; }
  .daily-tools-grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .daily-checkin-card { grid-template-columns: auto minmax(0, 1fr) auto; }
  .daily-checkin-status { grid-column: 1 / -1; }
  .today-footprint-ribbon { grid-template-areas: "icon copy action" ". list list" ". note note"; grid-template-columns: 52px minmax(0, 1fr) auto; }
}

@media (max-width: 800px) {
  body { padding-bottom: 76px; }
  #main, #subjects, #growth { scroll-margin-top: 12px; }
  .topbar { height: 66px; padding: 0 20px; position: relative; }
  .brand { min-width: 0; }
  .brand small { display: none; }
  .main-nav { display: none; }
  .profile { margin-left: auto; }
  .page-shell { width: min(100% - 28px, 680px); margin-top: 14px; }
  .hero { min-height: 0; align-items: flex-start; padding: 20px 18px; }
  .hero-copy { width: 100%; }
  .hero h1 { margin-top: 10px; font-size: calc(28px * var(--fs, 1)); }
  .hero p { font-size: calc(15px * var(--fs, 1)); }
  .hero-actions { margin-top: 19px; }
  .hero-actions { align-items:stretch; flex-direction:column; gap:10px; }
  .hero-actions .primary-button, .hero-pause-button { width:100%; }
  .hero-tip { display: none; }
  .hero-art, .hero .sticker { display:none; }
  .workbench-tour-invite { grid-template-columns: 52px minmax(0, 1fr); padding: 16px; }
  .workbench-tour-invite-icon { width: 52px; height: 52px; }
  .workbench-tour-invite-actions { grid-column: 1 / -1; grid-template-columns: 1.2fr 1fr; width: 100%; }
  .workbench-tour-coach { right: 14px; bottom: 86px; width: calc(100% - 28px); max-height: calc(100vh - 106px); }
  .welcome-back-card { grid-template-columns: 52px minmax(0, 1fr); padding: 15px; }
  .welcome-back-icon { width: 52px; height: 52px; }
  .welcome-back-actions { grid-column: 1 / -1; width: 100%; }
  .today-footprint-ribbon { grid-template-areas: "icon copy" "list list" "action action" "note note"; grid-template-columns: 52px minmax(0, 1fr); padding: 14px; }
  .today-footprint-ribbon > button { width: 100%; }
  .family-cheer-card { grid-template-columns: 52px minmax(0, 1fr); }
  .family-cheer-icon { width: 52px; height: 52px; }
  .family-cheer-reactions, .family-cheer-response { grid-column: 1 / -1; }
  .family-cheer-response { text-align: left; }
  .family-share-card { grid-template-columns: 46px minmax(0, 1fr); }
  .family-share-card > button { grid-column: 1 / -1; width: 100%; }
  .family-share-note { grid-column: 1 / -1; }
  .daily-tools-grid { grid-template-columns: 1fr; }
  .daily-brain-play { grid-template-columns: 1fr; }
  .interest-radar-card { grid-template-columns: 52px minmax(0, 1fr); }
  .interest-radar-icon { width: 52px; height: 52px; }
  .interest-radar-card > button { grid-column: 1 / -1; width: 100%; }
  .dashboard-shortcuts-card { grid-template-columns: 52px minmax(0, 1fr); }
  .dashboard-shortcuts-icon { width: 52px; height: 52px; }
  .dashboard-shortcuts-card > button { grid-column: 1 / -1; width: 100%; }
  .dashboard-shortcuts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .daily-gentle-card { grid-template-columns: 52px minmax(0, 1fr); }
  .daily-gentle-icon { width: 52px; height: 52px; }
  .daily-gentle-next, .daily-gentle-actions { grid-column: 1 / -1; }
  .daily-gentle-pause ol { grid-template-columns: 1fr; }
  .daily-gentle-actions { grid-template-columns: 1fr 1fr; }
  .daily-checkin-card { grid-template-columns: auto minmax(0, 1fr); padding: 17px; }
  .daily-checkin-status, .daily-checkin-button { grid-column: 1 / -1; }
  .daily-checkin-button { width: 100%; }
  .daily-mood-weather { grid-template-columns: 1fr; }
  .daily-route-card { padding: 18px; }
  .daily-route-stations { grid-template-columns: 1fr; }
  .daily-route-stations:before { left: 34px; right: auto; top: 30px; bottom: 30px; border-top: 0; border-left: 3px dashed #d4e0e7; transform: none; }
  .daily-route-stations > button { min-height: 88px; }
  .daily-route-card.school-morning .daily-route-stations, .daily-route-card.school-day-route .daily-route-stations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .daily-route-card.school-morning .daily-route-stations:before, .daily-route-card.school-day-route .daily-route-stations:before { display: none; }
  .daily-route-card.school-morning .daily-route-stations > button, .daily-route-card.school-day-route .daily-route-stations > button { min-height: 82px; grid-template-columns: 40px minmax(0, 1fr); padding: 10px; }
  .daily-route-card.school-morning .daily-route-stations > button.info-only { grid-column: 1 / -1; }
  .daily-route-card.school-morning .daily-route-stations .daily-route-status, .daily-route-card.school-day-route .daily-route-stations .daily-route-status { grid-column: 2; justify-self: start; margin-top: -4px; }
  .daily-route-next { align-items: stretch; flex-direction: column; }
  .daily-route-next p { flex: 0 1 auto; }
  .daily-route-next-actions { width: 100%; display: grid; grid-template-columns: 1fr 1.2fr; }
  .daily-route-next button { width: 100%; }
  .morning-departure-list { grid-template-columns: 1fr; }
  .tomorrow-letter { grid-template-columns: 50px minmax(0, 1fr); }
  .tomorrow-letter-icon { width: 50px; height: 50px; }
  .tomorrow-letter > button { grid-column: 1 / -1; width: 100%; }
  .after-school-reset-card { padding: 16px; }
  .after-school-reset-heading { grid-template-columns: 52px minmax(0, 1fr); }
  .after-school-reset-icon { width: 52px; height: 52px; }
  .after-school-reset-state { grid-column: 1 / -1; justify-self: start; }
  .after-school-reset-steps, .after-school-energy > div { grid-template-columns: 1fr; }
  .after-school-reset-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .after-school-reset-actions button { width: 100%; }
  .after-school-reset-note, .after-school-reader-status { text-align: left; }
  .after-school-choice-card { padding: 16px; }
  .after-school-choice-heading { grid-template-columns: 52px minmax(0, 1fr); }
  .after-school-choice-icon { width: 52px; height: 52px; }
  .after-school-choice-state { grid-column: 1 / -1; justify-self: start; }
  .after-school-choice-grid { grid-template-columns: 1fr; }
  .after-school-choice-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .after-school-choice-actions button { width: 100%; }
  .after-school-choice-note { text-align: left; }
  .learning-map-summary { grid-template-columns: auto minmax(0, 1fr) auto; }
  .map-summary-progress { grid-column: 2 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
  .map-summary-progress > span { align-items: flex-start; }
  .dashboard-grid { display: flex; flex-direction: column; gap: 20px; margin-top: 27px; }
  .side-column { display: contents; }
  .task-panel { order: -1; }
  .content-column { order: 0; }
  .schedule-panel { order: 0; }
  .habit-panel { order: 1; }
  .reading-shelf-panel { order: 2; }
  .daily-note-panel { order: 3; }
  .daily-spark-panel { order: 4; }
  .weekly-goal-panel { order: 5; }
  .streak-panel { order: 6; }
  .subject-grid { grid-template-columns: 1fr; }
  .subject-grid:before { inset: 42px auto 42px 31px; border: 0; border-left: 3px dashed #e7d8b9; border-radius: 0; transform: none; }
  .subject-card { min-height: 118px; }
  .focus-card { grid-template-columns: auto 1fr; padding: 20px; }
  .focus-card .timer { grid-column: 1 / -1; width: 100%; padding: 12px 0 0; border-top: 1px dashed #d8d4ed; border-left: 0; }
  .focus-actions { grid-column: 1 / -1; }
  .focus-actions > button { flex: 1; min-width: 0; }
  .focus-rest { grid-template-columns: 44px minmax(0, 1fr); }
  .focus-rest > button { grid-column: 1 / -1; width: 100%; }
  .focus-task-finish { grid-template-columns: 1fr; }
  .focus-task-finish-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .mobile-nav { position: fixed; z-index: 30; left: 12px; right: 12px; bottom: 10px; height: 64px; display: grid; grid-template-columns: repeat(5, 1fr); padding: 5px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,253,248,.96); box-shadow: 0 12px 36px rgba(32,48,74,.15); backdrop-filter: blur(14px); }
  .mobile-nav a, .mobile-nav button { min-width: 0; min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; border-radius: 15px; color: var(--muted); background: transparent; cursor: pointer; font-size: calc(12.5px * var(--fs, 1)); font-weight: 800; transition: color .18s ease, background .18s ease, transform .18s ease; }
  .mobile-nav a svg { width: 20px; height: 20px; }
  .mobile-nav a.active { color: var(--orange-dark); background: #fff0e8; transform: translateY(-1px); }
  .mobile-nav .now-entry { color: #2f725d; background: #e2f3eb; }
  .mobile-nav .now-entry [data-now-icon] { font-size: calc(18px * var(--fs, 1)); line-height: 1; }
  .mobile-nav .now-entry:disabled { cursor: default; color: #777a86; background: #eeeeF2; }
}

@media (max-width: 420px) {
  .brand b { font-size: calc(16px * var(--fs, 1)); }
  .daily-mood-weather { padding: 9px; }
  .daily-mood-week { gap: 3px; }
  .daily-mood-day { min-height: 54px; padding: 3px 0; }
  .daily-mood-day b { font-size: calc(8px * var(--fs, 1)); }
  .brand-mark { width: 39px; height: 39px; }
  .hero { min-height: 0; }
  .hero h1 { font-size: calc(27px * var(--fs, 1)); }
  .workbench-tour-invite-actions, .workbench-tour-actions { grid-template-columns: 1fr; }
  .workbench-tour-actions #workbenchTourPrevious[hidden] { display: none; }
  .workbench-tour-coach-body { grid-template-columns: 46px minmax(0, 1fr); }
  .workbench-tour-coach-icon { width: 46px; height: 46px; }
  .welcome-back-actions { grid-template-columns: 1fr; }
  .welcome-back-actions #welcomeBackLater { grid-column: auto; }
  .daily-gentle-actions { grid-template-columns: 1fr; }
  .daily-brain-card { padding: 15px; }
  .daily-brain-card > header { grid-template-columns: 46px minmax(0, 1fr); }
  .daily-brain-icon { width: 46px; height: 46px; }
  .daily-brain-state { grid-column: 1 / -1; justify-self: start; }
  .daily-brain-choices { grid-template-columns: 1fr; }
  .daily-brain-card > footer { align-items: flex-start; flex-direction: column; }
  .daily-brain-week { width: 100%; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .daily-weather-card { grid-template-columns: 46px minmax(0, 1fr); }
  .daily-weather-card > button { grid-column: 1 / -1; width: 100%; }
  .daily-weather-choices { grid-template-columns: 1fr; }
  .habit-care-light-grid { grid-template-columns: 1fr; }
  .habit-care-light { min-height: 64px; display: grid; grid-template-columns: 36px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 8px; justify-items: start; text-align: left; }
  .habit-care-light > span { grid-row: 1 / 3; align-self: center; justify-self: center; }
  .daily-route-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .daily-route-next-actions { grid-template-columns: 1fr; }
  .daily-route-timing { width: 100%; justify-items: start; }
  .daily-route-now { align-self: flex-start; }
  .daily-route-overall { grid-template-columns: 1fr; gap: 8px; }
  .daily-route-stations > button { grid-template-columns: 42px minmax(0, 1fr); }
  .daily-route-icon { width: 42px; height: 42px; }
  .daily-route-status { grid-column: 2; justify-self: start; margin-top: -4px; }
  .daily-route-copy em { white-space: normal; }
  .daily-route-card.school-morning .daily-route-stations, .daily-route-card.school-day-route .daily-route-stations { grid-template-columns: 1fr; }
  .daily-route-card.school-morning .daily-route-stations > button.info-only { grid-column: auto; }
  .morning-departure-heading { grid-template-columns: 44px minmax(0, 1fr); }
  .morning-departure-icon { width: 44px; height: 44px; }
  .morning-departure-state { grid-column: 2; justify-self: start; }
  .morning-departure-actions { display: grid; grid-template-columns: 1fr; }
  .morning-departure-actions button { width: 100%; }
  .morning-departure-reader-status { text-align: left; }
  .morning-departure-note { text-align: left; }
  .tomorrow-letter { padding: 12px; }
  .section-heading h2 { font-size: calc(21px * var(--fs, 1)); }
  .learning-map-summary { grid-template-columns: auto minmax(0, 1fr); padding: 14px; }
  .map-compass-action { grid-column: 1 / -1; width: 100%; }
  .home-documentary-pick { grid-template-columns: 46px minmax(0, 1fr); padding: 13px; }
  .home-documentary-icon { width: 46px; height: 46px; border-radius: 15px; }
  .home-documentary-copy h3 { white-space: normal; }
  .home-documentary-pick > button { grid-column: 1 / -1; width: 100%; }
  .home-documentary-note { grid-column: 1 / -1; }
  .map-summary-progress { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
  .map-summary-progress > span { align-items: flex-start; }
  .focus-copy h2 { font-size: calc(16px * var(--fs, 1)); }
  .focus-task-finish-actions { grid-template-columns: 1fr; }
  .task-panel, .schedule-panel, .habit-panel, .reading-shelf-panel, .daily-note-panel, .daily-spark-panel, .weekly-goal-panel, .streak-panel { padding: 20px; }
  .habit-choice-grid { grid-template-columns: 1fr; }
  .habit-grade2-preset { grid-template-columns: 40px minmax(0, 1fr); }
  .habit-grade2-preset em { grid-column: 2; justify-self: start; }
  .habit-garden { grid-template-columns: 58px minmax(0, 1fr); }
  .habit-garden-plant { width: 58px; height: 72px; }
  .habit-garden-milestones span { flex-direction: column; gap: 1px; }
  .habit-next-cue { grid-template-columns: 43px minmax(0, 1fr); }
  .habit-next-cue-actions { grid-column: 1 / -1; width: 100%; grid-template-columns: 1fr; }
  .habit-next-cue button { width: 100%; }
  .habit-next-cue > .study-reader-status { grid-column: 1 / -1; }
  .habit-anchor-card { grid-template-columns: 48px minmax(0, 1fr); }
  .habit-anchor-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .habit-anchor-actions button { width: 100%; }
  .habit-secret-card { grid-template-columns: 48px minmax(0, 1fr); }
  .habit-secret-reveal { grid-column: 1 / -1; width: 100%; }
  .habit-secret-body { grid-template-columns: 1fr; }
  .habit-secret-body > button { width: 100%; }
  .habit-reflection-heading { grid-template-columns: 48px minmax(0, 1fr); }
  .habit-reflection-heading > button { grid-column: 1 / -1; width: 100%; }
  .habit-reflection-habits, .habit-reflection-strategies { grid-template-columns: 1fr; }
  .habit-reflection-clear { width: 100%; }
  .habit-method-pocket-days { gap: 3px; }
  .habit-method-pocket-days span { min-height: 48px; border-radius: 9px; }
  .habit-anchor-choice-grid { grid-template-columns: 1fr; }
  .habit-anchor-dialog-actions { grid-template-columns: 1fr; }
  .reading-current-book { grid-template-columns: 46px minmax(0, 1fr); }
  .reading-book-cover { width: 46px; height: 54px; }
  .reading-current-book > button { grid-column: 1 / -1; width: 100%; }
  .reading-detective-heading { grid-template-columns: 46px minmax(0, 1fr); }
  .reading-detective-heading > button { grid-column: 1 / -1; width: 100%; }
  .reading-detective-actions { grid-template-columns: 1fr; }
  .reading-today { grid-template-columns: 1fr; }
  .reading-today > button { width: 100%; }
  .reading-shelf-row-actions { grid-template-columns: 1fr; }
  .reading-log-actions { grid-template-columns: 1fr; }
  .daily-spark-heading { align-items: flex-start; flex-direction: column; }
  .daily-spark-heading > button { width: 100%; }
  .daily-spark-feature { grid-template-columns: 46px minmax(0, 1fr); }
  .daily-spark-icon { width: 46px; height: 46px; }
  .daily-spark-choices { grid-template-columns: 1fr; }
  .daily-spark-dialog-actions { grid-template-columns: 1fr; }
  .interest-radar-choices { grid-template-columns: 1fr; }
  .interest-radar-dialog-actions { grid-template-columns: 1fr; }
  .family-share-choices { grid-template-columns: 1fr; }
  .family-share-dialog-actions { grid-template-columns: 1fr; }
  .dashboard-shortcut-choices { grid-template-columns: 1fr; }
  .dashboard-shortcut-dialog-actions { grid-template-columns: 1fr; }
  .after-school-reset-actions { grid-template-columns: 1fr; }
  .after-school-choice-actions { grid-template-columns: 1fr; }
  .word-growth-summary { grid-template-columns:48px minmax(0,1fr); }
  .word-growth-metrics { grid-column:1 / -1; }
  .word-growth-summary > a { grid-column:1 / -1; width:100%; }
  .growth-week-story-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .growth-week-story-chips span:last-child { grid-column: 1 / -1; }
  .weekly-goal-templates > div { grid-template-columns: 1fr; }
  .daily-choice-grid, .daily-choice-grid.mood-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-editor-toolbar { align-items: flex-start; flex-direction: column; }
  .schedule-editor-toolbar > span { width: 100%; justify-content: stretch; }
  .schedule-editor-toolbar button { flex: 1 1 120px; }
  .personal-task-field-row { grid-template-columns: 1fr; gap: 0; }
  .task-starter-picker { grid-template-columns: 1fr; gap: 6px; }
  .task-starter-dialog-actions { grid-template-columns: 1fr; }
  .all-module-grid { grid-template-columns: 1fr; }
  .parent-subject-progress { grid-template-columns: 1fr; }
  .parent-view-dialog { padding: 30px 18px 22px; }
  .parent-cheer-current { grid-template-columns: 42px minmax(0, 1fr); }
  .parent-cheer-current button { grid-column: 1 / -1; width: 100%; }
  .parent-cheer-templates { grid-template-columns: 1fr; }
}

/* 2026-08 information architecture: one clear area at a time */
body[data-page="index"] .main-nav { gap:4px; }
body[data-page="index"] .main-nav a { padding-inline:12px; }
body[data-page="index"] .main-nav .main-word-link b { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; color:#397c69; background:#dff5ed; font-size:calc(11px * var(--fs,1)); }
body[data-page="index"][data-home-view="main"] .main-nav .now-entry,
body[data-page="index"][data-home-view="today-plan"] .main-nav .now-entry { display:none; }

.workspace-subnav { width:100%; max-width:980px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 auto 18px; padding:7px; border:1px solid var(--line); border-radius:20px; background:rgba(255,253,248,.94); box-shadow:0 9px 24px rgba(58,55,45,.055); }
.workspace-subnav a { min-width:0; min-height:68px; display:grid; grid-template-columns:44px minmax(0,1fr); gap:10px; align-items:center; padding:8px 13px; border:1px solid transparent; border-radius:14px; color:#6d7888; }
.workspace-subnav a>span:first-child { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:#f1f3f5; font-size:calc(22px * var(--fs,1)); }
.workspace-subnav a>span:last-child,.workspace-subnav b,.workspace-subnav small { min-width:0; display:block; }
.workspace-subnav b { font-size:calc(15px * var(--fs,1)); }
.workspace-subnav small { margin-top:3px; overflow:hidden; color:#85909d; font-size:calc(12px * var(--fs,1)); text-overflow:ellipsis; white-space:nowrap; }
.workspace-subnav a:hover { color:#315f8b; border-color:#d2e0ed; background:#f8fbfe; }
.workspace-subnav a.active { color:#245f9f; border-color:#bcd4e8; background:#edf6ff; }
.workspace-subnav a.active>span:first-child { background:#dceeff; }

.today-plan-return { width:100%; max-width:760px; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 auto 16px; padding:11px 14px; border:1px solid #d8e2ea; border-radius:17px; background:rgba(255,255,255,.94); box-shadow:0 7px 20px rgba(58,70,82,.05); }
.today-plan-return>a { min-height:44px; display:inline-flex; align-items:center; gap:7px; padding:0 12px; border:1px solid #ccdae5; border-radius:11px; color:#446c8e; background:#f0f7fc; font-size:calc(12px * var(--fs,1)); font-weight:900; }
.today-plan-return>span { min-width:0; display:flex; flex-direction:column; text-align:right; }
.today-plan-return b { color:#485a6c; font-size:calc(14px * var(--fs,1)); }
.today-plan-return small { margin-top:2px; color:#83909b; font-size:calc(10.5px * var(--fs,1)); }

body[data-page="index"][data-home-view] .page-shell > * { display:none; }

body[data-page="index"][data-home-view="main"] .page-shell > .hero,
body[data-page="index"][data-home-view="today-plan"] .page-shell > .today-plan-return,
body[data-page="index"][data-home-view="today-plan"] .page-shell > .daily-gentle-card:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .after-school-reset-card:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .after-school-choice-card:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .workbench-tour-invite:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .welcome-back-card:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="subjects"] .page-shell > .learning-subnav,
body[data-page="index"][data-home-view="subjects"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="challenges"] .page-shell > .learning-subnav,
body[data-page="index"][data-home-view="challenges"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="challenges"] .page-shell > .daily-tools-grid,
body[data-page="index"][data-home-view="challenges"] .page-shell > .daily-brain-card,
body[data-page="index"][data-home-view="challenges"] .page-shell > .interest-radar-card,
body[data-page="index"][data-home-view="habits"] .page-shell > .habits-subnav,
body[data-page="index"][data-home-view="habits"] .page-shell > .daily-route-card,
body[data-page="index"][data-home-view="habits"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="schedule"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="growth"] .page-shell > .growth-subnav,
body[data-page="index"][data-home-view="growth-records"] .page-shell > .today-footprint-ribbon:not([hidden]),
body[data-page="index"][data-home-view="growth-records"] .page-shell > .family-cheer-card:not([hidden]),
body[data-page="index"][data-home-view="growth"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="growth-records"] .page-shell > .growth-subnav,
body[data-page="index"][data-home-view="growth-records"] .page-shell > .daily-tools-grid,
body[data-page="index"][data-home-view="growth-records"] .page-shell > .dashboard-grid { display:grid; }

body[data-page="index"][data-home-view="main"] .page-shell > .hero,
body[data-page="index"][data-home-view="challenges"] .page-shell > .interest-radar-card,
body[data-page="index"][data-home-view="growth-records"] .page-shell > .today-footprint-ribbon:not([hidden]),
body[data-page="index"][data-home-view="growth-records"] .page-shell > .family-cheer-card:not([hidden]) { display:flex; }

body[data-page="index"][data-home-view] .dashboard-grid { grid-template-columns:minmax(0,1fr); max-width:980px; margin:24px auto 0; }
body[data-page="index"][data-home-view="today-plan"] .dashboard-grid { max-width:760px; margin-top:0; }
body[data-page="index"][data-home-view="main"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="today-plan"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="habits"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="schedule"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="growth"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="growth-records"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="subjects"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="challenges"] .dashboard-grid .side-column { display:none; }
body[data-page="index"][data-home-view="subjects"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="challenges"] .dashboard-grid .content-column { display:block; }
body[data-page="index"][data-home-view="main"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="today-plan"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="habits"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="schedule"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="growth"] .dashboard-grid .side-column,
body[data-page="index"][data-home-view="growth-records"] .dashboard-grid .side-column { display:flex; }

body[data-page="index"][data-home-view="main"] .side-column > *,
body[data-page="index"][data-home-view="today-plan"] .side-column > *,
body[data-page="index"][data-home-view="habits"] .side-column > *,
body[data-page="index"][data-home-view="schedule"] .side-column > *,
body[data-page="index"][data-home-view="growth"] .side-column > *,
body[data-page="index"][data-home-view="growth-records"] .side-column > * { display:none; }
body[data-page="index"][data-home-view="today-plan"] .side-column > .task-panel,
body[data-page="index"][data-home-view="habits"] .side-column > .habit-panel,
body[data-page="index"][data-home-view="schedule"] .side-column > .schedule-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .daily-spark-panel,
body[data-page="index"][data-home-view="growth"] .side-column > .family-points-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .streak-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .daily-note-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .weekly-goal-panel { display:block; }

body[data-page="index"][data-home-view="subjects"] .content-column > .section-heading { margin-top:2px; }
body[data-page="index"][data-home-view="subjects"] .content-column > .home-documentary-pick { display:none; }
body[data-page="index"][data-home-view="challenges"] .content-column > * { display:none; }
body[data-page="index"][data-home-view="challenges"] .content-column > .home-documentary-pick { display:grid; margin-top:0; }
body[data-page="index"][data-home-view="subjects"] .subject-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-page="index"][data-home-view="subjects"] .page-shell,
body[data-page="index"][data-home-view="challenges"] .page-shell { display:flex; flex-direction:column; }
body[data-page="index"][data-home-view="subjects"] .page-shell > .learning-subnav,
body[data-page="index"][data-home-view="challenges"] .page-shell > .learning-subnav { order:0; }
body[data-page="index"][data-home-view="subjects"] .page-shell > .dashboard-grid,
body[data-page="index"][data-home-view="challenges"] .page-shell > .dashboard-grid { width:100%; margin-top:0; order:1; }
body[data-page="index"][data-home-view="challenges"] .page-shell > .daily-tools-grid { order:2; }
body[data-page="index"][data-home-view="challenges"] .page-shell > .daily-brain-card { width:100%; max-width:980px; margin-left:auto; margin-right:auto; order:3; }
body[data-page="index"][data-home-view="challenges"] .page-shell > .interest-radar-card { width:100%; max-width:980px; margin-left:auto; margin-right:auto; order:4; }
body[data-page="index"][data-home-view="challenges"] .daily-tools-grid,
body[data-page="index"][data-home-view="growth-records"] .daily-tools-grid { grid-template-columns:minmax(0,1fr); max-width:980px; margin:20px auto 0; }
body[data-page="index"][data-home-view="challenges"] .daily-tools-grid > .daily-checkin-card,
body[data-page="index"][data-home-view="growth-records"] .daily-tools-grid > .daily-surprise-card { display:none; }
body[data-page="index"][data-home-view="habits"] .daily-route-card { max-width:980px; margin:20px auto 0; }
body[data-page="index"][data-home-view="main"] .page-shell > .hero { display:flex; }
body[data-page="index"][data-home-view="habits"] .page-shell > .daily-route-card { display:block; }
body[data-page="index"][data-home-view="challenges"] .page-shell > .daily-brain-card { display:block; }
body[data-page="index"][data-home-view="growth-records"] .page-shell > .today-footprint-ribbon:not([hidden]),
body[data-page="index"][data-home-view="growth-records"] .page-shell > .family-cheer-card:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .workbench-tour-invite:not([hidden]),
body[data-page="index"][data-home-view="today-plan"] .page-shell > .welcome-back-card:not([hidden]) { display:grid; }

@media (max-width:800px) {
  body[data-page="index"][data-home-view] .dashboard-grid { max-width:none; }
  .hero-study-shortcuts { grid-template-columns:1fr; }
  .hero-study-shortcuts>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(84px,1fr)); }
  .hero-study-shortcuts button { min-width:0; justify-content:center; padding:0 6px; }
  .hero-secondary-links { justify-content:flex-start; gap:10px; }
  .today-plan-return { align-items:flex-start; }
  body[data-page="index"][data-home-view="subjects"] .subject-grid { grid-template-columns:1fr; }
  .workspace-subnav { gap:6px; margin-bottom:12px; padding:5px; border-radius:16px; }
  .workspace-subnav a { min-height:58px; grid-template-columns:36px minmax(0,1fr); gap:7px; padding:6px 8px; border-radius:12px; }
  .workspace-subnav a>span:first-child { width:36px; height:36px; border-radius:10px; font-size:calc(18px * var(--fs,1)); }
  .workspace-subnav b { font-size:calc(13.5px * var(--fs,1)); }
  .workspace-subnav small { font-size:calc(10.5px * var(--fs,1)); }
  body[data-page="index"] .mobile-nav { left:0; right:0; bottom:0; height:calc(64px + env(safe-area-inset-bottom)); padding:4px 5px env(safe-area-inset-bottom); border:0; border-top:1px solid var(--line); border-radius:0; box-shadow:none; }
}

@media (max-width:420px) {
  .today-plan-return { align-items:stretch; flex-direction:column; }
  .today-plan-return>span { text-align:left; }
}

body[data-page="index"][data-home-view="habits"] .side-column > .habit-panel,
body[data-page="index"][data-home-view="growth"] .side-column > .family-points-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .daily-note-panel { order:0; }
body[data-page="index"][data-home-view="schedule"] .side-column > .schedule-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .streak-panel,
body[data-page="index"][data-home-view="growth-records"] .side-column > .weekly-goal-panel { order:1; }
body[data-page="index"][data-home-view="growth-records"] .side-column > .daily-spark-panel { order:2; }

/* 2026-08-27: completed steps collapse; each tap starts one real next action. */
.after-school-reset-card.is-ready { padding-block:14px; }
.after-school-reset-card.is-ready .after-school-reset-steps,
.after-school-reset-card.is-ready .after-school-energy,
.after-school-reset-card.is-ready .after-school-reset-status,
.after-school-reset-card.is-ready .after-school-reset-actions,
.after-school-reset-card.is-ready .after-school-reader-status,
.after-school-reset-card.is-ready .after-school-reset-note { display:none !important; }
.after-school-reset-card.is-ready .after-school-reset-result { margin-top:10px; }

.after-school-choice-card.is-started { padding-block:14px; }
.after-school-choice-card.is-started .after-school-choice-grid,
.after-school-choice-card.is-started .after-school-choice-status,
.after-school-choice-card.is-started .after-school-choice-actions,
.after-school-choice-card.is-started .after-school-reader-status,
.after-school-choice-card.is-started .after-school-choice-note { display:none !important; }
.after-school-choice-card.is-started .after-school-choice-selected { margin-top:10px; }

@media (max-width:800px) {
  .after-school-reset-card.is-ready .after-school-reset-state,
  .after-school-choice-card.is-started .after-school-choice-state { grid-column:auto; justify-self:end; }
  .task-list li:not(.task-list-heading) { padding-right:2px; }
  .task-go { min-height:36px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* 家庭积分（只读）：家长在 family-rewards.html 登记，孩子在成长足迹查看结果、汇总与历史 */
.family-points-panel { background: linear-gradient(145deg, #fffdf6, #f1f7fb); border-color: #dbe3ea; }
.family-points-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.family-points-heading > div:first-child { min-width: 0; }
.family-points-heading h2 { margin: 3px 0 0; font-size: calc(19px * var(--fs, 1)); }
.family-points-balance { display: flex; flex-direction: column; align-items: center; flex: none; min-width: 84px; padding: 9px 12px; border-radius: 16px; color: #fff; background: linear-gradient(145deg, #3f5a7a, #587aa0); box-shadow: 0 8px 18px rgba(63,90,122,.18); }
.family-points-balance strong { font-size: calc(26px * var(--fs, 1)); line-height: 1; font-variant-numeric: tabular-nums; }
.family-points-balance small { margin-top: 4px; font-size: calc(11.5px * var(--fs, 1)); opacity: .9; }
.family-points-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 14px; }
.family-points-metrics > span { display: flex; flex-direction: column; align-items: center; padding: 9px 4px 8px; border: 1px solid #e2e7ee; border-radius: 12px; background: rgba(255,255,255,.75); }
.family-points-metrics strong { color: #40516a; font-size: calc(15px * var(--fs, 1)); line-height: 1; font-variant-numeric: tabular-nums; }
.family-points-metrics small { margin-top: 5px; color: var(--muted); font-size: calc(12px * var(--fs, 1)); }
.family-points-today { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: start; margin-top: 14px; padding: 13px; border: 1px dashed #d5dde6; border-radius: 16px; background: rgba(255,255,255,.7); }
.family-points-panel.has-today .family-points-today { border-style: solid; border-color: #cfdcc9; background: linear-gradient(125deg, #f4faf1, #fffdf6); }
.family-points-today-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #e9eff5; font-size: calc(22px * var(--fs, 1)); }
.family-points-today-copy { min-width: 0; display: flex; flex-direction: column; }
.family-points-today-copy small { color: #4f6a86; font-size: calc(11.5px * var(--fs, 1)); font-weight: 900; }
.family-points-today-copy b { margin-top: 2px; color: #2f4560; font-size: calc(15px * var(--fs, 1)); }
.family-points-today-copy p { margin: 4px 0 0; color: #66788c; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.family-points-today-total { padding: 6px 12px; border-radius: 12px; background: #2f7d5b; color: #fff; font-size: calc(22px * var(--fs, 1)); font-variant-numeric: tabular-nums; line-height: 1.1; }
.family-points-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.family-points-chips:empty { display: none; }
.family-points-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 9px; border-radius: 999px; background: #eef2f6; color: #3b4d63; font-size: calc(12px * var(--fs, 1)); }
.family-points-chip i { font-style: normal; }
.family-points-chip b { font-weight: 800; }
.family-points-chip.is-sport { background: #e6f3ec; color: #2f6b4f; }
.family-points-chip.is-chore { background: #fbeee3; color: #8b5a2b; }
.family-points-chip.is-study { background: #e8eef9; color: #3c5484; }
.family-points-chip.is-self { background: #f2ebf8; color: #6a4c8a; }
.family-points-chip.is-award { background: #fff3cc; color: #8a6200; }
.family-points-chip.is-redeem { background: #fde9e4; color: #9a4a35; }
.family-points-chip.is-note { background: transparent; color: var(--muted); padding-left: 0; }
.family-points-next { margin-top: 14px; padding: 13px; border: 1px solid #e2e7ee; border-radius: 16px; background: rgba(255,255,255,.75); }
.family-points-next-copy { display: flex; flex-direction: column; }
.family-points-next-copy small { color: var(--muted); font-size: calc(11.5px * var(--fs, 1)); font-weight: 900; }
.family-points-next-copy b { margin-top: 2px; color: #2f4560; font-size: calc(14px * var(--fs, 1)); }
.family-points-track { height: 10px; margin-top: 10px; border-radius: 999px; background: #e6ebf1; overflow: hidden; }
.family-points-track i { display: block; width: var(--family-points-progress, 0%); height: 100%; border-radius: 999px; background: linear-gradient(90deg, #6fb59a, #3f8f74); transition: width .4s ease; }
.family-points-tiers { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.family-points-tier { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid #e2e7ee; border-radius: 12px; background: #fff; color: #5a6b80; font-size: calc(12px * var(--fs, 1)); }
.family-points-tier i { font-style: normal; }
.family-points-tier b { font-weight: 800; }
.family-points-tier em { font-style: normal; color: var(--muted); }
.family-points-tier.is-ready { border-color: #bcdac9; background: #edf8f1; color: #2f6b4f; }
.family-points-tier.is-ready em { color: #2f7d5b; font-weight: 800; }
.family-points-history-wrap { margin-top: 16px; }
.family-points-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.family-points-history-heading span { color: #4f6a86; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.family-points-history-heading button { min-height: 36px; padding: 0 12px; border: 1px solid #d7dfe8; border-radius: 10px; background: #fff; color: #3f5a7a; font-size: calc(12.5px * var(--fs, 1)); font-weight: 800; cursor: pointer; }
.family-points-history { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.family-points-day { padding: 9px 12px; border: 1px solid #e6ebf1; border-radius: 12px; background: rgba(255,255,255,.78); }
.family-points-day-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.family-points-day-head b { color: #2f4560; font-size: calc(13.5px * var(--fs, 1)); }
.family-points-day-head strong { font-size: calc(14px * var(--fs, 1)); font-variant-numeric: tabular-nums; color: #5a6b80; }
.family-points-day-head strong.is-plus { color: #2f7d5b; }
.family-points-day-head strong.is-minus { color: #b4553c; }
.family-points-day p { margin: 3px 0 0; color: #55677c; font-size: calc(12px * var(--fs, 1)); line-height: 1.45; }
.family-points-day small { display: block; margin-top: 3px; color: var(--muted); font-size: calc(11px * var(--fs, 1)); }
.family-points-empty { margin: 8px 0 0; color: var(--muted); font-size: calc(12.5px * var(--fs, 1)); }
.family-points-months { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.family-points-months-title { color: #4f6a86; font-size: calc(12.5px * var(--fs, 1)); font-weight: 900; }
.family-points-month { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; padding: 6px 10px; border-radius: 10px; background: rgba(255,255,255,.7); font-size: calc(12px * var(--fs, 1)); color: #55677c; }
.family-points-month b { color: #2f4560; }
.family-points-month em { font-style: normal; font-weight: 800; color: #2f7d5b; }
.family-points-privacy { display: block; margin-top: 12px; color: var(--muted); font-size: calc(11.5px * var(--fs, 1)); line-height: 1.45; }
.family-points-panel.is-empty .family-points-next, .family-points-panel.is-empty .family-points-months { display: none; }
@media (max-width: 800px) {
  .family-points-today { grid-template-columns: 40px minmax(0, 1fr); }
  .family-points-today-total { grid-column: 2; justify-self: start; }
  .family-points-month { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* 家庭积分跨设备连接，折叠在卡片内。 */
.family-points-connect { margin-top: 12px; border-top: 1px solid #e2e7ee; border-bottom: 1px solid #e2e7ee; }
.family-points-connect > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; min-height: 44px; padding: 8px 0; color: #55677c; font-size: calc(12px * var(--fs, 1)); cursor: pointer; list-style: none; }
.family-points-connect > summary::-webkit-details-marker { display: none; }
.family-points-connect > summary span::before { content: '▸ '; }
.family-points-connect[open] > summary span::before { content: '▾ '; }
.family-points-connect > summary small { color: var(--muted); font-size: calc(11px * var(--fs, 1)); overflow-wrap: anywhere; }
.family-points-connect > summary:focus-visible { outline: 3px solid #9fb6cf; outline-offset: 2px; border-radius: 4px; }
.family-points-connect form { padding-bottom: 4px; }
.family-points-connect p { margin: 0 0 10px; color: var(--muted); font-size: calc(12px * var(--fs, 1)); line-height: 1.5; }
.family-points-connect label { display: block; margin-bottom: 6px; color: #4f6a86; font-size: calc(12px * var(--fs, 1)); font-weight: 800; }
.family-points-connect-row { display: flex; gap: 8px; margin-bottom: 10px; }
.family-points-connect-row input { flex: 1; width: 0; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #d7dfe8; border-radius: 10px; background: #fff; color: #2f4560; font-size: 16px; }
.family-points-connect-row button { flex: none; min-height: 44px; padding: 0 16px; border: 1px solid #d7dfe8; border-radius: 10px; background: #fff; color: #3f5a7a; font-size: calc(12px * var(--fs, 1)); font-weight: 800; cursor: pointer; }
.family-points-connect-row button:disabled { opacity: .6; cursor: wait; }
.family-points-connect .family-points-sync-status { color: #4f6a86; overflow-wrap: anywhere; }
.family-points-connect .family-points-sync-status.is-error { color: #a14343; }

/* 成长足迹简化：家庭积分放最上面；成长足迹只保留累计天数、本周脚印和每周记录，其余折叠到“看更多” */
.growth-more { margin-top: 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.6); }
.growth-more > summary { display: flex; flex-direction: column; gap: 2px; padding: 11px 14px; cursor: pointer; list-style: none; color: #3f5a7a; }
.growth-more > summary::-webkit-details-marker { display: none; }
.growth-more > summary span { font-size: calc(13.5px * var(--fs, 1)); font-weight: 900; }
.growth-more > summary span::before { content: '▸ '; }
.growth-more[open] > summary span::before { content: '▾ '; }
.growth-more > summary small { color: var(--muted); font-size: calc(11.5px * var(--fs, 1)); }
.growth-more > summary:focus-visible { outline: 3px solid #9fb6cf; outline-offset: -3px; border-radius: 14px; }
.growth-more > *:not(summary) { margin-left: 12px; margin-right: 12px; }
.growth-more > *:not(summary):last-child { margin-bottom: 12px; }

/* 可以做的事：所有日常项目一览，今天已登记的打钩 */
.family-points-menu-wrap { margin-top: 14px; }
.family-points-menu { display: grid; gap: 8px; margin-top: 8px; }
.family-points-menu-group { padding: 8px 10px 6px; border: 1px solid #e2e7ee; border-radius: 14px; background: rgba(255,255,255,.75); }
.family-points-menu-group.is-sport { border-color: #cfe3d8; }
.family-points-menu-group.is-chore { border-color: #eedbc9; }
.family-points-menu-group.is-study { border-color: #cfd9ec; }
.family-points-menu-group.is-self { border-color: #e2d6ec; }
.family-points-menu-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name score" "note score"; column-gap: 8px; align-items: center; padding: 2px 2px 6px; }
.family-points-menu-head > b { grid-area: name; }
.family-points-menu-head > small { grid-area: note; }
.family-points-menu-score { grid-area: score; display: inline-flex; align-items: baseline; gap: 2px; padding: 4px 10px; border-radius: 999px; background: #eef2f6; color: #5a6b80; font-size: calc(11.5px * var(--fs, 1)); font-weight: 800; font-variant-numeric: tabular-nums; }
.family-points-menu-score b { font-size: calc(15px * var(--fs, 1)); color: inherit; }
.family-points-menu-score.has-points { background: #d9efe4; color: #2f7d5b; }
.family-points-menu-head b { color: #2f4560; font-size: calc(13.5px * var(--fs, 1)); }
.family-points-menu-head small { color: var(--muted); font-size: calc(11px * var(--fs, 1)); }
.family-points-menu-item { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; grid-template-areas: "mark name pts" "mark note pts" "mark state state"; column-gap: 8px; align-items: center; width: 100%; min-height: 52px; padding: 7px 4px; border: 0; border-top: 1px dashed #e6ebf1; border-radius: 0; background: transparent; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.family-points-menu-item:focus-visible { outline: 2px solid #3f8f74; outline-offset: -2px; border-radius: 10px; }
.family-points-menu-item:disabled { cursor: default; }
.family-points-menu-state { grid-area: state; justify-self: start; margin-top: 3px; padding: 1px 8px; border-radius: 999px; background: #eef2f6; color: #4a5d73; font-size: calc(10.5px * var(--fs, 1)); font-weight: 800; }
.family-points-menu-item.is-pending { background: #fff8e6; border-radius: 10px; }
.family-points-menu-item.is-pending i { border-color: #e2b84a; background: #fff2cc; color: #8a6200; font-size: 11px; }
.family-points-menu-item.is-pending .family-points-menu-state { background: #ffe9ad; color: #7a5600; }
.family-points-menu-item.is-rejected i { border-color: #d6a0a0; background: #fbecec; color: #a14343; font-size: 12px; }
.family-points-menu-item.is-rejected .family-points-menu-state { background: #fbe4e4; color: #a14343; }
.family-points-menu-item.is-done { background: #eef8f2; border-radius: 10px; }
.family-points-menu-item.is-done .family-points-menu-state { background: #d9efe4; color: #2f7d5b; }
.family-points-menu-status { margin: 8px 2px 0; color: #5a6b80; font-size: calc(12px * var(--fs, 1)); line-height: 1.5; }
.family-points-chip.is-pending { background: #fff2cc; color: #7a5600; }
.family-points-menu-item i { grid-area: mark; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid #cfd8e2; background: #fff; color: #fff; font-style: normal; font-size: 13px; font-weight: 900; }
.family-points-menu-item b { grid-area: name; color: #2f4560; font-size: calc(13px * var(--fs, 1)); }
.family-points-menu-item small { grid-area: note; color: #66788c; font-size: calc(11px * var(--fs, 1)); line-height: 1.4; }
.family-points-menu-item em { grid-area: pts; font-style: normal; font-weight: 900; font-size: calc(12.5px * var(--fs, 1)); color: #5a6b80; font-variant-numeric: tabular-nums; }
.family-points-menu-points { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 54px; padding: 5px 8px; border-radius: 12px; background: #e6f3ec; color: #2f7d5b !important; line-height: 1.1; }
.family-points-menu-points strong { font-size: calc(17px * var(--fs, 1)); font-weight: 900; }
.family-points-menu-points span { margin-top: 2px; font-size: calc(10px * var(--fs, 1)); font-weight: 700; opacity: .85; }
.family-points-menu-item.is-pending .family-points-menu-points { background: #ffe9ad; color: #7a5600 !important; }
.family-points-menu-item.is-done .family-points-menu-points { background: #2f7d5b; color: #fff !important; }
.family-points-menu-item.is-rejected .family-points-menu-points { background: #f1f4f7; color: #8b98a8 !important; }
@keyframes family-points-pop { 0% { transform: scale(1); } 35% { transform: scale(1.18); } 100% { transform: scale(1); } }
.family-points-menu-item.is-flash .family-points-menu-points { animation: family-points-pop .5s ease-out; }
.family-points-menu-item.is-flash { animation: family-points-flash 1s ease-out; }
@keyframes family-points-flash { 0% { box-shadow: inset 0 0 0 2px #e0993a; } 100% { box-shadow: inset 0 0 0 2px transparent; } }
.family-points-menu-item.is-done i { border-color: #3f8f74; background: #3f8f74; }
.family-points-menu-item.is-done b { color: #2f7d5b; }
.family-points-menu-item.is-done em { color: #2f7d5b; }
.family-points-extra { margin-top: 8px; border: 1px solid #e2e7ee; border-radius: 14px; background: rgba(255,255,255,.6); }
.family-points-extra > summary { padding: 9px 12px; cursor: pointer; color: #3f5a7a; font-size: calc(13px * var(--fs, 1)); font-weight: 900; list-style: none; }
.family-points-extra > summary::-webkit-details-marker { display: none; }
.family-points-extra > summary::before { content: '▸ '; }
.family-points-extra[open] > summary::before { content: '▾ '; }
.family-points-award-menu { display: grid; gap: 8px; padding: 0 8px 8px; }
.family-points-award-menu .family-points-menu-item { cursor: default; min-height: 0; }
.family-points-menu-group.is-award { border-color: #f0e2b8; }

/* 历史分析：最近 8 周与最近 30 天分布 */
.family-points-analysis { margin-top: 14px; padding: 12px 13px; border: 1px solid #e2e7ee; border-radius: 16px; background: rgba(255,255,255,.75); }
.family-points-analysis .family-points-history-heading small { color: var(--muted); font-size: calc(11.5px * var(--fs, 1)); text-align: right; }
.family-points-trend { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; height: 120px; margin: 8px 0 12px; align-items: end; }
.family-points-trend-week { display: grid; grid-template-rows: auto 1fr auto; align-items: end; height: 100%; text-align: center; }
.family-points-trend-week strong { color: #2f7d5b; font-size: calc(11px * var(--fs, 1)); font-variant-numeric: tabular-nums; }
.family-points-trend-week i { display: block; width: 60%; height: var(--family-points-bar, 0%); min-height: 3px; margin: 3px auto 0; border-radius: 5px 5px 0 0; background: linear-gradient(180deg, #8fc9b0, #3f8f74); align-self: end; }
.family-points-trend-week small { color: var(--muted); font-size: calc(10.5px * var(--fs, 1)); }
.family-points-trend-week.is-current small { color: #3f5a7a; font-weight: 900; }
.family-points-share { display: grid; gap: 6px; margin-top: 8px; }
.family-points-share-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.family-points-share-row b { color: #2f4560; font-size: calc(12.5px * var(--fs, 1)); }
.family-points-share-track { height: 10px; border-radius: 999px; background: #e6ebf1; overflow: hidden; }
.family-points-share-track i { display: block; width: var(--family-points-bar, 0%); height: 100%; border-radius: 999px; background: #8fa7c2; transition: width .4s ease; }
.family-points-share-row.is-sport .family-points-share-track i { background: #5aa886; }
.family-points-share-row.is-chore .family-points-share-track i { background: #d9a06a; }
.family-points-share-row.is-study .family-points-share-track i { background: #6d8cc7; }
.family-points-share-row.is-self .family-points-share-track i { background: #a583c6; }
.family-points-share-row em { font-style: normal; color: #55677c; font-size: calc(11.5px * var(--fs, 1)); font-variant-numeric: tabular-nums; white-space: nowrap; }
.family-points-top { margin: 10px 0 0; color: #40516a; font-size: calc(12.5px * var(--fs, 1)); line-height: 1.5; }
.family-points-panel.is-empty .family-points-analysis { display: none; }

/* Essential routes stay visible; reading and settings remain secondary. */
body[data-page="index"][data-home-view="habit-reading"] .page-shell > .habits-subnav,
body[data-page="index"][data-home-view="habit-reading"] .page-shell > .dashboard-grid { display:grid; }
body[data-page="index"][data-home-view="habit-reading"] .dashboard-grid .content-column,
body[data-page="index"][data-home-view="habit-reading"] .side-column > * { display:none; }
body[data-page="index"][data-home-view="habit-reading"] .dashboard-grid .side-column { display:flex; }
body[data-page="index"][data-home-view="habit-reading"] .side-column > .reading-shelf-panel { display:block; }
body[data-page="index"][data-home-view="schedule"] .dashboard-grid { margin-top:0; }
body[data-page="index"][data-home-view="growth-records"] .side-column > .streak-panel { order:-1; }
.schedule-extras { margin-top:18px; border-top:1px solid var(--line); }
.schedule-extras>summary,.profile-options>summary { min-height:48px; padding:14px 2px; color:var(--muted); font-size:calc(14px * var(--fs,1)); font-weight:700; cursor:pointer; }
.schedule-extras .daily-weather-card { margin-top:0; }
.profile-essential-settings { margin:16px 0; }
.profile-essential-settings #openFamilySync { color:#285f88; border-color:#bbd3e8; background:#eef6fc; }
.profile-essential-settings #openFamilyRewards { color:#986326; border-color:#e5cfac; background:#fff7e7; }
.profile-options { text-align:left; border-top:1px solid var(--line); }
.profile-options .profile-theme { margin-top:6px; }
.profile-options .profile-settings { margin-top:0; }
body[data-page="index"][data-home-view="growth"] .study-tools,
body[data-page="index"][data-home-view="schedule"] .study-tools { display:none; }

/* The full school week stays visible without switching days. */
.schedule-week-wrap { width:100%; max-width:100%; min-width:0; margin-top:12px; overflow-x:auto; overscroll-behavior-x:contain; border:1px solid #cad9e6; border-radius:14px; background:#fff; }
.schedule-week-table { width:100%; min-width:720px; table-layout:fixed; border-spacing:0; border-collapse:separate; color:#324f67; font-size:calc(14px * var(--fs,1)); text-align:center; }
.schedule-week-table .schedule-time-column { width:100px; }
body[data-home-view="schedule"] .dashboard-grid, body[data-home-view="schedule"] .side-column, .schedule-panel { min-width:0; }
.schedule-week-wrap:focus-visible { outline:3px solid #789cbd; outline-offset:3px; }
.schedule-week-table tr > :first-child { position:sticky; left:0; z-index:1; }
.schedule-week-table thead tr > :first-child { z-index:2; }
.schedule-week-hint { margin:10px 0 0; color:#607a90; font-size:calc(12px * var(--fs,1)); line-height:1.5; }
.schedule-week-table th,.schedule-week-table td { padding:9px 6px; border-right:1px solid #dce5ee; border-bottom:1px solid #dce5ee; overflow-wrap:anywhere; vertical-align:middle; }
.schedule-week-table tr>:last-child { border-right:0; }
.schedule-week-table tbody tr:last-child>* { border-bottom:0; }
.schedule-week-table thead th { height:54px; background:#eaf2fa; color:#345d81; font-weight:800; }
.schedule-week-table .schedule-time-heading span { display:block; margin-top:2px; font-size:12px; color:#71869a; font-weight:500; }
.schedule-week-day small { display:block; width:fit-content; margin:3px auto 0; padding:2px 8px; border-radius:10px; background:#bd7915; color:#fff; font-size:12px; line-height:1.3; }
.schedule-week-table tbody th { background:#f6f9fc; font-weight:500; }
.schedule-period-label { display:block; margin-bottom:4px; font-size:calc(14px * var(--fs,1)); }
.schedule-period-time { display:flex; flex-wrap:wrap; justify-content:center; font-size:12px; line-height:1.4; color:#6c8094; font-variant-numeric:tabular-nums; }
.schedule-period-time>span { white-space:nowrap; }
.schedule-week-subject { display:flex; min-height:58px; align-items:center; justify-content:center; padding:9px 6px; border-radius:8px; color:color-mix(in srgb, var(--course-color) 58%, #243a4a); background:color-mix(in srgb, var(--course-color) 9%, white); font-weight:750; line-height:1.5; }
.schedule-week-table .is-today { background:#fff5d9; box-shadow:inset 2px 0 #e8ba5f,inset -2px 0 #e8ba5f; }
.schedule-week-table thead .is-today { color:#8a5b14; background:#ffeac0; }
.schedule-week-table .schedule-week-shared>* { padding-block:6px; background:#f2f7f8; }
.schedule-week-table .schedule-week-shared>.is-today { background:#fff5d9; }
.schedule-week-activity { display:block; line-height:1.5; color:#577384; }
.schedule-week-empty { color:#8b9ba8; }
@media (max-width:700px) {
  .schedule-week-table .schedule-time-column { width:82px; }
  .schedule-week-table th,.schedule-week-table td { padding:7px 5px; }
  .schedule-week-table thead th { height:58px; }
  .schedule-week-subject { padding:7px 5px; border-radius:5px; }
  .schedule-period-time { flex-direction:column; }
  .schedule-week-day small { padding-inline:4px; }
}
