@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Inter Variable,Inter,system-ui,sans-serif;color:#3f3340;background:#fff9f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 88% 3%,rgba(255,220,123,.42),transparent 28rem),radial-gradient(circle at 7% 4%,rgba(242,169,191,.34),transparent 25rem),#fff9f5}button,input{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}.app-shell{width:min(760px,100%);margin:0 auto;padding:24px 16px 108px}.loading{min-height:100vh;display:grid;place-items:center;font-weight:800}.hero{display:flex;justify-content:space-between;gap:16px;margin-bottom:22px}.hero p{margin:8px 0 0;opacity:.7}.eyebrow{margin:0!important;color:#a55372;font-weight:900;font-size:.76rem;letter-spacing:.18em}h1{margin:4px 0 0;font-size:clamp(1.8rem,7vw,2.8rem);line-height:1.04}.progress-orb{flex:0 0 86px;height:86px;border-radius:26px;background:#ffffffd9;box-shadow:0 12px 34px #5236411a;display:grid;place-content:center;text-align:center}.progress-orb strong{font-size:1.35rem}.progress-orb span{font-size:.72rem;opacity:.6}.date-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;margin-bottom:14px}.member-chips{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.member-chips::-webkit-scrollbar{display:none}.member-chip{flex:0 0 auto;border:0;border-radius:999px;padding:9px 16px;font-size:.88rem;font-weight:750;background:#ffffffb3;color:#7a5b66;box-shadow:0 6px 16px #52364112}.member-chip.active{background:#ef9eb8;color:#fff}.member-you{font-weight:600;opacity:.45}.date-nav>div{text-align:center}.date-nav strong{display:block;text-transform:capitalize}.date-nav small{opacity:.58}.icon-button{height:46px;width:46px;border:0;border-radius:16px;background:#fff;display:grid;place-items:center;box-shadow:0 8px 22px #52364117}.card{background:#ffffffe0;border:1px solid rgba(255,255,255,.95);border-radius:26px;box-shadow:0 14px 38px #52364117;padding:18px}.section-heading,.month-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}h2{margin:0;font-size:1.14rem;text-transform:capitalize}.section-heading>span{opacity:.55;font-size:.88rem}.task-list{display:grid;gap:9px}.task-row{width:100%;display:grid;grid-template-columns:40px 1fr 34px;align-items:center;gap:8px;min-height:58px;padding:11px 12px;border:1px solid #f0e4e8;border-radius:18px;background:#fff;text-align:left}.task-row.done{background:#f1faed;opacity:.74}.task-row.done .task-label{text-decoration:line-through}.task-emoji{font-size:1.35rem}.task-label{font-weight:680;line-height:1.25}.task-check{width:30px;height:30px;display:grid;place-items:center;border:2px solid #e6cdd6;border-radius:10px;color:#4f865a}.task-row.done .task-check{border-color:#9ecb9b;background:#daf0d6}.add-task{width:100%;margin-top:10px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed #e6cdd6;border-radius:18px;background:transparent;font-weight:750;color:#a55372}.task-form{margin-top:10px;display:grid;gap:10px;padding:14px;border:1px solid #f0e4e8;border-radius:18px;background:#fffafb}.task-form-heading{display:flex;align-items:center;justify-content:space-between}.task-form-row{display:grid;grid-template-columns:64px 1fr;gap:8px}.task-form input,.task-form select{width:100%;padding:11px 12px;border:1px solid #f0dfe4;border-radius:14px;background:#fff}.emoji-input{text-align:center;font-size:1.2rem}.task-form-field{display:grid;gap:6px}.task-form-field>span{font-size:.82rem;font-weight:750;opacity:.7}.task-form .primary:disabled{opacity:.45}.icon-button.small{height:38px;width:38px;border-radius:13px;box-shadow:none}.icon-button.danger{background:#fdeaea;color:#a03a3a}.custom-task-list{display:grid;gap:8px}.custom-task-row{display:grid;grid-template-columns:34px 1fr 38px;align-items:center;gap:8px;padding:10px 12px;border:1px solid #f0e4e8;border-radius:16px;background:#fff}.custom-task-text{display:grid;gap:2px;min-width:0}.custom-task-row strong{line-height:1.25}.custom-task-row small{font-size:.76rem;opacity:.55}.notice.muted{opacity:.62;line-height:1.4}.month-header h2{flex:1;text-align:center}.week-labels,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week-labels{margin:8px 0 6px;font-size:.72rem;font-weight:800;text-align:center;opacity:.5}.day-cell,.empty-day{min-height:64px}.day-cell{position:relative;overflow:hidden;border:1px solid #efe4e7;border-radius:14px;background:#fff;display:grid;align-content:center;justify-items:center;gap:2px;padding:6px 3px}.day-cell strong{font-size:.9rem}.day-cell span{font-size:.68rem;opacity:.55}.day-cell i{position:absolute;left:0;bottom:0;height:4px;background:#90bd8e}.today-cell{outline:2px solid #ef9eb8;outline-offset:-2px}.settings-card{display:grid;gap:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}.setting-row span{display:grid;gap:3px}.setting-row small{opacity:.56}input[type=time]{border:1px solid #eadde1;border-radius:14px;background:#fff;padding:10px}.primary,.secondary{width:100%;border:0;border-radius:16px;min-height:48px;padding:12px 16px;font-weight:850}.primary{background:#f2a9bf;display:flex;align-items:center;justify-content:center;gap:8px}.secondary{background:#f6efef}.notice{margin:0;font-size:.9rem}.info-box{background:#fff6da;border-radius:18px;padding:14px}.info-box p{margin:5px 0 0;line-height:1.4}.install-banner{position:fixed;z-index:19;left:50%;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 86px);transform:translate(-50%);width:min(560px,calc(100% - 24px));padding:12px 14px;border:1px solid rgba(255,255,255,.9);border-radius:20px;background:#fffffff2;backdrop-filter:blur(16px);box-shadow:0 16px 44px #432d362e}.install-action{width:100%;border:0;background:transparent;padding:0 26px 0 0;display:grid;grid-template-columns:24px 1fr;align-items:center;gap:11px;text-align:left}.install-action span{display:grid;gap:2px;min-width:0}.install-action strong{font-size:.95rem;line-height:1.25}.install-action small{font-size:.78rem;opacity:.58}.install-close{position:absolute;top:8px;right:8px;height:30px;width:30px;border:0;border-radius:10px;background:transparent;display:grid;place-items:center;opacity:.45}body.install-open .app-shell{padding-bottom:196px}.install-steps{margin:10px 0 0;padding-left:20px;display:grid;gap:5px;font-size:.84rem;line-height:1.4;opacity:.75}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(560px,calc(100% - 24px));display:grid;grid-template-columns:repeat(3,1fr);padding:7px;border:1px solid rgba(255,255,255,.9);border-radius:23px;background:#ffffffed;backdrop-filter:blur(16px);box-shadow:0 16px 44px #432d362e}.bottom-nav button{border:0;border-radius:17px;background:transparent;min-height:56px;display:grid;justify-items:center;align-content:center;gap:3px}.bottom-nav button span{font-size:.72rem;font-weight:750}.bottom-nav button.active{background:#fbe1e9;color:#914b66}@media(max-width:480px){.app-shell{padding-inline:12px}.hero{align-items:flex-start}.progress-orb{flex-basis:78px;height:78px}.card{border-radius:22px;padding:14px}.day-cell,.empty-day{min-height:56px}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login-card{width:min(420px,100%);display:grid;gap:14px}.login-card form{display:grid;gap:10px}.login-card h2{margin:0}.login-hint{margin:0;opacity:.68;line-height:1.4}.login-card label{font-size:.82rem;font-weight:750;opacity:.7}.label-hint{font-weight:600;opacity:.7}.login-card input{width:100%;padding:12px 14px;border:1px solid #f0dfe4;border-radius:14px;background:snow}.login-error{margin:0;padding:10px 12px;border-radius:12px;background:#fdeaea;color:#a03a3a;font-size:.88rem;line-height:1.35}.sync-badge{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:5px 11px;border:0;border-radius:999px;background:#f6eef1;font-size:.74rem;font-weight:750;opacity:.85}.sync-dot{width:8px;height:8px;border-radius:50%;background:#63b07a}.sync-badge.pending .sync-dot{background:#e0a13f}.sync-badge.offline .sync-dot{background:#9aa0a6}.sync-badge.error .sync-dot{background:#cc4b4b}.sync-badge.error{background:#fdeaea;color:#a03a3a}
