:root{color-scheme:light;--paper: #f6efdf;--paper-light: #fbf7ed;--ink: #171b15;--muted: #716f66;--olive: #64713a;--olive-deep: #4d5d2b;--olive-soft: #e4e3c9;--coral: #d65d43;--coral-soft: #f0d5c8;--warning: #a87822;--warning-soft: #efe2bd;--line: rgba(57, 61, 46, .19);--font-display: "STKaiti", "KaiTi", "FZKai-Z03", "Noto Serif SC", serif;--font-number: Georgia, "Times New Roman", serif;--page-pad: 22px}*{box-sizing:border-box}html{background:#dad3c3}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--coral);outline-offset:3px}.app-frame{position:relative;width:100%;max-width:430px;min-height:100dvh;margin:0 auto;background-color:var(--paper);background-image:url(/assets/warm-rice-paper.png);background-size:480px auto;background-blend-mode:soft-light;overflow-x:hidden}.page-content{min-height:100dvh}.page{padding:28px var(--page-pad) 112px;animation:page-in .22s ease-out}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-header,.journal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header h1,.journal-header h1,.today-hero h1{margin:0;font-size:clamp(28px,8vw,34px);line-height:1.16;font-weight:700;letter-spacing:.02em}.page-header p,.journal-header p,.today-hero p,.today-hero>span{margin:7px 0 0;color:var(--muted);font-size:15px;letter-spacing:.04em}.header-symbol,.journal-header>svg{flex:0 0 auto;width:36px;height:36px;color:var(--olive)}.journal-header h1{font-size:31px;white-space:nowrap}.journal-header p{font-family:var(--font-number),var(--font-display);font-size:16px}.seal{display:inline-grid;width:25px;height:25px;margin-left:6px;place-items:center;border:1px solid var(--coral);border-radius:4px;color:var(--coral);font-family:var(--font-display);font-size:13px;transform:rotate(-3deg)}.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;display:grid;width:min(100%,430px);min-height:78px;padding:8px 8px max(8px,env(safe-area-inset-bottom));transform:translate(-50%);grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#faf6ebf5}.nav-item{display:flex;min-width:0;min-height:56px;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#272b27;text-decoration:none;font-size:14px}.nav-item svg{width:27px;height:27px}.nav-item.active{color:var(--olive-deep)}.nav-item.active:before{content:"";width:20px;height:2px;margin-top:-5px;background:var(--olive);border-radius:4px}.section-heading{display:grid;min-height:38px;margin:27px 0 8px;grid-template-columns:5px auto 1fr;align-items:center;gap:11px}.section-stroke{width:5px;height:30px;border-radius:6px;background:var(--olive)}.section-stroke.coral{background:var(--coral)}.section-heading h2{margin:0;font-size:24px;line-height:1;letter-spacing:.04em}.section-heading p{margin:0;justify-self:end;color:var(--muted);font-size:14px;white-space:nowrap}.week-navigator{display:grid;margin:2px -4px 18px;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}.week-navigator strong{font-family:var(--font-number),var(--font-display);font-size:18px;letter-spacing:.05em}.icon-button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:0;background:transparent;color:var(--olive-deep);cursor:pointer}.icon-button svg{width:26px;height:26px}.day-strip{display:grid;grid-template-columns:repeat(7,1fr);margin:0 -5px 20px}.day-cell{display:flex;min-width:0;min-height:76px;padding:3px 0;align-items:center;flex-direction:column;gap:4px;border:0;background:transparent;cursor:pointer}.day-cell span{font-size:13px}.day-cell strong{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;font-family:var(--font-number),var(--font-display);font-size:20px;font-weight:400}.day-cell i{display:block;width:7px;height:7px;border:1.5px solid var(--olive);border-radius:50%}.day-cell i.done{background:var(--olive)}.day-cell.active strong{color:var(--paper-light);background:var(--olive)}.day-cell.active:after{content:"";width:12px;height:2px;margin-top:-1px;background:var(--olive);border-radius:3px}.task-list{border-top:1px solid var(--line)}.task-row{display:grid;min-height:83px;grid-template-columns:41px 1fr 43px;align-items:center;gap:11px;border-bottom:1px solid var(--line)}.task-row time{color:var(--olive-deep);font-family:var(--font-number);font-size:13px}.task-row:has(time){grid-template-columns:42px 37px 1fr 43px}.task-icon{width:34px;height:34px;color:var(--olive)}.task-copy{min-width:0;padding:12px 0;text-align:left;border:0;background:transparent;cursor:pointer}.task-copy strong{display:block;font-size:19px;line-height:1.25;letter-spacing:.025em}.task-copy span{display:-webkit-box;margin-top:4px;overflow:hidden;color:var(--muted);font-size:14px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-row.checked .task-copy{opacity:.75}.check-button{display:grid;width:43px;height:43px;padding:0;place-items:center;border:0;background:transparent;color:var(--coral);cursor:pointer}.check-button svg{width:31px;height:31px}.check-button.checked{color:var(--olive)}.review-preview{display:grid;padding:8px 0 15px;grid-template-columns:128px 1fr;align-items:center;gap:14px;border-bottom:1px dashed var(--line)}.score-stamp{display:flex;width:118px;height:118px;align-items:center;justify-content:center;flex-direction:column;border:3px double var(--olive);border-radius:50%;color:var(--olive-deep);transform:rotate(-2deg)}.score-stamp{border:0;border-radius:0;background-image:url(/assets/score-brush-ring.png);background-position:center;background-repeat:no-repeat;background-size:contain}.score-stamp strong{font-family:var(--font-number);font-size:51px;line-height:.92;font-weight:400}.score-stamp span{margin-top:7px;color:var(--ink);font-size:14px}.review-insight>span,.brush-label{display:inline-block;padding:4px 13px;border-radius:999px 60% 999px 45%;background:var(--olive-soft);color:var(--ink);font-size:13px}.review-insight p{margin:10px 0 0;font-size:16px;line-height:1.65}.adjustment-list{margin:5px 0 0;padding:0;list-style:none}.adjustment-list li{display:grid;min-height:51px;grid-template-columns:31px 1fr 32px;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.adjustment-list li>span{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;color:#fff;background:var(--coral);font-family:var(--font-number);font-size:15px}.adjustment-list p{margin:0;font-size:15px;line-height:1.35}.adjustment-list svg{width:24px;height:24px;color:var(--coral)}.today-hero{margin-bottom:21px}.today-hero p{margin-top:0;color:var(--olive-deep)}.today-hero h1{margin-top:4px}.today-hero>span{display:block}.today-progress{display:grid;min-height:106px;padding:15px 0;grid-template-columns:90px 1fr;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.today-progress>div{color:var(--olive)}.today-progress strong{font-family:var(--font-number);font-size:57px;font-weight:400;line-height:1}.today-progress>div span{font-size:22px}.today-progress p{margin:0;font-size:18px}.today-progress p b{color:var(--coral);font-family:var(--font-number)}.today-progress small{display:block;margin-top:8px;color:var(--muted);font-size:13px}.today-metrics-grid{display:grid;margin-top:14px;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.today-metrics-grid>button{display:grid;min-width:0;min-height:88px;padding:12px;grid-template-columns:25px 1fr;align-content:center;align-items:center;gap:5px 7px;text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;cursor:pointer}.today-metrics-grid>button:active{background:#64713a0f}.today-metrics-grid svg{width:21px;height:21px;color:var(--olive)}.today-metrics-grid>button>span{color:var(--muted);font-size:13px}.today-metrics-grid>button>div{display:flex;grid-column:1 / -1;align-items:baseline;gap:5px}.today-metrics-grid strong{overflow:hidden;font-family:var(--font-number);font-size:22px;font-weight:400;text-overflow:ellipsis}.today-metrics-grid div span{color:var(--muted);font-size:12px}.today-metrics-grid strong:first-child:last-child{font-family:var(--font-display);font-size:17px}.today-task-list{border-top:1px solid var(--line)}.today-task-row{display:grid;min-height:91px;grid-template-columns:42px minmax(0,1fr) 58px;align-items:center;gap:9px;border-bottom:1px solid var(--line)}.today-task-copy{min-width:0;min-height:72px;padding:11px 0;text-align:left;border:0;background:transparent;cursor:pointer}.task-title-line{display:flex;align-items:baseline;gap:8px}.task-title-line strong{font-size:19px;letter-spacing:.025em}.task-title-line small{color:var(--olive-deep);font-family:var(--font-number),var(--font-display);font-size:12px;white-space:nowrap}.today-task-copy>span:last-child{display:-webkit-box;margin-top:5px;overflow:hidden;color:var(--muted);font-size:14px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}.today-task-row.complete .today-task-copy{opacity:.78}.task-status-button{display:grid;width:58px;min-height:48px;padding:0;place-items:center;border:0;background:transparent;color:var(--coral);cursor:pointer}.task-status-button svg{width:29px;height:29px}.task-status-button.complete{color:var(--olive)}.task-status-button.caution{color:var(--warning)}.task-status-button time{padding-bottom:3px;border-bottom:2px solid currentColor;font-family:var(--font-number);font-size:14px}.extra-exercise-list{border-top:1px solid var(--line)}.extra-exercise-list article{display:grid;min-height:76px;grid-template-columns:39px 1fr 44px;align-items:center;gap:9px;border-bottom:1px solid var(--line)}.extra-exercise-list article>svg{width:30px;height:30px;color:var(--olive)}.extra-exercise-list strong,.extra-exercise-list span{display:block}.extra-exercise-list strong{font-size:17px}.extra-exercise-list time{margin-left:4px;color:var(--olive-deep);font-family:var(--font-number);font-size:13px}.extra-exercise-list span{margin-top:4px;color:var(--muted);font-size:13px}.extra-exercise-list button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:0;background:transparent;color:var(--coral);cursor:pointer}.extra-exercise-list button svg{width:21px;height:21px}.floating-add{position:fixed;z-index:25;right:max(calc((100vw - 430px)/2 + 20px),20px);bottom:calc(92px + env(safe-area-inset-bottom));display:grid;width:54px;height:54px;padding:0;place-items:center;border:1px solid var(--olive-deep);border-radius:50%;color:var(--paper-light);background:var(--olive);box-shadow:0 5px 16px #343b1f38;cursor:pointer}.floating-add svg{width:27px;height:27px}.entry-dialog{width:min(100%,430px);max-width:none;max-height:90dvh;margin:auto auto 0;padding:0;overflow:visible;border:0;border-radius:22px 22px 0 0;color:var(--ink);background:transparent}.entry-dialog::backdrop{background:#1c1c1773}.dialog-paper{max-height:90dvh;padding:22px var(--page-pad) max(26px,env(safe-area-inset-bottom));overflow-y:auto;border-radius:22px 22px 0 0;background-color:var(--paper-light);background-image:url(/assets/warm-rice-paper.png);background-size:480px auto}.dialog-paper header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.dialog-paper header span{color:var(--coral);font-size:13px}.dialog-paper h2{margin:3px 0 0;font-size:25px}.dialog-paper header button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:0;background:transparent;cursor:pointer}.dialog-paper header button svg{width:25px;height:25px}.dialog-paper form{display:grid;gap:14px}.dialog-paper label{display:grid;gap:7px;color:var(--muted);font-size:14px}.dialog-paper input,.dialog-paper select,.dialog-paper textarea{width:100%;min-height:48px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);background:#ffffff38}.dialog-paper textarea{min-height:96px;resize:vertical}.dialog-paper label small{color:var(--muted);font-size:12px}.input-with-unit{display:grid;grid-template-columns:1fr auto;align-items:center}.input-with-unit b{margin-left:-42px;padding-right:12px;color:var(--muted);font-size:13px;font-weight:400;pointer-events:none}.form-error{min-height:20px;margin:-4px 0 0;color:var(--coral);font-size:13px}.analysis-period{display:grid;margin:-4px 0 24px;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.analysis-period button{min-height:44px;padding:8px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);background:transparent;cursor:pointer}.analysis-period button.active{color:var(--paper-light);background:var(--olive)}.analysis-score{display:grid;padding:4px 0 18px;grid-template-columns:120px 1fr;align-items:center;gap:13px;border-bottom:1px dashed var(--line)}.analysis-score .score-stamp{width:112px;height:112px}.analysis-score p{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.analysis-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.trend-chart-wrap{position:relative;padding-top:8px}.trend-chart{display:block;width:100%;height:auto;overflow:visible}.chart-axis{stroke:#393d2e38;stroke-width:1}.chart-line{fill:none;stroke:var(--olive);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:var(--paper-light);stroke:var(--olive);stroke-width:2.5}.chart-value{fill:var(--ink);font-family:var(--font-number);font-size:11px}.chart-label{fill:var(--muted);font-size:10px}.chart-unit{position:absolute;top:10px;right:2px;color:var(--muted);font-size:11px}.chart-empty{display:flex;min-height:190px;padding:20px;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--muted)}.chart-empty svg{width:35px;height:35px;margin-bottom:10px;color:var(--olive)}.chart-empty strong{color:var(--ink);font-size:17px}.chart-empty p{max-width:250px;margin:6px 0 0;font-size:13px;line-height:1.55}.analysis-insight{display:flex;margin:0;padding:13px 2px;align-items:flex-start;gap:9px;border-top:1px dashed var(--line);font-size:14px;line-height:1.55}.analysis-insight svg{width:21px;height:21px;flex:0 0 auto;color:var(--olive)}.analysis-adjustments{margin-bottom:20px}.metric-ribbon{display:grid;padding:17px 0 1px;grid-template-columns:repeat(3,1fr)}.metric-ribbon>div{display:grid;grid-template-columns:25px auto;align-items:center;justify-content:center;gap:1px 7px;border-right:1px solid var(--line)}.metric-ribbon>div:last-child{border-right:0}.metric-ribbon svg{width:22px;height:22px;color:var(--olive)}.metric-ribbon strong{font-family:var(--font-number);font-size:19px}.metric-ribbon span{grid-column:1 / -1;color:var(--muted);font-size:12px}.journal-note,.safety-note{display:flex;margin-top:22px;padding:15px 0;gap:12px;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.journal-note>svg,.safety-note>svg{flex:0 0 auto;width:28px;height:28px;color:var(--olive)}.journal-note strong,.safety-note strong{font-size:16px}.journal-note p,.safety-note p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.round-action{display:grid;width:44px;height:44px;padding:0;place-items:center;border:1px solid var(--olive);border-radius:50%;background:transparent;color:var(--olive);cursor:pointer}.round-action svg{width:24px;height:24px}.filter-tabs{display:flex;margin:-4px 0 24px;gap:5px;overflow-x:auto;scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.filter-tabs button{min-width:57px;min-height:38px;padding:0 13px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.filter-tabs button.active{border-color:var(--olive);color:var(--paper-light);background:var(--olive)}.record-list{border-top:1px solid var(--line)}.record-row{display:grid;min-height:76px;grid-template-columns:42px 30px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.record-row time{color:var(--muted);font-family:var(--font-number);font-size:13px}.record-row>svg{width:27px;height:27px;color:var(--olive)}.record-row div{min-width:0}.record-row div strong,.record-row div span{display:block}.record-row div strong{font-size:17px}.record-row div span{margin-top:3px;overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.record-row>b{color:var(--olive-deep);font-family:var(--font-number);font-size:19px;font-weight:400}.record-row>b small{font-family:var(--font-display);font-size:11px}.empty-state{display:flex;min-height:260px;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--muted)}.empty-state svg{width:42px;height:42px;margin-bottom:14px;color:var(--olive)}.empty-state strong{color:var(--ink);font-size:20px}.empty-state p{margin:6px 0}.modal-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;background:#1c1c176e}.sheet-modal{width:min(100%,430px);max-height:88dvh;padding:22px var(--page-pad) max(24px,env(safe-area-inset-bottom));overflow-y:auto;border-radius:22px 22px 0 0;background-color:var(--paper-light);background-image:url(/assets/warm-rice-paper.png);background-size:480px auto}.sheet-modal header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.sheet-modal header span{color:var(--coral);font-size:13px}.sheet-modal h2{margin:3px 0 0;font-size:26px}.sheet-modal header button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:0;background:transparent}.sheet-modal header button svg{width:25px;height:25px}.sheet-modal form{display:grid;gap:14px}.sheet-modal label{display:grid;gap:6px;color:var(--muted);font-size:14px}.sheet-modal input,.sheet-modal select{width:100%;min-height:48px;padding:0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff3;color:var(--ink)}.primary-button,.secondary-button{display:flex;width:100%;min-height:50px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--olive);border-radius:4px;background:var(--olive);color:#fff;font-size:17px;cursor:pointer}.secondary-button{margin-top:22px;background:transparent;color:var(--olive-deep)}.secondary-button svg{width:20px;height:20px}.score-hero{display:grid;padding:5px 0 23px;grid-template-columns:135px 1fr;align-items:center;gap:16px;border-bottom:1px dashed var(--line)}.score-stamp.large{width:130px;height:130px}.score-stamp.large strong{font-size:59px}.score-hero h2{margin:9px 0 5px;font-size:20px;line-height:1.35}.score-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.score-breakdown{display:grid;padding:6px 0 8px;gap:18px}.progress-line>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px}.progress-line span{font-size:15px}.progress-line strong{color:var(--muted);font-family:var(--font-number);font-size:14px;font-weight:400}.progress-track{height:5px;background:#64713a26}.progress-track>span{display:block;height:100%;background:var(--olive);transition:width .5s ease}.progress-track>span.coral{background:var(--coral)}.review-adjustments li{min-height:60px}.identity-block{display:flex;padding:4px 0 23px;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.seal-avatar{display:grid;width:67px;height:67px;flex:0 0 auto;place-items:center;border:2px solid var(--coral);color:var(--coral);font-family:var(--font-number);font-size:22px;transform:rotate(-3deg)}.identity-block h2{margin:0;font-size:26px}.identity-block p{margin:5px 0 2px;color:var(--muted)}.identity-block span{color:var(--olive-deep);font-size:14px}.settings-list{border-top:1px solid var(--line)}.setting-row{display:grid;min-height:58px;grid-template-columns:30px 1fr auto auto;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.setting-row>svg{width:23px;height:23px;color:var(--olive)}.setting-row>span{font-size:16px}.setting-row input{width:85px;height:38px;padding:0 2px;text-align:right;border:0;border-bottom:1px dashed var(--line);border-radius:0;background:transparent;color:var(--ink);font-family:var(--font-number);font-size:16px}.setting-row input[type=time]{width:105px}.setting-row small{color:var(--muted)}.switch{position:relative;width:46px;height:27px;padding:0;border:1px solid var(--muted);border-radius:20px;background:transparent;cursor:pointer}.switch span{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:var(--muted);transition:transform .18s ease}.switch.on{border-color:var(--olive);background:var(--olive)}.switch.on span{background:var(--paper-light);transform:translate(19px)}.evidence-list{border-top:1px solid var(--line)}.evidence-list a{display:grid;min-height:62px;grid-template-columns:29px 1fr 24px;align-items:center;gap:9px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.evidence-list svg{width:21px;height:21px;color:var(--olive)}.evidence-list span{font-size:14px;line-height:1.4}.data-actions{display:grid;margin-top:26px;grid-template-columns:1fr 1fr;gap:10px}.data-actions button{display:flex;min-height:44px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--olive);background:transparent;color:var(--olive-deep);cursor:pointer}.data-actions button.danger{border-color:var(--coral);color:var(--coral)}.data-actions svg{width:19px;height:19px}.medical-disclaimer{display:flex;margin:20px 0 0;gap:8px;color:var(--muted);font-size:12px;line-height:1.55}.medical-disclaimer svg{width:18px;height:18px;flex:0 0 auto;color:var(--coral)}@media(min-width:431px){.app-frame{border-right:1px solid rgba(50,50,40,.12);border-left:1px solid rgba(50,50,40,.12)}}@media(max-width:365px){:root{--page-pad: 17px}.journal-header h1{font-size:27px}.section-heading p{display:none}.task-row{grid-template-columns:36px 1fr 39px;gap:8px}.task-copy strong{font-size:18px}.review-preview,.score-hero{grid-template-columns:112px 1fr;gap:10px}.score-stamp,.score-stamp.large{width:104px;height:104px}.score-stamp strong,.score-stamp.large strong{font-size:45px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
