*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff5f7;--surface:#fff;--primary:#ff8fab;--primary-dark:#ff6b8a;--text:#3d2c33;--text-secondary:#9b8a8f;--border:#f0e0e4;--shadow:0 2px 12px #ff8fab1f;--radius:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;line-height:1.5}#root{min-height:100dvh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}input,textarea{background:var(--bg);border:none;outline:none}.app{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.header{z-index:10;padding:calc(12px + var(--safe-top)) 16px 12px;background:var(--bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;display:flex;position:sticky;top:0}.header-title{text-align:center;flex:1;font-size:18px;font-weight:600}.back-btn{width:36px;height:36px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex}.settings-btn{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.settings-btn:active{background:var(--border)}.backup{padding-top:4px}.backup-stat{margin-bottom:8px;font-size:15px}.backup-stat strong{color:var(--primary-dark);font-size:18px}.backup-tip,.backup-desc{color:var(--text-secondary);font-size:13px;line-height:1.6}.backup-desc{margin-bottom:12px}.backup-btn{background:var(--bg);width:100%;color:var(--text);border-radius:12px;margin-top:8px;padding:12px;font-size:15px;font-weight:500;display:block}.backup-btn.primary{background:var(--primary);color:#fff;margin-top:0}.backup-btn:active{opacity:.85}.backup-status{text-align:center;color:var(--primary-dark);background:#ffe0e8;border-radius:12px;margin-top:12px;padding:12px;font-size:13px}.add-btn{color:#fff;background:var(--primary);width:36px;height:36px;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:300;display:flex}.add-btn:active{background:var(--primary-dark)}.header-spacer{width:36px}.main{padding:0 16px calc(24px + var(--safe-bottom));flex:1}.hero{text-align:center;padding:8px 0 24px}.hero-icon{margin-bottom:8px;font-size:48px}.hero-text{color:var(--text-secondary);font-size:14px}.pregnancy-banner{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff 0%,#fff5f8 100%);margin-bottom:16px;padding:16px}.pregnancy-banner.unset{text-align:left;align-items:center;gap:12px;width:100%;display:flex}.pregnancy-banner.unset:active{opacity:.85}.pregnancy-banner-icon{font-size:28px}.pregnancy-banner-text{flex-direction:column;flex:1;gap:2px;display:flex}.pregnancy-banner-text strong{font-size:15px}.pregnancy-banner-text span{color:var(--text-secondary);font-size:12px}.pregnancy-banner-arrow{color:var(--border);font-size:20px}.pregnancy-banner-main{text-align:center;margin-bottom:12px}.pregnancy-banner-label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.pregnancy-banner-ga{color:var(--primary-dark);font-size:32px;font-weight:700}.pregnancy-banner-divider{background:var(--border);height:1px;margin:0 8px 12px}.pregnancy-banner-sub{text-align:center;justify-content:space-around;margin-bottom:12px;font-size:14px;font-weight:500;display:flex}.pregnancy-banner-edit{width:100%;color:var(--text-secondary);border-top:1px dashed var(--border);padding-top:8px;font-size:12px;display:block}.pregnancy-banner-edit:active{color:var(--primary-dark)}.backup-lmp-info{color:var(--primary-dark);text-align:center;margin-top:10px;font-size:13px}.section{margin-bottom:28px}.section-title{align-items:center;gap:8px;margin-bottom:4px;font-size:16px;font-weight:600;display:flex}.section-badge{color:var(--primary-dark);background:#ffe0e8;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.section-badge.postnatal{color:#6b8aff;background:#e8f0ff}.section-desc{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.phase-tabs{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;gap:8px;margin-bottom:16px;padding:4px;display:flex}.phase-tab{color:var(--text-secondary);border-radius:10px;flex:1;padding:10px 8px;font-size:13px;font-weight:500;transition:all .2s}.phase-tab.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #ff8fab59}.phase-placeholder{text-align:center;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:48px 24px}.phase-placeholder-icon{margin-bottom:12px;font-size:48px;display:block}.phase-placeholder h3{margin-bottom:8px;font-size:17px;font-weight:600}.phase-placeholder p{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.6}.phase-unlock-btn{color:var(--primary-dark);background:#ffe0e8;border-radius:24px;padding:12px 24px;font-size:14px;font-weight:500}.phase-unlock-btn:active{background:#ffd0dc}.metric-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric-card{background:var(--surface);border-radius:var(--radius);text-align:left;box-shadow:var(--shadow);padding:14px 16px;transition:transform .15s}.metric-card:active{transform:scale(.97)}.metric-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.metric-name{color:var(--text-secondary);font-size:14px;font-weight:500}.metric-arrow{color:var(--border);font-size:18px}.metric-value{color:var(--text);font-size:22px;font-weight:600}.metric-unit{color:var(--text-secondary);margin-left:2px;font-size:12px;font-weight:400}.metric-date{color:var(--text-secondary);margin-top:2px;font-size:12px;display:block}.metric-empty{color:var(--border);font-size:13px}.detail{padding-top:4px}.detail-desc{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card-title{color:var(--text-secondary);margin-bottom:12px;font-size:14px;font-weight:600}.chart-container{margin:0 -4px}.chart-empty{text-align:center;color:var(--text-secondary);padding:32px 16px}.chart-empty span{margin-bottom:8px;font-size:32px;display:block}.chart-empty p{font-size:13px}.record-list{list-style:none}.record-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.record-item:last-child{border-bottom:none}.record-date{font-size:14px}.record-value{align-items:baseline;gap:4px;font-size:16px;font-weight:600;display:flex}.record-unit{color:var(--text-secondary);font-size:12px;font-weight:400}.record-diff{border-radius:8px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:500}.record-diff.up{color:#3aab6a;background:#e8f8ee}.record-diff.down{color:#e0884a;background:#fff0e8}.empty-hint{color:var(--text-secondary);text-align:center;padding:16px 0;font-size:13px}.empty-state{text-align:center;color:var(--text-secondary);padding:48px 16px}.add-record{padding-top:4px}.page-title{font-size:22px;font-weight:600}.page-desc{color:var(--text-secondary);margin:4px 0 20px;font-size:13px}.record-form{flex-direction:column;gap:16px;display:flex}.form-group-title{color:var(--text-secondary);margin-bottom:10px;font-size:14px;font-weight:600}.form-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-field{flex-direction:column;gap:4px;display:flex}.form-field.full{grid-column:1/-1}.form-label{color:var(--text-secondary);font-size:12px}.form-field input,.form-field textarea{border-radius:10px;width:100%;padding:10px 12px;font-size:15px}.form-field input[type=date]{padding:9px 12px}.form-input-wrap{background:var(--bg);border-radius:10px;align-items:center;display:flex;overflow:hidden}.form-input-wrap input{background:0 0;border-radius:0;flex:1}.form-unit{color:var(--text-secondary);white-space:nowrap;padding-right:10px;font-size:12px}.form-field textarea{resize:vertical;min-height:60px}.form-field-wrap{flex-direction:column;gap:2px;display:flex}.efw-hint{color:var(--primary-dark);padding-left:2px;font-size:11px;line-height:1.4}.efw-hint.muted{color:var(--text-secondary)}.efw-link{color:var(--primary-dark);padding:0 2px;font-size:11px;text-decoration:underline}.submit-btn{background:var(--primary);color:#fff;width:100%;box-shadow:var(--shadow);border-radius:14px;margin-top:8px;padding:14px;font-size:16px;font-weight:600}.submit-btn:active{background:var(--primary-dark)}
