:root{font-family:"Pretendard","Noto Sans KR",system-ui,sans-serif;color:#233c32;background:#f7f8f4;font-synthesis:none;--green:#276552;--muted:#718278;--line:#e0e7df}*{box-sizing:border-box}body{margin:0;word-break:keep-all;overflow-wrap:normal}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #99cbb6;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}.app-header{max-width:920px;margin:auto;height:86px;padding:20px 28px;display:flex;align-items:center;gap:14px}.brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:800;letter-spacing:-1px}.brand-light{font-weight:500}.header-tag{font-size:12px;color:var(--muted)}.avatar{margin-left:auto;border-radius:50%;background:#e8ede4;width:38px;height:38px;font-weight:700}main{max-width:860px;margin:auto;padding:10px 28px 130px;min-height:65vh}h1{font-size:32px;letter-spacing:-1.3px;margin:8px 0 12px;line-height:1.35}h2{font-size:21px;letter-spacing:-.6px;margin:0}h3{font-size:15px;margin:0}p{line-height:1.7;margin:8px 0}.eyebrow{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:1px}.muted,.field-help{color:var(--muted);font-size:13px}.primary,.secondary{padding:12px 20px;border-radius:14px;font-weight:700;display:inline-flex;justify-content:center;align-items:center;gap:6px}.primary{background:var(--green);color:white}.secondary{background:#eaf0e6;color:var(--green)}.text-button{color:var(--green);font-size:13px;padding:8px}.icon-button{font-size:26px;border-radius:50%;min-width:36px;height:36px;line-height:1}.install-banner{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:14px max(18px,calc((100vw - 850px)/2));background:#e6efdf;border-bottom:1px solid #d9e5d0}.install-banner div{flex:1;font-size:14px}.install-banner p{margin:3px 0;font-size:12px;color:#57734e}.install-action{background:var(--green);color:#fff;font-weight:700;padding:10px 14px;border-radius:10px;white-space:nowrap}.hero{background:#edf2e8;border:1px solid #e4eadf;border-radius:24px;padding:28px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin:12px 0 24px}.hero p{font-size:14px;color:#647664}.progress-ring{width:106px;height:106px;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--green) calc(var(--progress)*1%),#dbe5d5 0);display:grid;place-items:center}.progress-ring div{width:86px;height:86px;border-radius:50%;background:#edf2e8;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-ring strong{font-size:26px}.progress-ring small{font-size:11px;color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 16px}.date-picker{display:flex;gap:8px;align-items:center}.date-picker input{max-width:160px;border:0;background:transparent;font-weight:700;color:var(--green);padding:8px}.week-rail{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:28px}.week-day{padding:9px 2px;border:1px solid transparent;border-radius:15px;display:flex;flex-direction:column;align-items:center;gap:8px}.week-day small{font-size:11px;color:var(--muted)}.week-day.selected{background:white;border-color:#c4d5c4;box-shadow:0 4px 14px #29483108}.dot{width:6px;height:6px;border-radius:50%;background:#d6ddd1}.dot.done{background:#39735b}.section-heading{display:flex;align-items:center;gap:10px;margin:22px 0 12px;color:#607565;font-size:12px;font-weight:700}.section-heading:after{content:"";height:1px;flex:1;background:var(--line)}.routine-card{background:white;border:1px solid var(--line);border-radius:18px;display:flex;gap:13px;align-items:center;padding:16px;margin:9px 0;transition:background .15s}.routine-card.completed{background:#f0f5ed}.routine-card.skipped{opacity:.6}.routine-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:23px;flex-shrink:0;background:#e9f1df}.sky{background:#e7f2f7}.lavender{background:#efeafb}.peach{background:#fff0e4}.rose{background:#f9e9ee}.sand{background:#f8f0d8}.routine-content{flex:1;min-width:0;text-align:left}.routine-title{font-size:15px;font-weight:650;overflow-wrap:anywhere}.routine-meta{font-size:11px;color:var(--muted);margin-top:5px;display:flex;gap:9px;flex-wrap:wrap}.check-button{width:39px;height:39px;border:1.5px solid #c6d5c6;border-radius:13px;flex-shrink:0;font-size:18px;font-weight:700}.completed .check-button{background:var(--green);color:#fff;border-color:var(--green)}.row-actions{display:flex;align-items:center;gap:6px}.more{font-size:22px;padding:5px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,860px);display:flex;justify-content:space-around;background:#fffffff5;backdrop-filter:blur(12px);border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;padding:12px 8px max(14px,env(safe-area-inset-bottom));z-index:10;box-shadow:0 -6px 28px #233c3205}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;color:#88968a;padding:4px}.bottom-nav span{font-size:23px}.bottom-nav [aria-current=page]{color:var(--green);font-weight:700}.empty{background:#fff;border:1px dashed #cedacc;border-radius:22px;text-align:center;padding:44px 22px;margin:22px 0}.empty .empty-icon{font-size:38px;display:block;margin-bottom:16px}.empty p{font-size:14px;color:var(--muted)}.reflection{margin-top:28px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:20px}.moods{display:flex;gap:10px;margin:18px 0}.moods button{font-size:24px;padding:8px;border:1px solid transparent;border-radius:12px}.moods button[aria-pressed=true]{background:#edf2e8;border-color:#a9c3a9}.reflection textarea{margin:8px 0 12px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:20px 0}.calendar .weekday{text-align:center;font-size:12px;color:var(--muted);padding:8px}.calendar-day{background:white;border:1px solid var(--line);border-radius:14px;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.calendar-day.today{outline:2px solid var(--green)}.calendar-day.selected{background:#e8f0e1}.calendar-day small{font-size:10px;color:var(--muted)}.calendar-day.full{border-color:#87b497}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.stat-card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px 18px}.stat-card strong{display:block;font-size:28px;margin:10px 0}.stat-card span{font-size:12px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;margin:16px 0}.bar-chart{height:160px;display:flex;align-items:end;gap:8px;padding-top:20px}.bar-column{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:8px}.bar{height:calc(var(--value)*1%);min-height:3px;width:100%;max-width:44px;background:#8cb29a;border-radius:7px 7px 2px 2px}.bar-column small{font-size:10px;color:var(--muted)}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:22px 0}.template{display:flex;flex-direction:column;align-items:start;text-align:left;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.template>span{font-size:30px}.template small{font-size:12px;color:var(--muted);line-height:1.7}.template b{font-size:12px;color:var(--green);margin-top:auto}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.welcome{padding:35px 0}.welcome-illustration{height:160px;background:#e8f0df;border-radius:28px;display:grid;place-items:center;margin:28px 0}.welcome-illustration img{width:86px;filter:drop-shadow(0 12px 14px #27655225)}.error{color:#a33f39;font-size:13px;line-height:1.65}.loading{padding:80px 20px;text-align:center;color:var(--muted)}dialog{padding:0;border:1px solid var(--line);border-radius:24px;width:min(540px,calc(100% - 24px));max-height:90dvh;background:#fff;color:inherit}dialog::backdrop{background:#17372570;backdrop-filter:blur(3px)}.dialog-heading{padding:24px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-fields{padding:0 24px;display:grid;gap:17px}label{font-size:13px;font-weight:600;display:grid;gap:8px}input,select,textarea{width:100%;padding:12px;border:1px solid #d9e3d6;background:#fafcf8;border-radius:11px;color:inherit;min-width:0}textarea{resize:vertical;line-height:1.6}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.weekdays{border:0;margin:0;padding:0}.weekdays legend{font-size:13px;font-weight:600;margin-bottom:10px}#weekday-options{display:flex;gap:6px}#weekday-options label{flex:1;position:relative;text-align:center;display:block;font-size:12px}#weekday-options input{position:absolute;opacity:0;width:1px;height:1px}#weekday-options span{display:block;padding:10px 0;border:1px solid var(--line);border-radius:10px}#weekday-options input:checked+span{background:var(--green);color:white}#weekday-options input:focus-visible+span{outline:3px solid #99cbb6}.check-label{display:flex;align-items:center}.check-label input{width:18px;height:18px}.dialog-footer{position:sticky;bottom:0;background:white;padding:20px 24px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #eef2ea;margin-top:22px}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:#233c32;color:white;padding:13px 20px;border-radius:14px;font-size:13px;z-index:30;box-shadow:0 4px 18px #0002}.source-link{color:var(--green);font-size:12px;text-decoration:underline;text-underline-offset:3px}.month-title{display:flex;align-items:center;justify-content:space-between}.month-title button{padding:10px}.legend{display:flex;gap:14px;color:var(--muted);font-size:11px}.login-card{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;margin:24px 0}.login-card .primary{margin-top:12px}.inline-progress{height:6px;background:#e6eddf;border-radius:4px;overflow:hidden;margin-top:10px}.inline-progress span{display:block;height:100%;background:#7da98c;width:calc(var(--progress)*1%)}@media(max-width:600px){.app-header{height:72px;padding:16px 20px}.header-tag{display:none}main{padding:8px 18px 122px}h1{font-size:27px}.hero{padding:22px 20px;gap:12px}.progress-ring{width:90px;height:90px}.progress-ring div{width:73px;height:73px}.progress-ring strong{font-size:23px}.hero p{font-size:12px}.install-banner{padding:12px;gap:8px}.install-banner>img{width:32px;height:32px}.install-banner strong{font-size:12px}.install-banner p{font-size:10px}.install-action{font-size:12px;padding:9px 10px}.install-banner .icon-button{min-width:26px}.template-grid{gap:10px}.template{padding:20px 16px}.stats-grid{gap:8px}.stat-card{padding:18px 12px}.stat-card strong{font-size:23px}.calendar{gap:4px}.calendar-day{min-height:58px;border-radius:11px}.routine-card{padding:14px 12px;gap:10px}.routine-title{font-size:14px}.routine-icon{width:38px;height:38px;font-size:21px}.routine-meta{font-size:10px}.dialog-heading{padding:20px}.editor-fields{padding:0 20px}.field-pair{gap:10px}.toolbar .primary{font-size:12px;padding:11px 13px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.discovery-tabs{display:flex;gap:8px;margin:20px 0}.community-heading{display:flex;align-items:center;gap:14px}.community-heading h2{font-size:19px}.community-heading p{margin:4px 0}.community-introduction{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0}.community-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:20px}.community-actions button{font-size:12px}.community-actions img{width:24px;height:24px}#community-search{display:flex;align-items:end;gap:10px;margin:24px 0}#community-search label{flex:1}.template>span img{width:40px;height:40px}.bottom-nav img{opacity:.55}.bottom-nav [aria-current=page] img{opacity:1}
