/* 最终视觉稿覆盖层：所有数值以已确认的郁金香首页稿为准 */
.app-page{background-image:url('../assets/backgrounds/summer-sea-02.png')!important;background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;background-color:#dcebed}
.app-page:before{display:none}
.app-page:after{background:linear-gradient(180deg,rgba(255,245,245,.12),rgba(231,235,231,.14));backdrop-filter:none}
.page-content{max-width:390px;padding-top:24px}
.home-header{min-height:244px;padding:7px 7px 25px;position:relative}
.home-header .date{margin:0 0 38px;color:#24353c;font-size:18px;font-weight:500;letter-spacing:.2px;text-shadow:0 1px 1px rgba(255,255,255,.34)}
.home-header h1{font-size:29px;letter-spacing:.2px;color:#17282f;margin-bottom:10px;line-height:1.25;text-shadow:0 1px 1px rgba(255,255,255,.28)}
.home-header p:last-child{font-size:16px;color:#30454e;line-height:1.55;text-shadow:0 1px 1px rgba(255,255,255,.25)}
.avatar-button{margin-top:0;width:50px!important;height:50px!important}
.avatar-button .avatar{width:50px;height:50px}
.avatar-button .avatar-photo{background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;background-color:rgba(255,249,247,.9)}
.avatar{background:rgba(255,249,247,.82);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 5px 13px rgba(78,68,66,.15);color:#625d61}
.glass{border:1px solid rgba(255,255,255,.45);box-shadow:inset 0 1px 1px rgba(255,255,255,.75),0 9px 22px rgba(78,70,69,.16);backdrop-filter:blur(18px) saturate(.82)}
.unit-progress{position:relative;background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(226,239,243,.07));padding:20px 18px;border-radius:17px;margin:0 0 14px;border:1px solid rgba(255,255,255,.72);box-shadow:inset 0 1px 1px rgba(255,255,255,.92),inset 0 -1px 1px rgba(91,106,111,.03),0 9px 21px rgba(45,67,74,.12);backdrop-filter:blur(9px) saturate(1.06) brightness(1.08);-webkit-backdrop-filter:blur(9px) saturate(1.06) brightness(1.08)}
.unit-progress:before,.unit-progress:after{display:none}
.unit-progress p{color:#65777e;margin-bottom:9px}.unit-progress h2{color:#2f4148;font-size:19px;margin-bottom:20px}.unit-progress .progress-info{color:#687a81}.unit-progress .bar{height:6px;background:rgba(255,255,255,.78)}.unit-progress .bar i{background:linear-gradient(90deg,#7398a7,#8388a5)}
.task-grid{gap:13px}
.task{min-height:136px;border-radius:17px;padding:19px 18px;border:1px solid rgba(255,255,255,.66);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),inset 0 -1px 1px rgba(91,106,111,.07),0 11px 24px rgba(45,67,74,.16);backdrop-filter:blur(22px) saturate(.88);-webkit-backdrop-filter:blur(22px) saturate(.88)}
.task.learn{background:linear-gradient(135deg,rgba(224,216,229,.6),rgba(191,200,216,.49))}
.task.review{background:linear-gradient(135deg,rgba(239,234,217,.78),rgba(211,217,203,.7));border-color:rgba(255,255,255,.72);box-shadow:inset 0 1px 1px rgba(255,255,255,.92),inset 0 -1px 1px rgba(91,106,111,.06),0 11px 24px rgba(45,67,74,.16)}
.task p{font-size:15px}.task span{font-size:13px}.task strong{font-size:14px;color:#454149}
.task>svg{width:66px;height:66px;stroke-width:1.05;color:#756d82}
.bottom-nav{width:min(calc(100% - 30px),360px);height:55px;bottom:max(12px,env(safe-area-inset-bottom));padding:5px 7px;border-radius:27px;background:linear-gradient(100deg,rgba(232,238,237,.88),rgba(239,225,229,.86));border:1px solid rgba(255,255,255,.56);box-shadow:inset 0 1px 1px rgba(255,255,255,.86),0 7px 18px rgba(72,67,68,.2)}
.bottom-nav button{border-radius:22px;gap:5px;color:#686b70;font-size:13px}.bottom-nav svg{display:none}.bottom-nav .active{background:linear-gradient(135deg,rgba(222,239,244,.96),rgba(235,243,242,.94));color:#55778d;box-shadow:inset 0 1px 1px white,0 3px 8px rgba(76,94,102,.13)}
@media(min-width:760px){.app-page{background-size:cover;background-position:center}.page-content{max-width:720px}.home-header{min-height:210px}.home-header .date{font-size:19px}.home-header h1{font-size:31px}.task-grid{grid-template-columns:1fr 1fr}.bottom-nav{width:min(620px,calc(100% - 40px))}}
#goalSetting,#pronunciationSetting{-webkit-appearance:none!important;appearance:none!important;min-width:96px!important;border:1px solid rgba(255,255,255,.9)!important;border-radius:10px!important;background-color:#edf2f3!important;background-image:linear-gradient(45deg,transparent 50%,#667985 50%),linear-gradient(135deg,#667985 50%,transparent 50%)!important;background-position:calc(100% - 13px) 50%,calc(100% - 9px) 50%!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important;color:#526670!important;padding:9px 27px 9px 13px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 2px 7px rgba(73,88,96,.13)!important;opacity:1!important}
button,.unit-row,.group-row,.option,.task,.practice-entry,.grade-item,.study-primary,.text-button,.setting-row{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .16s cubic-bezier(.2,.7,.3,1),background-color .2s ease,box-shadow .2s ease,opacity .2s ease,color .2s ease}
button:active:not(:disabled),.unit-row:active,.group-row:active,.option:active,.task:active,.practice-entry:active,.grade-item:active:not(:disabled),.setting-row:active{transform:scale(.985)}
.study-primary:active:not(:disabled){transform:translateY(1px) scale(.99);box-shadow:0 4px 10px rgba(74,100,117,.14)}
.bottom-nav button:active:not(:disabled){transform:scale(.94)}
button:focus:not(:focus-visible){outline:none}
@media(hover:hover){.unit-row:hover,.group-row:hover,.task:hover,.practice-entry:hover,.grade-item:hover:not(:disabled){transform:translateY(-1px)}.option:hover{background-color:rgba(255,255,255,.9)}}
@media(prefers-reduced-motion:reduce){button,.unit-row,.group-row,.option,.task,.practice-entry,.grade-item,.study-primary,.text-button,.setting-row{transition:none!important}}

/* 首次设置：增加纵向呼吸感 */
.onboarding{padding:28px 22px}.setup-card{padding:36px 30px 34px}.setup-card .step{margin:0 0 10px}.setup-card h1{margin:0 0 34px}.setup-card>label{margin:0 0 26px}.setup-card>label+label{margin-top:4px}.setup-card label{font-size:15px}.setup-card input,.setup-card select{margin-top:11px;padding:15px 14px}.setup-card fieldset{margin-top:7px}.setup-card legend{margin:0 0 13px}.setup-card .goal-grid{gap:11px 9px}.setup-card .goal{padding:12px 4px}.setup-card .primary{margin-top:32px;padding:15px}
@media(max-height:700px){.onboarding{padding:18px}.setup-card{padding:26px 24px}.setup-card h1{margin-bottom:24px}.setup-card>label{margin-bottom:19px}.setup-card .primary{margin-top:23px}}
