:root{--ink:#282128;--muted:#7e7279;--rose:#d95d72;--soft:#f8e8e2;--cream:#fffaf6;--line:#eadfda;--deep:#4c2b42}*{box-sizing:border-box}body{margin:0;background:#f0eeeb;color:var(--ink);font-family:'DM Sans',sans-serif}.app-shell{max-width:460px;min-height:100vh;margin:auto;background:var(--cream);padding:25px 21px 104px;overflow:hidden;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{font-size:14px;font-weight:700;letter-spacing:1.6px}.brand span{font-family:serif;color:var(--rose);font-size:17px}.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:white;font-size:20px;position:relative;color:var(--ink)}.icon-button i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--rose);right:8px;top:7px}.welcome{padding:43px 4px 27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--rose);margin:0 0 10px}.welcome h1,.section h2,.loyalty-card h2,.booking-sheet h2{font-family:'Playfair Display',serif;font-size:35px;line-height:1.06;margin:0;letter-spacing:-1.4px}.welcome em,.loyalty-card em{color:var(--rose);font-weight:600}.subcopy{font-size:14px;color:var(--muted);margin:13px 0 23px}.primary-button{border:0;border-radius:14px;background:var(--ink);color:white;padding:16px 18px;font:600 14px 'DM Sans';width:100%;text-align:left;cursor:pointer}.primary-button span{float:right;font-size:19px;line-height:13px}.next-card{height:176px;border-radius:20px;background:#e9c9bd;display:flex;overflow:hidden;position:relative}.next-art{width:37%;background:linear-gradient(145deg,#c67d75,#efb5a5);display:grid;place-items:center;color:#fff2e9;font-size:65px}.next-content{padding:26px 16px;z-index:1}.next-content h2{font:600 20px 'Playfair Display';margin:0 0 7px}.appointment-info{margin:0 0 13px;font-size:12px}.appointment-info b{padding:0 3px;color:var(--rose)}.text-button,.link-button{padding:0;border:0;background:transparent;color:var(--rose);font:600 12px 'DM Sans';cursor:pointer}.text-button span{font-size:16px;margin-left:3px}.section{margin-top:32px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:15px}.section h2{font-size:23px;letter-spacing:-.7px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px 10px;text-align:left;cursor:pointer;min-height:137px;transition:.2s}.service-card.selected{border-color:var(--rose);box-shadow:0 0 0 1px var(--rose)}.service-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;font-size:19px;margin-bottom:13px}.coral{background:#fde1dc;color:#d26368}.lilac{background:#e9e2f4;color:#8061ad}.yellow{background:#f9edca;color:#bb8523}.service-card b{font-size:12px;line-height:1.25;display:block}.service-card small{font-size:10px;color:var(--muted);display:block;margin-top:7px}.loyalty-card{border-radius:19px;background:var(--deep);color:#fff7f2;margin-top:31px;padding:21px 20px 18px;position:relative;overflow:hidden}.loyalty-card:after{content:'✿';position:absolute;right:-12px;top:-21px;font-size:132px;color:#70465f;opacity:.45}.loyalty-card .eyebrow{color:#eda7a9}.loyalty-card h2{font-size:23px;letter-spacing:-.6px;line-height:1.17}.points{position:absolute;right:21px;bottom:47px;text-align:right}.points strong{font-size:28px;display:block}.points span{font-size:8px;letter-spacing:1px;color:#dcbfc6}.progress{height:5px;background:#75526a;border-radius:4px;margin-top:20px;position:relative}.progress span{display:block;height:100%;width:84%;border-radius:4px;background:#e39495}.reward-link{color:#f2bec0;margin-top:12px}.stylist-section{margin-top:31px}.artist-row{display:flex;align-items:center;gap:11px}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font:600 19px 'Playfair Display'}.ava-one{background:linear-gradient(145deg,#72503d,#e2a77d)}.artist-row b{font-size:13px}.artist-row p{font-size:10px;color:var(--muted);margin:3px 0}.stars{margin-left:auto;color:#e09a50;font-size:9px;letter-spacing:-1px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;background:#fffdfb;border-top:1px solid var(--line);height:78px;display:flex;justify-content:space-around;padding:11px 11px 9px}.nav-item{border:0;background:transparent;color:#9a8d91;font:500 10px 'DM Sans';display:flex;flex-direction:column;align-items:center;gap:5px;min-width:58px;cursor:pointer}.nav-item span{font-size:21px;line-height:19px}.nav-item.active{color:var(--rose)}.sheet-backdrop{position:fixed;inset:0;background:rgba(32,25,29,.35);opacity:0;visibility:hidden;transition:.25s;z-index:3}.booking-sheet{position:fixed;z-index:4;max-width:460px;left:50%;bottom:0;width:100%;transform:translate(-50%,110%);background:var(--cream);border-radius:25px 25px 0 0;padding:15px 22px 34px;transition:.35s cubic-bezier(.2,.8,.2,1);min-height:590px}.booking-sheet.open{transform:translate(-50%,0)}.sheet-backdrop.open{opacity:1;visibility:visible}.sheet-handle{width:38px;height:4px;background:#d8cdca;border-radius:5px;margin:0 auto 20px}.sheet-close{position:absolute;right:18px;top:15px;border:0;background:#f3e9e5;border-radius:50%;font-size:23px;width:30px;height:30px;line-height:25px;color:var(--ink);cursor:pointer}.booking-sheet h2{font-size:31px;margin-bottom:23px}.booking-service{display:flex;align-items:center;border:1px solid var(--line);background:#fff;padding:12px;border-radius:14px;gap:10px}.booking-service .service-icon{margin:0}.booking-service b,.booking-service small{display:block;font-size:13px}.booking-service small{font-size:11px;color:var(--muted);margin-top:3px}.booking-service button{margin-left:auto;border:0;background:none;color:var(--rose);font:600 11px 'DM Sans';cursor:pointer}.field-label{font-size:10px;font-weight:700;letter-spacing:1.3px;color:var(--muted);margin:24px 0 10px}.date-strip{display:flex;justify-content:space-between;gap:7px}.date{border:1px solid var(--line);border-radius:12px;background:white;width:57px;padding:8px 3px;color:var(--ink);display:flex;flex-direction:column;gap:1px;cursor:pointer}.date small{font-size:8px;color:var(--muted)}.date b{font-size:17px}.date span{font-size:9px}.date.active,.time-grid button.active{background:var(--rose);border-color:var(--rose);color:#fff}.date.active small{color:#ffe5e8}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.time-grid button{border:1px solid var(--line);background:white;border-radius:10px;padding:11px 3px;font:500 11px 'DM Sans';cursor:pointer}.continue{margin-top:28px}.hidden{display:none}.back-button{border:0;background:none;padding:2px 0 20px;color:var(--rose);font:600 12px 'DM Sans';cursor:pointer}.summary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:15px}.summary div{display:flex;justify-content:space-between;margin:7px 0;font-size:12px}.summary b{font-size:13px}.summary hr{border:0;border-top:1px solid var(--line);margin:11px 0}.summary .total{font-size:13px}.summary .total b{color:var(--rose);font-size:15px}.payment-option{border:1px solid var(--rose);border-radius:13px;background:#fff;padding:13px;display:flex;align-items:center;gap:10px}.pay-icon{font-size:21px;color:#274d86}.payment-option b,.payment-option small{display:block;font-size:12px}.payment-option small{color:var(--muted);font-size:10px;margin-top:2px}.payment-option i{margin-left:auto;color:white;background:var(--rose);width:18px;height:18px;border-radius:50%;font-size:11px;text-align:center;padding-top:2px;font-style:normal}.tiny{text-align:center;color:var(--muted);font-size:10px;margin-top:12px}.confirmation{text-align:center;padding-top:65px}.success-mark{width:67px;height:67px;background:#e5f2df;border-radius:50%;display:grid;place-items:center;color:#6e9c5d;font-size:32px;margin:0 auto 21px}.confirmation h2{margin-bottom:12px}.confirmation>p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.5;max-width:280px;margin:0 auto}.confirm-detail{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;margin:24px 0;text-align:left}.confirm-detail b,.confirm-detail span{display:block;font-size:12px}.confirm-detail span{color:var(--muted);font-size:11px;margin-top:4px}.toast{position:fixed;top:18px;left:50%;transform:translate(-50%,-150%);z-index:10;background:var(--ink);color:#fff;border-radius:30px;padding:12px 18px;font-size:12px;transition:.3s;white-space:nowrap}.toast.show{transform:translate(-50%,0)}@media(max-width:360px){.app-shell{padding-left:16px;padding-right:16px}.date{width:51px}.booking-sheet{padding-left:17px;padding-right:17px}.services-grid{gap:7px}}
