.practice-body{min-height:100dvh;background:#e8ebdf;padding-bottom:100px}.app-header{height:85px;max-width:1050px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 30px}.preview-label{font-size:9px;letter-spacing:2px;color:var(--muted)}#app{max-width:520px;min-height:640px;background:var(--paper);border:1px solid #d9ddce;border-radius:16px;margin:10px auto 0;box-shadow:0 10px 40px #35452106;outline:none}.app-screen{padding:35px 34px 30px}.app-screen h1,.app-welcome h1{font-size:43px;letter-spacing:-1.8px;line-height:1.12;margin:20px 0}.screen-description{font-size:13px;max-width:340px;color:var(--muted);line-height:1.8}.app-welcome{padding:40px 40px 28px;text-align:center}.welcome-art{height:175px;position:relative;display:grid;place-items:center}.welcome-art:before{content:'';width:155px;height:155px;border:1px solid #c9d0ba;border-radius:50%;position:absolute}.welcome-art:after{content:'';width:120px;height:175px;border:1px solid #c9d0ba;border-radius:50%;position:absolute;transform:rotate(45deg)}.welcome-art span{font-size:112px;color:#89976e;font-family:var(--serif);line-height:1}.app-welcome>.eyebrow{margin-top:33px}.app-welcome .screen-description{margin:0 auto 30px}.center-note{text-align:center;color:var(--muted);font-size:10px;line-height:1.7;margin:12px 0}.welcome-bottom{display:flex;justify-content:center;gap:25px;border-top:1px solid var(--line);padding-top:25px;margin-top:35px;font-size:7px;letter-spacing:1px}.field-label{font-size:11px;font-weight:600;display:block;margin:25px 0 10px}.field-note{font-size:10px;color:var(--muted);line-height:1.7;margin:10px 0}.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px}.theme-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:7px;border:1px solid #d7dacb;border-radius:7px;padding:14px 12px;background:transparent;color:var(--ink);font-size:11px}.theme-choice.selected{background:#e4e8d8;border-color:#8b9876}.theme-choice-mark{font:27px/1 var(--serif);color:#7b8964}.choice-check{position:absolute;right:10px;top:10px;color:var(--olive);font-size:12px}select,textarea{width:100%;background:var(--white);border:1px solid #d3d7c7;border-radius:6px;color:var(--ink);padding:12px 13px;min-height:46px;font-size:13px}select{padding-right:24px}textarea{font-size:16px;line-height:1.7;resize:vertical;min-height:110px}.mode-toggle{display:flex;background:#e8eadd;padding:4px;border-radius:7px;gap:4px}.mode-toggle button{flex:1;background:transparent;border:1px solid transparent;padding:10px 5px;color:var(--muted);font-size:11px;border-radius:5px}.mode-toggle button span{margin-right:5px}.mode-toggle button.selected{background:var(--white);border-color:#d8dccd;color:var(--ink);box-shadow:0 2px 4px #4b5a3506}.spaced{margin-top:28px}.today-date{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-bottom:27px}.today-date>span:last-child{font-size:22px;color:#9d784c}.daily-card{background:#e6eadb;border:1px solid #d5dcc6;border-radius:10px;padding:22px;text-align:center;margin:28px 0}.card-top{display:flex;justify-content:space-between;align-items:center}.card-top .eyebrow{font-size:8px;letter-spacing:1px}.card-top>span:last-child{font-size:10px;color:var(--muted)}.daily-flower{display:block;font:70px/1.2 var(--serif);color:#89986e;margin:22px 0 10px}.daily-card h2{font-size:36px;margin-bottom:15px}.daily-card>p{font-size:10px;color:var(--muted);margin:0 auto 20px;max-width:270px}.daily-tags{display:flex;justify-content:center;gap:8px;margin:15px 0 25px}.daily-tags span{border:1px solid #cbd4bd;border-radius:20px;font-size:9px;padding:4px 9px}.quiet-button{background:transparent;border:0;color:var(--olive);font-size:11px;padding:10px 3px;border-radius:4px}.quiet-button:hover{color:var(--orange)}.daily-card>.quiet-button{margin-top:6px}.progress-heading{display:flex;justify-content:space-between;align-items:center;margin-top:32px}.progress-heading h3{font:21px var(--serif);margin:0}.progress-heading>span{font-size:10px;color:var(--muted)}.week{display:flex;justify-content:space-between;gap:5px;margin-top:20px}.week-day{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:9px;color:var(--muted)}.week-day i{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:11px;font-style:normal;background:#e9ebdf;border:1px solid transparent}.week-day.done i{background:var(--olive);color:white}.week-day.current i{border-color:var(--olive)}.gentle-note{text-align:center;font:italic 15px/1.7 var(--serif);color:var(--muted);margin:20px 0 0}.practice-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-top>span:last-child{font-size:11px}.practice-top .eyebrow{font-size:8px;letter-spacing:1.5px;margin:0}.icon-button{border:0;background:transparent;min-width:40px;min-height:40px;color:var(--olive);font-size:23px;line-height:1;padding:8px;border-radius:8px}.progress-track{height:4px;border-radius:10px;background:#e1e5d5;margin:15px 0 25px;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--olive);transition:width .3s}.affirmation-area{text-align:center;padding:15px 0 10px;min-height:280px}.practice-flower{display:block;font:55px var(--serif);color:#929d7c;line-height:1.4;margin:5px 0 8px}.affirmation-area>.eyebrow{font-size:8px;margin-bottom:12px}.affirmation-area .affirmation-text{font:36px/1.3 var(--serif);letter-spacing:-.9px;margin:0 auto 15px;max-width:360px;text-wrap:balance}.affirmation-text:lang(yue),.affirmation-text:lang(zh-Hant){font-size:30px;line-height:1.65;letter-spacing:1px}.line-tools{display:flex;justify-content:center;gap:20px}.practice-screen .field-label{margin-top:8px}.practice-feedback{font-size:12px;line-height:1.7;color:#8b5f34;margin:15px 0;min-height:20px}.practice-feedback:empty{display:none}.practice-feedback.success{color:var(--olive);background:#e4ead9;border-radius:6px;padding:12px;text-align:center}.speech-tools{display:grid;gap:10px}.completion-screen{text-align:center}.completion-screen .screen-description{margin-inline:auto}.completion-art{height:155px;display:grid;place-items:center;position:relative}.completion-art>span{font:130px/1 var(--serif);color:#a5b18d}.completion-art>i{position:absolute;inset:0;display:grid;place-items:center;font-size:25px;font-style:normal;color:var(--paper)}.completion-stats{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line);padding:20px 0;margin:25px 0 0}.completion-stats>div{display:flex;flex-direction:column;gap:5px}.completion-stats>div+div{border-left:1px solid var(--line)}.completion-stats strong{font:36px var(--serif);font-weight:400}.completion-stats span{font-size:10px;color:var(--muted)}.completion-screen .button{margin-top:30px}.completion-screen .quiet-button{margin-top:10px}.library-screen .mode-toggle{margin-top:25px}.library-list{display:grid;gap:12px;margin-top:20px}.library-line{padding:20px 50px 20px 18px;border:1px solid var(--line);border-radius:8px;background:#faf8f1;position:relative}.library-line .eyebrow{font-size:7px;letter-spacing:1.3px}.library-line p{font:22px/1.45 var(--serif);margin:8px 0 0;letter-spacing:-.3px}.library-line p:lang(yue),.library-line p:lang(zh-Hant){font-size:20px;line-height:1.7}.save-line{position:absolute;right:5px;top:20px;font-size:20px}.empty-state{text-align:center;padding:35px 0;color:var(--muted)}.empty-state>span{font-size:50px}.empty-state h3{font:23px var(--serif);margin-top:15px}.empty-state p{font-size:12px}.empty-state .text-link{border-top:0;border-right:0;border-left:0;background:none;color:var(--olive)}.settings-block{border-top:1px solid var(--line);padding:10px 0 25px;margin-top:23px}.settings-block h3{margin-top:12px;font:23px var(--serif)}.settings-row{display:flex;justify-content:space-between;width:100%;padding:15px 0;background:transparent;border:0;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink)}#app-nav{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:5;display:flex;width:min(440px,calc(100% - 32px));background:#faf8f1f5;backdrop-filter:blur(12px);border:1px solid #d3d9c5;border-radius:12px;padding:8px 12px;box-shadow:0 5px 20px #34422812}#app-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:0;border-radius:6px;color:var(--muted);font-size:9px;padding:5px}#app-nav button>span{font-size:21px;line-height:1.2}#app-nav button[aria-current]{background:#e9eddf;color:var(--olive)}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);z-index:20;background:var(--ink);color:white;border-radius:8px;padding:12px 18px;max-width:420px;width:max-content;max-width:min(420px,calc(100% - 32px));font-size:12px;box-shadow:0 5px 30px #303c2c25}#toast:empty{display:none}#storage-warning{padding:15px;background:#eee1bc;font-size:12px;text-align:center}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:30px;max-width:430px;width:calc(100% - 32px)}dialog::backdrop{background:#29322280;backdrop-filter:blur(3px)}dialog h2{font-size:38px}dialog p:not(.eyebrow){font-size:13px;color:var(--muted)}.dialog-actions{display:grid;gap:10px;margin-top:25px}
@media(max-width:600px){.practice-body{background:var(--paper)}.app-header{height:70px;padding-inline:20px}.app-header .brand{font-size:23px}.preview-label{font-size:8px;letter-spacing:1.2px}#app{border:0;border-radius:0;box-shadow:none;margin-top:0;min-height:0}.app-screen{padding:25px 24px}.app-welcome{padding:25px 28px}.app-screen h1,.app-welcome h1{font-size:41px}.affirmation-area .affirmation-text{font-size:34px}.affirmation-area .affirmation-text:lang(yue),.affirmation-area .affirmation-text:lang(zh-Hant){font-size:29px}.practice-screen{padding-top:10px}.app-screen.practice-screen{padding-bottom:5px}.affirmation-area{min-height:270px}.daily-card{padding:22px}.welcome-art{height:155px}#app-nav{bottom:max(12px,env(safe-area-inset-bottom))}.practice-body{padding-bottom:100px}}
@media(max-width:360px){.app-screen{padding-inline:18px}.app-header{padding-inline:16px}.app-welcome{padding-inline:20px}.app-screen h1,.app-welcome h1{font-size:37px}.affirmation-area .affirmation-text{font-size:31px}.theme-choice{font-size:10px}.week-day i{width:30px;height:30px}.preview-label{font-size:7px}.daily-card{padding:18px}}
