/* ========================================================================== Date-Planer – Shared mobile-first stylesheet Base color: love-rose, complemented by warm peach and gold tones. ========================================================================== */ :root { --color-rose: #e0577e; --color-rose-dark: #b83a5e; --color-rose-light: #ffd1dc; --color-peach: #ffb4a2; --color-gold: #ffd166; --color-bg: #fff5f7; --color-bg-gradient: linear-gradient(160deg, #fff5f7 0%, #ffe8ec 45%, #ffe3d6 100%); --color-text: #4a2c3d; --color-text-light: #7a5568; --color-white: #fffdfd; --font-heading: "Quicksand", "Segoe UI", sans-serif; --font-body: "Nunito", "Segoe UI", sans-serif; --radius-lg: 24px; --radius-md: 16px; --shadow-soft: 0 8px 24px rgba(184, 58, 94, 0.2); --shadow-strong: 0 12px 32px rgba(184, 58, 94, 0.32); } * { box-sizing: border-box; } html { min-height: 100%; } body { margin: 0; min-height: 100vh; font-family: var(--font-body); font-size: clamp(1rem, 3.6vw, 1.15rem); line-height: 1.5; color: var(--color-text); background: var(--color-bg-gradient); -webkit-font-smoothing: antialiased; } h1, h2, h3 { font-family: var(--font-heading); font-weight: 700; margin: 0 0 0.5em; color: var(--color-rose-dark); } h1 { font-size: clamp(1.75rem, 7vw, 2.5rem); } p { margin: 0 0 1em; } .container { width: 100%; max-width: 480px; margin: 0 auto; padding: 24px 20px 40px; } /* Buttons -------------------------------------------------------------- */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; padding: 14px 28px; border: none; border-radius: var(--radius-lg); font-family: var(--font-heading); font-size: clamp(1.05rem, 4.5vw, 1.25rem); font-weight: 700; cursor: pointer; touch-action: manipulation; transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease, opacity 0.2s ease; } .btn:active { transform: scale(0.96); } .btn-yes { background: linear-gradient(135deg, var(--color-rose) 0%, var(--color-rose-dark) 100%); color: var(--color-white); box-shadow: var(--shadow-soft); } .btn-no { background: var(--color-white); color: var(--color-text-light); box-shadow: var(--shadow-soft); } .btn-primary { width: 100%; background: linear-gradient(135deg, var(--color-rose) 0%, var(--color-rose-dark) 100%); color: var(--color-white); box-shadow: var(--shadow-soft); } .btn-primary:disabled { background: #e6d3d8; color: #b39aa4; box-shadow: none; cursor: not-allowed; } /* Heart-shaped decorative background (reused across pages) -------------- */ .heart-background { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 0; pointer-events: none; } .heart-shape { position: relative; width: 62vmin; height: 56vmin; } .heart-shape::before, .heart-shape::after { content: ""; position: absolute; top: 0; width: 31vmin; height: 50vmin; background: linear-gradient(135deg, var(--color-rose-light) 0%, var(--color-peach) 100%); border-radius: 31vmin 31vmin 0 0; opacity: 0.55; } .heart-shape::before { left: 31vmin; transform: rotate(45deg); transform-origin: 0 100%; } .heart-shape::after { left: 0; transform: rotate(-45deg); transform-origin: 100% 100%; } /* Fixed bottom bar for a primary continue action ------------------------- */ body.has-continue-bar, body.has-continue-bar .container { padding-bottom: calc(130px + env(safe-area-inset-bottom)); } .continue-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); background: linear-gradient(0deg, var(--color-bg) 70%, rgba(255, 245, 247, 0)); pointer-events: none; } .continue-bar .container { padding: 0; max-width: 480px; } .continue-bar .btn { pointer-events: auto; } /* Back link --------------------------------------------------------------- */ .back-link { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 12px; color: var(--color-text-light); font-family: var(--font-heading); font-weight: 700; text-decoration: none; } /* Utility ---------------------------------------------------------------- */ .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }