:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;font-weight:400;--bg: #f4f6f0;--surface: #fff;--ink: #263f36;--muted: #7a877e;--accent: #47765b;--soft: #eaf0e7;--line: #e5eae2;--hero: #e3ecdf;--red: #a24942;--shadow: 0 10px 45px #24473208;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:42px;letter-spacing:-1.8px;font-weight:600;line-height:1.15}h2{font-size:18px;font-weight:600;letter-spacing:-.3px}h3{font-size:16px;font-weight:600}p{line-height:1.6}button:focus-visible,a:focus-visible{outline:3px solid #93b6a0;outline-offset:3px}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:12px 13px;min-height:46px;outline:none;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #47765b15}textarea{resize:vertical;line-height:1.5}input[type=checkbox]{accent-color:var(--accent);width:19px;min-height:19px;height:19px}small{font-size:12px}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.6}.grow{flex:1;min-width:0}.inline{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.full{width:100%}.eyebrow{font-size:10px;letter-spacing:1.65px;font-weight:650;color:var(--muted)}.app-shell{max-width:920px;margin:0 auto;padding:0 36px}.app-header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-top:max(env(safe-area-inset-top),var(--tg-content-safe-area-inset-top, 0px))}.brand{display:flex;align-items:center;gap:11px;font-size:27px;font-weight:650;letter-spacing:-1.4px}.brand-symbol{width:39px;height:39px;background:var(--accent);color:#fff;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;transform:rotate(-8deg)}.brand-symbol svg{transform:rotate(-25deg)}.brand-tag{font-size:10px;letter-spacing:1.2px;font-weight:450;text-transform:uppercase;color:var(--muted);border-left:1px solid #cbd6c8;margin-left:10px;padding-left:20px}.icon-button{width:40px;height:40px;background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.icon-button:hover{background:var(--soft)}.settings-button{border:1px solid var(--line);background:var(--surface)}.icon-button.small{width:30px;height:30px}.main{padding:37px 0 125px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px;gap:15px}.page-heading h1{margin-top:9px;margin-bottom:8px}.page-heading p{color:var(--muted);font-size:14px}.page-heading p:first-letter{text-transform:uppercase}.heading-dot{color:#93ad81}.day-symbol{height:65px;width:65px;border:1px solid #dce4d5;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#809169;background:linear-gradient(140deg,#f9faef,#ebefdc)}.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 19px;border-radius:13px;min-height:47px;font-size:14px;font-weight:550;transition:background .15s,transform .15s}.button:not(:disabled):active{transform:translateY(1px)}.primary{background:var(--accent);color:#fff}.primary:hover{background:#3a664d}.secondary{background:var(--surface);border:1px solid var(--line)}.secondary:hover{background:var(--soft)}.danger{color:var(--red);background:transparent;margin-top:8px}.text-button{background:none;border:0;padding:8px 0;display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:13px;font-weight:550}.text-button:hover{text-decoration:underline}.course-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:23px;padding:2px 0}.course-tabs button{white-space:nowrap;display:flex;gap:8px;align-items:center;background:transparent;border:1px solid var(--line);border-radius:24px;padding:9px 15px;font-size:12px;color:var(--muted)}.course-tabs button.selected{color:var(--ink);background:var(--surface);border-color:#b9ccb4}.status-dot{height:6px;width:6px;background:#759669;border-radius:50%}.status-dot.paused{background:#c5a369}.status-dot.completed{background:#a8afa7}.hero-card{position:relative;overflow:hidden;border-radius:23px;padding:28px 29px 0;background:var(--hero);border:1px solid #d5e2cd;margin-bottom:14px}.hero-copy{position:relative;z-index:1;max-width:470px}.hero-copy .eyebrow{color:#668166;letter-spacing:1.35px}.hero-status{font-size:10px;background:#f8fcf477;border:1px solid #fafff6aa;border-radius:15px;padding:5px 9px;color:#627960}.hero-number{font-size:65px;letter-spacing:-3px;line-height:1.2;margin:12px 0 4px;font-weight:550}.hero-number span{font-size:22px;letter-spacing:0;color:#73856b;margin-left:10px}.hero-copy p{font-size:13px;color:#6c7e66}.progress-track{height:6px;border-radius:8px;background:#ccdac4;overflow:hidden;margin-top:25px}.progress-track span{height:100%;display:block;background:var(--accent);border-radius:8px;transition:width .4s}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:#6b8064;margin-top:8px}.progress-label b{color:#45663d;font-weight:600}.hero-leaf{position:absolute;right:25px;top:45px;transform:rotate(-20deg);color:#83a275;opacity:.5}.hero-link{margin-top:23px;border:0;border-top:1px solid #d1deca;background:transparent;padding:15px 0;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;color:#58774e}.add-intake{width:100%;padding:17px;margin-bottom:26px;font-size:15px}.add-intake span{font-size:11px;font-weight:400;opacity:.65;margin-left:auto}.panel{background:var(--surface);border:1px solid var(--line);border-radius:19px;padding:23px;margin-bottom:18px;box-shadow:var(--shadow)}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-column .panel{min-width:0;margin-bottom:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;border-radius:50%;background:var(--soft);font-size:11px;color:var(--accent)}.plan-row{display:flex;align-items:center;gap:13px;padding:12px 0 18px}.plan-time{font-size:12px;color:var(--muted)}.plan-line{height:34px;width:2px;background:#c5d7bb;border-radius:3px;flex-shrink:0}.plan-row b,.intake-row b{display:block;font-size:13px;font-weight:550;overflow-wrap:anywhere}.plan-row small,.intake-row small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.round-action{border:1px solid #d7e3d0;background:transparent;color:var(--accent);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.round-action.done{background:var(--soft);opacity:1;border-color:transparent}.panel-foot{border-top:1px solid var(--line);padding-top:14px;margin-top:8px;display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);flex-wrap:wrap}.panel-foot button{margin-left:auto;border:0;background:none;color:var(--accent);font-size:10px}.intake-row{width:100%;background:transparent;border:0;display:flex;align-items:center;gap:11px;text-align:left;padding:13px 0;border-bottom:1px solid var(--line)}.intake-row:last-child{border:0}.intake-row small{max-width:200px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.intake-row strong{font-size:15px;white-space:nowrap;font-weight:600}.intake-row strong span{font-size:10px;color:var(--muted);font-weight:400}.intake-row>svg{color:var(--muted)}.row-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--soft);border-radius:10px;color:var(--accent);flex-shrink:0}.subtle-empty{font-size:13px;color:var(--muted);line-height:1.7;padding:15px 0 23px}.footnote{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--muted);font-size:11px;margin:23px 0 0;text-align:center}.bottom-nav{position:fixed;z-index:5;bottom:max(22px,var(--tg-content-safe-area-inset-bottom, 0px));left:50%;transform:translate(-50%);width:min(550px,calc(100% - 48px));display:flex;justify-content:space-around;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:10px 12px;box-shadow:0 5px 35px #20372d0e}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:0;color:#97a095;padding:4px 15px;min-width:70px;font-size:10px;border-radius:12px;position:relative}.bottom-nav button.active{color:var(--accent);background:var(--soft)}.empty{text-align:center;padding:42px 18px;color:var(--muted);line-height:1.6}.empty-icon{width:64px;height:64px;border-radius:23px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--accent)}.empty h3{font-size:22px;color:var(--ink);margin-bottom:10px}.empty p{font-size:14px}.empty-note{display:flex;align-items:center;gap:7px;justify-content:center;font-size:11px;margin-top:23px}.month-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.month-heading h2:first-letter{text-transform:uppercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekdays{margin-bottom:10px;color:var(--muted);font-size:11px;text-align:center}.calendar-day{border:1px solid transparent;background:transparent;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 3px;min-height:67px;font-size:14px}.calendar-day small{font-size:10px;color:var(--muted)}.calendar-day.has-data{background:var(--soft)}.calendar-day.paused:not(.has-data){background:#f5efdf}.calendar-day.today{border-color:#b6c7af}.calendar-day.selected{background:var(--accent);color:#fff}.calendar-day.selected small{color:#dbe9d9}.calendar-legend{display:flex;flex-wrap:wrap;gap:15px;border-top:1px solid var(--line);margin-top:18px;padding-top:15px;color:var(--muted);font-size:10px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a9bd9f;margin-right:5px}.range-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.range-shortcuts button{background:var(--soft);border:0;border-radius:9px;font-size:12px;padding:9px 13px;color:var(--accent)}.range-shortcuts button.selected{background:var(--accent);color:#fff}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.stat-card{padding:22px;background:var(--hero);border:1px solid #d9e4d3;border-radius:18px}.stat-card:nth-child(2){background:var(--surface);border-color:var(--line)}.stat-card>span{font-size:12px;color:var(--muted)}.stat-card strong{display:block;font-size:32px;letter-spacing:-1px;margin-top:8px;font-weight:550}.stat-card strong small{font-size:13px;letter-spacing:0;font-weight:400}.chart{position:relative;padding-left:30px}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-axis{position:absolute;left:0;top:0;bottom:27px;font-size:9px;color:var(--muted);display:flex;flex-direction:column;justify-content:space-between}.chart-dates{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:10px}.goal-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.goal-detail span,.course-info span{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}.goal-detail b,.course-info b{font-size:14px;font-weight:550}.notice{font-size:12px;background:#f9f3e3;color:#8a7042;border-radius:10px;padding:13px;margin-top:15px}.report-card{display:flex;align-items:center;gap:15px;padding:22px;border:1px dashed #bcccb4;border-radius:18px;background:#edf2e9}.report-icon{color:#6b875d}.report-card p{font-size:12px;color:var(--muted);margin-top:5px}.course-card h2{font-size:23px;margin:12px 0 5px}.medicine-icon{height:44px;width:44px;background:var(--soft);color:var(--accent);border-radius:15px;display:flex;align-items:center;justify-content:center}.badge{display:inline-flex;align-items:center;background:var(--soft);color:var(--accent);font-size:10px;padding:6px 10px;border-radius:18px}.badge.paused{background:#f4eddf;color:#9b8151}.badge.completed{background:var(--bg);color:var(--muted)}.course-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.course-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:11px}.dialog{position:fixed;border:1px solid var(--line);padding:0;background:var(--surface);color:var(--ink);border-radius:24px;width:min(550px,calc(100% - 30px));max-height:90dvh;box-shadow:0 25px 90px #15281d25}.dialog::backdrop{background:#102d2555;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-content{padding:26px}.dialog-content>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialog-content>header h2{font-size:24px;letter-spacing:-.7px}.field{display:block;margin-bottom:18px;font-size:12px;font-weight:550}.field>span{display:block;margin-bottom:8px}.field>small{display:block;font-weight:400;color:var(--muted);margin-top:6px;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.check-label{display:flex;align-items:center;gap:9px;font-size:13px;margin:5px 0 20px}.inset{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px}.inset .field{margin-bottom:10px}.cycle-editor{border-top:1px solid var(--line);padding-top:21px;margin:23px 0}.cycle-editor>.section-heading{margin-bottom:5px}.cycle-editor>.hint{margin-bottom:15px}.cycle-day{border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:12px}.cycle-day>.section-heading{margin-bottom:8px;font-size:13px}.slot-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.slot-row>input{width:45%}.unit-input{display:flex;align-items:center;position:relative;flex:1}.unit-input input{padding-right:33px}.unit-input span{position:absolute;right:12px;color:var(--muted);font-size:12px}.dose-input{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line)}.dose-input input{font-size:48px;font-weight:550;letter-spacing:-1px;border:0;padding:8px 0;box-shadow:none}.dose-input span{font-size:24px;color:var(--muted)}.preview-list{margin-top:15px;border:1px solid var(--line);border-radius:12px;padding:6px 12px}.preview-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.preview-list>div:last-child{border:0}.preview-list span{color:var(--muted);white-space:nowrap}.preview-list b{font-weight:500;text-align:right}.setting-toggle{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:20px 0}.setting-toggle b{font-size:13px;display:block}.setting-toggle small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.delete-section{margin-top:35px;padding-top:20px;border-top:1px solid var(--line)}.delete-section h3{color:var(--red);margin-bottom:7px}.delete-section p{margin-bottom:13px}.resume-options>.hint{margin-bottom:20px}.resume-choice{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:18px 15px;display:flex;align-items:center;gap:13px;width:100%;margin-bottom:12px;text-align:left}.resume-choice>span{flex:1}.resume-choice b{font-size:13px;display:block}.resume-choice small{font-size:11px;display:block;color:var(--muted);margin-top:5px}.error{padding:13px 16px;border-radius:12px;background:#fbebe7;color:#9a4438;font-size:13px;line-height:1.5;margin-bottom:18px;overflow-wrap:anywhere}.error.banner{display:flex;align-items:center;justify-content:space-between;gap:10px}.error button{border:0;background:transparent;color:inherit;display:flex}.toast{position:fixed;bottom:115px;left:50%;transform:translate(-50%);z-index:20;background:var(--ink);color:var(--bg);border-radius:13px;padding:13px 18px;font-size:13px;display:flex;align-items:center;gap:9px;box-shadow:0 10px 35px #10251920;max-width:90%;white-space:nowrap}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}.splash h1{font-size:40px}.splash p{color:var(--muted);font-size:13px}.welcome{max-width:670px;margin:0 auto;padding:55px 28px;min-height:100vh;display:flex;flex-direction:column;align-items:flex-start}.welcome>.brand{margin-bottom:75px}.welcome h1{font-size:53px;margin:20px 0;line-height:1.2}.welcome h1 em{font-family:Georgia,serif;font-weight:400;color:#779066}.welcome>p{color:var(--muted);font-size:16px;max-width:440px}.welcome-card{display:flex;align-items:center;gap:17px;border:1px solid var(--line);background:var(--surface);padding:23px;border-radius:17px;width:100%;margin:32px 0}.welcome-card>svg{color:var(--accent)}.welcome-card b{font-size:14px;font-weight:550}.welcome-card p{font-size:12px;color:var(--muted);margin-top:5px}.welcome>small{margin-top:24px;font-size:11px}[data-theme=dark]{--bg: #19221e;--surface: #222e27;--ink: #dbe5da;--muted: #95a392;--accent: #80ad8c;--soft: #2c3e31;--line: #354338;--hero: #2d4231;--red: #e8a295;color-scheme:dark}[data-theme=dark] .primary{background:#71977a;color:#101c13}[data-theme=dark] .hero-card,[data-theme=dark] .stat-card{border-color:#40553b}[data-theme=dark] .hero-copy p,[data-theme=dark] .hero-copy .eyebrow,[data-theme=dark] .hero-number span,[data-theme=dark] .progress-label,[data-theme=dark] .hero-link{color:#a8bba0}[data-theme=dark] .hero-status{background:#344b35;border-color:#4b5d43;color:#becfb4}[data-theme=dark] .progress-track{background:#40543c}[data-theme=dark] .progress-label b{color:#b1d4aa}[data-theme=dark] .hero-link{border-color:#41513b}[data-theme=dark] .report-card{background:#293a2b;border-color:#465b3d}[data-theme=dark] .day-symbol{background:#2a3827;border-color:#3a4b35;color:#a2b58b}[data-theme=dark] .notice,[data-theme=dark] .calendar-day.paused:not(.has-data){background:#443d2b;color:#d8c48d}[data-theme=dark] .error{background:#4a2d27;color:#efb4a3}[data-theme=dark] .badge.paused{background:#453d2e;color:#dbc48d}@media(max-width:680px){.app-shell{padding:0 21px}.app-header{height:82px}.brand{font-size:25px}.brand-tag{font-size:8px;letter-spacing:.9px;padding-left:13px;margin-left:5px}.brand-symbol{width:35px;height:35px;border-radius:12px}.main{padding-top:28px}.page-heading{margin-bottom:23px}h1{font-size:35px}.page-heading p{font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.2px}.day-symbol{width:54px;height:54px}.hero-card{padding:23px 22px 0;border-radius:20px}.hero-number{font-size:57px}.hero-leaf{right:-15px;top:55px;opacity:.26}.hero-copy{max-width:none}.hero-copy .inline{gap:8px}.hero-status{font-size:9px;padding:4px 7px}.hero-copy .eyebrow{font-size:9px}.two-column{grid-template-columns:1fr;gap:16px}.panel{padding:20px;border-radius:17px}.section-heading{margin-bottom:14px}.panel h2{font-size:16px}.plan-row{padding:12px 0;gap:16px}.plan-row b,.intake-row b{font-size:14px}.plan-row small,.intake-row small{font-size:12px}.panel-foot,.panel-foot button{font-size:11px}.add-intake{font-size:14px}.add-intake span{font-size:10px}.hero-link{font-size:11px}.compact{padding:10px;min-height:39px}.compact span{display:none}.calendar-panel{padding:15px}.calendar-grid{gap:3px}.calendar-day{padding:10px 1px;min-height:58px;font-size:13px}.calendar-day small{font-size:9px}.calendar-legend{gap:10px;font-size:9px}.stat-card{padding:18px}.stat-card>span{font-size:10px}.stat-card strong{font-size:28px}.report-card{padding:18px;gap:11px}.report-card h3{font-size:14px}.report-card p{font-size:11px}.report-card .button{padding:10px 12px;min-height:40px}.report-icon{display:none}.goal-detail b{font-size:12px}.bottom-nav{bottom:max(14px,env(safe-area-inset-bottom),var(--tg-content-safe-area-inset-bottom, 0px));width:calc(100% - 36px);padding:9px 8px;border-radius:21px}.bottom-nav button{min-width:60px;padding:5px 13px}.dialog{width:100%;max-width:100%;max-height:93dvh;border-radius:23px 23px 0 0;margin:auto 0 0;border-bottom:0}.dialog-content{padding:23px 21px calc(24px + env(safe-area-inset-bottom))}.dialog-content>header h2{font-size:22px}.welcome>.brand{margin-bottom:60px}.welcome h1{font-size:43px}.welcome{padding:35px 24px}.welcome>.eyebrow{font-size:9px}.welcome>p{font-size:14px}.toast{bottom:100px}.empty{padding:40px 0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
