.nbs-app{--nbs-accent:#8d4f7d;--nbs-plum:#41243b;--nbs-blush:#faedf3;--nbs-petal:#f3dce6;--nbs-rose:#d8a1b5;--nbs-ivory:#fffaf8;--nbs-line:#ead9e2;--nbs-muted:#75646e;box-sizing:border-box;max-width:920px;margin:30px auto;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--nbs-plum)}
.nbs-app *{box-sizing:border-box}.nbs-hero{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;overflow:hidden;background:radial-gradient(circle at 92% 15%,rgba(216,161,181,.34),transparent 27%),linear-gradient(135deg,#fff 0%,var(--nbs-blush) 100%);border:1px solid var(--nbs-line);border-radius:26px;padding:30px;margin-bottom:18px;box-shadow:0 14px 38px rgba(85,44,72,.08)}.nbs-hero:after{content:"";position:absolute;right:-36px;bottom:-65px;width:150px;height:150px;border:1px solid rgba(141,79,125,.18);border-radius:50%;box-shadow:0 0 0 17px rgba(255,255,255,.22),0 0 0 35px rgba(255,255,255,.14)}.nbs-hero>div,.nbs-hero>a{position:relative;z-index:1}.nbs-hero h2{font-family:Georgia,"Times New Roman",serif;font-size:36px;line-height:1.1;margin:5px 0 8px;color:var(--nbs-plum)}.nbs-hero p{margin:0;color:var(--nbs-muted)}.nbs-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:850;color:var(--nbs-accent)}
.nbs-panel{background:linear-gradient(145deg,#fff 0%,var(--nbs-ivory) 100%);border:1px solid var(--nbs-line);border-radius:22px;padding:26px;box-shadow:0 11px 32px rgba(85,44,72,.06)}.nbs-panel h3{color:var(--nbs-plum)}.nbs-step{display:flex;align-items:center;gap:10px;margin:4px 0 18px;font-size:18px}.nbs-step span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:linear-gradient(145deg,var(--nbs-accent),var(--nbs-plum));color:#fff;font-size:14px;box-shadow:0 4px 10px rgba(65,36,59,.2)}
.nbs-panel label{display:block;font-weight:700;margin:14px 0;color:var(--nbs-plum)}.nbs-panel input,.nbs-panel select,.nbs-panel textarea{box-sizing:border-box;width:100%;margin-top:7px;border:1px solid #d9c5cf;border-radius:12px;padding:13px 14px;background:#fff;font:inherit;color:inherit}.nbs-panel input:focus,.nbs-panel select:focus,.nbs-panel textarea:focus{outline:3px solid color-mix(in srgb,var(--nbs-accent) 15%,transparent);border-color:var(--nbs-accent)}.nbs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.nbs-primary,.nbs-secondary{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:13px 19px;font-weight:800;text-decoration:none;cursor:pointer;font:inherit}.nbs-primary{background:linear-gradient(145deg,var(--nbs-accent),var(--nbs-plum));color:#fff!important;box-shadow:0 7px 16px color-mix(in srgb,var(--nbs-accent) 22%,transparent)}.nbs-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.nbs-primary:disabled{opacity:.62;cursor:wait}.nbs-secondary{background:var(--nbs-blush);border:1px solid var(--nbs-rose);color:var(--nbs-plum)}.nbs-link{color:var(--nbs-accent);font-weight:750;text-decoration:none}.nbs-account-line{padding:13px 15px;border-radius:12px;background:var(--nbs-blush);color:var(--nbs-muted)}
#nbs-booking-result,#nbs-account-result{margin-top:16px}.nbs-success,.nbs-error,.nbs-alert{padding:16px;border-radius:14px}.nbs-success{background:#edf9f2;border:1px solid #b7dfc6;color:#245f3e}.nbs-error{background:#fff0f3;border:1px solid #efbeca;color:#8e314a}.nbs-bank{display:grid;gap:4px;margin-top:13px;padding:15px;background:#fff;border:1px solid #d7e7dc;border-radius:12px;color:var(--nbs-plum)}.nbs-bank strong{font-size:17px}.nbs-bank b{color:var(--nbs-accent)}
.nbs-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.nbs-auth-grid .nbs-panel{height:100%}.nbs-account-actions{display:flex;justify-content:flex-end;margin:0 0 18px}.nbs-appointments{display:grid;gap:13px}.nbs-customer-appt{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;border-left:6px solid var(--nbs-accent)}.nbs-customer-appt.is-pending{background:#fffbf1}.nbs-customer-appt.is-confirmed{background:#f7fcf8}.nbs-customer-appt.is-cancelled{background:#faf0f3;opacity:.78}.nbs-customer-appt.is-completed{background:#f3f3fb}.nbs-customer-appt h3{margin:4px 0 6px;font-size:20px}.nbs-customer-appt p{margin:7px 0}.nbs-payment-box{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:190px;padding-left:18px;border-left:1px solid var(--nbs-line)}.nbs-payment-box span,.nbs-payment-box small{color:var(--nbs-muted)}.nbs-payment-box .nbs-secondary{font-size:13px;margin-top:7px}.nbs-text-button{position:absolute;right:24px;bottom:13px;border:0;background:none;color:#9b3b55;text-decoration:underline;cursor:pointer}.nbs-badge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#f1edf0;color:#655b62;font-size:12px;font-weight:750}.nbs-badge.is-confirmed,.nbs-badge.is-paid,.nbs-badge.is-deposit_paid{background:#e4f4eb;color:#236a46}.nbs-badge.is-pending,.nbs-badge.is-deposit_due,.nbs-badge.is-payment_notified,.nbs-badge.is-part_paid{background:#fff0d5;color:#85590e}.nbs-badge.is-cancelled,.nbs-badge.is-unpaid{background:#f8e1e7;color:#92364f}.nbs-badge.is-completed{background:#e8e8f8;color:#4b4e8a}.nbs-empty{text-align:center;background:var(--nbs-blush)}
.nbs-calendar-step{margin-top:28px}.nbs-gap-calendar{overflow:hidden;margin:0 0 14px;border:1px solid var(--nbs-line);border-radius:18px;background:var(--nbs-ivory);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.nbs-calendar-message{display:grid;place-items:center;min-height:150px;padding:24px;text-align:center;color:var(--nbs-muted);font-weight:650}.nbs-calendar-message.is-loading{display:flex;justify-content:center;gap:10px}.nbs-calendar-message.is-loading span{width:18px;height:18px;border:2px solid var(--nbs-petal);border-top-color:var(--nbs-accent);border-radius:50%;animation:nbs-spin .75s linear infinite}@keyframes nbs-spin{to{transform:rotate(360deg)}}
.nbs-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:15px 16px;background:linear-gradient(135deg,var(--nbs-blush),var(--nbs-ivory));border-bottom:1px solid var(--nbs-line)}.nbs-calendar-head strong{text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:21px;color:var(--nbs-plum)}.nbs-calendar-arrow{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--nbs-line);border-radius:11px;background:var(--nbs-surface);color:var(--nbs-accent);font-size:27px;line-height:1;cursor:pointer}.nbs-calendar-arrow:hover:not(:disabled){background:var(--nbs-accent);border-color:var(--nbs-accent);color:#fff}.nbs-calendar-arrow:disabled{opacity:.32;cursor:not-allowed}
.nbs-calendar-weekdays,.nbs-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.nbs-calendar-weekdays{padding:11px 10px 7px}.nbs-calendar-weekdays span{text-align:center;color:var(--nbs-muted);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.nbs-calendar-grid{gap:7px;padding:7px 10px 12px}.nbs-calendar-blank{min-height:76px}.nbs-calendar-day{position:relative;min-width:0;min-height:76px;padding:10px;border:1px solid var(--nbs-line);border-radius:12px;background:var(--nbs-surface);color:var(--nbs-plum);text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.nbs-calendar-day>span{position:absolute;top:9px;left:10px;font-weight:800}.nbs-calendar-day>b{position:absolute;top:7px;right:7px;display:grid;place-items:center;min-width:27px;height:27px;padding:0 6px;border-radius:999px;background:var(--nbs-accent);color:#fff;font-size:12px;box-shadow:0 3px 8px color-mix(in srgb,var(--nbs-accent) 25%,transparent)}.nbs-calendar-day>small{position:absolute;left:9px;right:9px;bottom:8px;overflow:hidden;color:var(--nbs-muted);font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.nbs-calendar-day.has-availability:hover{z-index:1;transform:translateY(-2px);border-color:var(--nbs-accent);box-shadow:0 7px 15px rgba(65,36,59,.1)}.nbs-calendar-day.is-unavailable{background:#f2eff1;color:#aaa1a7;cursor:not-allowed;opacity:.64}.nbs-calendar-day.has-booking{background:#e7f6ec;border-color:#96d2aa;color:#235f3d;opacity:1}.nbs-calendar-day.has-booking>small{color:#267049}.nbs-calendar-day.is-today{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--nbs-accent) 58%,transparent)}.nbs-calendar-day.is-selected{background:linear-gradient(145deg,var(--nbs-accent),var(--nbs-plum));border-color:var(--nbs-accent);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--nbs-accent) 25%,transparent)}.nbs-calendar-day.is-selected>b{background:#fff;color:var(--nbs-accent);box-shadow:none}.nbs-calendar-day.is-selected>small{color:rgba(255,255,255,.8)}
.nbs-time-field{margin-top:16px!important}.nbs-calendar-legend{display:flex;flex-wrap:wrap;gap:15px;margin:9px 2px 25px;color:var(--nbs-muted);font-size:12px}.nbs-calendar-legend span{display:flex;align-items:center;gap:6px}.nbs-calendar-legend i{display:block;width:12px;height:12px;border:1px solid var(--nbs-line);border-radius:4px;background:var(--nbs-surface)}.nbs-calendar-legend i.is-available{border-color:var(--nbs-accent);box-shadow:inset 0 0 0 3px var(--nbs-surface);background:var(--nbs-accent)}.nbs-calendar-legend i.is-booked{border-color:#96d2aa;background:#e7f6ec}.nbs-calendar-legend i.is-unavailable{background:#f2eff1}
@media(max-width:700px){.nbs-app{margin:18px 10px}.nbs-hero,.nbs-panel{border-radius:18px;padding:20px}.nbs-hero h2{font-size:29px}.nbs-grid,.nbs-auth-grid{grid-template-columns:1fr}.nbs-customer-appt{grid-template-columns:1fr}.nbs-payment-box{align-items:flex-start;border-left:0;border-top:1px solid var(--nbs-line);padding:14px 0 20px;min-width:0}.nbs-text-button{left:20px;right:auto}.nbs-account-actions{justify-content:stretch}.nbs-account-actions .nbs-primary{width:100%}.nbs-calendar-grid{gap:4px;padding:6px 6px 10px}.nbs-calendar-weekdays{padding-left:6px;padding-right:6px}.nbs-calendar-day,.nbs-calendar-blank{min-height:60px}.nbs-calendar-day{padding:7px;border-radius:9px}.nbs-calendar-day>span{top:7px;left:7px;font-size:12px}.nbs-calendar-day>b{top:5px;right:5px;min-width:21px;height:21px;padding:0 4px;font-size:10px}.nbs-calendar-day>small{left:6px;right:4px;bottom:6px;font-size:8px}.nbs-calendar-head{padding:12px}.nbs-calendar-head strong{font-size:19px}}
@media(max-width:400px){.nbs-panel{padding:15px}.nbs-calendar-day,.nbs-calendar-blank{min-height:53px}.nbs-calendar-weekdays span{font-size:9px}.nbs-calendar-day>small{display:none}}
