/* assets/css/nova-booking.css */
.nb-root { --ink:#0C0C10; --ink-2:#141419; --ink-3:#1C1C22; --paper:#F7F5F0; --paper-2:#EEEAE0; --gold:#B8862A; --gold-light:#D4A84A; --line-dark:rgba(247,245,240,0.08); --line-light:rgba(12,12,16,0.08); --text-mid:rgba(247,245,240,0.5); font-family:'Syne',sans-serif; }
.nb-root * { box-sizing:border-box; }
.nb-card { background:var(--ink); border-radius:14px; color:var(--paper); overflow:hidden; }
.nb-title { font-family:'Fraunces',serif; font-size:22px; font-weight:700; margin-bottom:12px; }
.nb-paused { background:var(--paper-2); border-radius:10px; padding:32px; text-align:center; color:var(--ink); font-family:'Fraunces',serif; font-size:18px; }

.nb-grid { display:grid; grid-template-columns:240px 1fr 260px; min-height:420px; }
.nb-grid > * { min-width:0; }
@media (max-width:780px) { .nb-grid { grid-template-columns:1fr; } }

@keyframes nbFadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .nb-root *, .nb-root *::before, .nb-root *::after { animation:none !important; transition:none !important; }
  .nb-cal-day:active:not(:disabled), .nb-slot-btn:active { transform:none !important; }
}

.nb-info { padding:32px 28px; border-right:1px solid var(--line-dark); }
.nb-info-meta { font-size:13px; color:var(--text-mid); margin-bottom:10px; }

.nb-profile { margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid var(--line-dark); }
.nb-profile-photo { width:64px; height:64px; border-radius:50%; object-fit:cover; display:block; margin-bottom:12px; }
.nb-profile-name { font-family:'Fraunces',serif; font-size:16px; font-weight:600; }
.nb-profile-title { font-size:12px; color:var(--gold-light); margin-top:2px; margin-bottom:8px; }
.nb-profile-bio { font-size:12px; color:var(--text-mid); line-height:1.5; }

.nb-cal { padding:28px; border-right:1px solid var(--line-dark); animation:nbFadeIn 0.18s ease-out; }
.nb-cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; font-family:'Fraunces',serif; font-size:16px; }
.nb-cal-nav { background:none; border:1px solid var(--line-dark); color:var(--paper); width:28px; height:28px; border-radius:6px; cursor:pointer; transition:background-color 0.15s ease, border-color 0.15s ease; }
.nb-cal-nav:hover:not(:disabled) { background:var(--ink-3); border-color:var(--line-dark); }
.nb-cal-nav:disabled { opacity:0.3; cursor:default; }
.nb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }
.nb-cal-grid > * { min-width:0; }
.nb-cal-dow { font-size:11px; color:var(--text-mid); padding-bottom:6px; text-transform:uppercase; }
.nb-cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:13px; cursor:pointer; background:transparent; border:none; color:var(--paper); transition:background-color 0.15s ease, color 0.15s ease, transform 0.1s ease; }
.nb-cal-day:hover:not(:disabled) { background:var(--ink-3); }
.nb-cal-day:active:not(:disabled) { transform:scale(0.92); }
.nb-cal-day.nb-selected { background:var(--gold); color:var(--ink); font-weight:600; }
.nb-cal-day:disabled { color:var(--text-mid); opacity:0.35; cursor:default; }
.nb-cal-day.nb-empty { visibility:hidden; }

.nb-slots-panel { padding:28px 22px; display:flex; flex-direction:column; animation:nbFadeIn 0.18s ease-out; }
.nb-slots-day-label { font-size:13px; color:var(--text-mid); margin-bottom:14px; }
.nb-slots { display:flex; flex-direction:column; gap:8px; overflow-y:auto; max-height:360px; }
.nb-slot-btn { background:var(--ink-3); border:1px solid var(--line-dark); border-radius:6px; padding:10px; color:var(--paper); font-family:'Syne',sans-serif; font-size:13px; cursor:pointer; text-align:center; transition:background-color 0.15s ease, color 0.15s ease, transform 0.1s ease; }
.nb-slot-btn:hover, .nb-slot-btn.nb-selected { background:var(--gold); color:var(--ink); font-weight:600; }
.nb-slot-btn:active { transform:scale(0.97); }
.nb-slots-empty { font-size:13px; color:var(--text-mid); }
.nb-back-link { background:none; border:none; color:var(--gold-light); font-size:13px; cursor:pointer; padding:0; margin-bottom:16px; text-align:left; transition:opacity 0.15s ease; }
.nb-back-link:hover { opacity:0.75; }

.nb-form input, .nb-form select { width:100%; background:var(--ink-3); border:1px solid var(--line-dark); border-radius:6px; padding:11px 13px; color:var(--paper); font-family:'Syne',sans-serif; font-size:13px; margin-bottom:10px; transition:border-color 0.15s ease; }
.nb-form input:focus, .nb-form select:focus { border-color:var(--gold); outline:none; }
.nb-form label.nb-checkbox { display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:10px; }
.nb-form label.nb-checkbox input { width:auto; margin:0; }
.nb-submit { width:100%; background:var(--gold); color:var(--ink); font-family:'Syne',sans-serif; font-weight:600; font-size:14px; padding:12px 20px; border:none; border-radius:6px; cursor:pointer; margin-top:4px; transition:background-color 0.15s ease, opacity 0.15s ease; }
.nb-submit:hover:not(:disabled) { background:var(--gold-light); }
.nb-submit:disabled { opacity:0.6; cursor:default; }
.nb-error { color:#e08a8a; font-size:12px; margin-top:8px; min-height:14px; }
.nb-success { text-align:center; padding:48px 32px; grid-column:1 / -1; animation:nbFadeIn 0.25s ease-out; }
.nb-success a { color:var(--gold-light); }
