:root { --ink:#241c20; --muted:#776b70; --line:#eadfe2; --paper:#fffafa; --rose:#d86d88; --deep:#a64663; --blush:#f9e9eb; --shadow:0 18px 55px rgba(91,43,56,.13); }
*{box-sizing:border-box} body{margin:0;background:#f7f0f1;color:var(--ink);font-family:Manrope,system-ui,sans-serif}.shell{max-width:560px;min-height:100vh;margin:auto;background:var(--paper);padding:calc(22px + env(safe-area-inset-top)) 20px calc(30px + env(safe-area-inset-bottom));overflow:hidden}.brand{font:700 25px 'Playfair Display',serif;letter-spacing:-.8px}.brand b{color:var(--rose);font-style:italic}.eyebrow{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:var(--rose);font-weight:800;margin:27px 0 10px}.title{font:600 34px/1.1 'Playfair Display',serif;letter-spacing:-1.2px;margin:0}.subtitle{font-size:14px;line-height:1.55;color:var(--muted);margin:12px 0 24px}.hero{height:190px;margin:24px -20px 25px;background:linear-gradient(135deg,#f0bdc8,#d86d88);border-radius:0 0 36px 36px;position:relative;overflow:hidden}.hero:before,.hero:after{content:'';position:absolute;border-radius:50%;background:#ffeef1;opacity:.65}.hero:before{width:200px;height:200px;right:-52px;top:-52px}.hero:after{width:130px;height:130px;left:-40px;bottom:-70px}.hero span{position:absolute;z-index:1;right:28px;bottom:20px;font:italic 600 29px 'Playfair Display',serif;color:#fff}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:17px;box-shadow:0 6px 20px rgba(91,43,56,.04)}.profile{display:flex;gap:14px;align-items:center}.avatar{width:58px;height:58px;border-radius:18px;object-fit:cover;background:var(--blush);display:grid;place-items:center;color:var(--deep);font:700 20px 'Playfair Display',serif}.profile h2{font-size:16px;margin:0 0 4px}.profile p{font-size:12px;margin:0;color:var(--muted)}.section-title{font-size:14px;font-weight:800;margin:25px 0 11px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{border:0;background:transparent;border-radius:13px;padding:8px 1px;color:var(--muted);font-size:12px}.day small{display:block;font-size:9px;margin-bottom:4px}.day.active{background:var(--ink);color:#fff}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.slot{padding:12px 4px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:700 13px Manrope}.slot:hover,.slot.selected{background:var(--blush);border-color:var(--rose);color:var(--deep)}.button{display:block;width:100%;border:0;border-radius:16px;background:var(--ink);color:#fff;font:800 14px Manrope;padding:16px;margin-top:22px}.button:disabled{opacity:.4}.button.rose{background:var(--rose)}.hint{font-size:12px;line-height:1.5;color:var(--muted);text-align:center;margin:15px 8px}.field{margin:16px 0}.field label{display:block;font-size:12px;font-weight:800;margin:0 0 7px}.field input{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;font:14px Manrope;color:var(--ink);outline:none}.field input:focus{border-color:var(--rose);box-shadow:0 0 0 3px var(--blush)}.photo-upload{height:120px;border:1.5px dashed #d9b4bd;border-radius:20px;background:#fff7f8;display:grid;place-items:center;text-align:center;cursor:pointer;overflow:hidden}.photo-upload img{width:100%;height:100%;object-fit:cover}.photo-upload span{font-size:13px;color:var(--deep);font-weight:700}.notice{margin-top:22px;padding:15px;border-radius:16px;background:var(--blush);font-size:12px;line-height:1.55;color:#6d4650}.empty{text-align:center;padding-top:12vh}.empty .title{font-size:37px}.lock{font-size:42px;margin-bottom:19px}.success{min-height:70vh;display:grid;place-content:center;text-align:center}.success .mark{width:74px;height:74px;border-radius:50%;background:#dff3e8;color:#26734b;display:grid;place-items:center;font-size:30px;margin:0 auto 20px}
