/* Neuromatics Core — booking wizard, forms, chat widget */
:root {
	--nmc-teal: #0B3A4A;
	--nmc-teal-900: #072833;
	--nmc-teal-500: #1F5A6D;
	--nmc-turq: #09B7B2;
	--nmc-turq-50: #E7F8F7;
	--nmc-accent: #06736F;
	--nmc-ink-2: #4A6872;
	--nmc-line: #D6E3E7;
	--nmc-bg: #F4F9FA;
	--nmc-err: #B3261E;
	--nmc-r: 16px;
	--nmc-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Buttons & fields (base — theme may override) ---------- */
.nm-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .85em 1.4em; border-radius: 999px; border: 1.5px solid transparent; font: inherit; font-weight: 600; font-size: 15px; line-height: 1.2; cursor: pointer; text-decoration: none; transition: transform .25s var(--nmc-ease), box-shadow .25s, background .25s, color .25s, border-color .25s; }
.nm-btn:disabled { opacity: .45; cursor: not-allowed; }
.nm-btn--primary { background: linear-gradient(135deg, var(--nmc-turq), #0aa19c); color: #fff; box-shadow: 0 8px 24px -10px rgba(9, 183, 178, .8); }
.nm-btn--primary:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 14px 30px -10px rgba(9, 183, 178, .9); color: #fff; }
.nm-btn--ghost { background: transparent; color: var(--nmc-teal); border-color: var(--nmc-line); }
.nm-btn--ghost:hover { border-color: var(--nmc-turq); color: var(--nmc-accent); }
.nm-btn--block { width: 100%; }
.nm-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.nm-btn.is-loading::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; animation: nmspin .7s linear infinite; }
.nm-btn--ghost.is-loading::after { border-color: var(--nmc-line); border-top-color: var(--nmc-turq); }
@keyframes nmspin { to { transform: rotate(360deg); } }

.nm-form { display: grid; gap: 14px; }
.nm-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .nm-grid2 { grid-template-columns: 1fr; } }
.nm-field { position: relative; }
.nm-field input, .nm-field select, .nm-field textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; color: var(--nmc-teal); background: #fff; border: 1.5px solid var(--nmc-line); border-radius: 12px; padding: 22px 14px 8px; outline: none; transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; }
.nm-field select { padding: 15px 40px 15px 14px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2306736F' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.nm-field textarea { resize: vertical; min-height: 90px; }
.nm-field label { position: absolute; left: 15px; top: 16px; font-size: 15px; color: var(--nmc-ink-2); pointer-events: none; transition: all .2s var(--nmc-ease); }
.nm-field input:focus, .nm-field select:focus, .nm-field textarea:focus { border-color: var(--nmc-turq); box-shadow: 0 0 0 4px rgba(9, 183, 178, .15); }
.nm-field input:focus + label, .nm-field input:not(:placeholder-shown) + label, .nm-field textarea:focus + label, .nm-field textarea:not(:placeholder-shown) + label { top: 7px; font-size: 11.5px; letter-spacing: .04em; color: var(--nmc-accent); font-weight: 600; }
.nm-field.has-error input, .nm-field.has-error textarea { border-color: var(--nmc-err); }
.nm-err { display: block; color: var(--nmc-err); font-size: 12.5px; margin-top: 5px; }
.nm-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--nmc-ink-2); cursor: pointer; line-height: 1.45; }
.nm-check input { margin-top: 2px; width: 18px; height: 18px; accent-color: var(--nmc-turq); flex: none; }
.nm-check.has-error span { color: var(--nmc-err); }
.nm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.nm-form-note { margin: 0; font-size: 12.5px; color: var(--nmc-ink-2); display: flex; align-items: center; gap: 6px; }
.nm-form-msg:empty { display: none; }
.nm-form-msg { border-radius: 12px; padding: 12px 14px; font-size: 14px; display: flex; gap: 8px; align-items: flex-start; }
.nm-form-msg.is-ok { background: var(--nmc-turq-50); color: var(--nmc-accent); }
.nm-form-msg.is-err { background: #fdecea; color: var(--nmc-err); }
.nm-form-title { margin: 0 0 4px; }
.nm-form--dark .nm-field input, .nm-form--dark .nm-field select, .nm-form--dark .nm-field textarea { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); color: #fff; }
.nm-form--dark .nm-field select option { color: var(--nmc-teal); }
.nm-form--dark .nm-field label, .nm-form--dark .nm-form-note { color: rgba(255, 255, 255, .7); }
.nm-form--dark .nm-field select { background-repeat: no-repeat; background-position: right 14px center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237FE3DF' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.nm-form--dark .nm-field input:focus + label, .nm-form--dark .nm-field input:not(:placeholder-shown) + label { color: #7FE3DF; }
.nm-spinner { display: inline-block; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--nmc-line); border-top-color: var(--nmc-turq); animation: nmspin .7s linear infinite; vertical-align: middle; margin-right: 10px; }

/* ---------- Booking wizard ---------- */
.nmb { background: #fff; border: 1px solid var(--nmc-line); border-radius: 24px; box-shadow: 0 30px 80px -40px rgba(11, 58, 74, .35); padding: clamp(18px, 3vw, 36px); color: var(--nmc-teal); position: relative; overflow: hidden; }
.nmb-steps { list-style: none; margin: 0 0 14px; padding: 0; display: flex; align-items: center; gap: 0; counter-reset: s; }
.nmb-steps li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: var(--nmc-ink-2); opacity: .7; transition: .3s; margin: 0; }
.nmb-steps li { flex: 1 1 0; min-width: 0; white-space: nowrap; }
.nmb-steps li:last-child { flex: 0 0 auto; }
/* connector line between steps; turns teal once a step is done */
.nmb-steps li:not(:last-child)::after { content: ""; flex: 1 1 auto; height: 2px; margin: 0 18px; border-radius: 2px; background: var(--nmc-line); transition: background .3s; }
.nmb-steps li.is-done:not(:last-child)::after { background: var(--nmc-turq); }
.nmb-steps li span { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--nmc-line); font-size: 13px; flex: none; transition: .3s; background: #fff; }
.nmb-steps li.is-active { opacity: 1; color: var(--nmc-teal); }
.nmb-steps li.is-active span { background: var(--nmc-teal); color: #fff; border-color: var(--nmc-teal); box-shadow: 0 0 0 5px rgba(9, 183, 178, .18); }
.nmb-steps li.is-done { opacity: 1; color: var(--nmc-accent); }
.nmb-steps li.is-done span { background: var(--nmc-turq); border-color: var(--nmc-turq); color: #fff; }
@media (max-width: 680px) { .nmb-steps li { font-size: 0; } .nmb-steps li.is-active { font-size: 12.5px; } .nmb-steps li:not(:last-child)::after { margin: 0 10px; } }
.nmb-progress { height: 4px; border-radius: 4px; background: var(--nmc-turq-50); margin-bottom: 26px; overflow: hidden; }
.nmb-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--nmc-turq), var(--nmc-teal)); transition: width .6s var(--nmc-ease); border-radius: 4px; }
.nmb-body { min-height: 260px; }
.nmb-body.is-in { animation: nmbIn .45s var(--nmc-ease); }
@keyframes nmbIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.nmb-loading { display: flex; align-items: center; justify-content: center; min-height: 240px; color: var(--nmc-ink-2); }
.nmb-head { margin-bottom: 18px; }
.nmb-head h3 { margin: 0 0 6px; font-size: clamp(20px, 2.4vw, 26px); color: var(--nmc-teal); line-height: 1.2; }
.nmb-head p { margin: 0; color: var(--nmc-ink-2); font-size: 15px; }
.nmb-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 14px; scrollbar-width: thin; }
.nmb-tab { flex: none; border: 1.5px solid var(--nmc-line); background: #fff; color: var(--nmc-teal); border-radius: 999px; padding: 9px 16px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: .25s; white-space: nowrap; }
.nmb-tab:hover { border-color: var(--nmc-turq); }
.nmb-tab.is-on { background: var(--nmc-teal); border-color: var(--nmc-teal); color: #fff; }
.nmb-svcs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin-bottom: 10px; max-height: 360px; overflow-y: auto; padding: 2px; }
.nmb-group { grid-column: 1 / -1; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--nmc-accent); font-weight: 700; margin-top: 6px; }
.nmb-svc, .nmb-doc { position: relative; display: flex; align-items: center; gap: 12px; text-align: left; border: 1.5px solid var(--nmc-line); background: #fff; border-radius: 14px; padding: 14px 44px 14px 16px; font: inherit; color: var(--nmc-teal); cursor: pointer; transition: border-color .2s, transform .25s var(--nmc-ease), box-shadow .25s, background .2s; width: 100%; }
.nmb-svc:hover, .nmb-doc:hover { border-color: var(--nmc-turq); transform: translateY(-2px); box-shadow: 0 12px 24px -16px rgba(11, 58, 74, .5); }
.nmb-svc-t { font-weight: 600; font-size: 14.5px; display: flex; align-items: center; gap: 8px; }
.nmb-svc--general { background: var(--nmc-turq-50); border-style: dashed; margin-bottom: 4px; }
.nmb-tick { position: absolute; right: 14px; top: 50%; margin-top: -11px; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--nmc-line); display: grid; place-items: center; color: transparent; transition: .25s; }
.is-on > .nmb-tick { background: var(--nmc-turq); border-color: var(--nmc-turq); color: #fff; transform: scale(1.1); }
.nmb-svc.is-on, .nmb-doc.is-on { border-color: var(--nmc-turq); background: linear-gradient(135deg, #fff, var(--nmc-turq-50)); box-shadow: 0 0 0 4px rgba(9, 183, 178, .14); }
.nmb-mode { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 16px; }
.nmb-mode button { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; border: 1.5px solid var(--nmc-line); background: #fff; font: inherit; color: var(--nmc-teal); cursor: pointer; text-align: left; transition: .25s; }
.nmb-mode button .nm-ico { color: var(--nmc-accent); flex: none; }
.nmb-mode button span { display: flex; flex-direction: column; }
.nmb-mode button small { color: var(--nmc-ink-2); font-size: 12.5px; }
.nmb-mode button.is-on { border-color: var(--nmc-teal); background: var(--nmc-teal); color: #fff; }
.nmb-mode button.is-on small, .nmb-mode button.is-on .nm-ico { color: #7FE3DF; }
.nmb-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.nmb-doc img, .nmb-doc-av { width: 56px; height: 56px; border-radius: 14px; object-fit: cover; object-position: top; flex: none; background: var(--nmc-turq-50); display: grid; place-items: center; color: var(--nmc-accent); }
.nmb-doc-i { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nmb-doc-i strong { font-size: 15px; }
.nmb-doc-i small { font-size: 12.5px; color: var(--nmc-ink-2); line-height: 1.35; }
.nmb-doc-i em { font-style: normal; font-size: 12px; color: var(--nmc-accent); font-weight: 600; }
.nmb-doc--any .nmb-doc-av { background: linear-gradient(135deg, var(--nmc-turq), var(--nmc-teal)); color: #fff; }
.nmb-days-wrap { position: relative; display: flex; align-items: center; gap: 6px; margin-bottom: 18px; }
.nmb-days { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 8px; scrollbar-width: none; flex: 1; }
.nmb-days::-webkit-scrollbar { display: none; }
.nmb-scroll { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--nmc-line); background: #fff; color: var(--nmc-teal); cursor: pointer; display: grid; place-items: center; }
@media (max-width: 600px) { .nmb-scroll { display: none; } }
.nmb-day { flex: none; scroll-snap-align: start; width: 68px; padding: 10px 0; border-radius: 14px; border: 1.5px solid var(--nmc-line); background: #fff; color: var(--nmc-teal); font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; transition: .25s; }
.nmb-day small { font-size: 11.5px; color: var(--nmc-ink-2); text-transform: uppercase; letter-spacing: .06em; }
.nmb-day strong { font-size: 21px; line-height: 1.1; }
.nmb-day:not(:disabled):hover { border-color: var(--nmc-turq); }
.nmb-day:disabled { opacity: .35; cursor: not-allowed; background: var(--nmc-bg); }
.nmb-day.is-on { background: var(--nmc-teal); border-color: var(--nmc-teal); color: #fff; box-shadow: 0 10px 22px -10px rgba(11, 58, 74, .7); }
.nmb-day.is-on small { color: #7FE3DF; }
.nmb-slot-g { margin-bottom: 14px; }
.nmb-slot-g h4 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--nmc-ink-2); }
.nmb-slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.nmb-slot { padding: 11px 6px; border-radius: 12px; border: 1.5px solid var(--nmc-line); background: #fff; color: var(--nmc-teal); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: .2s; }
.nmb-slot:not(:disabled):hover { border-color: var(--nmc-turq); color: var(--nmc-accent); }
.nmb-slot:disabled { text-decoration: line-through; opacity: .4; cursor: not-allowed; }
.nmb-slot.is-on { background: var(--nmc-turq); color: #fff; border-color: var(--nmc-turq); }
.nmb-skel { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.nmb-skel i { height: 44px; border-radius: 12px; background: linear-gradient(90deg, var(--nmc-bg), var(--nmc-turq-50), var(--nmc-bg)); background-size: 200% 100%; animation: nmsk 1.2s infinite; }
@keyframes nmsk { to { background-position: -200% 0; } }
.nmb-empty { padding: 26px; text-align: center; border-radius: 14px; background: var(--nmc-bg); color: var(--nmc-ink-2); display: flex; gap: 8px; align-items: center; justify-content: center; }
.nmb-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--nmc-line); }
.nmb-final { display: grid; grid-template-columns: 1fr 300px; gap: 28px; align-items: start; }
@media (max-width: 860px) { .nmb-final { grid-template-columns: 1fr; } .nmb-aside { order: -1; } }
.nmb-aside { background: linear-gradient(160deg, var(--nmc-teal), var(--nmc-teal-900)); color: #fff; border-radius: 18px; padding: 22px; position: sticky; top: 110px; }
.nmb-aside h4 { margin: 0 0 12px; font-size: 13px; text-transform: uppercase; letter-spacing: .14em; color: #7FE3DF; }
.nmb-sum { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.nmb-sum li { display: flex; gap: 12px; align-items: flex-start; margin: 0; }
.nmb-sum li .nm-ico { flex: none; margin-top: 3px; color: var(--nmc-turq); }
.nmb-sum li span { display: flex; flex-direction: column; font-weight: 600; font-size: 14.5px; }
.nmb-sum li small { font-size: 11.5px; font-weight: 500; opacity: .7; text-transform: uppercase; letter-spacing: .08em; }
.nmb-trust { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 13px; line-height: 1.9; color: rgba(255, 255, 255, .85); }
.nmb-trust .nm-ico { color: var(--nmc-turq); vertical-align: -2px; }
.nmb-done { text-align: center; max-width: 520px; margin: 0 auto; padding: 10px 0; }
.nmb-done .nmb-sum { text-align: left; background: var(--nmc-bg); border-radius: 16px; padding: 18px; margin: 18px 0; }
.nmb-done .nmb-sum li small { color: var(--nmc-ink-2); opacity: 1; }
.nmb-done h3 { font-size: 28px; margin: 14px 0 6px; }
.nmb-ref { font-size: 15px; color: var(--nmc-ink-2); margin: 0 0 8px; }
.nmb-ref strong { color: var(--nmc-accent); font-size: 18px; letter-spacing: .04em; }
.nmb-done-ic svg { width: 84px; height: 84px; }
.nmb-done-ic circle { fill: none; stroke: var(--nmc-turq); stroke-width: 2.5; stroke-dasharray: 160; stroke-dashoffset: 160; animation: nmdraw .7s var(--nmc-ease) forwards; }
.nmb-done-ic path { fill: none; stroke: var(--nmc-teal); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: nmdraw .45s .55s var(--nmc-ease) forwards; }
@keyframes nmdraw { to { stroke-dashoffset: 0; } }
.nmb-done-a { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.nmb-error { padding: 30px; text-align: center; color: var(--nmc-err); }

/* ---------- Chat widget ---------- */
.nmc { position: fixed; right: 22px; bottom: calc(22px + var(--nm-chat-offset, 0px)); z-index: 9990; font-family: inherit; color: var(--nmc-teal); }
.nmc-launch { position: relative; width: 62px; height: 62px; border-radius: 50%; border: 0; cursor: pointer; color: #fff; background: radial-gradient(circle at 30% 25%, #2fd3cd, var(--nmc-turq) 45%, var(--nmc-accent)); box-shadow: 0 14px 34px -10px rgba(9, 183, 178, .9), inset 0 0 0 1px rgba(255, 255, 255, .25); display: grid; place-items: center; transition: transform .35s var(--nmc-ease); }
.nmc-launch:hover { transform: scale(1.07) rotate(-4deg); }
.nmc-launch > span { grid-area: 1 / 1; display: grid; place-items: center; transition: transform .35s var(--nmc-ease), opacity .25s; }
.nmc-l-close { opacity: 0; transform: rotate(-90deg) scale(.6); }
.nmc.is-open .nmc-l-open { opacity: 0; transform: rotate(90deg) scale(.6); }
.nmc.is-open .nmc-l-close { opacity: 1; transform: none; }
.nmc-pulse { position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--nmc-turq); animation: nmpulse 2.4s infinite; pointer-events: none; }
.nmc.is-open .nmc-pulse { display: none; }
@keyframes nmpulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }
.nmc-badge { position: absolute; top: -2px; right: -2px; min-width: 20px; height: 20px; border-radius: 10px; background: #e5484d; color: #fff; font-size: 11.5px; font-weight: 700; display: grid; place-items: center; padding: 0 5px; box-shadow: 0 0 0 2px #fff; }
.nmc-badge[hidden] { display: none; }
.nmc-tease { position: absolute; right: 0; bottom: 76px; width: 250px; background: #fff; border-radius: 18px 18px 4px 18px; padding: 14px 34px 14px 16px; box-shadow: 0 20px 50px -18px rgba(11, 58, 74, .45); border: 1px solid var(--nmc-line); font-size: 13.5px; line-height: 1.45; cursor: pointer; opacity: 0; transform: translateY(10px) scale(.96); pointer-events: none; transition: .4s var(--nmc-ease); display: flex; flex-direction: column; gap: 3px; }
.nmc-tease span { color: var(--nmc-ink-2); }
.nmc-tease-x { position: absolute; top: 8px; right: 8px; border: 0; background: none; color: var(--nmc-ink-2); cursor: pointer; padding: 2px; }
.nmc.show-tease .nmc-tease { opacity: 1; transform: none; pointer-events: auto; }
.nmc-panel { position: absolute; right: 0; bottom: 78px; width: 380px; height: min(620px, calc(100vh - 140px - var(--nm-chat-offset, 0px))); background: #fff; border-radius: 22px; box-shadow: 0 40px 90px -30px rgba(7, 40, 51, .55), 0 0 0 1px rgba(11, 58, 74, .06); display: flex; flex-direction: column; overflow: hidden; opacity: 0; transform: translateY(18px) scale(.96); transform-origin: bottom right; pointer-events: none; visibility: hidden; transition: opacity .3s var(--nmc-ease), transform .4s var(--nmc-ease), visibility 0s .4s; }
.nmc.is-open .nmc-panel { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
.nmc-head { display: flex; align-items: center; gap: 12px; padding: 16px 14px 16px 18px; color: #fff; background: radial-gradient(120% 140% at 0% 0%, var(--nmc-teal-500), var(--nmc-teal) 45%, var(--nmc-teal-900)); position: relative; overflow: hidden; }
.nmc-head::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(9, 183, 178, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(9, 183, 178, .12) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(90deg, transparent, #000); pointer-events: none; }
.nmc-av { position: relative; width: 42px; height: 42px; border-radius: 14px; background: rgba(9, 183, 178, .2); border: 1px solid rgba(127, 227, 223, .45); display: grid; place-items: center; color: #7FE3DF; flex: none; }
.nmc-dot { position: absolute; right: -3px; bottom: -3px; width: 12px; height: 12px; border-radius: 50%; background: #9aa9ae; box-shadow: 0 0 0 2px var(--nmc-teal); }
.nmc-dot.is-on { background: #2ee6a0; }
.nmc-ht { display: flex; flex-direction: column; flex: 1; min-width: 0; z-index: 1; }
.nmc-ht strong { font-size: 15.5px; }
.nmc-ht small { font-size: 12px; color: rgba(255, 255, 255, .75); }
.nmc-hbtn { z-index: 1; width: 36px; height: 36px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; text-decoration: none; transition: background .2s; }
.nmc-hbtn:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.nmc-msgs { flex: 1; overflow-y: auto; padding: 18px 14px 8px; display: flex; flex-direction: column; gap: 10px; background: linear-gradient(180deg, var(--nmc-bg), #fff 40%); overscroll-behavior: contain; }
.nmc-b { max-width: 84%; animation: nmcIn .35s var(--nmc-ease); }
@keyframes nmcIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.nmc-b p { margin: 0; padding: 11px 14px; border-radius: 18px; font-size: 14.5px; line-height: 1.5; word-wrap: break-word; }
.nmc-b time { display: block; font-size: 10.5px; color: var(--nmc-ink-2); margin: 4px 6px 0; }
.nmc-b em { display: block; font-style: normal; font-size: 11.5px; color: var(--nmc-accent); font-weight: 600; margin: 0 6px 3px; }
.nmc-b--bot p, .nmc-b--agent p { background: #fff; border: 1px solid var(--nmc-line); border-bottom-left-radius: 6px; box-shadow: 0 6px 16px -12px rgba(11, 58, 74, .4); }
.nmc-b--agent p { border-color: rgba(9, 183, 178, .5); }
.nmc-b--visitor { align-self: flex-end; }
.nmc-b--visitor p { background: linear-gradient(135deg, var(--nmc-teal-500), var(--nmc-teal)); color: #fff; border-bottom-right-radius: 6px; }
.nmc-b--visitor time { text-align: right; }
.nmc-b.is-pending { opacity: .7; }
.nmc-b--system { align-self: center; max-width: 90%; text-align: center; font-size: 12px; color: var(--nmc-ink-2); background: var(--nmc-turq-50); padding: 5px 12px; border-radius: 999px; }
.nmc-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.nmc-links a { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: var(--nmc-accent); background: var(--nmc-turq-50); border: 1px solid rgba(9, 183, 178, .35); border-radius: 999px; padding: 6px 12px; text-decoration: none; transition: .2s; }
.nmc-links a:hover { background: var(--nmc-turq); color: #fff; }
.nmc-typing { align-self: flex-start; display: flex; gap: 4px; padding: 14px 16px; background: #fff; border: 1px solid var(--nmc-line); border-radius: 18px 18px 18px 6px; }
.nmc-typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--nmc-turq); animation: nmdot 1.2s infinite; }
.nmc-typing i:nth-child(2) { animation-delay: .15s; }
.nmc-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes nmdot { 0%, 60%, 100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-5px); opacity: 1; } }
.nmc-quick { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px; justify-content: flex-end; }
.nmc-quick:not(:empty) { padding: 6px 14px 10px; }
.nmc-quick button { border: 1.5px solid var(--nmc-turq); background: #fff; color: var(--nmc-accent); border-radius: 999px; padding: 8px 13px; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: .2s; animation: nmcIn .4s var(--nmc-ease) backwards; }
.nmc-quick button:nth-child(2) { animation-delay: .06s; }
.nmc-quick button:nth-child(3) { animation-delay: .12s; }
.nmc-quick button:nth-child(4) { animation-delay: .18s; }
.nmc-quick button:hover { background: var(--nmc-turq); color: #fff; }
.nmc-form { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--nmc-line); background: #fff; }
.nmc-form input { flex: 1; min-width: 0; border: 1.5px solid var(--nmc-line); border-radius: 999px; padding: 11px 16px; font: inherit; font-size: 16px; color: var(--nmc-teal); outline: none; }
.nmc-form input:focus { border-color: var(--nmc-turq); }
.nmc-form button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--nmc-teal); color: #fff; cursor: pointer; display: grid; place-items: center; flex: none; transition: background .2s, transform .2s; }
.nmc-form button:hover { background: var(--nmc-turq); transform: rotate(-12deg); }
.nmc-foot { text-align: center; font-size: 10.5px; color: var(--nmc-ink-2); padding: 0 0 8px; background: #fff; }
@media (max-width: 600px) {
	.nmc { right: 14px; bottom: calc(14px + var(--nm-chat-offset, 0px)); }
	.nmc-launch { width: 56px; height: 56px; }
	.nmc-panel { position: fixed; inset: 0; width: auto; height: auto; border-radius: 0; transform: translateY(100%); bottom: 0; }
	.nmc.is-open .nmc-panel { transform: none; }
	.nmc.is-open .nmc-launch { opacity: 0; pointer-events: none; }
	.nmc-tease { bottom: 68px; }
	html.nmc-lock, html.nmc-lock body { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
	.nmc *, .nmb * { animation: none !important; transition: none !important; }
}
.nm-form-svc { margin: 0; display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--nmc-turq-50); color: var(--nmc-accent); font-weight: 600; font-size: 14.5px; }

/* Booking: 'specialist is matched to you' note (doctor choice removed) */
.nmb-match{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px;padding:14px 16px;border-radius:14px;background:rgba(20,184,166,.08);border:1px solid rgba(20,184,166,.25);color:#0b3a4a;font-size:14px;line-height:1.5}
.nmb-match .nm-ico{flex:0 0 auto;margin-top:2px;color:#0b8f86}
.nmb-match strong{display:block;margin-bottom:2px}
