:root{--green:#79b83a;--dark:#203022;--bg:#f6f7f2;--muted:#7b847a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--dark);font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif}.hidden{display:none!important}main{max-width:560px;min-height:100vh;margin:auto;padding:24px 20px 110px}header{display:flex;align-items:center;justify-content:space-between;margin:10px 0 24px}h1,h2,p{margin:0}header h1{font-size:28px;margin-top:4px}header small{color:var(--muted)}button,input{font:inherit}.icon-btn{border:0;background:white;border-radius:50%;width:42px;height:42px}.progress-card,.form-card{background:white;border-radius:22px;padding:20px;box-shadow:0 8px 28px #395b2610}.progress-card>div:first-child{display:flex;justify-content:space-between}.progress-card span{color:var(--green);font-weight:800}.bar{height:10px;border-radius:10px;background:#e8eee3;margin-top:14px;overflow:hidden}.bar i{display:block;width:0;height:100%;background:var(--green);transition:.3s}.habit-list{display:grid;gap:12px;margin-top:18px}.habit{display:flex;align-items:center;gap:14px;background:white;border-radius:18px;padding:16px;border:2px solid transparent}.habit.done{border-color:#b5d98f;background:#f7fff0}.habit .emoji{font-size:25px}.habit .name{flex:1;font-weight:750}.check{width:32px;height:32px;border-radius:50%;border:2px solid #d6ddd1;background:white}.done .check{background:var(--green);border-color:var(--green);color:white}.view{margin-top:12px}.month-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.month-head button{border:0;background:white;border-radius:12px;padding:8px 16px;font-size:24px}.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.cal-head{text-align:center;color:var(--muted);font-size:12px;margin-bottom:8px}.day{aspect-ratio:1;border:0;border-radius:11px;background:white;display:grid;place-items:center;font-size:13px}.day.done{background:var(--green);color:white;font-weight:800}.day.empty{background:transparent}.form-card{display:grid;gap:10px;margin-top:18px}.form-card label{font-size:13px;color:var(--muted);margin-top:6px}.form-card input{border:1px solid #dfe5db;border-radius:13px;padding:14px;background:#fbfcfa}.form-card>button,.login-card button{border:0;border-radius:14px;padding:15px;background:var(--green);color:white;font-weight:800;margin-top:8px}.weekday-picker{display:flex;justify-content:space-between}.weekday-picker button{width:38px;height:38px;border-radius:50%;border:0;background:#edf0e9}.weekday-picker button.on{background:var(--green);color:white}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:560px;width:100%;height:82px;background:#fff;border-top:1px solid #edf0e9;display:flex;justify-content:space-around;padding:9px 32px calc(9px + env(safe-area-inset-bottom))}nav button{border:0;background:none;color:#9aa297;font-size:22px}nav button span{display:block;font-size:11px;margin-top:3px}nav button.active{color:var(--green)}nav .add{background:var(--green);color:white;width:58px;height:58px;border-radius:50%;margin-top:-28px;box-shadow:0 7px 18px #79b83a55}.login-card{max-width:380px;margin:14vh auto;background:white;border-radius:28px;padding:34px 26px;text-align:center;box-shadow:0 12px 40px #243b1b18}.login-card .logo{font-size:52px}.login-card p{color:var(--muted);margin:8px 0 26px}.login-card input{width:100%;padding:15px;border:1px solid #dfe5db;border-radius:14px}.login-card button{width:100%}.login-card small{display:block;color:#d44;margin-top:10px}

