*{box-sizing:border-box;margin:0;padding:0}:root{--bg-0: #080406;--bg-1: #15060d;--bg-2: #250913;--card: rgba(255,255,255,.05);--card-border: rgba(255,255,255,.08);--text-0: #fbf1f3;--text-1: #dcb3bd;--text-2: #967680;--accent: #ff1f49;--accent-2: #bd3951;--bordo: #6d1b34;--base: #fcd4ca;--fertile: #fb627e;--ovulation: #bd3951;--period: #ff1f49;--track: rgba(255,255,255,.08);--phase-color: #fcd4ca;--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;--shadow: 0 20px 50px rgba(0,0,0,.5);font-family:Segoe UI,system-ui,-apple-system,sans-serif}html{min-height:100%}body{min-height:100vh;background:linear-gradient(180deg,color-mix(in srgb,var(--phase-color) 26%,var(--bg-2)) 0%,var(--bg-1) 42%,var(--bg-0) 100%);color:var(--text-0);-webkit-font-smoothing:antialiased;display:flex;justify-content:center;transition:background .6s ease}.bg-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.app{width:100%;max-width:460px;min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 6px}.brand{display:flex;align-items:center;gap:8px}.brand-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 12px var(--accent)}.brand-name{font-size:15px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text-1)}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--card-border);background:var(--card);color:var(--text-1);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{background:#ffffff1a;transform:rotate(20deg)}.content{flex:1;padding:10px 20px 40px;display:flex;flex-direction:column;gap:26px}.wheel-section{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:6px}.wheel-wrap{position:relative;width:340px;height:340px}.ring-svg{width:100%;height:100%;display:block;overflow:visible}.ring-track{fill:none;stroke:var(--track);stroke-width:14}.ring-seg{fill:none;stroke-width:14;stroke-linecap:round;transition:stroke .5s ease}.today-marker{fill:#fff;stroke:var(--bg-0);stroke-width:3;filter:drop-shadow(0 0 6px rgba(255,255,255,.7))}.selected-marker{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:3 4;opacity:.85}.symptom-dot{fill:var(--accent-2);opacity:.9}.wheel-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:238px;height:238px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;padding:10px;overflow:hidden;cursor:pointer;background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--phase-color) 34%,var(--bg-2)),var(--bg-1) 72%);border:1px solid rgba(255,255,255,.06);box-shadow:inset 0 2px 24px #0000008c,0 0 36px color-mix(in srgb,var(--phase-color) 22%,transparent);transition:background .5s ease,box-shadow .5s ease,transform .15s ease}.wheel-center:active{transform:translate(-50%,-50%) scale(.96)}.wreath{position:absolute;top:-7%;right:-7%;bottom:-7%;left:-7%;width:114%;height:114%;object-fit:contain;pointer-events:none;z-index:1}.center-photo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60%;height:60%;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #140c0ba6,0 4px 18px #00000073;display:none}.wheel-center.has-photo .center-photo{display:block}.photo-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(180deg,transparent 0%,transparent 40%,rgba(10,6,5,.2) 62%,rgba(10,6,5,.8) 100%)}.photo-edit-btn{position:absolute;width:38px;height:38px;border-radius:50%;right:calc(50% - 113px);bottom:calc(50% - 113px);background:var(--bg-1);border:1px solid var(--card-border);color:var(--text-1);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px #0006;transition:background .2s,color .2s}.photo-edit-btn svg{width:18px;height:18px}.photo-edit-btn:hover{background:var(--bg-2);color:var(--text-0)}.tap-hint{font-size:11px;color:var(--text-2);text-align:center;max-width:260px}.center-text{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:2px}.center-phase{font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent-2);font-weight:700}.center-day{font-size:26px;font-weight:700;color:var(--text-0);line-height:1.15}.center-sub{font-size:11.5px;color:var(--text-1);max-width:145px;line-height:1.35}.month-nav{display:flex;align-items:center;gap:14px;position:relative}.month-label{font-size:14px;font-weight:600;color:var(--text-1);text-align:center}.date-jump{display:flex;align-items:center;gap:8px;min-width:140px;justify-content:center;background:var(--card);border:1px solid var(--card-border);border-radius:100px;padding:8px 16px;cursor:pointer;transition:background .2s}.date-jump:hover{background:#ffffff1a}.date-jump svg{width:15px;height:15px;color:var(--text-2);flex-shrink:0}.date-input-hidden{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.nav-arrow{width:30px;height:30px;border-radius:50%;border:1px solid var(--card-border);background:var(--card);color:var(--text-1);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.nav-arrow:hover{background:#ffffff1a}.log-actions{display:flex;gap:12px}.log-btn{flex:1;border:none;border-radius:var(--radius-md);padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s;color:#fff}.log-btn:active{transform:scale(.97)}.log-btn.period{background:linear-gradient(135deg,var(--accent),var(--bordo));box-shadow:0 12px 25px #ff1f4959}.log-btn.period.logged{background:var(--card);border:1px solid var(--accent);color:var(--accent);box-shadow:none}.log-btn.symptom{background:var(--card);border:1px solid var(--card-border);color:var(--text-0)}.log-icon{font-size:20px}.info-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.info-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:14px 10px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.info-label{font-size:10.5px;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.info-value{font-size:15px;font-weight:700;color:var(--text-0)}.predictions-section{display:flex;flex-direction:column;gap:10px}.prediction-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:13px 15px}.pred-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.pred-dot-period{background:var(--period);box-shadow:0 0 8px var(--period)}.pred-dot-fertile{background:var(--fertile);box-shadow:0 0 8px var(--fertile)}.pred-dot-ovulation{background:var(--ovulation);box-shadow:0 0 8px var(--ovulation)}.pred-main{flex:1}.pred-label{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}.pred-value{font-size:14.5px;font-weight:700;color:var(--text-0)}.info-btn{width:26px;height:26px;flex-shrink:0;border-radius:50%;border:1px solid var(--card-border);background:#ffffff0f;color:var(--text-1);font-size:12.5px;font-weight:700;font-style:italic;font-family:Georgia,Times New Roman,serif;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.info-btn:hover{background:var(--accent);color:#fff;border-color:transparent}.history-section{padding-bottom:10px}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.section-header h2{font-size:16px;font-weight:700}.section-sub{font-size:12px;color:var(--text-2)}.history-list{display:flex;flex-direction:column;gap:10px}.history-empty{color:var(--text-2);font-size:13px;text-align:center;padding:30px 10px;background:var(--card);border-radius:var(--radius-sm);border:1px dashed var(--card-border)}.history-item{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;gap:12px}.history-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.history-dot.period-dot{background:var(--accent);box-shadow:0 0 8px var(--accent)}.history-dot.symptom-dot{background:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}.history-main{flex:1}.history-date{font-size:13px;font-weight:600;color:var(--text-0)}.history-detail{font-size:12px;color:var(--text-2);margin-top:2px;line-height:1.4}.history-del{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:15px;padding:4px 6px}.history-del:hover{color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#050202b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:flex-end;justify-content:center;z-index:50}.modal-overlay.open{display:flex}.modal{width:100%;max-width:460px;max-height:86vh;overflow-y:auto;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));border:1px solid var(--card-border);border-top-left-radius:28px;border-top-right-radius:28px;padding:22px 22px calc(28px + env(safe-area-inset-bottom));box-shadow:var(--shadow);animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.modal-header h3{font-size:18px;font-weight:700}.modal-close{background:var(--card);border:1px solid var(--card-border);color:var(--text-1);width:30px;height:30px;border-radius:50%;cursor:pointer}.modal-date{font-size:12.5px;color:var(--text-2);margin-bottom:18px}.info-stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:22px}.info-stat{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:13px 12px;text-align:center}.info-stat-label{font-size:10.5px;color:var(--text-2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}.info-stat-value{font-size:14.5px;font-weight:700;color:var(--text-0)}.chip.tally{cursor:default;display:flex;align-items:center;gap:6px}.chip.tally .tally-count{background:#ffffff1f;border-radius:100px;padding:1px 7px;font-size:11px;font-weight:700}.tally-empty{font-size:12.5px;color:var(--text-2)}.symptom-group{margin-bottom:18px}.group-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-1);margin-bottom:10px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--card);border:1px solid var(--card-border);color:var(--text-1);padding:9px 14px;border-radius:100px;font-size:12.5px;cursor:pointer;transition:all .15s}.chip:hover{border-color:#fff3}.chip.selected{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff;font-weight:600}.save-btn{width:100%;padding:15px;margin-top:6px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:14.5px;font-weight:700;cursor:pointer;box-shadow:0 12px 25px #ff1f494d}.save-btn:active{transform:scale(.98)}.danger-btn{width:100%;padding:13px;margin-top:12px;border:1px solid rgba(255,95,95,.3);border-radius:var(--radius-md);background:#ff5f5f14;color:#ff8a8a;font-size:13px;font-weight:600;cursor:pointer}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--card-border)}.setting-row label{font-size:13.5px;color:var(--text-0)}.stepper{display:flex;align-items:center;gap:14px;font-weight:700}.step-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--card-border);background:var(--card);color:var(--text-0);font-size:16px;cursor:pointer}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-2);border:1px solid var(--card-border);color:var(--text-0);padding:12px 20px;border-radius:100px;font-size:13px;font-weight:600;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media (max-width: 360px){.wheel-wrap{width:296px;height:296px}.wheel-center{width:208px;height:208px}.photo-edit-btn{right:calc(50% - 99px);bottom:calc(50% - 99px)}}
