/* NoteStore Lesson Booking: uses NoteStore Clean theme variables when present, with fallbacks. */
.nslb{
  --nslb-brand:var(--ns-primary,#4f46e5);
  --nslb-brand-dark:var(--ns-primary-dark,#3730a3);
  --nslb-ink:var(--ns-ink,#10193a);
  --nslb-text:#3a4565;
  --nslb-muted:var(--ns-muted,#5b6684);
  --nslb-line:#d5dff4;
  --nslb-wash:#f3f6fd;
  --nslb-mark:#ffe98a;
  --nslb-err:#b42318;
  max-width:760px;
  margin:0 auto;
  color:var(--nslb-text);
  font-family:inherit;
}
.nslb *,.nslb *:before,.nslb *:after{box-sizing:border-box}
.nslb-form,.nslb-done{background:#fff;border:1px solid var(--nslb-line);border-radius:16px;padding:32px;box-shadow:0 18px 44px rgba(16,25,58,.07)}
.nslb-group{border:0;margin:0 0 26px;padding:0;min-width:0}
.nslb-group legend{font-weight:800;color:var(--nslb-ink);font-size:18px;padding:0;margin-bottom:12px}
.nslb-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nslb-field{margin-bottom:18px;min-width:0}
.nslb-field label{display:block;font-weight:700;font-size:14px;color:var(--nslb-ink);margin-bottom:6px}
.nslb input[type=text],.nslb input[type=email],.nslb input[type=tel],.nslb input[type=date],.nslb select,.nslb textarea{
  width:100%;min-height:46px;padding:10px 13px;font:inherit;font-size:16px;color:var(--nslb-ink);
  background:#fff;border:1px solid #b9c6e4;border-radius:10px;transition:border-color .15s,box-shadow .15s
}
.nslb textarea{min-height:110px;resize:vertical;line-height:1.5}
.nslb input:focus,.nslb select:focus,.nslb textarea:focus{outline:0;border-color:var(--nslb-brand);box-shadow:0 0 0 3px rgba(79,70,229,.2)}
.nslb [aria-invalid=true]{border-color:var(--nslb-err)!important}

/* Level choice */
.nslb-levels{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.nslb-level{position:relative;display:block;cursor:pointer}
.nslb-level input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.nslb-level span{display:block;padding:13px 15px;border:1px solid #b9c6e4;border-radius:12px;background:var(--nslb-wash);font-weight:650;color:var(--nslb-ink);font-size:15px;line-height:1.35;transition:background-color .15s,border-color .15s}
.nslb-level:hover span{background:#e7edfb}
.nslb-level input:checked+span{background:#fff;border-color:var(--nslb-brand);box-shadow:inset 0 0 0 1px var(--nslb-brand),inset 0 4px 0 var(--nslb-brand)}
.nslb-level input:focus-visible+span{outline:3px solid var(--nslb-brand);outline-offset:2px}

/* Time slots */
.nslb-date{max-width:260px}
.nslb-slots{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;align-items:center}
.nslb-hint{margin:0;color:var(--nslb-muted);font-size:14px}
.nslb-slot{position:relative;display:inline-block;cursor:pointer}
.nslb-slot input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.nslb-slot span{display:block;padding:10px 16px;border:1px solid var(--nslb-ink);border-radius:999px;font-weight:700;font-size:14px;color:var(--nslb-ink);background:#fff;transition:background-color .15s,color .15s}
.nslb-slot:hover span{background:var(--nslb-mark)}
.nslb-slot input:checked+span{background:var(--nslb-ink);color:#fff}
.nslb-slot input:focus-visible+span{outline:3px solid var(--nslb-brand);outline-offset:2px}
.nslb-tz{margin:12px 0 0;font-size:13px;color:var(--nslb-muted)}

/* Messages and actions */
.nslb-error{margin:6px 0 0;color:var(--nslb-err);font-size:13px;font-weight:600;min-height:0}
.nslb-error:empty{display:none}
.nslb-form-error{font-size:14px;margin:0 0 14px}
.nslb-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:0 24px;border:0;border-radius:12px;background:var(--nslb-brand);color:#fff;font:inherit;font-weight:800;font-size:16px;cursor:pointer;transition:background-color .15s}
.nslb-submit:hover{background:var(--nslb-brand-dark)}
.nslb-submit:focus-visible{outline:3px solid var(--nslb-brand);outline-offset:3px}
.nslb-submit[disabled]{opacity:.7;cursor:wait}
.nslb-price{margin:14px 0 0;text-align:center;font-size:14px;color:var(--nslb-muted)}

/* Honeypot: off-screen, not display:none, so simple bots still fill it */
.nslb-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Confirmation */
.nslb-done:focus{outline:0}
.nslb-done h2{margin:0 0 10px;color:var(--nslb-ink);font-size:28px;line-height:1.15}
.nslb-done p{margin:0 0 20px;font-size:16px;line-height:1.65}
.nslb-summary{margin:0 0 22px;border-top:2px solid var(--nslb-ink)}
.nslb-summary div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--nslb-line)}
.nslb-summary dt{color:var(--nslb-muted);font-size:14px}
.nslb-summary dd{margin:0;font-weight:700;color:var(--nslb-ink)}
.nslb-wa{display:inline-block;padding:12px 20px;border:1px solid var(--nslb-ink);border-radius:12px;font-weight:800;color:var(--nslb-ink);text-decoration:none}
.nslb-wa:hover{background:var(--nslb-ink);color:#fff}

@media(max-width:620px){
  .nslb-form,.nslb-done{padding:22px 18px;border-radius:14px}
  .nslb-row{grid-template-columns:1fr;gap:0}
  .nslb-levels{grid-template-columns:1fr}
  .nslb-date{max-width:none}
  .nslb-summary div{grid-template-columns:96px 1fr}
}
@media(prefers-reduced-motion:reduce){.nslb *{transition:none!important}}

/* 1.1.0 — secure lesson conversation */
.nslb-chat-page{max-width:820px;margin:50px auto;padding:0 16px}.nslb-chat-card{background:#fff;border:1px solid #dfe5ef;border-radius:18px;padding:30px;box-shadow:0 15px 40px rgba(15,23,42,.07)}.nslb-chat-eyebrow{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4f46e5}.nslb-chat-card h1{margin:8px 0}.nslb-chat-intro{color:#64748b}.nslb-chat-messages{display:flex;flex-direction:column;gap:10px;margin:22px 0}.nslb-chat-message{max-width:82%;padding:13px 15px;border-radius:14px;background:#eef2ff;color:#172033}.nslb-chat-message.is-student{align-self:flex-end;background:#fff7ed}.nslb-chat-meta{font-size:11px;font-weight:800;color:#64748b;margin-bottom:5px}.nslb-chat-form{border-top:1px solid #e5e7eb;padding-top:20px}.nslb-chat-form label{display:block;font-weight:800;margin-bottom:7px}.nslb-chat-form textarea{width:100%;border:1px solid #d8dee9;border-radius:10px;padding:12px;resize:vertical}.nslb-chat-submit{margin-top:12px;border:0;border-radius:10px;padding:12px 18px;background:#4f46e5;color:#fff;font-weight:800;cursor:pointer}.nslb-chat-success{padding:11px 14px;background:#ecfdf3;color:#166534;border-radius:10px}.nslb-chat-note,.nslb-chat-empty{font-size:13px;color:#64748b}
