:root{--bg:#f6f3ec;--paper:#fff;--ink:#211e19;--muted:#7b756b;--line:#e4ddd0;--gold:#c7972f;--gold-dark:#9d7420;--soft:#fbf8f2;--danger:#9a3f37;--success:#2f6b47;--shadow:0 12px 36px rgba(47,38,23,.06);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#211e19;background:#f6f3ec}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}body{min-height:100dvh;overflow-y:auto;overscroll-behavior-y:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.core-shell{min-height:100dvh;padding-top:max(0px,env(safe-area-inset-top));padding-bottom:calc(92px + env(safe-area-inset-bottom));background:radial-gradient(circle at 85% 0,rgba(199,151,47,.09),transparent 23rem),var(--bg)}.core-header{height:72px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;padding:0 16px;border-bottom:1px solid rgba(220,211,194,.8);background:rgba(255,255,255,.92);backdrop-filter:blur(18px);position:sticky;top:0;z-index:30}.core-brand{text-align:center;line-height:1}.core-brand strong{display:block;font:500 22px Georgia,serif;letter-spacing:-.02em}.core-brand span{display:block;margin-top:5px;color:var(--gold-dark);font-size:8px;font-weight:800;letter-spacing:.22em}.core-icon-btn{appearance:none;border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#39342d;font-size:19px}.core-header-spacer{width:42px}.core-main{width:min(720px,100%);margin:0 auto;padding:22px 16px 30px}.page-head{margin:2px 0 20px}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--gold-dark);font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.eyebrow:before{content:"";width:24px;height:1px;background:var(--gold)}.page-head h1{margin:8px 0 8px;font:500 clamp(34px,9vw,52px)/1 Georgia,serif;letter-spacing:-.04em}.page-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px;margin-bottom:14px}.card h2,.card h3{margin:0}.card h2{font:500 24px Georgia,serif}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 2px 12px}.section-title h2{font:500 22px Georgia,serif;margin:0}.section-title small{color:var(--muted)}.primary,.secondary,.danger,.text-btn{appearance:none;border-radius:13px;padding:12px 15px;font-weight:800;border:1px solid transparent;min-height:46px}.primary{background:linear-gradient(135deg,#d5aa45,#b9851c);color:white;box-shadow:0 7px 18px rgba(178,130,29,.19)}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.danger{background:#fff7f6;border-color:#ebcbc7;color:var(--danger)}.text-btn{background:transparent;color:var(--gold-dark);padding-left:7px;padding-right:7px}.wide{width:100%}.field{display:grid;gap:7px;margin-bottom:13px}.field>span{font-size:11px;font-weight:800;color:#675f54}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 13px;color:var(--ink);outline:0;min-height:46px}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#cba351;box-shadow:0 0 0 3px rgba(199,151,47,.11)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:11px}.notice{border:1px solid #e3d7bd;background:#fffaf0;color:#67542d;padding:12px 14px;border-radius:13px;font-size:12px;line-height:1.5;margin-bottom:12px}.notice.error{border-color:#e9c8c5;background:#fff6f5;color:#8d3b34}.notice.success{border-color:#cfe2d5;background:#f4fbf6;color:#2f6644}.empty{padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}.appointment-feature{background:linear-gradient(145deg,#28241e,#171511);color:#fff;border:0}.appointment-feature .eyebrow{color:#d9bc78}.appointment-feature p{color:#d7d0c5}.appointment-feature .appointment-time{font:500 28px Georgia,serif;margin:13px 0 5px}.appointment-feature .appointment-meta{font-size:13px;color:#e8e0d4}.appointment-row,.history-row,.review-row,.referral-row,.record-row,.wallet-row{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px;margin-bottom:9px}.appointment-row{display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:start}.date-box{width:58px;border-radius:14px;background:var(--soft);text-align:center;padding:9px 4px}.date-box b{display:block;font:600 22px Georgia,serif}.date-box span{font-size:9px;text-transform:uppercase;color:var(--gold-dark);font-weight:800}.row-title{font-weight:800;font-size:14px}.row-sub{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.45}.status{display:inline-flex;margin-top:8px;padding:5px 8px;border-radius:999px;background:#f1eee7;color:#655e54;font-size:10px;font-weight:800}.status.confirmed,.status.verified{background:#e8f4eb;color:var(--success)}.status.cancelled{background:#f8e6e3;color:var(--danger)}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 14px}.slot{appearance:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 5px;font-size:12px;font-weight:750}.slot.is-selected{background:#28241e;color:#fff;border-color:#28241e}.review-cta{padding:22px;background:linear-gradient(145deg,#fff,#fbf5e8);border:1px solid #e6d8b9;border-radius:22px;margin-bottom:15px}.stars{font-size:21px;letter-spacing:2px;color:#d5a536}.review-row,.referral-row,.record-row{display:grid;gap:5px}.review-row-head,.record-row-head,.wallet-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wallet-hero{background:linear-gradient(145deg,#d8ad4a,#b98118);color:#fff;border:0;padding:24px}.wallet-hero small{display:block;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;opacity:.85}.wallet-balance{font:500 46px Georgia,serif;margin:10px 0 3px}.wallet-hero p{margin:0;opacity:.85;font-size:12px}.wallet-row{align-items:center}.wallet-amount{font-weight:850;white-space:nowrap}.wallet-amount.plus{color:var(--success)}.wallet-amount.minus{color:var(--danger)}.record-source{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-dark)}.record-actions{display:flex;gap:7px;margin-top:9px}.record-actions button{padding:8px 10px;min-height:36px;font-size:11px}.upload-box{border:1px dashed #d6c8ad;background:#fffdf8;border-radius:18px;padding:16px}.consent{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:#625c53;line-height:1.5;margin:8px 0 14px}.consent input{margin-top:3px}.core-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(30,25,16,.07);padding:7px 7px calc(7px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);backdrop-filter:blur(18px)}.nav-btn{appearance:none;border:0;background:transparent;min-width:0;display:grid;justify-items:center;gap:4px;color:#827b71;padding:5px 2px;border-radius:12px}.nav-btn span:first-child{font-size:20px;line-height:1}.nav-btn span:last-child{font-size:9px;font-weight:750;white-space:nowrap}.nav-btn.is-active{color:var(--gold-dark);background:#fff9ec}.login-shell{min-height:100dvh;display:grid;align-items:center;padding:32px 18px max(32px,env(safe-area-inset-bottom));background:radial-gradient(circle at 70% 0,rgba(199,151,47,.13),transparent 22rem),var(--bg)}.login-card{width:min(430px,100%);margin:auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:27px;box-shadow:0 24px 70px rgba(39,31,18,.09)}.login-logo{text-align:center;margin-bottom:25px}.login-logo strong{display:block;font:500 31px Georgia,serif}.login-logo span{display:block;color:var(--gold-dark);font-size:9px;font-weight:800;letter-spacing:.22em;margin-top:7px}.login-card h1{font:500 34px Georgia,serif;margin:0 0 6px}.login-card>p{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 21px}.settings-overlay{position:fixed;inset:0;background:rgba(21,18,14,.42);backdrop-filter:blur(4px);z-index:80;display:grid;align-items:end}.settings-card{background:#fff;border-radius:25px 25px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));max-height:82dvh;overflow:auto}.settings-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.settings-head h2{margin:0;font:500 27px Georgia,serif}.settings-link{display:flex;align-items:center;justify-content:space-between;text-decoration:none;border-bottom:1px solid #eee8df;padding:14px 2px;font-size:13px;font-weight:700}.settings-link span{color:#a39b90}.settings-user{background:var(--soft);border-radius:15px;padding:13px;margin-bottom:8px}.settings-user strong,.settings-user span{display:block}.settings-user span{color:var(--muted);font-size:11px;margin-top:3px}.loader{min-height:260px;display:grid;place-items:center;color:var(--muted);font-size:13px}.spinner{width:27px;height:27px;border:3px solid #e7dfd0;border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 9px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:420px){.core-main{padding-left:12px;padding-right:12px}.core-header{padding-left:10px;padding-right:10px}.card{border-radius:18px;padding:15px}.grid-2{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,1fr)}.nav-btn span:last-child{font-size:8px}.wallet-balance{font-size:42px}}