@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/dmsans-latin-ext.a5d38fe99f.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/dmsans-latin.9fea608a94.woff2) format('woff2');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}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/dmsans-latin-ext.a5d38fe99f.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/dmsans-latin.9fea608a94.woff2) format('woff2');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}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/dmsans-latin-ext.a5d38fe99f.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/dmsans-latin.9fea608a94.woff2) format('woff2');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}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 700;font-display: swap;src: url(/assets/dmsans-latin-ext.a5d38fe99f.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'DM Sans';font-style: normal;font-weight: 700;font-display: swap;src: url(/assets/dmsans-latin.9fea608a94.woff2) format('woff2');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}@font-face{font-family: 'Fraunces';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fraunces-vietnamese.f18853f63a.woff2) format('woff2');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: 'Fraunces';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fraunces-latin-ext.a2930b27d1.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Fraunces';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fraunces-latin.7234ed860a.woff2) format('woff2');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}@font-face{font-family: 'Fraunces';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fraunces-vietnamese.f18853f63a.woff2) format('woff2');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: 'Fraunces';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fraunces-latin-ext.a2930b27d1.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Fraunces';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fraunces-latin.7234ed860a.woff2) format('woff2');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}body{margin:0}*{box-sizing:border-box}.app{--cream:#F7F1E7;--paper:#FFFCF7;--ink:#2A2723;--muted:#655E55;--rose:#F0D8D1;--rose-deep:#94483E;--sage:#DDE7D8;--sage-deep:#47664A;--line:#E8DECF;--gold:#C07F1F;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream);min-height:100vh;display:flex;flex-direction:column;container-type:inline-size;line-height:1.5;font-size:16px}.app button{font-family:inherit}.app :focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px}.hf{font-family:'Fraunces',Georgia,serif}.muted{color:var(--muted)}.h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:38px;line-height:1.1;letter-spacing:-.02em;margin:0}.h2{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-.01em;margin:0}.h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:22px;line-height:1.2;margin:0}.eyebrow{font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rose-deep)}.hint{font-size:14px;color:var(--muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic-s{width:16px;height:16px}.wrap{max-width:1180px;margin:0 auto;padding:32px;width:100%}.row{display:flex;gap:12px;align-items:center}.col{display:flex;flex-direction:column;gap:12px}.side-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}.stats{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.sticky-side{position:sticky;top:88px}.lrow{padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.show-m{display:none}.loading{padding:64px 24px;text-align:center;color:var(--muted)}.empty{padding:28px 20px;text-align:center;color:var(--muted)}.hdr{position:sticky;top:0;z-index:20;background:rgba(247,241,231,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.hdr-in{max-width:1180px;margin:0 auto;padding:12px 32px;display:flex;align-items:center;gap:16px}.logo-btn{display:inline-flex;align-items:center;gap:10px;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);font-size:22px;font-weight:600;min-height:44px}.navlinks{display:flex;gap:4px;margin-left:12px}.navlink{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;color:var(--ink);background:none;border:0;font-weight:500;font-size:16px;cursor:pointer}.navlink:hover{background:#EFE6D8}.navlink.act{background:var(--sage);color:#2F4A32;font-weight:700}.tabbar{display:none;position:sticky;bottom:0;z-index:20;background:var(--paper);border-top:1px solid var(--line);padding:6px 8px;justify-content:space-around;gap:4px}.tab{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:600;font-size:12px;color:var(--muted);background:none;border:0;cursor:pointer;border-radius:14px}.tab.act{color:#2F4A32;background:var(--sage)}.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:0 1px 2px rgba(70,50,30,.04),0 10px 28px rgba(70,50,30,.06)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;border:1.5px solid transparent;font-weight:600;font-size:16px;line-height:1;cursor:pointer;text-decoration:none;transition:transform .15s,background .15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--sage-deep);color:#fff}.btn-primary:hover{filter:brightness(.92)}.btn-rose{background:var(--rose);color:var(--ink)}.btn-rose:hover{background:#ebcdc5}.btn-ghost{background:transparent;border-color:#BFB3A0;color:var(--ink)}.btn-ghost:hover{background:#fff}.btn-sm{min-height:44px;padding:0 16px;font-size:15px}.btn-block{width:100%}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;flex:none}.icon-btn:hover{background:#fff}.link-btn{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;font-size:14px;text-decoration:underline;padding:4px;min-height:32px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:14px;font-weight:500;background:var(--sage);color:#2F4A32;line-height:1.3}.chip-rose{background:var(--rose);color:#5A2A22}.chip-line{background:#EFE8DB;color:var(--muted)}.chip-out{background:var(--paper);border:1px solid var(--line);color:var(--ink)}.av{border-radius:50%;display:grid;place-items:center;font-family:'Fraunces',Georgia,serif;font-weight:600;color:var(--ink);flex:none;box-shadow:inset 0 0 0 3px rgba(255,255,255,.6)}.sz-xs{width:32px;height:32px;font-size:15px}.sz-s{width:44px;height:44px;font-size:19px}.sz-m{width:68px;height:68px;font-size:28px}.sz-l{width:112px;height:112px;font-size:46px}.t-rose{background:#F0D8D1}.t-sage{background:#D3E0CE}.t-sand{background:#EBDDC3}.t-sky{background:#D9E2E6}.stars{display:inline-flex;gap:2px}.star{width:18px;height:18px;fill:#E4D9C7;stroke:none}.star.on{fill:var(--gold)}.star-l{width:30px;height:30px}.starpick{display:flex;gap:6px}.starpick button{width:48px;height:48px;border-radius:14px;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;padding:0}.starpick button:hover{background:#F3EBDC}.field{display:flex;flex-direction:column;gap:6px}.field label,.lbl{font-weight:600;font-size:15px}.input{min-height:48px;width:100%;border-radius:14px;border:1.5px solid #8F8576;background:#fff;padding:0 14px;font:400 16px 'DM Sans',system-ui,sans-serif;color:var(--ink)}textarea.input{padding:12px 14px;min-height:112px;resize:vertical;line-height:1.5}.err{color:var(--rose-deep);font-size:14px;font-weight:600}.form-err{background:#F7E3DE;color:#7A3229;border-radius:14px;padding:12px 14px;font-size:15px;font-weight:500}.seg{display:flex;gap:6px;padding:5px;background:#EFE8DB;border-radius:999px}.seg button{flex:1;min-height:44px;border-radius:999px;border:0;background:transparent;font-weight:600;font-size:15px;color:var(--muted);cursor:pointer}.seg button.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(70,50,30,.15)}.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-pick button{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:14px;border-radius:18px;border:1.5px solid #BFB3A0;background:#fff;cursor:pointer;color:var(--ink);font-size:15px}.role-pick button.on{border-color:var(--sage-deep);background:var(--sage);box-shadow:0 0 0 2px var(--sage-deep)}.days-pick{display:flex;flex-wrap:wrap;gap:8px}.days-pick label{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid #BFB3A0;background:#fff;cursor:pointer;font-size:15px}.days-pick input{accent-color:var(--sage-deep);width:18px;height:18px}.tgl{width:52px;height:30px;border-radius:999px;border:0;background:#BFB3A0;position:relative;cursor:pointer;flex:none}.tgl::after{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .15s}.tgl.on{background:var(--sage-deep)}.tgl.on::after{left:25px}.note{display:flex;gap:10px;align-items:flex-start;background:var(--sage);color:#2F4A32;padding:12px 14px;border-radius:14px;font-size:14px;line-height:1.45}.note .ic{margin-top:2px}.tile{background:#F4EEE2;border-radius:14px;padding:12px 14px}.step-n{width:36px;height:36px;border-radius:50%;background:var(--rose);display:grid;place-items:center;font-family:'Fraunces',Georgia,serif;font-weight:600;flex:none}.agrid-row{display:grid;grid-template-columns:82px repeat(7,minmax(0,1fr));gap:6px;align-items:center}.dayh{font-size:13px;font-weight:600;color:var(--muted);text-align:center}.plab{font-size:13px;font-weight:600}.cell{height:40px;border-radius:10px;border:1.5px solid var(--line);background:transparent;display:grid;place-items:center;color:#fff;padding:0}.cell.on{background:#4F7552;border-color:#4F7552}button.cell{min-height:44px;height:44px;cursor:pointer;background:#fff;border-color:#BFB3A0}button.cell.on{background:#4F7552;border-color:#4F7552}.rev{padding:18px;border-radius:18px;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;gap:10px}.rev.feat{background:#F4F8F1;border-color:#A9C1A4}.exp-row{display:flex;align-items:flex-start;gap:10px}.exp-row span{flex:1}.overlay{position:fixed;inset:0;background:rgba(42,39,35,.5);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.sheet{background:var(--paper);border-radius:26px;width:100%;max-width:540px;max-height:92vh;overflow:auto;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.25)}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 20px;border-radius:16px;display:flex;gap:10px;align-items:center;z-index:70;box-shadow:0 12px 30px rgba(0,0,0,.25);max-width:calc(100% - 32px);font-size:15px}.toast .ic{color:#BFE0BA}@container (max-width:760px){.navlinks,.hide-m{display:none!important}.show-m{display:inline-flex}.tabbar{display:flex}.hdr-in{padding:10px 16px}.wrap{padding:20px 16px}.hero,.two,.side-grid{grid-template-columns:minmax(0,1fr)!important}.h1{font-size:29px}.h2{font-size:28px}.overlay{align-items:flex-end;padding:0}.sheet{border-radius:26px 26px 0 0;padding:22px 18px 28px;max-height:92vh}.toast{bottom:84px}.sticky-side{position:static}.agrid-row{grid-template-columns:70px repeat(7,minmax(0,1fr));gap:4px}.starpick button{width:52px;height:52px}}
