:root{--ink:#26143e;--muted:#776a86;--purple:#6d28d9;--deep:#4c1d95;--lilac:#ede3ff;--soft:#f8f5ff;--line:#e7ddf3;--white:#fff;--green:#167c5a;--shadow:0 28px 80px rgba(69,35,113,.14);font-family:"DM Sans",sans-serif;color:var(--ink);background:#fbfaff;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 5%,rgba(196,165,255,.24),transparent 28rem),radial-gradient(circle at 95% 25%,rgba(109,40,217,.08),transparent 24rem),#fbfaff;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}.site-header{height:84px;max-width:1180px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--purple),#9a5cf0);color:#fff;box-shadow:0 8px 24px rgba(109,40,217,.25)}.brand-mark.large{width:58px;height:58px;margin:0 auto 20px;font-size:24px}.brand strong,.brand small{display:block}.brand strong{font-family:"Playfair Display",serif;font-size:19px}.brand small{font-size:12px;color:var(--muted);letter-spacing:.04em}.header-note{font-size:14px;color:var(--muted)}
.booking-shell{max-width:1180px;margin:20px auto 0;padding:0 28px 64px}.intro{text-align:center;max-width:820px;margin:34px auto 38px}.eyebrow{margin:0 0 10px;text-transform:uppercase;color:var(--purple);font-weight:700;font-size:13px;letter-spacing:.14em}.intro h1,.login-card h1,.success-state hners2,.admin-heading h1{font-family:"Playfair Display",serif;margin:0;line-height:1.08}.intro h1{font-size:clamp(38px,5vw,62px);letter-spacing:-.03em}.intro-copy{font-size:18px;line-height:1.65;color:var(--muted);max-width:700px;margin:20px auto}.trust-row{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;font-size:14px;color:#5f526e}.trust-row b{color:var(--purple);margin-right:5px}
.booking-card{background:rgba(255,255,255,.96);border:1px solid rgba(109,40,217,.12);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.steps{min-height:72px;padding:0 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:56px;color:#978aa5;font-size:14px;font-weight:600}.step{display:flex;align-items:center;gap:9px}.step b{width:27px;height:27px;border:1px solid #cfc1df;border-radius:50%;display:grid;place-items:center;font-size:12px}.step.is-active{color:var(--deep)}.step.is-active b{background:var(--purple);border-color:var(--purple);color:#fff}.schedule-grid{display:grid;grid-template-columns:1.08fr .92fr;min-height:530px}.calendar-panel,.times-panel{padding:38px 42px}.times-panel{border-left:1px solid var(--line);background:var(--soft)}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.calendar-head h2,.times-panel h2{font-family:"Playfair Display",serif;text-transform:capitalize;margin:0;font-size:25px}.icon-button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--purple);font-size:25px}.icon-button:disabled{opacity:.3;cursor:default}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekdays{font-size:12px;text-transform:uppercase;color:#988ca4;text-align:center;margin-bottom:10px}.day{aspect-ratio:1;border:0;border-radius:14px;background:transparent;color:#b2a8bc;position:relative}.day.available{color:var(--ink);font-weight:600}.day.available:hover{background:var(--lilac)}.day.available:after{content:"";width:4px;height:4px;background:#9b5de5;border-radius:50%;position:absolute;bottom:7px;left:50%;transform:translateX(-50%)}.day.is-selected{background:linear-gradient(145deg,var(--purple),#8b48df)!important;color:#fff;box-shadow:0 7px 18px rgba(109,40,217,.28)}.day.is-selected:after{background:#fff}.day.is-today:not(.is-selected){outline:1px solid #b498dd}.legend{display:flex;gap:20px;margin-top:26px;color:var(--muted);font-size:12px}.legend span{display:flex;align-items:center;gap:7px}.dot{width:7px;height:7px;border-radius:50%}.dot.available{background:#9b5de5}.dot.full{background:#d8d0df}.section-label{color:var(--purple);font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.1em;margin:0 0 8px}.times{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:28px 0}.time-button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px 15px;text-align:left;display:flex;align-items:center;justify-content:space-between;color:var(--ink)}.time-button span{font-size:11px;color:var(--green);text-transform:uppercase}.time-button:hover:not(:disabled),.time-button.is-selected{border-color:var(--purple);box-shadow:0 0 0 2px rgba(109,40,217,.12)}.time-button.is-selected{background:var(--purple);color:#fff}.time-button.is-selected span{color:#fff}.time-button:disabled{background:#f1eef4;color:#a99fb1;cursor:not-allowed}.time-button:disabled span{color:#9b919f}.times-empty{grid-column:1/-1;color:var(--muted);line-height:1.5}
.primary-button,.secondary-button,.whatsapp-button,.reminder-button{border-radius:13px;border:0;padding:14px 20px;font-weight:700;text-decoration:none;text-align:center}.primary-button{width:100%;background:linear-gradient(135deg,var(--deep),var(--purple));color:#fff;box-shadow:0 9px 24px rgba(109,40,217,.22)}.primary-button:disabled{opacity:.42;box-shadow:none;cursor:not-allowed}.details-form{max-width:760px;margin:auto;padding:42px}.selection-summary{display:flex;align-items:center;gap:12px;background:var(--soft);padding:16px 18px;border-radius:14px;margin-bottom:26px}.selection-summary span{font-size:12px;color:var(--muted);text-transform:uppercase}.selection-summary strong{flex:1}.selection-summary button,.text-button{border:0;background:none;color:var(--purple);font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}.field span{font-size:13px;font-weight:700}.field input{height:50px;border:1px solid #dcd0e8;border-radius:12px;padding:0 14px;background:#fff;color:var(--ink);outline:none}.field input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(109,40,217,.1)}.honeypot{position:absolute;left:-9999px}.payment-note{display:flex;gap:14px;background:#f7f0ff;border:1px solid #e7d3ff;border-radius:15px;padding:17px;margin:24px 0}.payment-note>span{color:var(--purple);font-size:20px}.payment-note p{margin:0;color:var(--muted);line-height:1.45}.payment-note strong{display:block;color:var(--ink);margin-bottom:3px}.form-error,.state-card.error{color:#a1274b;background:#fff1f5;border:1px solid #ffcddd;padding:12px;border-radius:10px}.state-card{padding:50px;text-align:center;color:var(--muted)}.success-state{text-align:center;max-width:650px;margin:auto;padding:60px 36px}.success-icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#e4f7ef;color:var(--green);font-size:28px;margin:0 auto 22px}.success-state h2{font-family:"Playfair Display",serif;font-size:34px;margin:0}.success-state>p:not(.eyebrow){color:var(--purple);font-weight:700;font-size:18px}.success-note{background:var(--soft);border-radius:14px;padding:18px;color:var(--muted);line-height:1.55;margin:24px 0}.secondary-button{background:#fff;border:1px solid var(--purple);color:var(--purple)}footer{text-align:center;padding:0 20px 36px;color:#8e829a;font-size:13px}
.admin-body{background:#f8f6fb}.admin-shell{max-width:1050px;margin:auto;padding:32px 24px 70px}.login-card{max-width:430px;margin:8vh auto;background:#fff;padding:44px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);text-align:center}.login-card h1{font-size:38px}.login-card>p:not(.eyebrow){color:var(--muted);margin:12px 0 28px}.login-card form{display:grid;gap:18px;text-align:left}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:50px}.admin-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.admin-heading h1{font-size:38px}.count-card{background:#fff;border:1px solid var(--line);padding:13px 18px;border-radius:13px;display:flex;gap:9px;align-items:baseline}.count-card strong{font-size:24px;color:var(--purple)}.count-card span{font-size:12px;color:var(--muted)}.admin-tabs{display:flex;gap:7px;background:#eee8f5;padding:5px;border-radius:14px;margin:30px 0}.admin-tabs button{flex:1;border:0;background:transparent;border-radius:10px;padding:12px;color:#6f627c;font-weight:700}.admin-tabs button.is-active{background:#fff;color:var(--purple);box-shadow:0 3px 12px rgba(50,30,75,.08)}.appointment-list{display:grid;gap:12px}.appointment-card{display:grid;grid-template-columns:100px 1fr auto;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px 22px}.appointment-time{display:grid}.appointment-time strong{font-family:"Playfair Display",serif;font-size:27px}.appointment-time span{font-size:12px;color:var(--muted);text-transform:uppercase}.appointment-person h2{margin:0 0 6px;font-size:18px}.appointment-person p{margin:3px 0;font-size:13px}.appointment-person a{color:var(--muted);text-decoration:none}.appointment-actions{display:flex;gap:8px;align-items:center}.whatsapp-button{background:#e9f8f1;color:#147052;font-size:12px}.reminder-button{background:var(--lilac);color:var(--purple);font-size:12px}.reminder-button.is-done{background:#e9f8f1;color:#147052}.empty-agenda{text-align:center;background:#fff;border:1px dashed #d9cce7;border-radius:18px;padding:55px;color:var(--muted)}.empty-agenda span{color:var(--purple);font-size:28px}.empty-agenda h2{color:var(--ink);font-family:"Playfair Display",serif}
@media(max-width:800px){.header-note{display:none}.booking-shell{padding:0 14px 40px}.intro{margin-top:20px}.intro h1{font-size:39px}.intro-copy{font-size:16px}.steps{gap:15px;padding:12px}.step{font-size:0}.step b{font-size:12px}.schedule-grid{grid-template-columns:1fr}.calendar-panel,.times-panel{padding:26px 20px}.times-panel{border-left:0;border-top:1px solid var(--line)}.details-form{padding:28px 20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.appointment-card{grid-template-columns:72px 1fr}.appointment-actions{grid-column:1/-1}.admin-heading{align-items:start;flex-direction:column}.count-card{align-self:stretch;justify-content:center}}
@media(max-width:480px){.site-header{height:72px;padding:0 18px}.intro h1{font-size:34px}.trust-row{display:grid;gap:8px;text-align:left}.calendar-panel{padding-left:12px;padding-right:12px}.weekdays,.calendar{gap:4px}.day{border-radius:10px}.selection-summary{align-items:flex-start;flex-wrap:wrap}.selection-summary strong{order:3;flex-basis:100%}.admin-shell{padding:20px 12px}.login-card{padding:34px 22px}.appointment-card{padding:17px 14px}.appointment-actions{flex-direction:column}.appointment-actions>*{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.admin-heading-actions{display:flex;align-items:center;gap:12px}.primary-button.compact{width:auto;padding:12px 18px}.manual-form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;margin:28px 0;box-shadow:0 12px 35px rgba(69,35,113,.08)}.manual-form-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.manual-form-head h2{font-family:"Playfair Display",serif;margin:0;font-size:28px}.manual-form .primary-button{margin-top:22px}.field select{height:50px;border:1px solid #dcd0e8;border-radius:12px;padding:0 14px;background:#fff;color:var(--ink);outline:none}.field select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(109,40,217,.1)}
@media(max-width:800px){.admin-heading-actions{flex-direction:column;align-items:stretch;width:100%}.primary-button.compact{width:100%}}
.person-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.person-title h2{margin:0}.status-badge{display:inline-flex;align-items:center;border-radius:99px;background:#f0e7ff;color:var(--purple);padding:5px 9px;font-size:11px;font-weight:700}.status-badge.done{background:#e4f7ef;color:var(--green)}.client-details{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:9px}.client-details span{display:grid;color:var(--muted);font-size:13px}.client-details b{color:#93859f;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:2px}.client-details a{color:var(--muted);text-decoration:none}.appointment-card.is-completed{border-color:#cdeadd;background:#fbfffd}.complete-button,.cancel-button{border:0;border-radius:11px;padding:11px 13px;font-size:12px;font-weight:700}.complete-button{background:#e4f7ef;color:#11684b}.cancel-button{background:#fff0f3;color:#a1274b}.cash-view{display:grid;gap:20px}.cash-view[hidden]{display:none}.cash-view .empty-agenda{grid-column:1/-1}.cash-view .eyebrow{margin-bottom:5px}.cash-view h2{font-family:"Playfair Display",serif;margin:0;font-size:28px}.cash-head,.cash-filter{display:flex;align-items:end;justify-content:space-between;gap:18px}.cash-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.cash-summary>div,.cash-summary>article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:5px}.cash-summary strong{font-family:"Playfair Display",serif;font-size:32px}.cash-summary span{color:var(--muted);font-size:13px}.cash-summary small{color:#9b8fa6}.cash-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}.cash-row>div{display:grid}.cash-row span{color:var(--muted);font-size:12px}.cash-row>b{font-size:17px}.month-field{min-width:190px}.cash-head{margin-top:4px}.cash-list{display:grid;gap:9px}
@media(max-width:800px){.appointment-card{grid-template-columns:72px 1fr}.appointment-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.client-details{display:grid;grid-template-columns:1fr 1fr}.cash-head{align-items:stretch;flex-direction:column}.month-field{width:100%}.cash-summary{grid-template-columns:1fr}.cash-row{grid-template-columns:1fr auto}.cash-row .status-badge{grid-column:1}.cash-row>b{grid-column:2;grid-row:1/3}}
.cash-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px}
@media(max-width:800px){.cash-toolbar{align-items:stretch;flex-direction:column}}
