:root{color:#243933;font-synthesis:none;background:#f5f3ee;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}#app{max-width:880px;margin:0 auto;padding:48px 28px 64px}h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:650}h2{overflow-wrap:anywhere;margin:0;font-size:1.15rem;line-height:1.4}p{margin:8px 0 16px}.date,.subtitle,.today{color:#576960}.overview{background:#e4ebe4;border-radius:14px;margin:24px 0;padding:16px 20px;font-size:1.05rem}.add-form,.habit-form{background:#fff;border:1px solid #d8dfd9;border-radius:16px;margin-bottom:28px;padding:20px}.habit-form{grid-template-columns:1fr auto;gap:10px;display:grid}.habit-form label{grid-column:1/-1;margin-bottom:0}.habit-form>button{align-self:stretch}label{margin-bottom:8px;font-weight:600;display:block}.form-row{gap:10px;display:flex}input{width:100%;min-width:0;font:inherit;color:inherit;background:#fff;border:1px solid #98aaa0;border-radius:9px;padding:11px 13px}button{font:inherit;color:#fff;cursor:pointer;background:#2d6650;border:1px solid #2d6650;border-radius:9px;padding:10px 16px;font-weight:600}button:hover:not(:disabled){background:#214f3d}button:disabled{opacity:.55;cursor:default}button.secondary,button.quiet{color:#315b49;background:0 0}button.secondary:hover:not(:disabled),button.quiet:hover:not(:disabled){background:#edf2ed}button.quiet{border-color:#0000;font-weight:400}:focus-visible{outline-offset:3px;outline:3px solid #976028}.habits{gap:12px;display:grid}.habit{background:#fff;border:1px solid #d8dfd9;border-radius:16px;padding:20px}.habit:has(>.mark-button){grid-template-columns:1fr auto;column-gap:20px;display:grid}.habit:has(>.mark-button)>h2{grid-column:1}.habit-state{color:#576960;grid-column:1;margin:5px 0 0;font-size:.92rem}.mark-button{grid-area:1/2/3;align-self:center}.habit>details{grid-column:1/-1}.habit>.before-note{grid-column:1}.history-range{color:#647568;margin:6px 0;font-size:.8rem}.habit.done{background:#f0f6ef;border-color:#acbfab}.habit-top{justify-content:space-between;align-items:center;gap:20px;display:flex}.habit-info{min-width:0}.today-status{color:#627367;margin-top:5px;font-size:.92rem;display:block}.done .today-status{color:#2d6650}.today-status:before{content:"○ "}.done .today-status:before{content:"✓ "}.habit-actions{flex-shrink:0;align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.habit-actions>button{overflow-wrap:anywhere;max-width:100%}.error,.notice{border-radius:12px;margin:16px 0;padding:16px}.error{color:#80351d;background:#fff0e9;border:1px solid #d49d88}.notice{background:#e7ede8}.empty-state{text-align:center;color:#576960;border:1px dashed #aebaaf;border-radius:16px;padding:34px 16px}.loading{color:#576960}details{margin-top:18px}summary{cursor:pointer;color:#476657;padding:4px 0;font-size:.92rem}.history{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:14px;display:grid}.history-day{text-align:center;border:1px solid #d8dfd9;border-radius:10px;padding:10px 4px;font-size:.78rem}.history-day.completed{background:#e4eee1}.history-day.before-creation{color:#70776f;background:#f5f4f0}.history-day time{margin-bottom:5px;font-weight:600;display:block}.history-day button{margin-top:8px;padding:5px 6px;font-size:.72rem}.before-note{color:#755427;font-size:.8rem}.archived{border-top:1px solid #cdd6cf;margin-top:40px;padding-top:24px}.archived>h2{margin-bottom:16px}.archive-date{color:#647568;font-size:.85rem}dialog{color:#243933;border:1px solid #afbeb3;border-radius:18px;width:calc(100% - 32px);max-width:480px;padding:28px}dialog::backdrop{background:#14231b66}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}@media (max-width:640px){#app{padding:28px 16px 48px}.habit{padding:16px}.habit-top{flex-wrap:wrap;align-items:flex-start;gap:12px}.habit-actions{flex-wrap:wrap}.history{grid-template-columns:repeat(4,minmax(0,1fr))}.form-row{flex-wrap:wrap}}.auth-panel{max-width:32rem;margin:2rem auto}.auth-form{gap:.7rem;display:grid}.auth-form input{box-sizing:border-box;width:100%;min-width:0}.auth-form button{margin-top:.5rem}.connection-toolbar{justify-content:flex-end;margin-bottom:1rem;display:flex}.sync-status{color:#576960;font-size:.9rem}.conflict-panel{background:#fff9ed;border:1px solid #bf9c69;border-radius:14px;margin:16px 0;padding:20px}.choice-actions{flex-wrap:wrap;gap:10px;display:flex}.shared-history .history-day{overflow-wrap:anywhere;min-width:0}
