.bottom-nav[data-v-e7e491a0]{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;display:flex;background:#ffffffb8;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--glass-border);box-shadow:0 -8px 30px -18px #d6789e40;padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:50}.nav-item[data-v-e7e491a0]{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ink-soft);padding:4px 0;transition:color .2s}.nav-icon[data-v-e7e491a0]{font-size:20px;line-height:1}.nav-label[data-v-e7e491a0]{font-size:11px}.nav-item.router-link-active[data-v-e7e491a0]{color:var(--pink-deep)}.mask[data-v-8c392c7a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3b4166;z-index:60}.dialog[data-v-8c392c7a]{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:82%;max-width:340px;background:#fffffff0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;padding:20px 18px;z-index:61}.dialog-title[data-v-8c392c7a]{font-size:16px;margin-bottom:12px}.dialog-msg[data-v-8c392c7a]{font-size:14px;line-height:1.6;color:var(--ink);margin-bottom:6px}.dialog-input[data-v-8c392c7a]{width:100%;box-sizing:border-box;padding:10px 12px;margin-bottom:4px}.dialog-btns[data-v-8c392c7a]{display:flex;gap:10px;margin-top:14px}.dialog-btns .btn[data-v-8c392c7a]{flex:1}.btn-danger-solid[data-v-8c392c7a]{background:var(--danger);color:#fff}.fade-enter-active[data-v-8c392c7a],.fade-leave-active[data-v-8c392c7a]{transition:opacity .2s}.fade-enter-from[data-v-8c392c7a],.fade-leave-to[data-v-8c392c7a]{opacity:0}.pop-enter-active[data-v-8c392c7a],.pop-leave-active[data-v-8c392c7a]{transition:opacity .2s,transform .2s}.pop-enter-from[data-v-8c392c7a],.pop-leave-to[data-v-8c392c7a]{opacity:0;transform:translate(-50%,-50%) scale(.94)}.profile-bar{position:sticky;top:0;z-index:40;display:flex;gap:8px;padding:8px 4px;background:#ffffff80;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.profile-bar::-webkit-scrollbar{display:none}.profile-chip{flex:0 0 auto;display:flex;align-items:center;gap:5px;border:1px solid var(--glass-border);background:#fff9;color:var(--ink-soft);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;transition:all .2s;font-family:inherit}.profile-chip.active{background:linear-gradient(140deg,#f69bc0,#e76f9b);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 6px 16px -8px #e76f9bb3}.chip-emoji{font-size:14px;line-height:1}.add-chip{color:var(--pink-deep);font-size:16px;padding:0;width:28px;height:28px;justify-content:center;border-style:dashed;border-radius:50%}.toast{position:fixed;left:50%;bottom:110px;transform:translate(-50%);background:#4a3b41eb;color:#fff;padding:10px 18px;border-radius:12px;font-size:14px;max-width:320px;text-align:center;z-index:99}.toast-enter-active,.toast-leave-active{transition:opacity .25s,transform .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(8px)}.login-page[data-v-453d9ad8]{padding-top:8vh}.hero[data-v-453d9ad8]{text-align:center;margin-bottom:24px}.hero-icon[data-v-453d9ad8]{font-size:52px;margin-bottom:8px}.login-btn[data-v-453d9ad8]{margin-top:22px}.switch-hint[data-v-453d9ad8]{text-align:center;margin-top:16px;font-size:14px}.switch-link[data-v-453d9ad8]{color:var(--pink-deep);font-weight:600;cursor:pointer}.ring-wrap[data-v-ce7e0944]{position:relative;margin:0 auto;max-width:100%;filter:drop-shadow(0 2px 6px rgba(214,96,140,.16))}.ring-wrap svg[data-v-ce7e0944]{display:block;width:100%;height:auto}.ring-center[data-v-ce7e0944]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mask[data-v-7d9cb0be]{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3b4166;z-index:60}.picker[data-v-7d9cb0be]{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;background:#fffffff0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:22px 22px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));z-index:61}.grabber[data-v-7d9cb0be]{width:40px;height:4px;border-radius:2px;background:#f3dbe5;margin:6px auto 16px}.picker-title[data-v-7d9cb0be]{font-size:17px;text-align:center;margin-bottom:14px}.wheel-panel[data-v-7d9cb0be]{position:relative}.wheel-indicator[data-v-7d9cb0be]{position:absolute;top:84px;left:0;right:0;height:42px;background:var(--pink-light);border-radius:10px;pointer-events:none}.wheels[data-v-7d9cb0be]{position:relative;display:flex}.wheel[data-v-7d9cb0be]{flex:1;height:210px;overflow:hidden;touch-action:none;position:relative}.wheel-track[data-v-7d9cb0be]{transition:transform .22s ease-out}.wheel-track.dragging[data-v-7d9cb0be]{transition:none}.wheel-item[data-v-7d9cb0be]{height:42px;line-height:42px;font-size:17px;color:var(--ink-soft);text-align:center;transition:color .15s;user-select:none;-webkit-user-select:none}.wheel-item.active[data-v-7d9cb0be]{color:var(--pink-deep);font-weight:700}.picker-btns[data-v-7d9cb0be]{display:flex;gap:10px;margin-top:16px}.picker-btns .btn[data-v-7d9cb0be]{flex:1;padding:11px;font-size:15px}.fade-enter-active[data-v-7d9cb0be],.fade-leave-active[data-v-7d9cb0be]{transition:opacity .2s}.fade-enter-from[data-v-7d9cb0be],.fade-leave-to[data-v-7d9cb0be]{opacity:0}.slide-enter-active[data-v-7d9cb0be],.slide-leave-active[data-v-7d9cb0be]{transition:transform .25s ease-out}.slide-enter-from[data-v-7d9cb0be],.slide-leave-to[data-v-7d9cb0be]{transform:translate(-50%) translateY(100%)}.page[data-v-bf69e3a8]{padding-top:4px}.page-title[data-v-bf69e3a8]{font-size:20px;margin:6px 2px 14px}.center-card[data-v-bf69e3a8]{margin-top:30vh;text-align:center}.empty-card[data-v-bf69e3a8]{margin-top:16vh;text-align:center;padding:32px 20px}.empty-icon[data-v-bf69e3a8]{font-size:48px;margin-bottom:10px}.empty-title[data-v-bf69e3a8]{font-size:18px;font-weight:700;line-height:1.5;margin-bottom:6px}.empty-card .btn[data-v-bf69e3a8]{margin-top:20px}.ring-card[data-v-bf69e3a8]{padding:26px 18px 18px}.ring-status[data-v-bf69e3a8]{font-size:24px;font-weight:700;line-height:1.25;background:linear-gradient(135deg,#f581ab,#d9608c);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding:0 10px}.stage-pill[data-v-bf69e3a8]{margin-top:8px;font-size:11px;line-height:1;padding:4px 10px;border-radius:999px;font-weight:600}.stage-predicted[data-v-bf69e3a8]{background:var(--pink-light);color:var(--pink-deep)}.stage-fertile[data-v-bf69e3a8]{background:var(--purple-bg);color:#6d4bb5}.stage-ovulation[data-v-bf69e3a8]{background:#6d4bb5;color:#fff}.stage-safe[data-v-bf69e3a8]{background:var(--green-bg);color:#35704f}.warn-card[data-v-bf69e3a8]{background:#fdf3e7;color:#b97d2c;border-radius:12px;padding:12px 14px;font-size:13px;margin:12px 0}.remind-card[data-v-bf69e3a8]{background:var(--pink-light);color:var(--pink-deep);border-radius:12px;padding:12px 14px;font-size:13px;margin:12px 0;text-align:center}.main-btn-row[data-v-bf69e3a8]{display:flex;justify-content:center;margin-top:20px}.main-btn[data-v-bf69e3a8]{min-width:190px;padding-left:44px;padding-right:44px}.undo-btn[data-v-bf69e3a8]{margin-top:10px;padding:8px;font-size:13px;background:transparent;color:var(--ink-soft)}.undo-btn[data-v-bf69e3a8]:active{transform:none}.info-rows[data-v-bf69e3a8]{margin-top:18px;border-top:1px solid #f6e3eb;padding-top:8px}.info-row[data-v-bf69e3a8]{display:flex;justify-content:space-between;padding:8px 2px;font-size:14px}.disclaimer[data-v-bf69e3a8]{text-align:center;margin-top:16px}.week-row[data-v-8c09738a]{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.week-cell[data-v-8c09738a]{text-align:center;font-size:12px;color:var(--ink-soft);padding:4px 0}.grid[data-v-8c09738a]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cell[data-v-8c09738a]{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:12px;border:none;background:transparent;position:relative;font-family:inherit}.blank[data-v-8c09738a]{pointer-events:none}button.day[data-v-8c09738a]{cursor:pointer;transition:transform .1s}button.day[data-v-8c09738a]:active{transform:scale(.92)}.st-period[data-v-8c09738a]{background:linear-gradient(135deg,#f69bc0,#e76f9b);box-shadow:0 4px 10px -4px #d6608c73;color:#fff;font-weight:600}.st-predicted[data-v-8c09738a]{background:#ffffff8c;border:1.6px dashed var(--pink-deep);color:var(--pink-deep);font-weight:600}.st-fertile[data-v-8c09738a]{background:var(--purple-bg);color:#6d4bb5}.st-safe[data-v-8c09738a]{background:var(--green-bg);color:#35704f}.st-other[data-v-8c09738a]{color:#c9b6bf}.today[data-v-8c09738a]{outline:2px solid rgba(217,96,140,.55);outline-offset:1px;box-shadow:0 0 0 5px #f28ab224}.future[data-v-8c09738a]{opacity:.45;cursor:default}.dotted[data-v-8c09738a]:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--pink-deep)}.legend[data-v-8c09738a]{display:flex;justify-content:center;gap:14px;margin-top:12px}.lg[data-v-8c09738a]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-soft)}.dot[data-v-8c09738a]{width:10px;height:10px;border-radius:4px;display:inline-block}.mask[data-v-858ce515]{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3b4166;z-index:60}.drawer[data-v-858ce515]{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;background:#fffffff0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:22px 22px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));z-index:61;max-height:82vh;overflow-y:auto}.grabber[data-v-858ce515]{width:40px;height:4px;border-radius:2px;background:#f3dbe5;margin:6px auto 14px}.sec-label[data-v-858ce515]{font-size:13px;color:var(--ink-soft);margin:16px 0 8px}.pills[data-v-858ce515]{display:flex;gap:10px;flex-wrap:wrap}.pill[data-v-858ce515]{border:1.5px solid #f3dbe5;background:#fff;color:var(--ink);border-radius:12px;padding:8px 18px;font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit}.pill.active[data-v-858ce515]{background:var(--pink);border-color:var(--pink);color:#fff}.pill.emoji[data-v-858ce515]{font-size:20px;padding:6px 12px}.period-row[data-v-858ce515]{display:flex;gap:10px}.mini[data-v-858ce515]{flex:1;font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:4px}.row-btns[data-v-858ce515]{display:flex;gap:10px;margin-top:12px}.row-btns .btn[data-v-858ce515]{flex:1;padding:10px;font-size:14px}.btn-danger[data-v-858ce515]{background:#fdeaea;color:var(--danger)}.divider[data-v-858ce515]{height:1px;background:#f6e3eb;margin:18px -18px 0}.note-input[data-v-858ce515]{resize:none}.save-btn[data-v-858ce515]{margin-top:18px}.fade-enter-active[data-v-858ce515],.fade-leave-active[data-v-858ce515]{transition:opacity .2s}.fade-enter-from[data-v-858ce515],.fade-leave-to[data-v-858ce515]{opacity:0}.slide-enter-active[data-v-858ce515],.slide-leave-active[data-v-858ce515]{transition:transform .25s ease-out}.slide-enter-from[data-v-858ce515],.slide-leave-to[data-v-858ce515]{transform:translate(-50%) translateY(100%)}.page[data-v-24749375]{padding-top:4px}.month-card[data-v-24749375]{touch-action:pan-y}.head[data-v-24749375]{display:flex;align-items:center;justify-content:space-between;margin:6px 2px 14px}.page-title[data-v-24749375]{font-size:20px}.nav-btns[data-v-24749375]{display:flex;gap:8px}.nav-btn[data-v-24749375]{width:32px;height:32px;border-radius:10px;border:none;background:var(--pink-light);color:var(--pink-deep);font-size:18px;cursor:pointer}.empty-hint[data-v-24749375]{text-align:center;margin:14px 0 2px}.page[data-v-90bf8cfa]{padding-top:4px}.page-title[data-v-90bf8cfa]{font-size:20px;margin:6px 2px 14px}.user-card[data-v-90bf8cfa]{display:flex;align-items:center;gap:14px;margin-bottom:14px}.avatar[data-v-90bf8cfa]{width:52px;height:52px;border-radius:50%;background:var(--pink-light);display:flex;align-items:center;justify-content:center;font-size:26px}.phone[data-v-90bf8cfa]{font-weight:700;font-size:17px;letter-spacing:.5px}.member-sub[data-v-90bf8cfa]{margin-top:2px;font-size:12px}.member-list[data-v-90bf8cfa]{display:flex;flex-direction:column;gap:8px}.member-row[data-v-90bf8cfa]{display:flex;align-items:center;gap:8px;padding:6px 0}.member-emoji[data-v-90bf8cfa]{font-size:20px}.member-name[data-v-90bf8cfa]{flex:1;font-size:15px;font-weight:600}.member-cur[data-v-90bf8cfa]{margin-left:6px;font-size:11px;font-weight:400;color:var(--pink-deep);background:var(--pink-light);border-radius:999px;padding:2px 8px}.mini-btn[data-v-90bf8cfa]{border:1px solid #f3dbe5;background:#fff;color:var(--ink-soft);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;font-family:inherit}.mini-btn.danger[data-v-90bf8cfa]{color:var(--danger);border-color:#f6d5d5}.add-member-btn[data-v-90bf8cfa]{margin-top:10px}.card+.card[data-v-90bf8cfa]{margin-top:14px}.card-title[data-v-90bf8cfa]{font-size:15px;margin-bottom:6px}.field[data-v-90bf8cfa]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:14px}.field .input[data-v-90bf8cfa]{width:110px;text-align:center}.hint[data-v-90bf8cfa]{margin:4px 0 12px}.clear-btn[data-v-90bf8cfa]{margin-top:10px;padding:8px;font-size:13px}.switch-row[data-v-90bf8cfa]{display:flex;align-items:center;justify-content:space-between;font-size:14px;cursor:pointer}.block-sub[data-v-90bf8cfa]{display:block;margin-top:2px}.switch[data-v-90bf8cfa]{width:44px;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#f3dbe5;border-radius:13px;position:relative;cursor:pointer;transition:background .2s}.switch[data-v-90bf8cfa]:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #00000026}.switch[data-v-90bf8cfa]:checked{background:var(--pink)}.switch[data-v-90bf8cfa]:checked:after{left:21px}.disclaimer[data-v-90bf8cfa]{text-align:center;line-height:1.6;margin-top:16px}:root{--pink: #f28ab2;--pink-deep: #d9608c;--pink-bg: #fff3f6;--pink-light: #ffe4ee;--green: #5aa87c;--green-bg: #cfeedd;--purple: #a98bd8;--purple-bg: #ecdafb;--ink: #4a3a41;--ink-soft: #9a8590;--card: rgba(255, 255, 255, .62);--glass-border: rgba(255, 255, 255, .7);--danger: #e06666;--radius: 22px;--shadow: 0 18px 40px -18px rgba(214, 120, 158, .35)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Noto Sans SC,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(1200px 800px at 15% 10%,#ffe9ef 0%,transparent 55%),radial-gradient(1000px 700px at 90% 20%,#ffedf3 0%,transparent 55%),linear-gradient(160deg,#fff7f9,#fdeef2);background-attachment:fixed;color:var(--ink);-webkit-font-smoothing:antialiased}#app{max-width:420px;margin:0 auto;min-height:100vh;padding:16px 16px 96px}h1,h2,h3{margin:0}.card{background:var(--card);border:1px solid var(--glass-border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.input{width:100%;padding:12px 14px;border:1.5px solid #f3dbe5;border-radius:14px;font-size:16px;background:#fffc;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--pink);box-shadow:0 0 0 3px #f28ab21f}.input::placeholder{color:#c9b6bf}.label{display:block;font-size:13px;color:var(--ink-soft);margin:14px 0 6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:16px;padding:13px 18px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .12s,opacity .2s,box-shadow .15s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#f69bc0,#e76f9b);color:#fff;box-shadow:0 14px 30px -12px #e76f9b99}.btn-ghost{background:var(--pink-light);color:var(--pink-deep)}.btn-block{width:100%}.text-soft{color:var(--ink-soft);font-size:13px}.title-lg{font-size:24px;font-weight:700}
