:root{--ink:#304737;--muted:#727e72;--green:#547b50;--light:#edf3e9;--line:#e2e8de;--paper:#fffefa;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:#f7f8f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #87a778;outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.app-shell{max-width:940px;margin:auto;padding:0 48px}.header{display:flex;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px;letter-spacing:.035em}.brand small{font-size:10px;font-weight:500;background:#e8ede2;border-radius:5px;padding:3px 5px;vertical-align:middle}.brand-icon{display:grid;place-items:center;background:#e6eddf;border-radius:50%;width:36px;height:36px;font-size:29px;color:var(--green)}.private-label{font-size:11px;color:var(--muted)}.intro{display:flex;align-items:center;justify-content:space-between;min-height:315px;padding:35px 12px 35px 0;gap:20px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.17em;color:#7a8c72;margin:0 0 14px}h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:36px;line-height:1.65;font-weight:500;letter-spacing:.08em;margin:0}.intro-copy{color:var(--muted);font-size:13px;line-height:1.9;margin:14px 0 0}.plant{position:relative;flex-shrink:0;width:210px;height:238px}.plant-circle{position:absolute;width:205px;height:205px;background:#e9eedf;border-radius:50%;left:0;top:4px}.stem{position:absolute;bottom:65px;left:105px;width:4px;height:128px;background:#758c62;transform:rotate(2deg);border-radius:3px}.leaf{position:absolute;background:#8aa375;width:62px;height:33px;border-radius:0 90% 0 90%;box-shadow:inset 0 -2px 0 #00000008}.l1{left:47px;top:64px;transform:rotate(20deg)}.l2{left:106px;top:36px;transform:rotate(-52deg);background:#607f54}.l3{left:56px;top:109px;transform:rotate(12deg);background:#a2b68c}.l4{left:105px;top:91px;transform:rotate(-47deg);background:#759664}.pot{position:absolute;bottom:30px;left:77px;width:65px;height:56px;background:#d7cbb6;border-top:7px solid #cbbb9f;clip-path:polygon(0 0,100% 0,85% 100%,15% 100%);border-radius:0 0 18px 18px}.plant-caption{position:absolute;bottom:0;left:44px;font-family:Georgia,serif;font-style:italic;letter-spacing:.07em;color:#8c997e;font-size:12px}.tabs{display:flex;gap:8px;padding:6px;background:#e9ede3;border-radius:14px;margin-bottom:34px}.tab{flex:1;min-height:46px;background:transparent;color:#71806b;border-radius:10px;font-size:13px;font-weight:600}.tab.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 5px #33472208}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 20px}.section-head .eyebrow{margin-bottom:8px}h2{font-size:20px;font-weight:650;letter-spacing:.025em;margin:0}h3{font-size:15px;line-height:1.6;margin:0;font-weight:600}.add-button,.primary-button{background:var(--green);color:white;border-radius:11px;min-height:46px;padding:12px 18px;font-size:13px;font-weight:600}.add-button:hover,.primary-button:hover{background:#42673e}.progress-card{background:#e7efdf;padding:25px 28px;border:1px solid #dee8d5;border-radius:18px;margin-bottom:20px}.progress-top{display:flex;justify-content:space-between;align-items:center}.progress-label{font-size:12px;margin:0 0 7px;color:#667b59}.progress-top strong{font-size:35px;font-weight:500;letter-spacing:.03em}.progress-top small{font-size:17px;color:#819075}.progress-top>p{font-size:12px;line-height:1.9;color:#687a5c;position:relative;margin:0;padding-right:34px}.progress-top>p>span{position:absolute;right:0;top:2px;font-size:28px;color:#8b9e77}.progress-track{height:6px;background:#d3dec8;border-radius:10px;margin-top:19px;overflow:hidden}.progress-track>div{height:100%;background:#6c9057;border-radius:10px;transition:width .3s}.habit-list{display:grid;gap:12px}.habit-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;min-height:90px;padding:18px 22px;display:flex;align-items:center;gap:18px}.habit-card.done{background:#f0f5eb;border-color:#d5e2cb}.check-button{border:1.5px solid #c7d2c1;background:white;width:44px;height:44px;flex-shrink:0;border-radius:50%;color:white;font-size:22px}.check-button.checked{background:#719761;border-color:#719761}.habit-info{min-width:0;flex:1}.habit-info h3{overflow-wrap:anywhere}.habit-info p{font-size:11px;color:var(--muted);margin:6px 0 0}.meta-divider{margin:0 9px}.habit-status{font-size:11px;color:#93a08a;white-space:nowrap}.done .habit-status{color:#658656}.row-actions{display:flex;gap:5px;flex-shrink:0}.row-actions button{padding:10px;min-height:44px;background:transparent;color:#5c7851;font-size:12px;border-radius:7px}.row-actions button:hover{background:#edf3e9}.row-actions .delete-text{color:#9d7066}.habit-symbol{font-size:32px;color:#829971;width:36px;text-align:center}.empty-state{text-align:center;background:var(--paper);border:1px dashed #d4ddcd;border-radius:17px;padding:32px 20px}.empty-state>span{font-size:39px;color:#8ba47c}.empty-state h3{margin:10px 0}.empty-state p{font-size:12px;color:var(--muted);margin:10px 0 22px}.notice{display:flex;gap:13px;align-items:flex-start;border-top:1px solid var(--line);padding:24px 0;margin-top:34px}.notice>span{font-size:24px;color:#849478}.notice p{font-size:11px;color:var(--muted);line-height:1.9;margin:0}.notice strong{font-weight:600;color:#6c7e60}footer{text-align:center;color:#8a9482;font-size:11px;line-height:1.9;padding:10px 0 35px}footer span{display:block;font-size:10px;margin-top:6px}.calendar-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px 28px}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.month-nav button{width:44px;height:44px;border-radius:50%;background:#f0f3ea;color:var(--ink);font-size:28px}.week-labels,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}.week-labels{font-size:11px;color:#90998b;margin-bottom:10px}.calendar-day{position:relative;aspect-ratio:1.25;min-height:44px;border-radius:12px;background:transparent;color:#55654c;font-size:14px;border:1px solid transparent}.calendar-day:hover{background:#f3f5ed}.calendar-day.is-today{border-color:#97ad87}.calendar-day.selected{background:#e7efdf;color:#35572e;font-weight:700}.day-dot{display:block;position:absolute;bottom:7px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:transparent}.has-record .day-dot{background:#769c62}.legend{display:flex;gap:8px;align-items:center;justify-content:center;font-size:10px;color:var(--muted);margin-top:20px}.dot{width:5px;height:5px;background:#769c62;border-radius:50%}.ring{width:10px;height:10px;border:1px solid #97ad87;border-radius:50%;margin-left:12px}.text-button{background:transparent;color:var(--green);min-height:44px;padding:10px 0;font-size:12px}.muted{font-size:12px;line-height:1.8;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);padding:28px;width:460px;max-width:calc(100% - 28px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 20px 90px #2a402422}dialog::backdrop{background:#253d2d66;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.icon-button{border-radius:50%;width:44px;height:44px;background:#edf2e7;color:#73826b;font-size:25px}form>label{display:block;font-size:13px;font-weight:600;margin-bottom:10px}input[type=text],input:not([type]),input[type=time]{width:100%;border:1px solid #d4decd;border-radius:10px;padding:13px;background:#fff;color:var(--ink);font-size:16px;min-height:48px}fieldset{padding:0;margin:24px 0;border:0}legend{font-size:13px;font-weight:600;margin-bottom:12px}.required,.optional{font-size:10px;color:#859578;font-weight:400;margin-left:8px}.weekday-options{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day-option{cursor:pointer;position:relative}.day-option input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.day-option span{display:grid;place-items:center;height:44px;background:#f1f4ed;border:1px solid var(--line);border-radius:9px;font-size:13px}.day-option input:checked+span{background:#e1ebd8;border-color:#98b089;color:#446737}.day-option input:focus-visible+span{outline:3px solid #87a778;outline-offset:2px}.field-note{font-size:11px;color:#7a8871;line-height:1.8}.form-actions{display:flex;gap:10px;margin-top:22px;justify-content:flex-end}.form-actions button{flex:1;min-height:48px}.secondary-button{border:1px solid #dce3d5;border-radius:11px;background:#f5f7f0;color:#67785d;font-size:13px;padding:12px}.danger-button{background:#a46759;color:white;padding:12px;border-radius:11px;font-size:13px}.form-error{font-size:12px;color:#a15446;line-height:1.7}.warning{padding:16px;background:#fff1df;border:1px solid #e5cfac;border-radius:12px;color:#8a5b31;font-size:13px;line-height:1.8;margin-bottom:20px}#toast{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#3d563c;color:white;border-radius:12px;padding:13px 20px;font-size:13px;transition:opacity .2s,transform .2s;z-index:5;max-width:90vw;width:max-content}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:800px){.intro{padding-right:45px}.plant{margin-right:20px}.habit-list{gap:13px}}
@media(max-width:600px){.app-shell{padding:0 20px}.header{padding:20px 0}.brand{font-size:13px;gap:7px}.brand-icon{width:30px;height:30px;font-size:24px}.brand small{font-size:8px}.private-label{font-size:9px}.intro{min-height:270px;padding:30px 0;gap:0}h1{font-size:27px;line-height:1.65}.intro .eyebrow{font-size:8px;letter-spacing:.12em}.intro-copy{font-size:11px}.plant{width:125px;height:200px;transform:scale(.72);transform-origin:right center;margin-left:-45px;margin-right:0}.plant-circle{width:180px;height:180px;left:-35px;top:5px}.stem{left:59px;bottom:50px}.l1{left:1px;top:38px}.l2{left:60px;top:10px}.l3{left:10px;top:83px}.l4{left:59px;top:65px}.pot{left:31px;bottom:15px}.plant-caption{left:0;bottom:-12px;font-size:11px}.tabs{margin-bottom:26px;gap:3px;padding:5px}.tab{font-size:12px}.section-head{gap:10px;margin:24px 0 17px}h2{font-size:17px}.section-head .eyebrow{font-size:8px}.add-button{padding:11px 12px;font-size:11px;white-space:nowrap;min-height:44px}.progress-card{padding:21px;border-radius:15px}.progress-top>p{font-size:11px;padding-right:23px}.progress-top>p>span{font-size:22px}.habit-card{padding:16px 14px;gap:12px;min-height:86px}.habit-info h3{font-size:14px}.habit-info p{font-size:10px}.habit-status{font-size:10px}.row-actions{gap:0}.row-actions button{padding:10px 7px;font-size:11px}.habit-symbol{width:25px;font-size:26px}.calendar-card{padding:18px 12px}.calendar-grid{gap:3px}.calendar-day{font-size:13px;aspect-ratio:1}.notice{margin-top:27px}dialog{padding:22px}.weekday-options{gap:5px}footer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}}
@media(max-width:600px){.intro{position:relative}.intro>div:first-child{position:relative;z-index:1}.intro h1{font-size:25px;letter-spacing:.04em;white-space:nowrap}.plant{position:absolute;right:0;bottom:40px;transform:scale(.6);margin:0}}
@media(max-width:360px){.app-shell{padding:0 14px}.private-label{display:none}.intro h1{font-size:23px}.plant{transform:scale(.5);right:-5px}.habit-status{display:none}.brand{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
