body[data-palette="blue"]{--theme-bg-1:#f4f9ff;--theme-bg-2:#d9ebfb;--theme-bg-3:#9dd5f1;--theme-accent:#3b8fbb;--theme-deep:#172f42;--theme-soft:#d7edf9;--theme-glow:rgba(69,178,226,.30)}
body[data-palette="green"]{--theme-bg-1:#f4fbf5;--theme-bg-2:#d9efe0;--theme-bg-3:#9ed8b6;--theme-accent:#3a9565;--theme-deep:#173b2a;--theme-soft:#d9f0df;--theme-glow:rgba(63,181,114,.28)}
body[data-palette="pink"]{--theme-bg-1:#fff7fb;--theme-bg-2:#f7dfe9;--theme-bg-3:#efb9d1;--theme-accent:#ca6f9a;--theme-deep:#533044;--theme-soft:#f8deea;--theme-glow:rgba(225,118,168,.28)}
body[data-palette="purple"]{--theme-bg-1:#faf8ff;--theme-bg-2:#e7e0f6;--theme-bg-3:#c7b8e9;--theme-accent:#8068bd;--theme-deep:#342b55;--theme-soft:#e8e0f7;--theme-glow:rgba(132,103,196,.26)}
body[data-palette="orange"]{--theme-bg-1:#fffaf4;--theme-bg-2:#f7e6d2;--theme-bg-3:#efc28f;--theme-accent:#ca8242;--theme-deep:#50331f;--theme-soft:#f8e5d0;--theme-glow:rgba(224,139,63,.27)}
body[data-palette]{--green:var(--theme-deep);--amber:var(--theme-accent);--green-2:rgba(255,255,255,.5);background:linear-gradient(160deg,var(--theme-bg-1) 0%,var(--theme-bg-2) 44%,var(--theme-bg-3) 100%)}body[data-palette]:after{background:var(--theme-glow)}body[data-palette] .hero .eyebrow,body[data-palette] .section-kicker{color:var(--theme-accent)}body[data-palette] .primary-button{background:var(--theme-deep)}body[data-palette] .progress-fill{background:linear-gradient(90deg,var(--theme-accent),color-mix(in srgb,var(--theme-accent) 52%,white))}body[data-palette] .digital-card{background:linear-gradient(135deg,var(--theme-deep),color-mix(in srgb,var(--theme-accent) 82%,var(--theme-deep)))}body[data-palette] .metric-card.accent{background:linear-gradient(145deg,var(--theme-deep),var(--theme-accent))}body[data-palette] .range-switch button.active,body[data-palette] .message.user,body[data-palette] .chat-input>button[type="submit"]{background:var(--theme-deep)}body[data-palette] .coach-visual{background:linear-gradient(160deg,color-mix(in srgb,var(--theme-bg-3) 70%,white),var(--theme-accent) 55%,var(--theme-deep))}body[data-palette] .tag{background:color-mix(in srgb,var(--theme-soft) 72%,transparent);color:var(--theme-deep)}body[data-palette] .done .check{background:var(--theme-accent);border-color:var(--theme-accent)}body[data-palette] .soft-button{color:var(--theme-deep)}body[data-palette] .mobile-nav button.active{color:var(--theme-deep)}
body.dark[data-palette]{--ink:#f1f7fa;--muted:#a9b8c1;--panel:rgba(24,38,45,.76);--line:rgba(219,236,244,.14);--green-2:rgba(255,255,255,.10);background:linear-gradient(155deg,color-mix(in srgb,var(--theme-deep) 82%,#101820),color-mix(in srgb,var(--theme-deep) 64%,#17242c) 55%,color-mix(in srgb,var(--theme-accent) 42%,#17242c))}body.dark[data-palette] .panel,body.dark[data-palette] .metric-card{background:rgba(21,35,42,.72)}body.dark[data-palette] .topbar{background:rgba(18,31,38,.72)}body.dark[data-palette] .mobile-nav{background:rgba(23,39,47,.86)}body.dark[data-palette] .mobile-nav button.active{background:rgba(255,255,255,.12);color:white}
.cartoon-avatar{background:transparent}.cartoon-avatar.small-avatar img,.cartoon-avatar.tiny-avatar img{object-fit:cover;transform:scale(2.15) translateY(8%);transform-origin:50% 25%}.cartoon-avatar.small-avatar.speaking img,.cartoon-avatar.tiny-avatar.speaking img{animation:cartoonSmallTalk .65s infinite alternate}.coach-visual .cartoon-avatar.large-avatar{width:206px;height:250px;border-radius:30px;background:transparent;box-shadow:none;overflow:visible}.coach-visual .cartoon-avatar.large-avatar img{object-fit:contain;filter:drop-shadow(0 18px 24px rgba(20,54,72,.18))}.coach-visual .cartoon-avatar.large-avatar.speaking img{animation:cartoonTalk .72s infinite alternate}.cartoon-avatar .voice-ring{border-color:rgba(255,255,255,.8)}@keyframes cartoonTalk{to{transform:translateY(-3px) scale(1.012)}}@keyframes cartoonSmallTalk{to{transform:scale(2.2) translateY(7%)}}
.theme-dialog{width:min(610px,calc(100vw - 28px));max-width:none}.theme-shell{position:relative;padding:30px}.theme-shell h2{font-family:"STSong","SimSun",serif;font-size:28px;margin:0}.theme-subtitle{font-size:11px;color:var(--muted);margin:8px 0 22px}.palette-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.palette-grid button{border:1px solid var(--line);background:rgba(255,255,255,.43);color:var(--ink);border-radius:16px;padding:11px 8px;text-align:left;cursor:pointer;min-width:0}.palette-grid button.active{border-color:var(--theme-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-accent) 18%,transparent),0 10px 25px rgba(52,85,103,.10)}.palette-grid i{display:block;width:100%;height:46px;border-radius:11px;margin-bottom:9px}.palette-grid strong,.palette-grid span{display:block}.palette-grid strong{font-size:11px}.palette-grid span{font-size:8px;color:var(--muted);margin-top:3px}.blue-swatch{background:linear-gradient(145deg,#eff8ff,#76bde4)}.green-swatch{background:linear-gradient(145deg,#f2faf3,#75c899)}.pink-swatch{background:linear-gradient(145deg,#fff4f9,#e99aba)}.purple-swatch{background:linear-gradient(145deg,#f7f3ff,#aa91da)}.orange-swatch{background:linear-gradient(145deg,#fff9f0,#e9ad68)}.appearance-row{display:flex;align-items:center;justify-content:space-between;margin:22px 0 16px;padding-top:18px;border-top:1px solid var(--line);font-size:11px}.appearance-row>div{display:flex;background:rgba(255,255,255,.36);border:1px solid var(--line);border-radius:11px;padding:3px}.appearance-row button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:7px 10px;font-size:10px;cursor:pointer}.appearance-row button.active{background:var(--panel);color:var(--ink);box-shadow:0 4px 12px rgba(30,54,67,.08)}.theme-done{width:100%}
@media(max-width:650px){.palette-grid{grid-template-columns:repeat(3,1fr)}.theme-shell{padding:24px}.coach-visual .cartoon-avatar.large-avatar{width:125px;height:150px}.coach-visual h2{margin-top:5px}.appearance-row{display:block}.appearance-row>span{display:block;margin-bottom:8px}.appearance-row>div{width:max-content}.theme-dialog{margin:auto 10px}}

/* Floating AI desktop pet */
.desktop-pet{position:fixed;z-index:9;right:4px;bottom:12px;width:140px;height:174px;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer;filter:drop-shadow(0 15px 18px rgba(31,67,88,.18));isolation:isolate}
.desktop-pet>img{position:absolute;z-index:1;inset:auto 0 0;width:100%;height:100%;object-fit:contain;object-position:center bottom;animation:petFloat 3.2s ease-in-out infinite;transform-origin:50% 100%}
.desktop-pet:before{content:"";position:absolute;z-index:0;left:25%;right:20%;bottom:5px;height:18px;border-radius:50%;background:rgba(24,55,70,.13);filter:blur(8px)}
.pet-bubble{position:absolute;z-index:2;right:96%;top:22px;width:152px;padding:10px 12px;border:1px solid rgba(255,255,255,.9);border-radius:16px 16px 4px;background:rgba(255,255,255,.9);box-shadow:0 12px 30px rgba(35,75,97,.15);backdrop-filter:blur(15px);text-align:left;opacity:0;transform:translate(8px,6px) scale(.94);pointer-events:none;transition:opacity .2s,transform .2s}
.pet-bubble strong,.pet-bubble span{display:block}.pet-bubble strong{font-size:12px;color:var(--theme-deep)}.pet-bubble span{margin-top:3px;font-size:9px;color:var(--muted);line-height:1.4}
.desktop-pet:hover .pet-bubble,.desktop-pet:focus-visible .pet-bubble{opacity:1;transform:none}.desktop-pet:focus-visible{outline:2px solid var(--theme-accent);outline-offset:4px;border-radius:40%}
.desktop-pet:hover>img{animation-play-state:paused;transform:translateY(-4px) scale(1.025)}
@keyframes petFloat{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-6px) rotate(.6deg)}}

.assistant-name-field{display:block;margin:18px 0;padding:15px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.34);font-size:11px;color:var(--ink)}
.assistant-name-field>span{display:flex;gap:8px;margin-top:8px}.assistant-name-field input{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:10px 12px;font:inherit;outline:none}.assistant-name-field input:focus{border-color:var(--theme-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-accent) 16%,transparent)}
.assistant-name-field button{border:0;border-radius:11px;padding:0 14px;background:var(--theme-deep);color:white;font-size:10px;cursor:pointer}.assistant-name-field small{display:block;margin-top:7px;color:var(--muted);font-size:9px}
.coach-visual h2{font-size:22px;line-height:1.3}.coach-visual #coachName{white-space:nowrap}

@media(max-width:800px){.desktop-pet{z-index:7;right:-4px;bottom:calc(78px + env(safe-area-inset-bottom));width:78px;height:96px}.pet-bubble{display:none;right:82%;top:-8px;width:130px;padding:8px 10px}.desktop-pet.show-bubble .pet-bubble{display:block}.desktop-pet:before{bottom:1px}.mobile-nav #mobileCoachName{max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.desktop-pet>img{animation:none}}

/* v7 typography and surface refinement */
html{font-family:"Microsoft YaHei UI","PingFang SC","Noto Sans SC","Segoe UI",sans-serif;font-optical-sizing:auto;text-rendering:optimizeLegibility}body{letter-spacing:.012em}.brand strong,.panel-heading h2,.chat-heading h2,.theme-shell h2,.settings-shell h2{font-family:"Microsoft YaHei UI","PingFang SC","Noto Sans SC",sans-serif;font-weight:720;letter-spacing:-.025em}.hero h1,.insights-hero h1{font-family:"STZhongsong","Songti SC","Noto Serif SC","SimSun",serif;font-weight:600;letter-spacing:-.045em}.section-kicker,.eyebrow{font-family:"Segoe UI","Microsoft YaHei UI",sans-serif;font-weight:750;letter-spacing:.2em}.panel,.metric-card{position:relative;overflow:hidden}.panel:after,.metric-card:after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.24),transparent 38%);mix-blend-mode:soft-light}.schedule-panel{box-shadow:0 30px 80px rgba(40,100,138,.14),inset 0 1px 0 rgba(255,255,255,.95)}.task-item{transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.task-item:hover{transform:translateY(-1px);background:rgba(255,255,255,.55);box-shadow:0 12px 28px rgba(50,104,137,.08)}.primary-button{font-weight:700;letter-spacing:.03em}.topbar{box-shadow:0 1px 0 rgba(255,255,255,.56),0 12px 40px rgba(58,105,133,.05)}

/* Desktop-pet action state */
.desktop-pet[data-action]:not([data-action="stand"])>img{animation:none}.desktop-pet[data-action="sleep"]:before{left:8%;right:8%;height:10px}.desktop-pet.show-bubble .pet-bubble{opacity:1;transform:none}.desktop-pet.walking{animation:petWalkRoute 6.2s ease-in-out both}.desktop-pet.is-dragging{cursor:grabbing;filter:drop-shadow(0 20px 24px rgba(31,67,88,.24));touch-action:none}.desktop-pet.is-dragging>img{transform:scale(1.03)}
@keyframes petWalkRoute{0%,100%{transform:translateX(0)}45%{transform:translateX(clamp(-220px,-16vw,-100px))}55%{transform:translateX(clamp(-220px,-16vw,-100px))}}
@media(max-width:800px){.desktop-pet.walking{animation-name:none}.task-item:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.desktop-pet.walking{animation:none}.task-item{transition:none}}

/* v8 local photo check-in */
.photo-checkin{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:5px 9px 5px 7px;border:1px dashed color-mix(in srgb,var(--theme-accent) 45%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--theme-soft) 54%,transparent);color:var(--theme-deep);font:650 9px/1 "Microsoft YaHei UI",sans-serif;cursor:pointer;transition:transform .18s ease,border-color .18s ease}.photo-checkin:hover{transform:translateY(-1px);border-style:solid}.photo-checkin b{font-size:13px}.photo-checkin img{width:34px;height:34px;border-radius:8px;object-fit:cover;box-shadow:0 3px 10px rgba(30,70,90,.16)}.photo-checkin.has-photo{padding:4px 9px 4px 4px;border-style:solid;background:color-mix(in srgb,var(--theme-soft) 78%,var(--panel))}
.photo-dialog{width:min(610px,calc(100vw - 28px));max-width:none}.photo-shell{position:relative;padding:30px}.photo-shell h2{margin:2px 0 18px;font-size:24px}.photo-preview{display:grid;place-items:center;min-height:220px;max-height:58vh;padding:10px;border:1px solid var(--line);border-radius:22px;background:rgba(15,36,48,.08);overflow:hidden}.photo-preview img{display:block;max-width:100%;max-height:54vh;border-radius:14px;object-fit:contain}.photo-private{margin:12px 0;color:var(--muted);font-size:10px;line-height:1.6}.photo-actions{display:flex;gap:10px;margin-top:16px}.photo-actions>button{flex:1}.danger-button{border:1px solid rgba(186,71,71,.22);border-radius:13px;background:rgba(198,77,77,.08);color:#a43f3f;padding:12px 16px;font:650 10px/1 inherit;cursor:pointer}
@media(max-width:650px){.photo-shell{padding:23px}.photo-preview{min-height:190px}.photo-dialog{margin:auto 10px}.task-item .photo-checkin{margin-top:8px}}

/* account, cloud sync and private storage */
.account-button{display:flex;align-items:center;gap:6px}.account-button i,#syncStatusDot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a7afb3}.account-button.connected i,#syncStatusDot.connected{background:#45ae73;box-shadow:0 0 0 4px rgba(69,174,115,.12)}.account-dialog{width:min(520px,calc(100vw - 28px));max-width:none}.account-shell{position:relative;padding:30px}.account-shell h2{margin:0;font-size:27px}.account-intro{margin:20px 0;color:var(--muted);font-size:11px;line-height:1.75}.account-shell label{display:block;margin:14px 0;color:var(--muted);font-size:11px}.account-shell input{background:var(--panel)}.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.account-actions button{width:100%}.account-note{color:var(--muted);font-size:9px;line-height:1.65;margin:14px 0 0}.signed-user{display:flex;align-items:center;gap:12px;margin:23px 0;padding:16px;border-radius:16px;background:color-mix(in srgb,var(--theme-soft) 72%,var(--panel))}.signed-user>i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--theme-accent);color:#fff;font-style:normal}.signed-user strong,.signed-user span{display:block}.signed-user strong{font-size:13px}.signed-user span{margin-top:4px;color:var(--muted);font-size:10px}.sync-details{display:grid;grid-template-columns:1fr auto;gap:13px;padding:4px 2px 18px;font-size:11px}.sync-details span{color:var(--muted)}.sync-details b{color:var(--theme-deep);font-weight:700}.full-button{display:block;width:100%;margin-top:9px}.account-shell .danger-button{padding:13px}.dark .account-shell input{background:rgba(255,255,255,.06)}
@media(max-width:650px){.top-actions .text-button.account-button{display:flex}.account-button span{display:none}.account-shell{padding:24px}.account-dialog{margin:auto 10px}}
