/* Frozen look for the grown-up pages: the homepage palette, a character banner on top of every page, and lighter cards. */
.frozen-page{color:var(--ink)}
.frozen-page .section-kicker,.frozen-page .eyebrow{color:#9b79a8}
.frozen-page h1,.frozen-page h2,.frozen-page h3{color:var(--ink)}
.frozen-page .account-description{color:#777183}
.frozen-page label,.frozen-page .child-picker-label,.frozen-page .simple-child-picker>span,.frozen-page .settings-child-label{color:#8a8192}
.frozen-page input,.frozen-page select,.frozen-page textarea{border-color:var(--line);background:#fff;color:var(--ink)}
.frozen-page input::placeholder,.frozen-page textarea::placeholder{color:#a8a2ae}
.frozen-page .account-card{border-color:var(--line);background:var(--cream);box-shadow:0 12px 34px #6d526b0b}
.frozen-page .account-primary{border-color:transparent;background:#f6bf61;color:#4a3450;box-shadow:0 4px 0 #d59645}
.frozen-page .account-primary:hover:not(:disabled){border-color:transparent;background:#ffcd77}
.frozen-page .account-secondary{border-color:#e6dfe8;background:#fff;color:#665e6d}
.frozen-page .account-secondary:hover:not(:disabled){border-color:#d9cfdc;background:#fffaf3}
.frozen-page .account-loading{color:#8a8192}
.frozen-page .family-success{border-color:#e3d8f3;background:#f8f4fe;color:var(--purple)}
.frozen-page .user-switcher{border-color:var(--line);background:#fff}
.frozen-page .user-copy strong{color:var(--ink)}
.frozen-page .editor-number{background:var(--purple-soft);color:var(--purple)}
.frozen-page .editor-heading p,.frozen-page .editor-help{color:#8a8192}
.frozen-page .editor-add-task{border-color:#d9cdec;background:#fbf8ff;color:var(--purple)}
.frozen-page .editor-save-bar{border-color:var(--line);background:#fffdf8ee;box-shadow:0 10px 30px #6d526b0d}
.frozen-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- banner ---------- */
.frozen-page .frozen-banner{position:relative;z-index:6;isolation:isolate;display:block;min-height:236px;margin:0 0 30px;padding:40px 46px;border-radius:30px;background:radial-gradient(circle at 80% 28%,#ffedc8 0,#ffedc800 36%),linear-gradient(125deg,#f4edff 0%,#fff7ec 60%,#fff4da 100%);box-shadow:0 18px 46px #6d526b12}
.frozen-banner::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:url(/frozen-flake.svg) right 400px top 36px/42px no-repeat,url(/frozen-flake.svg) right 34px top 28px/26px no-repeat,url(/frozen-flake.svg) right 364px top 164px/18px no-repeat,url(/frozen-spark.svg) right 436px top 116px/22px no-repeat}
.frozen-banner--tall::before{background:url(/frozen-flake.svg) right 400px top 40px/42px no-repeat,url(/frozen-flake.svg) right 34px top 32px/26px no-repeat,url(/frozen-flake.svg) right 364px top 186px/18px no-repeat,url(/frozen-spark.svg) right 436px top 130px/22px no-repeat}
.frozen-page .frozen-banner--tall{min-height:306px}
.frozen-banner>.frozen-banner-copy{position:relative;z-index:2;max-width:560px;min-width:0}
.frozen-banner--tall>.frozen-banner-copy{padding-top:24px}
.frozen-page .frozen-banner h1{margin:12px 0 0;color:var(--ink);font-size:40px;line-height:1.2;letter-spacing:-.06em}
.frozen-page .frozen-banner .account-description,.frozen-page .frozen-banner .calendar-description{max-width:520px;margin:12px 0 0;color:#777183;font-size:14px;line-height:1.8}
.frozen-banner-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-top:22px}
.frozen-banner-actions[hidden],.frozen-banner-actions:empty{display:none}
.frozen-banner-actions .account-primary,.frozen-banner-actions .account-secondary{min-height:44px}
/* Only the artwork is clipped to the banner, so child-picker menus can open below it. */
.frozen-banner-clip{position:absolute;z-index:1;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.frozen-banner-art{position:absolute;z-index:1;display:block;width:auto;max-width:none;pointer-events:none;user-select:none}
.frozen-banner[data-art=family] .frozen-banner-art{right:44px;bottom:-4px;height:356px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 8%,#000 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 8%,#000 92%,#0000 100%)}
.frozen-banner[data-art=tracking] .frozen-banner-art{right:110px;top:-4px;height:310px}
.frozen-banner[data-art=stats] .frozen-banner-art{right:84px;top:0;height:306px}
.frozen-banner[data-art=calendar] .frozen-banner-art{right:70px;top:-12px;height:370px}
.frozen-banner[data-art=account] .frozen-banner-art{right:96px;bottom:-10px;height:280px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 14%);mask-image:linear-gradient(90deg,#0000 0,#000 14%)}
.frozen-banner[data-art=contact] .frozen-banner-art{right:100px;top:-6px;height:330px}
.frozen-banner[data-art=wishes] .frozen-banner-art{right:100px;top:-4px;height:300px}
/* Settings, passes and coin exchange use the site's own frost icons instead of a character. */
.frozen-banner-group{position:absolute;z-index:1;inset:0;pointer-events:none}
.frozen-banner-group>*{position:absolute;display:block}
.frozen-banner-tiles>span{right:var(--r);top:var(--t);display:grid;place-items:center;width:var(--s);height:var(--s);border-radius:calc(var(--s) / 3.6);background:#fffdf8;box-shadow:0 14px 30px #6d526b1f;transform:rotate(var(--rot))}
.frozen-banner-tiles img{width:76%;height:76%}
.frozen-banner-tickets .ticket-free{right:150px;top:30px;width:190px;transform:rotate(-10deg);filter:drop-shadow(0 16px 24px #7657b82e)}
.frozen-banner-tickets .ticket-reward{right:60px;top:98px;width:140px;transform:rotate(12deg);filter:drop-shadow(0 14px 20px #7657b82e)}
.frozen-banner-exchange .coin{right:300px;top:50px;width:124px;filter:drop-shadow(0 14px 22px #7657b833)}
.frozen-banner-exchange .arrow{right:226px;top:96px;color:#b9a3e3;font-size:34px;font-weight:800;line-height:1}
.frozen-banner-exchange .crystal{right:80px;top:32px;width:138px;filter:drop-shadow(0 14px 22px #6b9fca40)}
.frozen-banner-exchange .crystal-small{right:54px;top:150px;width:54px;transform:rotate(18deg);opacity:.9}

/* Status pills inside banners. */
.frozen-pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;margin:0;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:#ffffffb3;color:#777183;font-size:12px;font-weight:750;line-height:1.4}
.frozen-pill[hidden],.frozen-pill:empty{display:none}
.frozen-pill--warm{border-color:transparent;background:#fff0d2;color:#94661f}
.frozen-pill--ok{border-color:transparent;background:#e9f6ef;color:#3f8a62}
.frozen-pill--warm::before,.frozen-pill--ok::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#e9a83c}
.frozen-pill--ok::before{background:#5cc58a}

/* Child pickers sit inside the banner; their labels stay for screen readers. */
.frozen-banner .simple-child-picker,.frozen-banner .settings-child-picker{display:block!important;width:auto;min-width:190px}
.frozen-banner .simple-child-picker select{min-width:190px}
.frozen-banner .settings-child-picker .user-picker{width:206px}

@media(max-width:760px){
  .frozen-page .frozen-banner,.frozen-page .frozen-banner--tall{min-height:0;margin-bottom:22px;padding:28px 22px 26px;border-radius:24px}
  .frozen-banner--tall>.frozen-banner-copy{padding-top:0}
  .frozen-page .frozen-banner h1{font-size:31px}
  .frozen-page .frozen-banner .account-description,.frozen-page .frozen-banner .calendar-description{font-size:13px}
  .frozen-banner-art,.frozen-banner-group{opacity:.26}
  .frozen-banner::before{opacity:.55}
}

/* ---------- 我的家庭 ---------- */
.frozen-page .family-section-heading{align-items:center;margin:0 4px 18px}
.family-section-title{display:flex;align-items:baseline;gap:12px;min-width:0}
.frozen-page .family-section-heading h2{margin:0;font-size:21px;letter-spacing:-.04em}
.frozen-page .family-section-title>span{color:#8a8192;font-size:13px}
.family-add-button{display:inline-flex;align-items:center;gap:9px;flex:none;min-height:44px;border:1px solid #d9c8ef;border-radius:999px;background:#f6f0fd;padding:0 20px 0 9px;color:#6a4fa7;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 6px 16px #7657b814;transition:background-color .18s,border-color .18s}
.family-add-button:hover:not(:disabled){border-color:#b9a3e3;background:#efe4fb}
.family-add-button:disabled{cursor:default;opacity:.55}
.family-add-button:focus-visible{outline:2px solid #a677d2;outline-offset:3px}
.family-add-plus{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--purple);color:#fff;font-size:15px;line-height:1}
.frozen-page .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.frozen-page .child-profile-card{position:relative;isolation:isolate;overflow:hidden;min-height:0;padding:30px;border-color:var(--line);border-radius:28px;background:var(--cream);box-shadow:0 14px 36px #6d526b0f;color:var(--ink)}
.frozen-page .child-profile-card::before{content:"";position:absolute;z-index:-1;top:-26px;right:-26px;width:160px;height:160px;background:url(/frozen-flake.svg) center/contain no-repeat;opacity:.3}
.frozen-page .child-profile-card .child-card-heading{gap:26px;margin-bottom:0}
.frozen-page .child-profile-card .child-avatar{width:124px;height:124px;overflow:hidden;border:5px solid #fff;border-radius:50%;background:#efe6fc;color:var(--purple);font-size:46px;box-shadow:0 12px 28px #7657b833}
.frozen-page .child-profile-card .child-avatar img{width:100%;height:100%;object-fit:cover}
.frozen-page .child-profile-card:nth-child(3n+2) .child-avatar{background:#fde6da;color:#b56d51;box-shadow:0 12px 28px #b56d5129}
.frozen-page .child-profile-card:nth-child(3n+3) .child-avatar{background:#e6f1f8;color:#5f8eb0;box-shadow:0 12px 28px #5f8eb029}
.frozen-page .child-profile-card h3{margin:0 0 8px;font-size:32px;line-height:1.15;letter-spacing:-.03em}
.frozen-page .child-age{display:inline-flex;align-items:center;height:28px;margin:0;padding:0 12px;border-radius:999px;background:var(--purple-soft);color:var(--purple);font-size:14px;font-weight:800}
.frozen-page .child-profile-card:nth-child(3n+2) .child-age{background:#fde6da;color:#a85e43}
.frozen-page .child-profile-card:nth-child(3n+3) .child-age{background:#e6f1f8;color:#4f7d9f}
.child-features{display:flex;gap:10px;margin:16px 0 0;padding:0;list-style:none}
.child-feature{position:relative;display:grid;place-items:center;width:50px;height:50px;border:1px solid #ebe0f6;border-radius:16px;background:#f8f3fe}
.child-feature img{width:34px;height:34px}
.child-feature.is-off{border-color:#ece8ef;background:#f5f3f6}
.child-feature.is-off img{filter:grayscale(1);opacity:.35}
.child-feature.is-off::after{content:"";position:absolute;width:40px;height:2.5px;border-radius:2px;background:#b3abb9;transform:rotate(-45deg)}
.frozen-page .child-profile-card .profile-actions{margin-top:26px;padding-top:18px;border-top:1px solid #f0e8dc}
.child-theme{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.child-theme-tile{display:flex;align-items:center;gap:12px;min-width:0;padding:10px 14px 10px 10px;border:1px solid #eee3f3;border-radius:20px;background:#f8f3fe}
.child-theme-picture{flex:none;width:58px;height:58px;overflow:hidden;border:3px solid #fff;border-radius:50%;background:#efe6fc;box-shadow:0 6px 14px #7657b81f}
.child-theme-tile.is-world .child-theme-picture{width:86px;border-radius:14px}
.child-theme-picture img{display:block;width:100%;height:100%;object-fit:cover}
.child-theme-tile.is-world .child-theme-picture img{object-position:50% 12%}
.child-theme-copy{display:grid;gap:3px;min-width:0}
.child-theme-copy small{color:#9b79a8;font-size:11px;font-weight:800;letter-spacing:.12em}
.child-theme-copy strong{overflow:hidden;color:var(--ink);font-size:16px;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.frozen-page .profile-actions .profile-edit{min-width:0;min-height:38px;padding:8px 15px;font-size:13px}
.frozen-page .profile-actions .profile-delete{min-width:0;min-height:38px;margin-left:auto;border-color:transparent;background:none;padding:8px 4px;color:#b0716a;font-size:13px;box-shadow:none}
.frozen-page .profile-actions .profile-delete:hover:not(:disabled){border-color:transparent;background:none;color:#954f46;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.frozen-page .profile-grid{grid-template-columns:1fr}}
@media(max-width:600px){.child-theme{grid-template-columns:1fr;gap:10px;margin-top:20px}.frozen-page .child-profile-card{padding:22px}.frozen-page .child-profile-card .child-card-heading{gap:18px}.frozen-page .child-profile-card .child-avatar{width:96px;height:96px;border-width:4px;font-size:36px}.frozen-page .child-profile-card h3{font-size:26px}.child-feature{width:44px;height:44px;border-radius:14px}.child-feature img{width:30px;height:30px}.family-add-button{padding:0 16px 0 8px;font-size:13px}}

/* ---------- 任务追踪 ---------- */
.frozen-page .tracking-grid{gap:22px}
.frozen-page .tracking-card{position:relative;isolation:isolate;overflow:hidden;padding:26px}
.frozen-page .tracking-card::before{content:"";position:absolute;z-index:-1;top:-20px;right:-20px;width:120px;height:120px;background:url(/frozen-flake.svg) center/contain no-repeat;opacity:.45}
.frozen-page .tracking-card-heading{margin-bottom:20px}
.frozen-page .tracking-card .child-avatar{width:52px;height:52px;border:3px solid #fff;border-radius:50%;background:#efe6fc;color:var(--purple);box-shadow:0 6px 16px #7657b826}
.frozen-page .tracking-card:nth-child(even) .child-avatar{border-color:#fff;background:#fde6da;color:#b56d51}
.frozen-page .tracking-card h2{margin:0;font-size:20px;line-height:1.3}
.tracking-identity{min-width:0}
.tracking-subtitle{display:block;margin-top:2px;color:#8a8192;font-size:13px}
.frozen-page .tracking-status{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 12px;color:#777183;font-size:12px;font-weight:750}
.frozen-page .tracking-status.is-working{border-color:transparent;background:#fff0d2;color:#94661f}
.frozen-page .tracking-status.is-complete{border-color:transparent;background:#e9f6ef;color:#3f8a62}
.frozen-page .tracking-status.is-working::before,.frozen-page .tracking-status.is-complete::before{content:"";width:6px;height:6px;border-radius:50%;background:#e9a83c}
.frozen-page .tracking-status.is-complete::before{background:#5cc58a}
.frozen-page .tracking-stats{gap:14px;margin-bottom:22px;padding-bottom:0;border-bottom:0}
.frozen-page .tracking-stats>div,.frozen-page .tracking-stats>div+div{gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:#fff}
.frozen-page .tracking-stats span{color:#8a8192;font-size:13px}
.frozen-page .tracking-stats strong{color:var(--ink);font-size:30px;line-height:1.25;letter-spacing:-.04em}
.frozen-page .tracking-stats .tracking-stars{gap:6px;color:var(--ink)}
.frozen-page .tracking-stats .tracking-coin{width:30px;height:30px}
.frozen-page .tracking-stats .tracking-note{font-size:12px}
.tracking-segments{display:flex;gap:5px;margin-top:4px}
.tracking-segments i{flex:1;height:8px;border-radius:99px;background:#f1ebe2}
.tracking-segments i.is-done{background:linear-gradient(90deg,#f7cd66,#e99f33)}
.frozen-page .tracking-recent-heading{margin-bottom:12px}
.frozen-page .tracking-recent-heading h3{color:var(--ink);font-size:13px;font-weight:800}
.frozen-page .tracking-recent-heading a{color:var(--purple);font-size:12px;font-weight:700;text-decoration:none}
.frozen-page .tracking-day{gap:6px;color:#8a8192;font-size:11px}
.frozen-page .tracking-dot{width:38px;height:38px;background:#f3eee7;color:#d2c9be;font-size:18px}
.frozen-page .tracking-dot.is-complete{background:#f6cf6e;box-shadow:0 4px 10px #e9a83c40}
.frozen-page .tracking-dot img{width:20px;height:20px}
.frozen-page .tracking-day.is-today .tracking-dot{outline:0;background:#fff;box-shadow:inset 0 0 0 2px #b9a3e3}
.frozen-page .tracking-day.is-today .tracking-dot.is-complete{background:#f6cf6e;box-shadow:0 0 0 2px #fff,0 0 0 4px #b9a3e3}
.frozen-page .tracking-day.is-today .tracking-weekday{color:var(--purple);font-weight:800}
.frozen-page .tracking-date{color:#a8a2ae;font-size:10px}
.tracking-actions{display:flex;gap:12px;margin-top:22px}
.tracking-actions>a{flex:1;justify-content:center}
.frozen-page .tracking-actions .tracking-open{margin-top:0}
@media(max-width:480px){.tracking-actions{flex-direction:column}.frozen-page .tracking-stats{grid-template-columns:1fr}}

/* ---------- 成长统计 ---------- */
.frozen-page .stats-metrics{gap:18px}
.frozen-page .stats-metric{display:flex;align-items:center;gap:16px;min-height:0;padding:22px;background:var(--cream)}
.stats-metric-icon{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:18px;background:var(--purple-soft)}
.stats-metric-icon img{width:36px;height:36px;object-fit:contain}
.frozen-page .stats-metric span{color:#8a8192;font-size:12px;font-weight:700}
.frozen-page .stats-metric strong{margin-top:2px;color:var(--ink);font-size:34px;letter-spacing:-.05em}
.frozen-page .stats-metric small{margin-left:4px;color:#8a8192;font-size:14px;font-weight:600}
.frozen-page .stats-details{grid-template-columns:1.55fr 1fr}
.frozen-page .stats-card{padding:26px}
.frozen-page .stats-card h2{margin-bottom:4px;font-size:18px;letter-spacing:-.03em}
.frozen-page .stats-card p{color:#8a8192}
.frozen-page .stats-week{gap:14px;min-height:200px}
.frozen-page .stats-day{color:#8a8192}
.frozen-page .stats-day strong,.frozen-page .stats-day.is-complete strong{color:var(--ink)}
.frozen-page .stats-bar-track{max-width:46px;height:150px;border-radius:14px;background:none;overflow:visible}
.frozen-page .stats-bar{position:relative;min-height:16px;border-radius:14px;background:#f7e3b0}
.frozen-page .stats-day.is-complete .stats-bar{background:linear-gradient(180deg,#f8d47e,#eba443);box-shadow:0 6px 14px #e9a83c33}
.frozen-page .stats-day.is-complete .stats-bar::after{content:"";position:absolute;top:8px;left:50%;width:18px;height:18px;margin-left:-9px;background:#fff;-webkit-mask:url(/frozen-flake.svg) center/contain no-repeat;mask:url(/frozen-flake.svg) center/contain no-repeat}
.frozen-page .stats-day.is-empty .stats-bar{background:#f4eee6}
.stats-wish{display:flex;align-items:center;gap:14px;margin-top:16px}
.stats-wish-thumb{display:grid;place-items:center;flex:none;width:64px;height:64px;overflow:hidden;border:1px solid #f1eadf;border-radius:14px;background:#fff8ef}
.stats-wish-thumb img{width:84%;height:84%;object-fit:contain}
.stats-wish-copy{min-width:0}
.frozen-page .stats-goal-name{margin:0!important;color:var(--ink)!important;font-size:18px!important}
.frozen-page #stats-goal-count{display:block;margin-top:3px;color:#8a8192;font-size:13px}
.frozen-page #stats-goal-count b{color:var(--ink)}
.frozen-page #stats-goal-percent{margin-left:auto;color:var(--purple);font-size:26px;font-weight:800;letter-spacing:-.03em}
.frozen-page .stats-goal-track{height:10px;margin-top:16px;background:#f5e8d2}
.frozen-page .stats-goal-track span{background:linear-gradient(90deg,#f7cd66,#e99f33)}
.frozen-page .stats-card #stats-start{margin:12px 0 0;font-size:12px}
.frozen-page .stats-task-card{padding:22px 26px 12px}
.frozen-page .stats-task-list{gap:0;margin-top:12px}
.frozen-page .stats-task-row{display:grid;grid-template-columns:38px minmax(0,160px) minmax(0,1fr) 64px;align-items:center;gap:14px;padding:12px 0;border:0;border-top:1px solid #f1ebe2;border-radius:0;background:none;color:var(--ink);font-size:14px}
.stats-task-icon{display:grid;place-items:center;width:38px;height:38px;font-size:22px}
.stats-task-icon img{width:38px;height:38px;object-fit:contain}
.stats-task-name{min-width:0;overflow:hidden;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.stats-task-track{height:10px;background:#f5e8d2}
.stats-task-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f7cd66,#e99f33)}
.frozen-page .stats-task-row strong{color:#8a8192;font-size:13px;font-weight:600;text-align:right}
@media(max-width:800px){.frozen-page .stats-details{grid-template-columns:1fr}}
@media(max-width:480px){.frozen-page .stats-metric{padding:16px;gap:12px}.stats-metric-icon{width:44px;height:44px;border-radius:14px}.stats-metric-icon img{width:28px;height:28px}.frozen-page .stats-metric strong{font-size:28px}.frozen-page .stats-week{gap:4px}.frozen-page .stats-task-row{grid-template-columns:32px minmax(0,1fr) 56px}.stats-task-track{display:none}}

/* ---------- 任务日历 ---------- */
.frozen-page .calendar-main{padding-top:30px}
.frozen-page .calendar-back{border-color:#e6dfe8;background:#fff;color:#665e6d}
.frozen-page .calendar-back:hover{border-color:#d9cfdc;background:#fffaf3}
.frozen-page .calendar-year-switch{border-color:var(--line);background:#fff}
.frozen-page .calendar-year-switch button[aria-pressed=true]{background:#f6f1fd;color:var(--purple);box-shadow:none}
.frozen-page .current-month-button{border-color:#e6dfe8;background:#fff;color:#665e6d}
.frozen-page .current-month-button:hover{border-color:#d9cfdc;background:#fffaf3}
.frozen-page .month-card{border-color:var(--line);border-radius:26px;background:var(--cream);box-shadow:0 12px 34px #6d526b0b}
.frozen-page .month-card.is-current-month{border-color:#d4c3ef;box-shadow:0 12px 34px #7657b814}
.frozen-page .month-heading h2{display:flex;align-items:center;gap:8px;color:var(--ink)}
.frozen-page .month-heading h2::before{content:"";flex:none;width:18px;height:18px;background:url(/frozen-flake.svg) center/contain no-repeat}
.frozen-page .is-current-month .month-note{background:var(--purple-soft);color:var(--purple);font-weight:800}
.frozen-page .calendar-weekdays{color:#a8a2ae}

/* ---------- 编辑任务 / 通票 / 心愿 / 冰晶 forms ---------- */
.frozen-page .editor-section{padding:28px 30px}
.frozen-page .editor-task{padding:22px;border-color:var(--line);border-radius:22px;background:#fff}
.frozen-page .editor-task.is-optional,.frozen-page .editor-reading{border-color:#d9cdec;background:#fbf8ff}
.frozen-page .editor-task-name label,.frozen-page .editor-task-coins label,.frozen-page .editor-category{color:#8a8192!important;font-weight:700}
.frozen-page .editor-optional{color:#8a8192!important}
.frozen-page .editor-optional input,.frozen-page .editor-weekdays input{accent-color:var(--purple)}
.frozen-page .editor-remove{border-color:var(--line);background:#fff;color:#a8a2ae}
.frozen-page .editor-remove:hover:not(:disabled){border-color:#e8cdd4;color:#b0716a}
.frozen-page .editor-task input[type=text],.frozen-page .editor-task-coins input,.frozen-page .editor-category-current{min-height:46px;border-color:var(--line);border-radius:13px;background:#fff;color:var(--ink)}
.frozen-page .editor-category-current strong{color:var(--ink)}
.frozen-page .editor-category-chevron{color:#a8a2ae}
.frozen-page .editor-icons legend,.frozen-page .editor-weekdays legend{color:#8a8192;font-weight:700}
.frozen-page .editor-icon-choice{width:50px;height:50px;border-color:var(--line);border-radius:14px;background:#fffdf8}
.frozen-page .editor-icon-choice img{width:38px;height:38px}
.frozen-page .editor-icon-choice:hover{border-color:#cdb9ef;background:#faf6ff}
.frozen-page .editor-icon-choice[aria-pressed=true]{border:2px solid #9d84d8;background:#f6f1fd;box-shadow:0 0 0 3px #7657b814}
.frozen-page .editor-weekdays label{border-color:var(--line);border-radius:12px;background:#fff;color:#8a8192;font-weight:700}
.frozen-page .editor-weekdays label:has(:checked){border-color:#cdb9ef;background:#f3edfc;color:var(--purple)}
@media(min-width:761px){
  .frozen-page .editor-task{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto auto;align-items:end;column-gap:14px}
  .frozen-page .editor-task-top{display:contents}
  .frozen-page .editor-task-name{grid-column:1;grid-row:1}
  .frozen-page .editor-category{grid-column:2;grid-row:1;max-width:none;margin:0!important}
  .frozen-page .editor-task-coins{grid-column:3;grid-row:1;max-width:none;margin:0}
  .frozen-page .editor-task-top>.editor-optional{grid-column:4;grid-row:1;margin:0 0 13px!important}
  .frozen-page .editor-remove{grid-column:5;grid-row:1;margin:0 0 6px}
  .frozen-page .editor-task>.editor-icons,.frozen-page .editor-task>.editor-weekdays{grid-column:1/-1}
}
/* 冰晶兑换: the exchange reads as an equation. */
.frozen-page .coin-rate-editor{gap:16px;width:max-content;max-width:100%;padding:16px 22px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font-size:20px;font-weight:800}
.frozen-page .coin-rate-editor img{width:44px;height:44px}
.frozen-page .coin-rate-editor span:first-child{gap:10px}
.frozen-page .coin-rate-editor input,.frozen-page.settings-page #coin-form .coin-rate-editor input{width:92px;min-height:56px;border:2px solid #cdb9ef;border-radius:15px;background:#f8f4fe;color:var(--purple);font-size:24px;font-weight:800}
.frozen-page .coin-rate-editor>span:last-of-type{color:#8a8192;font-size:14px;font-weight:700}
.frozen-page.settings-page #coin-form .editor-save-bar p,.frozen-page.settings-page #wishes-form .editor-save-bar p{color:#8a8192}
.frozen-page .editor-task-name label,.frozen-page .editor-task-coins label,.frozen-page .editor-category>span{display:block;margin:0 0 6px;font-size:12px;line-height:20px}
.frozen-page .editor-category,.frozen-page .editor-task-coins{gap:0}
/* 通票 cards */
.frozen-page .pass-card-remove{border-color:transparent;background:none;color:#b0716a}
.frozen-page .pass-card-remove:hover{border-color:#efd9d3;background:#fff6f3;color:#954f46}
.frozen-page .pass-type-help{border:1px solid #efe8f8;background:#faf7ff;color:#777183}
.frozen-page .pass-card-fields label,.frozen-page .pass-card-type{color:#8a8192}
.frozen-page .pass-card-fields input,.frozen-page .pass-card-fields select,.frozen-page .pass-card-fields textarea,.frozen-page .pass-type-current{min-height:46px;border-color:var(--line);border-radius:13px;background:#fff;color:var(--ink)}
.frozen-page .pass-card-fields input:read-only{background:#f7f3f9;color:#94859e;cursor:default}
.frozen-page .pass-type-current[aria-expanded=true]{border-color:#cdb9ef;box-shadow:0 0 0 3px #7657b814}
.frozen-page .editor-save-actions>a.account-primary{border-color:#e6dfe8;background:#fff;color:#665e6d;box-shadow:none}
.frozen-page .editor-save-actions>a.account-primary:hover{border-color:#d9cfdc;background:#fffaf3}

/* ---------- 邮箱与登录 ---------- */
.frozen-page .account-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.frozen-page .account-summary-card,.frozen-page .account-delivery-card,.frozen-page .theme-admin{padding:26px 28px}
.account-identity{display:flex;align-items:center;gap:16px;margin-top:14px}
.account-crown{flex:none;width:58px;height:58px;overflow:hidden;border-radius:18px}
.account-crown img{display:block;width:62px;height:62px;margin:-2px}
.account-identity-copy{flex:1;min-width:0}
.frozen-page .account-identity h2{margin:0;font-size:18px;letter-spacing:-.02em;overflow-wrap:anywhere}
.frozen-page .account-identity-copy p{margin:3px 0 0;color:#8a8192;font-size:12px;line-height:1.6}
.account-identity .frozen-pill{flex:none}
.account-row{border-top:1px solid #f1ebe2}
.account-identity+.account-row{margin-top:18px}
.account-row>summary{display:flex;align-items:center;gap:14px;padding:14px 0;cursor:pointer;list-style:none}
.account-row>summary::-webkit-details-marker{display:none}
.account-row>summary:focus-visible{outline:3px solid #ae90d2;outline-offset:3px;border-radius:12px}
.account-row-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--purple-soft)}
.account-row-icon img{width:26px;height:26px;object-fit:contain}
/* A row that is set up swaps its picture for a green tick on a green tile. */
.account-row-icon .account-row-todo{color:var(--purple)}
.account-row-icon .account-row-done{display:none;color:#3f8a62}
.account-row[data-state=done] .account-row-icon{background:#e9f6ef}
.account-row[data-state=done] .account-row-todo{display:none}
.account-row[data-state=done] .account-row-done{display:block}
.account-row.is-saved .account-row-icon{animation:account-row-saved .5s ease-out}
@keyframes account-row-saved{0%{transform:scale(.6)}60%{transform:scale(1.14)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.account-row.is-saved .account-row-icon{animation:none}}
.account-row-copy{flex:1;min-width:0}
.account-row-copy b{display:block;color:var(--ink);font-size:15px}
.account-row-copy>span{display:block;margin-top:2px;color:#8a8192;font-size:12px;line-height:1.6}
.account-row-copy>.account-row-status{font-weight:700}
.account-row-copy>.account-row-status[data-tone=done]{color:#3f8a62}
.account-row-copy>.account-row-status[data-tone=pending]{color:#8c63c2}
.account-row-action{display:inline-flex;align-items:center;flex:none;height:36px;padding:0 14px;border:1px solid #e6dfe8;border-radius:11px;background:#fff;color:#665e6d;font-size:13px;font-weight:700}
.account-row[open] .account-row-action{border-color:#cdb9ef;background:#f6f1fd;color:var(--purple)}
.frozen-page .account-row-form{margin:0;padding:4px 0 18px 54px}
.account-logout-zone{display:flex;align-items:center;gap:16px;margin-top:10px;padding:16px 18px;border-radius:18px;background:#fbf6ef}
.account-logout-zone[hidden]{display:none}
.account-logout-zone b{display:block;color:var(--ink);font-size:15px}
.account-logout-zone span{display:block;margin-top:2px;color:#8a8192;font-size:12px;line-height:1.6}
.account-logout-zone .account-secondary{flex:none;gap:8px;margin-left:auto}
.account-logout-zone .account-secondary span{display:inline;margin:0;color:inherit;font-size:13px}
.account-logout-zone.is-local{background:#f6f1fd}
.account-delivery-title{display:flex;align-items:center;gap:10px;margin-top:10px}
.frozen-page .account-delivery-title h2{margin:0;font-size:20px}
.frozen-page .account-delivery-note{margin:8px 0 0;color:#8a8192;font-size:13px;line-height:1.7}
.account-steps{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none;counter-reset:step}
.account-steps[hidden]{display:none}
.account-steps li{display:flex;gap:10px;color:#777183;font-size:13px;line-height:1.6;counter-increment:step}
.account-steps li::before{content:counter(step);display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:#fff0d2;color:#94661f;font-size:12px;font-weight:800}
.account-delivery-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.frozen-page .account-test-result{margin:0;color:#777183;font-size:12px;line-height:1.6}
.account-sessions{margin-top:22px;padding-top:18px;border-top:1px dashed #e8decf}
.account-sessions[hidden]{display:none}
.account-sessions b{display:block;color:var(--ink);font-size:15px}
.frozen-page .account-sessions p{margin:4px 0 12px;color:#8a8192;font-size:13px}
@media(max-width:860px){.frozen-page .account-overview{grid-template-columns:1fr}}
@media(max-width:520px){.frozen-page .account-row-form{padding-left:0}.account-logout-zone{flex-direction:column;align-items:flex-start}.account-logout-zone .account-secondary{margin-left:0}.account-identity{flex-wrap:wrap}}

/* ---------- 联系我们 ---------- */
.frozen-page .contact-grid{grid-template-columns:minmax(0,1fr);gap:20px;align-items:stretch}
.frozen-page .contact-grid:has(.contact-inbox-card:not([hidden])){grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.frozen-page .contact-form-card,.frozen-page .contact-inbox-card{display:block;padding:28px 30px}
.frozen-page .contact-form-card h2,.frozen-page .contact-inbox-card h2{margin:6px 0 0;font-size:22px}
.frozen-page .contact-form-card .contact-intro{margin:8px 0 18px;color:#8a8192;font-size:13px;line-height:1.75}
.frozen-page .contact-form{display:grid;gap:8px}
.frozen-page .contact-form label{margin:8px 0 0;color:#8a8192;font-size:12px;font-weight:700}
.frozen-page .contact-form textarea{min-height:150px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1.7;resize:vertical}
.frozen-page .contact-form input{min-height:48px;border-radius:14px}
.frozen-page .contact-form .account-setting-hint{margin:2px 0 6px;color:#a8a2ae;font-size:12px;line-height:1.7}
.frozen-page .contact-form .account-primary{justify-self:start;min-width:132px}
.frozen-page .contact-inbox-card{margin:0;border:1px solid var(--line);background:var(--cream)}
.frozen-page .contact-inbox-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.frozen-page #contact-inbox-state{margin:16px 0 0;color:#8a8192;font-size:13px;text-align:left}
.frozen-page .contact-inbox-card:has(#contact-inbox-list:empty) #contact-inbox-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 10px 24px;text-align:center}
.frozen-page .contact-inbox-card:has(#contact-inbox-list:empty) #contact-inbox-state::before{content:"";width:78px;height:78px;border-radius:50%;background:url(/frozen-flake.svg) center/40px no-repeat,var(--purple-soft)}
.frozen-page .contact-message{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff}
@media(max-width:860px){.frozen-page .contact-grid:has(.contact-inbox-card:not([hidden])){grid-template-columns:1fr}}

/* ---------- 登录页 ---------- */
.frozen-login{background:var(--cream);color:var(--ink)}
.frozen-login-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-height:100vh}
.frozen-login-hero{position:relative;isolation:isolate;overflow:hidden;padding:36px 56px 56px;background:radial-gradient(circle at 78% 30%,#ffedc8 0,#ffedc800 36%),linear-gradient(125deg,#f2e9ff 0%,#fff7ec 62%,#fff3d8 100%)}
.frozen-login-hero::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:url(/frozen-flake.svg) left 80% top 120px/54px no-repeat,url(/frozen-flake.svg) left 68% top 260px/24px no-repeat,url(/frozen-flake.svg) left 93% top 420px/30px no-repeat,url(/frozen-spark.svg) left 75% top 200px/22px no-repeat}
.frozen-login .frozen-login-header{position:relative;z-index:2;min-height:0;padding:0;border:0}
.frozen-login .login-intro{position:relative;z-index:2;max-width:400px;margin:70px 0 0}
.frozen-login .section-kicker{color:#9b79a8}
.frozen-login .login-intro h1{margin:14px 0 0;color:var(--purple);font-size:46px;line-height:1.25;letter-spacing:-.07em;white-space:pre-line}
.frozen-login .login-intro h1::first-line{color:var(--ink)}
.frozen-login .login-intro>p:not(.section-kicker){max-width:330px;margin:16px 0 0;color:#777183;font-size:15px;line-height:1.85}
.frozen-login-features{display:grid;gap:12px;max-width:330px;margin:30px 0 0;padding:0;list-style:none}
.frozen-login-features li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:16px;background:#ffffffa6;color:var(--ink);font-size:13px;font-weight:650;line-height:1.5}
.frozen-login-features img{flex:none;width:30px;height:30px;object-fit:contain}
.frozen-login-art{position:absolute;z-index:1;right:-6px;bottom:-34px;width:auto;height:600px;pointer-events:none;user-select:none}
.frozen-login .frozen-login-panel{display:flex;flex-direction:column;justify-content:center;gap:0;min-height:100vh;padding:48px 64px 28px;background:var(--cream)}
.frozen-login .frozen-login-card{width:100%;max-width:440px;margin:auto auto 0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.frozen-login .login-card h2{margin:10px 0 0;color:var(--ink);font-size:32px;letter-spacing:-.05em}
.frozen-login .account-description{margin:8px 0 22px;color:#8a8192;font-size:13px;line-height:1.7}
.frozen-login label{color:#8a8192;font-size:12px;font-weight:700}
.frozen-login input{min-height:50px;border-color:var(--line);border-radius:14px;background:#fff;color:var(--ink)}
.frozen-login input::placeholder{color:#a8a2ae}
.frozen-login .account-primary{min-height:50px;border-color:transparent;border-radius:14px;background:#f6bf61;color:#4a3450;font-size:14px;font-weight:800;box-shadow:0 4px 0 #d59645}
.frozen-login .account-primary:hover:not(:disabled){border-color:transparent;background:#ffcd77}
.frozen-login .account-secondary{min-height:46px;border-color:#e6dfe8;border-radius:13px;background:#fff;color:#665e6d}
.frozen-login #login-form .account-primary,.frozen-login #password-login-form .account-primary{margin-top:18px}
.frozen-login-or{display:flex;align-items:center;gap:12px;margin:18px 0 0;color:#a8a2ae;font-size:12px}
.frozen-login-or::before,.frozen-login-or::after{content:"";flex:1;height:1px;background:var(--line)}
.frozen-login-or:has(+ [hidden]){display:none}
.frozen-login #login-method-toggle{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin:14px 0 0;border:1px solid #e6dfe8;border-radius:13px;background:#fff;color:#665e6d;font-size:14px;font-weight:700;text-decoration:none}
.frozen-login #login-method-toggle[hidden]{display:none}
.frozen-login #login-method-toggle:hover{border-color:#d9cfdc;background:#fffaf3}
.frozen-login .login-footnote{margin:22px 0 0;padding-top:0;border:0;color:#8a8192;font-size:12px;line-height:1.7;text-align:center}
.frozen-login .sent-email{border-color:#e3d8f3;background:#f8f4fe;color:var(--purple)}
.frozen-login .account-text-button{color:var(--purple)}
.frozen-login .account-footer{margin-top:auto;padding:28px 0 0;color:#a8a2ae;font-size:11px;text-align:center}
@media(max-width:900px){
  .frozen-login-shell{grid-template-columns:1fr}
  .frozen-login-hero{padding:22px 22px 30px}
  .frozen-login .login-intro{max-width:none;margin-top:28px}
  .frozen-login .login-intro h1{font-size:32px}
  .frozen-login .login-intro>p:not(.section-kicker){font-size:13px}
  .frozen-login-features{gap:8px;margin-top:18px}
  .frozen-login-art{right:-24px;bottom:-26px;height:300px;opacity:.32}
  .frozen-login .frozen-login-panel{min-height:0;padding:30px 22px 24px}
  .frozen-login .frozen-login-card{margin:0 auto}
}

/* Phones: the character becomes a small corner decoration instead of sitting behind the text. */
@media(max-width:760px){
  .frozen-banner[data-art] .frozen-banner-art{top:auto;right:-10px;bottom:-6px;height:180px;opacity:.55}
  .frozen-banner[data-art] .frozen-banner-group{transform:scale(.6);transform-origin:right bottom;opacity:.45}
}

.frozen-local-panel .account-note{margin:14px 0 0;color:#8a8192;font-size:12px;line-height:1.7;text-align:center}
.wish-pending-pill{display:inline-flex;align-items:center;gap:6px;height:24px;margin-left:10px;padding:0 10px;border-radius:999px;background:#fff0d2;color:#94661f;font-size:12px;font-weight:800}
.wish-pending-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#e9a83c}
.wish-row-heading .wish-pending-pill{margin:0 auto 0 0}
.frozen-page .stats-details:has(.stats-wish-card[hidden]){grid-template-columns:1fr}
