@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900;1000&display=swap');
:root{--ink:#452b4c;--pink:#efb1cf;--purple:#a88cce;--line:#eadce8;--muted:#8b7b8d}
*{box-sizing:border-box}body{margin:0;background-color:#fff8fc;background-image:radial-gradient(#efc5dc 1px,transparent 1px),radial-gradient(#d8c5f1 1px,transparent 1px);background-size:26px 26px;background-position:0 0,13px 13px;color:var(--ink);font-family:Nunito,system-ui,sans-serif}
.wrap{width:min(100% - 28px,560px);margin:24px auto 50px}.hero{padding:24px;border-radius:24px;background:linear-gradient(125deg,#ffb5d0,#d9b9ff 56%,#a9e8ef);box-shadow:0 8px 24px #9e719022;color:#482d4e;overflow:hidden}.sticker{display:inline-block;background:#fff5a8;border:2px solid #553d4d;border-radius:12px;padding:5px 11px;font-size:11px;font-weight:1000;transform:rotate(-4deg)}.hero-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:20px 0 12px}.hero h1{font-size:clamp(36px,10vw,50px);line-height:.96;letter-spacing:-2px;margin:0;font-weight:1000}.hero p{font-weight:800;font-size:13px;margin:12px 0}.hero small{font-weight:900}.bow{font-size:65px}.panel{background:#fff;border:1px solid #f0dce9;border-radius:20px;padding:18px;margin-top:16px;box-shadow:0 7px 22px #8d587311}.panel h2{font-size:19px;margin:0 0 5px;font-weight:1000}.muted{color:var(--muted);font-size:13px}.panel label{display:block;font-size:13px;font-weight:900;margin:13px 0 6px}input,select{width:100%;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:#fffaff;color:var(--ink);font:inherit;margin-bottom:4px}button{font:inherit;cursor:pointer;border:0}.primary{background:#633e78;color:white;border-radius:13px;padding:13px 16px;font-weight:1000;width:100%;margin-top:12px;box-shadow:0 4px 0 #432a52}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #432a52}.light{background:#f7eaf2;color:#633e78;border-radius:12px;padding:9px 13px;font-weight:900}.error{color:#c24d78;font-size:12px;min-height:16px}.hidden{display:none!important}.welcome{display:flex;align-items:center;justify-content:space-between;margin:19px 3px}.welcome h2{font-size:23px;margin:0}.monthbar{display:flex;justify-content:space-between;align-items:center;text-align:center;gap:8px;margin-bottom:18px}.monthbar h2{font-size:21px;text-transform:capitalize}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{text-align:center;font-size:11px;font-weight:1000;color:#8e7890;margin-bottom:7px}.day{min-width:0;min-height:53px;border:1px solid #eee2eb;border-radius:11px;background:#fffaff;color:#4e3852;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px;font-weight:800;padding:3px}.day .count{font-size:10px;color:#a16a92}.day.selected{background:#f7c4dc;border:2px solid #a34e7b;color:#562746}.day.empty{visibility:hidden}.legend{font-size:11px;color:#8b7b8d;margin:13px 0 0;display:flex;align-items:center;gap:7px}.legend i{width:10px;height:10px;border-radius:3px;background:#f7c4dc;border:1px solid #a34e7b}.status{text-align:center;min-height:17px}.sectionhead{display:flex;align-items:center;justify-content:space-between}.sectionhead h2{font-size:18px}.report{margin-top:14px}.reportrow{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin:11px 0 5px}.bar{height:7px;background:#f3e9f1;border-radius:9px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#f0a9cb,#b69be2);border-radius:9px}.perfect{background:#f9e6f0;color:#633e78;padding:13px;border-radius:14px;margin-top:16px}.perfect b{font-size:13px}.perfect p{font-size:13px;margin:5px 0 0}.rules p{font-size:13px;color:var(--muted);margin:8px 0}footer{text-align:center;color:#9c879c;font-size:11px;padding:22px}
@media(min-width:480px){.day{min-height:61px}}
.joinbox{margin-top:12px;padding:12px;border:1px dashed #dcb6d1;border-radius:14px;background:#fff8fc}.joinrow{display:flex;gap:8px;align-items:center}.joinrow input{margin:0;min-width:0}.joinrow button{white-space:nowrap}
