@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;700;800&display=swap";.app-page{padding-top:36px;padding-bottom:104px}.app-shell{flex-direction:column;gap:26px;display:flex}.app-main{flex-direction:column;gap:28px;display:flex}.app-header{align-items:center;margin-bottom:0}.app-header-actions{background:linear-gradient(180deg, #fffffff5 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);box-shadow:var(--shadow-soft);border-radius:28px;justify-content:flex-end;gap:12px;padding:8px}.app-header-chip{background:linear-gradient(180deg, #fff 0%, var(--surface-1) 100%);border:1px solid var(--line-strong);border-radius:22px;min-width:230px;padding:16px 20px;box-shadow:inset 0 1px #fffffff5}.app-header-chip span{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.app-header-chip strong{color:var(--text-strong);letter-spacing:-.03em;font-size:17px}.home-page,.info-grid,.mypage-layout{gap:20px;display:grid}.home-hero-card{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.home-hero-card h2{color:var(--text-strong);margin:0;font-size:34px;line-height:1.15}.home-hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.secondary-action-button{background:linear-gradient(180deg, #fff 0%, var(--surface-2) 100%);min-height:56px;color:var(--text-strong);letter-spacing:-.02em;border:1px solid var(--line-strong);box-shadow:var(--shadow-soft);border-radius:18px;padding:0 22px;font-size:16px;font-weight:800}.home-detail-grid,.info-grid,.mypage-layout{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.home-card-body,.home-schedule-list{gap:14px;display:grid}.home-detail-row{gap:8px;display:grid}.home-detail-row>span{color:var(--text-muted);font-size:13px;font-weight:700}.home-summary-list{flex-wrap:wrap;gap:8px;display:flex}.home-empty-text,.home-inline-text,.info-disclaimer,.policy-card p{color:var(--text-body);margin:0;line-height:1.6}.quick-link-grid{gap:10px;display:grid}.quick-link-button{background:linear-gradient(180deg, #fff 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);min-height:52px;color:var(--text-strong);text-align:left;box-shadow:var(--shadow-soft);border-radius:18px;padding:0 18px;font-weight:700}.info-card{height:100%}.info-list{color:var(--text-body);gap:12px;margin:0;padding-left:18px;line-height:1.7;display:grid}.info-pill-grid{flex-wrap:wrap;gap:10px;display:flex}.app-logo-lockup{align-items:center;gap:18px;display:flex}.app-logo-symbol{flex:none;place-items:center;display:grid}.app-logo-symbol-svg{display:block}.app-logo-copy{gap:6px;display:grid}.app-logo-eyebrow{letter-spacing:.16em;color:var(--text-muted);font-size:11px;font-weight:700}.app-logo-wordmark{letter-spacing:-.055em;align-items:baseline;gap:0;font-size:clamp(32px,5vw,48px);line-height:.92;display:flex}.app-logo-wordmark-primary{color:#193652}.app-logo-wordmark-accent{color:var(--brand-600)}.app-logo-korean{letter-spacing:-.02em;color:var(--text-muted);font-size:13px;font-weight:700}.mypage-layout{align-items:start}.mypage-policy-grid{gap:14px;display:grid}.policy-card{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:20px;padding:18px}.policy-card strong{color:var(--text-strong);margin-bottom:8px;display:block}.mypage-auth-card{gap:12px;display:grid}.mypage-google-button:disabled{cursor:not-allowed;opacity:.56}.mypage-inline-logout-button,.mypage-google-button{justify-self:start}.mypage-action-row{flex-wrap:wrap;gap:12px;display:flex}.danger-outline-button{color:#b42318;background:linear-gradient(#fff 0%,#fff6f6 100%);border-color:#f3cccc}@media (width>=761px){.app-page{padding-bottom:60px}}@media (width<=760px){.app-logo-lockup{align-items:flex-start;gap:14px}.app-logo-wordmark{font-size:30px}.app-logo-eyebrow{letter-spacing:.12em;font-size:10px}}@media (width<=1024px){.app-page{padding-top:28px}.app-header-actions,.home-hero-card{flex-direction:column;align-items:stretch}.app-header-chip{width:100%;min-width:0}.home-hero-card h2{font-size:28px}.home-hero-actions{justify-content:stretch}.secondary-action-button,.today-button{width:100%}}.auth-page{background:radial-gradient(circle at 15% 20%, #fff3, transparent 26%), radial-gradient(circle at 82% 78%, #ffffff29, transparent 24%), linear-gradient(135deg, var(--brand-600) 0%, var(--brand-500) 52%, var(--brand-400) 100%);color:#fff;min-height:100vh;position:relative;overflow:hidden}.auth-glow{filter:blur(30px);opacity:.5;pointer-events:none;border-radius:999px;position:absolute}.auth-glow-left{background:#fff1d66b;width:280px;height:280px;top:12%;left:-8%}.auth-glow-right{background:#64ebff57;width:320px;height:320px;bottom:10%;right:-6%}.auth-topbar,.auth-footer{z-index:1;justify-content:space-between;align-items:center;gap:16px;padding:22px 28px;display:flex;position:relative}.auth-brand{align-items:center;gap:14px;display:flex}.auth-brand-mark{letter-spacing:.08em;background:#ffffff2e;border:1px solid #ffffff47;border-radius:18px;place-items:center;width:52px;height:52px;font-size:15px;font-weight:800;display:grid;box-shadow:inset 0 1px #ffffff40}.auth-brand-mark .app-logo-symbol-svg{width:100%;height:100%;display:block}.auth-brand-copy{gap:3px;display:grid}.auth-brand-copy strong{letter-spacing:-.03em;font-family:Noto Sans KR,Pretendard,sans-serif;font-size:26px;font-weight:800;line-height:1.15}.auth-brand-copy span{color:#ffffffd6;font-size:13px}.auth-nav-links{align-items:center;gap:12px;display:flex}.auth-nav-links button,.auth-legal-links button{width:auto;color:inherit;background:0 0}.auth-nav-links button{color:#ffffffeb;background:#ffffff14;border:1px solid #fff3;border-radius:999px;padding:8px 14px}.auth-body{z-index:1;grid-template-columns:minmax(280px,1fr) minmax(340px,470px);align-items:center;gap:36px;width:min(1180px,100% - 48px);min-height:calc(100vh - 158px);margin:0 auto;padding:20px 0 48px;display:grid;position:relative}.auth-intro{max-width:560px}.auth-eyebrow{color:#ffffffc2}.auth-intro h1{letter-spacing:-.05em;text-wrap:balance;margin:0;font-family:Noto Sans KR,Pretendard,sans-serif;font-size:clamp(36px,4.8vw,58px);font-weight:800;line-height:1.16}.auth-intro-text{color:#ffffffd6;letter-spacing:-.02em;max-width:440px;margin:22px 0 0;font-size:19px;line-height:1.82}.auth-card{color:var(--text-strong);background:#fffffff5;border:1px solid #ffffff70;border-radius:34px;padding:34px 32px 28px;box-shadow:0 28px 80px #10211e29}.auth-card-head{text-align:center;margin-bottom:22px}.auth-card-head h2{color:var(--text-strong);margin:14px 0 8px;font-size:34px}.auth-card-head p{color:var(--text-muted);margin:0;line-height:1.6}.auth-error-message{text-align:center;color:#d14343;margin:0;font-size:14px;font-weight:700;line-height:1.6}.auth-google-start-button{background:linear-gradient(135deg, var(--brand-500) 0%, var(--brand-600) 100%);color:#fff;width:100%;min-height:58px;box-shadow:var(--shadow-brand);border-radius:18px;margin-top:22px;font-size:16px;font-weight:800}.auth-google-start-button:disabled{cursor:not-allowed;opacity:.56;transform:none}.auth-legal-links{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:24px;display:flex}.auth-legal-links button{color:var(--brand-700);padding:0;font-size:13px;font-weight:700}.auth-footer{color:#ffffffe6;font-size:13px}.legal-modal-card{max-width:860px}.legal-chip{background:var(--brand-50);border:1px solid var(--brand-200);min-height:30px;color:var(--brand-700);letter-spacing:.02em;border-radius:999px;align-items:center;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.legal-sections{gap:18px;display:grid}.legal-section{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:22px;padding:20px}.legal-section h3{color:var(--text-strong);margin:0 0 10px;font-size:18px}.legal-section p{color:var(--text-body);margin:0;line-height:1.7}.legal-section p+p{margin-top:10px}.legal-list{color:var(--text-body);margin:12px 0 0;padding-left:20px;line-height:1.7}.logout-button{margin-top:18px}@media (width<=1024px){.auth-body{grid-template-columns:1fr;width:min(640px,100% - 32px);min-height:auto;padding-top:16px}.auth-intro{text-align:center;order:2;max-width:none}.auth-intro-text{max-width:none}.auth-card{order:1}}@media (width<=720px){.auth-topbar,.auth-footer{padding:18px 16px}.auth-topbar,.auth-footer,.auth-nav-links{flex-wrap:wrap}.auth-body{gap:24px;width:calc(100% - 24px);padding-bottom:28px}.auth-card{border-radius:28px;padding:26px 20px 24px}.auth-brand-copy strong{font-size:23px}.auth-intro h1{font-size:34px;line-height:1.2}}.bottom-tab-bar{z-index:40;border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-radius:28px;gap:6px;width:min(100% - 24px,560px);padding:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #10211e1f}.bottom-tab{min-height:64px;color:var(--text-muted);background:0 0;border-radius:20px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:8px 6px;transition:transform .18s,background .18s,color .18s,box-shadow .18s;display:flex}.bottom-tab:hover{transform:translateY(-1px)}.bottom-tab-icon{background:var(--surface-2);border-radius:14px;place-items:center;width:34px;height:34px;font-size:18px;line-height:1;display:grid;box-shadow:inset 0 1px #ffffffeb}.bottom-tab-active{background:linear-gradient(135deg, var(--brand-600) 0%, var(--brand-700) 100%);color:#fff;box-shadow:var(--shadow-brand)}.bottom-tab-active .bottom-tab-icon{box-shadow:none;background:#ffffff24}.bottom-tab-label{font-size:12px;font-weight:700}@media (width>=761px){.bottom-tab-bar{border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-radius:30px;align-self:flex-start;gap:10px;width:fit-content;max-width:100%;margin:0 0 10px;padding:10px;display:inline-flex;position:static;bottom:auto;left:auto;transform:none;box-shadow:0 18px 42px #10211e14}.bottom-tab{border-radius:22px;flex-direction:row;flex:none;gap:10px;min-width:110px;min-height:58px;padding:10px 16px}.bottom-tab-icon{border-radius:14px;width:36px;height:36px}.bottom-tab-label{letter-spacing:-.02em;font-size:14px}}.loading-screen{background:radial-gradient(circle at 15% 20%, #fff3, transparent 26%), radial-gradient(circle at 82% 78%, #ffffff29, transparent 24%), linear-gradient(135deg, var(--brand-600) 0%, var(--brand-500) 52%, var(--brand-400) 100%);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;padding:24px;display:flex}.loading-screen p{color:#ffffffe0;margin:0;font-size:16px}.loading-logo-lockup{background:#ffffff1a;border:1px solid #ffffff2e;border-radius:30px;padding:18px 24px;box-shadow:inset 0 1px #ffffff2e}.loading-brand-logo{align-items:center;gap:16px}.loading-brand-logo .app-logo-wordmark{font-size:clamp(38px,4vw,52px)}.loading-brand-logo .app-logo-wordmark-primary{color:#fff}.loading-brand-logo .app-logo-wordmark-accent{color:#d8fff2}.loading-brand-logo .app-logo-korean{color:#ffffffdb}.spinner{border:4px solid #ffffff42;border-top-color:#fff;border-radius:50%;width:42px;height:42px;animation:.9s linear infinite app-spinner}@keyframes app-spinner{to{transform:rotate(360deg)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-50:#f2fff9;--brand-100:#e2fff2;--brand-200:#cdf8e7;--brand-300:#a5efd5;--brand-400:#6fe2bf;--brand-500:#30d39b;--brand-600:#16ba83;--brand-700:#0f8f67;--brand-800:#104d44;--brand-900:#10211e;--surface-0:#fffffff5;--surface-1:#fbfffd;--surface-2:#f4fdf8;--line-soft:#e2efe8;--line-strong:#d0e5da;--text-strong:#10231e;--text-body:#1f312d;--text-muted:#6d7d77;--shadow-soft:0 18px 40px #10211e14;--shadow-brand:0 18px 40px #30d39b29}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{color:var(--text-body);background:radial-gradient(circle at 12% 18%,#a5efd557,#0000 24%),radial-gradient(circle at 88% 14%,#6fe2bf2e,#0000 18%),linear-gradient(#f7fffb 0%,#eefaf5 100%);font-family:Inter,Noto Sans KR,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:none}input,textarea,select{border:1px solid var(--line-strong);background:var(--surface-0);border-radius:16px;outline:none;width:100%;padding:14px 16px}input:focus,textarea:focus,select:focus{border-color:var(--brand-500);box-shadow:0 0 0 4px #30d39b24}textarea{resize:vertical;min-height:120px}.page{width:100%;min-height:100vh;padding:36px 20px 60px}.app-shell{max-width:1400px;margin:0 auto}.hero{justify-content:space-between;align-items:center;gap:28px;margin-bottom:0;display:flex}.hero>div:first-child{max-width:680px}.eyebrow{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:12px}.hero h1{color:var(--text-strong);letter-spacing:-.05em;margin:0;font-size:44px;font-weight:800;line-height:1.02}.hero-text{color:var(--text-muted);margin:12px 0 0;font-size:16px;line-height:1.65}.hero-actions{background:linear-gradient(180deg, #fffffff0 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);border-radius:24px;align-items:center;gap:10px;padding:6px;display:flex;box-shadow:inset 0 1px #ffffffe6}.my-page-button{background:linear-gradient(180deg, #fff 0%, var(--surface-2) 100%);min-height:56px;color:var(--text-strong);letter-spacing:-.02em;border:1px solid var(--line-strong);border-radius:18px;padding:0 22px;font-size:16px;font-weight:800;box-shadow:0 8px 20px #10211e0f}.today-button{background:linear-gradient(135deg, var(--brand-700) 0%, var(--brand-800) 100%);color:#fff;letter-spacing:-.02em;min-height:56px;box-shadow:var(--shadow-brand);border-radius:18px;padding:0 22px;font-size:16px;font-weight:800}.view-tabs{background:linear-gradient(180deg, #fffffff0 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);border-radius:24px;align-items:center;gap:10px;margin-bottom:20px;padding:6px;display:inline-flex;box-shadow:inset 0 1px #ffffffe6}.view-tab{background:linear-gradient(180deg, #fff 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);letter-spacing:-.02em;width:auto;min-height:56px;color:var(--text-body);border-radius:18px;padding:0 22px;font-size:16px;font-weight:800;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.view-tab-active{background:linear-gradient(135deg, var(--brand-500) 0%, var(--brand-600) 100%);color:#fff;border-color:var(--brand-600);box-shadow:var(--shadow-brand)}.my-page-button,.today-button,.view-tab{transition:transform .18s,box-shadow .18s,border-color .18s}.my-page-button:hover,.today-button:hover,.view-tab:hover{transform:translateY(-1px)}.my-page-button:focus-visible,.today-button:focus-visible,.view-tab:focus-visible{outline-offset:2px;outline:3px solid #2563eb29}.overview-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:14px;margin-bottom:20px;display:grid}.overview-card{background:var(--surface-0);border:1px solid var(--line-soft);box-shadow:var(--shadow-soft);border-radius:24px;align-self:start;padding:16px}.overview-title{color:var(--text-strong);margin-bottom:10px;font-size:14px;font-weight:800}.overview-items{gap:8px;display:grid}.overview-item{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:14px;justify-content:space-between;gap:12px;padding:9px 12px;display:flex}.overview-item span{color:var(--text-muted);font-size:13px}.overview-item strong{color:var(--text-strong);text-align:right;font-size:15px}.overview-card-emphasis{background:linear-gradient(180deg, #fff 0%, var(--brand-50) 100%);border-color:var(--line-strong);box-shadow:var(--shadow-brand)}.overview-card-highlight{border-color:var(--line-soft);box-shadow:var(--shadow-soft);background:linear-gradient(#fff 0%,#f2fbf7 100%)}.overview-card-emphasis .overview-title,.overview-card-highlight .overview-title{color:var(--text-strong)}.overview-card-emphasis .overview-item strong,.overview-card-highlight .overview-item strong{font-size:17px}.mobile-overview-section,.mobile-overview-toggle{display:none}.layout{grid-template-columns:minmax(0,2fr) minmax(360px,430px);align-items:start;gap:24px;display:grid}.panel{background:linear-gradient(180deg, #fffffff7 0%, var(--surface-1) 100%);border:1px solid var(--line-soft);box-shadow:var(--shadow-soft);border-radius:30px;padding:26px}.side-panel{position:sticky;top:20px}.mobile-side-panel-bar{display:none}.panel-head,.side-head{margin-bottom:18px}.panel-head h2,.side-head h2{color:var(--text-strong);margin:0;font-size:30px;font-weight:800}.panel-head p,.side-head p{color:var(--text-muted);margin:8px 0 0;font-size:14px}.panel-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.simple-panel-head{margin-bottom:18px}.month-picker-heading{align-items:center;display:inline-flex;position:relative}.month-picker-trigger{width:auto;color:inherit;font:inherit;font-weight:inherit;text-align:left;background:0 0;align-items:center;gap:8px;padding:0;display:inline-flex}.month-picker-caret{color:var(--text-muted);font-size:.72em;transform:translateY(1px)}.month-picker-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute}.month-tools{align-items:center;gap:12px;display:flex}.month-actions{background:linear-gradient(180deg, #fffffff5 0%, var(--surface-2) 100%);border:1px solid var(--line-soft);border-radius:24px;align-items:center;gap:10px;padding:6px;display:flex;box-shadow:inset 0 1px #ffffffd9}.mobile-record-open-button{background:linear-gradient(135deg, var(--brand-500) 0%, var(--brand-600) 100%);color:#fff;letter-spacing:-.02em;width:auto;min-height:52px;box-shadow:var(--shadow-brand);border-radius:18px;padding:0 22px;font-size:16px;font-weight:800;display:none}.icon-button{width:52px;height:52px;color:var(--text-strong);box-shadow:var(--shadow-soft);background:linear-gradient(#fff 0%,#f2f5f7 100%);border:1px solid #e5ebef;border-radius:18px;font-size:26px;font-weight:800;line-height:1}.calendar-filter-box{border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--surface-1) 0%, var(--surface-2) 100%);border-radius:20px;margin-bottom:16px;padding:16px}.calendar-filter-actions{background:#f8fbfaeb;border:1px solid #e7efeb;border-radius:20px;flex-wrap:wrap;gap:8px;padding:6px;display:flex}.small-action-button{color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#1bc88a 0%,#13b276 100%);border-radius:16px;width:auto;min-height:48px;padding:0 20px;font-size:15px;font-weight:800;box-shadow:0 10px 20px #19b47a2e}.small-action-button.light{color:#334155;box-shadow:none;background:linear-gradient(#fff 0%,#f7faf9 100%);border:1px solid #d8e2dc}.mobile-record-open-button,.icon-button,.small-action-button{transition:transform .18s,box-shadow .18s,border-color .18s}.mobile-record-open-button:hover,.small-action-button:hover{transform:translateY(-1px)}.icon-button:hover,.small-action-button.light:hover{border-color:#cfdad4;transform:translateY(-1px)}.mobile-record-open-button:focus-visible,.icon-button:focus-visible,.small-action-button:focus-visible{outline-offset:2px;outline:3px solid #2563eb29}.filter-check{color:#334155;background:#fff;border:1px solid #dbe7e0;border-radius:999px;align-items:center;gap:8px;padding:10px 12px;font-weight:700;display:inline-flex}.filter-check input{width:16px;height:16px;margin:0}.filter-check-active{color:#0f766e;background:#ecfff6;border-color:#19b47a}.week-row{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:10px;display:grid}.week-row span{text-align:center;color:#6b7280;font-size:14px;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.empty-cell{min-height:124px}.date-card{text-align:left;background:linear-gradient(#fff 0%,#f9fbfb 100%);border:1px solid #e6edef;border-radius:22px;flex-direction:column;justify-content:space-between;min-height:124px;padding:12px;transition:all .18s;display:flex}.date-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0f172a14}.date-card.selected{background:linear-gradient(#ecfff6 0%,#f4fffa 100%);border:2px solid #19b47a;box-shadow:0 14px 28px #19b47a24}.date-card.today-card{box-shadow:inset 0 0 0 1px #86efac}.period-range-card{background:linear-gradient(#fff5f5 0%,#ffe5e5 100%)}.period-start-card{border:2px solid #ef4444}.period-end-card{border:2px solid #f97316}.predicted-period-card{background:linear-gradient(#fff7f8 0%,#fff1f2 100%)}.ovulation-card{background:linear-gradient(#fffdf5 0%,#fff7db 100%);border:2px solid #f59e0b}.fertile-card{box-shadow:inset 0 0 0 1px #86efac}.date-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.date-number{color:#111827;font-size:20px;font-weight:800}.date-tags{flex-wrap:wrap;align-items:flex-start;gap:6px;display:flex}.mini-badge{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:100%;padding:6px 10px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;overflow:hidden}.today-badge{color:#fff;background:#19b47a}.period-badge{color:#fff;background:#ef4444}.period-end-badge{color:#fff;background:#fb923c}.predicted-badge{color:#be123c;background:#ffe4e6}.ovulation-badge{color:#92400e;background:#fef3c7}.fertile-badge{color:#166534;background:#dcfce7}.med-badge{color:#1d4ed8;background:#dbeafe}.procedure-badge{color:#6d28d9;background:#ede9fe}.ivf-badge{color:#075985;background:#e0f2fe}.cycletype-badge{color:#3f6212;background:#ecfccb}.memo-badge{color:#9d174d;background:#fce7f3}.overflow-badge{color:#374151;background:#f3f4f6}.mobile-date-dot-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.date-dot{background:#cbd5e1;border-radius:999px;flex-shrink:0;width:7px;height:7px}.date-dot.period-badge{background:#ef4444}.date-dot.period-end-badge{background:#fb923c}.date-dot.predicted-badge{background:#f472b6}.date-dot.ovulation-badge{background:#f59e0b}.date-dot.fertile-badge{background:#4ade80}.date-dot.med-badge{background:#3b82f6}.date-dot.procedure-badge{background:#8b5cf6}.date-dot.ivf-badge{background:#0ea5e9}.date-dot.cycletype-badge{background:#84cc16}.date-dot.memo-badge{background:#ec4899}.mobile-dot-count{color:#64748b;font-size:8px;font-weight:800;line-height:1}.summary-box{background:linear-gradient(#f8fafb 0%,#f4f8f7 100%);border:1px solid #e5ecea;border-radius:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px;padding:16px;display:grid}.summary-row{background:#ffffffb8;border:1px solid #e7efeb;border-radius:16px;flex-direction:column;grid-column:1/-1;gap:8px;padding:12px 14px;display:flex}.summary-row-compact{grid-column:span 1;gap:6px}.summary-row span{color:#64748b;letter-spacing:-.01em;font-size:12px;font-weight:700}.summary-row strong{color:#111827;word-break:break-word;font-size:15px}.summary-chip{border-radius:999px;justify-content:center;align-items:center;width:fit-content;max-width:100%;min-height:34px;padding:8px 12px;font-size:13px;font-weight:800;line-height:1;display:inline-flex}.summary-chip-wrap{white-space:normal;border-radius:14px;line-height:1.25}.summary-chip-positive{color:#b91c1c;background:#fee2e2}.summary-chip-warning{color:#c2410c;background:#ffedd5}.summary-chip-info{color:#075985;background:#e0f2fe}.summary-chip-muted{color:#64748b;background:#f1f5f9}.summary-detail-text{font-size:14px;line-height:1.45}.summary-chip-list{flex-wrap:wrap;gap:8px;display:flex}.summary-pill{letter-spacing:-.02em;border:1px solid #0000;border-radius:999px;align-items:center;width:auto;max-width:100%;min-height:34px;padding:8px 13px;font-size:13px;font-weight:800;line-height:1.2;display:inline-flex;box-shadow:inset 0 1px #ffffffbf}.summary-pill-medication{color:#1d4ed8;background:#eef4ff;border-color:#dbe7ff}.summary-pill-procedure{color:#7c3aed;background:#f5f3ff;border-color:#e9ddff}.summary-pill-embryo{color:#0f766e;background:#edfdf4;border-color:#d3f6e2}.summary-pill-note{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.quick-toggle-row{gap:10px;margin-bottom:14px;display:flex}.toggle-chip{color:#111827;background:#f8fbfa;border:1px solid #e5ecea;border-radius:16px;flex:1;padding:12px 14px;font-weight:700}.toggle-chip-active{color:#fff}.period-active{background:#ef4444}.period-end-active{background:#f97316}.ivf-active{background:#0ea5e9}.ivf-end-active{background:#7c3aed}.cycle-type-row{gap:10px;display:flex}.cycle-type-wrap{margin-bottom:16px}.cycle-type-label{color:#64748b;margin-bottom:10px;font-size:12px;font-weight:800}.type-chip{color:#111827;background:#f8fbfa;border:1px solid #e5ecea;border-radius:16px;flex:1;padding:12px 14px;font-weight:700}.type-chip-active{color:#fff}.fresh-active{background:#f97316}.frozen-active{background:#2563eb}.accordion-block{background:#fcfdfd;border:1px solid #e5ecea;border-radius:18px;margin-bottom:14px;overflow:hidden}.accordion-button{color:#111827;background:#f8fbfa;justify-content:space-between;align-items:center;width:100%;padding:15px 16px;font-weight:800;display:flex}.accordion-content{border-top:1px solid #e8efec;padding:14px}.section-inline-actions{justify-content:flex-end;gap:8px;margin-bottom:12px;display:flex}.selected-inline-list{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.selected-inline-chip{color:#1d4ed8;background:#eef6ff;border-radius:999px;width:auto;padding:8px 12px;font-size:12px;font-weight:700}.procedure-chip-inline{color:#6d28d9;background:#f5f3ff}.med-group+.med-group{margin-top:18px}.med-group{gap:12px;display:grid}.med-group-title{color:#475569;letter-spacing:-.01em;margin-bottom:0;font-size:14px;font-weight:800}.pill-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.pill-button{text-align:center;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;border:1px solid #dce8f3;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:auto;min-width:0;min-height:78px;padding:14px 12px;font-size:15px;font-weight:800;line-height:1.25;transition:transform .18s,box-shadow .18s,border-color .18s;display:inline-flex}.med-pill{color:#1d4ed8;background:linear-gradient(#eef5ff 0%,#e8f0ff 100%)}.procedure-pill{color:#6d28d9;background:#f5f3ff}.pill-active.med-pill{color:#fff;background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 12px 24px #1d4ed82e}.pill-active.procedure-pill{color:#fff;background:#6d28d9}.pill-editing{outline:2px solid #111827}.pill-sub-label{text-align:center;opacity:.9;font-size:11px;line-height:1.2}.dose-picker-panel{background:linear-gradient(#fbfdfc 0%,#f6faf8 100%);border:1px solid #e2ece7;border-radius:20px;margin-top:2px;padding:14px}.transfer-detail-panel{background:linear-gradient(#fbfdff 0%,#f4f8ff 100%);border:1px solid #e6edf4;border-radius:18px;margin-top:16px;padding:14px}.transfer-detail-head{margin-bottom:12px}.transfer-detail-head strong{color:#111827;margin-bottom:4px;font-size:14px;display:block}.transfer-detail-head p{color:#64748b;margin:0;font-size:12px;line-height:1.45}.transfer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.dose-picker-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.dose-picker-actions{flex-wrap:wrap;gap:8px;display:flex}.remove-small-button{color:#b91c1c;background:#fee2e2;border-radius:12px;width:auto;padding:8px 12px;font-weight:700}.remove-small-button.neutral{color:#334155;background:#fff;border:1px solid #d8e2dc}.dose-chip-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:12px;display:flex}.dose-chip{color:#111827;background:#fff;border:1px solid #dbe7e0;border-radius:999px;width:auto;min-height:46px;padding:0 14px;font-weight:700}.custom-dose-row{grid-template-columns:1fr auto;gap:10px;display:grid}.save-inline-button{color:#fff;background:#111827;border-radius:14px;width:auto;padding:12px 16px;font-weight:700}.pill-button:hover,.dose-chip:hover{transform:translateY(-1px)}.section-help-text{color:#6b7280;margin:0 0 12px;font-size:13px}.memo-accordion-content{background:linear-gradient(#fbfdfc 0%,#f7fbf9 100%);gap:14px;display:grid}.memo-form-group{background:#ffffffeb;border:1px solid #e4ece8;border-radius:22px;margin:0;padding:14px;box-shadow:inset 0 1px #ffffffdb}.memo-textarea{min-height:180px;color:var(--text-strong);background:linear-gradient(#fff 0%,#fcfefd 100%);border-color:#d7e4de;border-radius:20px;padding:18px 18px 20px;font-size:17px;line-height:1.6}.memo-textarea::placeholder{color:var(--text-muted);line-height:1.45}.memo-save-button{box-shadow:var(--shadow-brand);margin-top:2px}.embryo-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.full-span{grid-column:1/-1}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-strong);font-size:14px;font-weight:700}.save-button{background:linear-gradient(90deg, var(--brand-500) 0%, var(--brand-600) 100%);color:#fff;width:100%;box-shadow:var(--shadow-brand);border-radius:18px;padding:16px 18px;font-size:16px;font-weight:800}.stats-layout{gap:20px;display:grid}.stats-selector-panel{padding:28px 28px 22px}.stats-selector-panel .panel-head{margin-bottom:18px}.round-selector-row{flex-wrap:wrap;gap:12px;display:flex}.round-chip{color:#334155;background:linear-gradient(#fff 0%,#f7fbf9 100%);border:1px solid #d7e4de;border-radius:999px;width:auto;padding:13px 18px;font-weight:800;box-shadow:0 8px 18px #0f172a0a}.round-chip-active{color:#fff;background:linear-gradient(135deg,#22c98f 0%,#18b57d 100%);border-color:#18b57d;box-shadow:0 16px 28px #22c98f3d}.stats-summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:start;gap:14px;display:grid}.stats-card{background:linear-gradient(#fff 0%,#fcfefd 100%);border:1px solid #e1ebe6;border-radius:24px;flex-direction:column;align-self:start;gap:8px;padding:18px 20px;display:flex;box-shadow:0 16px 34px #94a3b814}.stats-card span{color:#748092;font-size:13px}.stats-card strong{color:#111827;letter-spacing:-.04em;font-size:24px}.stats-card-emphasis{background:linear-gradient(#fff 0%,#f0fbf6 100%);border-color:#d7ece2}.stats-card-highlight{background:linear-gradient(#fff 0%,#f2f9ff 100%);border-color:#dcecf8}.stats-card-emphasis strong,.stats-card-highlight strong{font-size:26px}.stats-section{padding:24px}.stats-list-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.stats-list-card{background:linear-gradient(#fff 0%,#f9fcfb 100%);border:1px solid #e3ece8;border-radius:24px;padding:18px;box-shadow:0 10px 24px #94a3b80f}.stats-list-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.stats-list-head h3{color:#111827;margin:0;font-size:18px}.stats-list-head span{color:#0f766e;font-size:13px;font-weight:800}.stats-sub-list{gap:8px;display:grid}.stats-sub-row{background:#f8fafb;border-radius:14px;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.stats-sub-row span{color:#334155;font-size:13px}.stats-sub-row strong{color:#111827;text-align:right;font-size:13px}.procedure-stats-wrap{flex-wrap:wrap;gap:10px;display:flex}.procedure-stats-chip{color:#6d28d9;background:#f5f3ff;border-radius:16px;align-items:center;gap:8px;padding:12px 14px;font-weight:700;display:inline-flex}.embryo-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.embryo-stat-card{background:linear-gradient(#f8fafb 0%,#f3f8f5 100%);border:1px solid #e5ecea;border-radius:20px;flex-direction:column;gap:8px;padding:16px;display:flex}.embryo-stat-card span{color:#6b7280;font-size:13px}.embryo-stat-card strong{color:#111827;font-size:24px}.empty-state{color:#6b7280;background:#f8fafb;border-radius:18px;padding:18px}.modal-overlay{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:999;background:#0f172a5c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card{overscroll-behavior:contain;background:linear-gradient(#fff 0%,#fbfdfc 100%);border:1px solid #e5ecea;border-radius:28px;flex-direction:column;gap:22px;width:100%;max-width:980px;max-height:calc(100dvh - 40px);padding:28px;display:flex;overflow-y:auto;box-shadow:0 30px 80px #0f172a3d}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:0;display:flex}.modal-head h2{color:#111827;margin:0;font-size:32px}.modal-head p{color:#6b7280;margin:8px 0 0;font-size:15px;line-height:1.5}.modal-close{color:#111827;background:linear-gradient(#fff 0%,#f3f6f8 100%);border:1px solid #e5ebef;border-radius:18px;width:56px;height:56px;font-size:24px;font-weight:800;line-height:1;box-shadow:0 10px 24px #0f172a0f}.mypage-section{background:linear-gradient(#fcfefd 0%,#f7fbf8 100%);border:1px solid #e6efea;border-radius:24px;padding:18px}.mypage-summary-section{background:linear-gradient(#fcfdff 0%,#f5f9ff 100%);border-color:#e3edf4}.mypage-section-head{margin-bottom:14px}.mypage-section-head h3{color:#111827;margin:0;font-size:18px}.mypage-section-head p{color:#64748b;margin:6px 0 0;font-size:13px;line-height:1.45}.modal-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-grid .form-group{background:#ffffffe0;border:1px solid #e7efeb;border-radius:20px;padding:14px}.modal-grid .form-group label{color:#475569;letter-spacing:-.01em;font-size:13px;font-weight:800}.modal-grid .form-group input,.modal-grid .form-group select{color:#111827;background:#fff;border-color:#dbe6e0;border-radius:18px;min-height:58px;padding:14px 16px;font-size:18px;font-weight:700}.mypage-stats-box{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.mypage-stat{background:linear-gradient(#fff 0%,#f6faf8 100%);border:1px solid #e2ece7;border-radius:20px;flex-direction:column;gap:8px;padding:16px 18px;display:flex;box-shadow:inset 0 1px #ffffffdb}.mypage-stat span{color:#64748b;font-size:12px}.mypage-stat strong{color:#111827;font-size:20px}.mypage-stat-emphasis{background:linear-gradient(#fff 0%,#f1fbf6 100%);border-color:#d8ede2}.mypage-stat-highlight{background:linear-gradient(#fff 0%,#f3fbff 100%);border-color:#dcebf4}.mypage-stat-emphasis strong,.mypage-stat-highlight strong{font-size:24px}.modal-footer{justify-content:flex-end;margin-top:2px;display:flex}.modal-save{width:auto;min-width:180px}.modal-close,.modal-save{transition:transform .18s,box-shadow .18s,border-color .18s}.modal-close:hover,.modal-save:hover{transform:translateY(-1px)}.modal-close:focus-visible,.modal-save:focus-visible{outline-offset:2px;outline:3px solid #2563eb29}.mobile-side-panel-backdrop{display:none}@media (width<=1100px){.layout{grid-template-columns:1fr}.side-panel{position:static}}@media (width<=900px){.overview-grid{grid-template-columns:1fr}}@media (width<=760px){.page{padding:18px 12px 30px}.hero{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:16px}.eyebrow{letter-spacing:.06em;margin-bottom:6px;font-size:11px}.hero h1{font-size:clamp(28px,9.5vw,36px);line-height:1.04}.hero-text{margin-top:8px;font-size:14px;line-height:1.45}.hero-actions{width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;display:grid}.my-page-button,.today-button{width:100%;min-height:56px;padding:14px 16px}.mobile-record-open-button{justify-content:center;align-items:center;display:inline-flex}.view-tabs{width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;display:grid}.view-tab{width:100%;padding:13px 14px}.mobile-overview-section{background:#ffffffeb;border:1px solid #e7ecef;border-radius:22px;margin-bottom:16px;display:block;overflow:hidden;box-shadow:0 12px 30px #0f172a0d}.mobile-overview-toggle{color:#111827;background:linear-gradient(#fff 0%,#f8fbfa 100%);justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px;font-size:17px;font-weight:800;display:flex}.mobile-overview-content{border-top:1px solid #edf2ef;padding:0 12px 12px}.round-selector-row,.calendar-filter-actions{flex-wrap:wrap}.month-tools{flex-direction:column;align-items:stretch;gap:10px;width:100%}.month-actions{flex-wrap:wrap;justify-content:flex-start}.overview-grid{grid-template-columns:1fr;gap:12px;margin-bottom:18px}.mobile-overview-grid{margin-top:12px;margin-bottom:0}.overview-card{border-radius:20px;padding:16px}.overview-title{margin-bottom:10px;font-size:13px}.overview-items{gap:8px}.overview-item{border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.overview-item span{font-size:12px;line-height:1.3}.overview-item strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;line-height:1.2}.panel{border-radius:22px;padding:16px}.panel-head{flex-direction:column;align-items:flex-start}.calendar-filter-head{flex-direction:column}.calendar-grid,.week-row{gap:6px}.date-card,.empty-cell{aspect-ratio:1;border-radius:18px;min-height:0}.week-row{margin-bottom:8px}.week-row span{letter-spacing:-.02em;font-size:12px;font-weight:800}.date-card{justify-content:flex-start;gap:6px;padding:8px 6px 7px;overflow:hidden}.date-top{align-items:flex-start;gap:4px}.date-number{font-size:clamp(11px,3.5vw,15px);line-height:1}.date-tags{flex-flow:column;align-items:stretch;gap:4px;min-height:0;margin-top:auto;overflow:hidden}.date-tags .mini-badge{letter-spacing:-.02em;border-radius:12px;width:100%;min-width:0;padding:4px 5px;font-size:8px;line-height:1.1}.date-top .today-badge{display:none}.date-tags .overflow-badge{align-self:flex-start;width:auto}.quick-toggle-row,.cycle-type-row{flex-direction:column}.summary-box{gap:10px;padding:14px}.summary-row{padding:11px 12px}.summary-chip-list{gap:6px}.summary-pill{min-height:30px;padding:7px 11px;font-size:12px}.custom-dose-row,.embryo-grid,.transfer-grid,.modal-grid{grid-template-columns:1fr}.memo-accordion-content{gap:12px}.memo-form-group{border-radius:20px;padding:12px}.memo-textarea{border-radius:18px;min-height:150px;padding:16px;font-size:16px}.modal-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:22px;gap:16px;padding:18px}.modal-overlay{padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));align-items:flex-start}.modal-head{z-index:2;background:linear-gradient(#fff 0%,#fffffff5 100%);flex-direction:column;margin:-18px -18px 16px;padding:18px 18px 12px;position:sticky;top:-18px}.modal-close{border-radius:16px;width:48px;height:48px;font-size:20px}.mypage-section{border-radius:20px;padding:14px}.mypage-section-head{margin-bottom:12px}.modal-grid .form-group{border-radius:18px;padding:12px}.modal-grid .form-group input,.modal-grid .form-group select{min-height:54px;font-size:16px}.mypage-stats-box{gap:10px}.mypage-stat{border-radius:18px;padding:14px 15px}.mypage-stat strong{font-size:18px}.mypage-stat-emphasis strong,.mypage-stat-highlight strong{font-size:21px}.modal-footer{padding:12px 18px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(#fffffff0 0%,#fff 45%);margin:18px -18px -18px;position:sticky;bottom:-18px}.mobile-side-panel-backdrop{z-index:994;background:#0f172a6b;display:block;position:fixed;inset:0}.side-panel.mobile-side-panel{width:min(92vw,420px);max-width:420px;height:100vh;padding:18px 16px calc(28px + env(safe-area-inset-bottom));overscroll-behavior:contain;box-shadow:none;z-index:995;pointer-events:none;border-radius:28px 0 0 28px;margin:0;transition:transform .24s,box-shadow .24s;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(calc(100% + 24px))}.side-panel.mobile-side-panel.mobile-side-panel-open{pointer-events:auto;transform:translate(0);box-shadow:-24px 0 60px #0f172a38}.mobile-side-panel-bar{z-index:1;background:linear-gradient(#fff 0%,#fffffff0 100%);justify-content:flex-end;margin:-4px 0 12px;padding:4px 0 10px;display:flex;position:sticky;top:-18px}.mobile-side-panel-close{flex-shrink:0}}.calendar-filter-box{background:linear-gradient(#fcfefd 0%,#f7fbf8 100%);border:1px solid #e6efea;border-radius:22px;margin-bottom:18px;padding:16px}.calendar-filter-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.calendar-filter-head h3{color:#111827;margin:0;font-size:16px}.calendar-filter-head p{color:#6b7280;margin:6px 0 0;font-size:13px}.calendar-filter-actions{flex-wrap:wrap;gap:8px;display:flex}.calendar-filter-grid{flex-wrap:wrap;gap:10px;display:flex}.filter-pill{border:1.5px solid #0000;border-radius:999px;width:auto;padding:10px 14px;font-size:13px;font-weight:800;transition:all .18s}.filter-pill:hover{transform:translateY(-1px)}.filter-pill-inactive{color:#94a3b8;opacity:.65;background:#fff;border-color:#dbe7e0}.filter-pill-active{opacity:1}.filter-tone-period.filter-pill-active{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.filter-tone-predicted.filter-pill-active{color:#be123c;background:#ffe4e6;border-color:#f9a8d4}.filter-tone-ovulation.filter-pill-active{color:#92400e;background:#fef3c7;border-color:#fcd34d}.filter-tone-fertile.filter-pill-active{color:#166534;background:#dcfce7;border-color:#86efac}.filter-tone-med.filter-pill-active{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.filter-tone-procedure.filter-pill-active{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.filter-tone-ivf.filter-pill-active{color:#075985;background:#e0f2fe;border-color:#7dd3fc}.filter-tone-memo.filter-pill-active{color:#9d174d;background:#fce7f3;border-color:#f9a8d4}.period-range-card{background:linear-gradient(#fff1f2 0%,#ffe4e6 100%)!important;border-color:#fecdd3!important}.period-start-card{box-shadow:0 0 0 1px #ef444414;border:2px solid #ef4444!important}.period-end-card{box-shadow:0 0 0 1px #f9731614;border:2px solid #f97316!important}.period-range-card .date-number{color:#7f1d1d}.period-range-card.selected{background:linear-gradient(#ffe4e6 0%,#fecdd3 100%)!important;border-color:#fb7185!important}@media (width<=760px){.calendar-filter-head{flex-direction:column}.calendar-filter-actions{width:100%}.calendar-filter-grid{gap:8px}.filter-pill{padding:9px 12px;font-size:12px}}@keyframes softBgPulse{0%{background-color:#ffe4e6}50%{background-color:#fff1f2}to{background-color:#ffe4e6}}.predicted-period-card{animation:2.5s ease-in-out infinite softBgPulse;background-image:none!important}
