.lsfs-public-wrap{max-width:920px;margin:24px auto;padding:0 16px}.lsfs-public-card{background:#fff;border:1px solid #dde7f0;border-radius:18px;padding:24px;box-shadow:0 6px 20px rgba(15,23,42,.05)}.lsfs-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lsfs-public-grid .wide{grid-column:1/-1}.lsfs-public-wrap input,.lsfs-public-wrap select,.lsfs-public-wrap textarea{width:100%}.lsfs-public-success{background:#e8f7ee;border:1px solid #b8e0c3;color:#14532d;padding:12px 14px;border-radius:12px;margin-bottom:16px}.lsfs-public-error{background:#fff1f1;border:1px solid #f5c3c3;color:#8f1d1d;padding:12px 14px;border-radius:12px;margin-bottom:16px}.lsfs-timeline{margin-top:18px}.lsfs-timeline-item{padding:14px;border:1px solid #e5edf5;border-radius:14px;background:#fafcff;margin-bottom:10px}@media(max-width:800px){.lsfs-public-grid{grid-template-columns:1fr}}
.lsfs-faq-list{display:grid;gap:12px}.lsfs-faq-item{border:1px solid #dde7f0;border-radius:16px;background:#fbfdff;overflow:hidden}.lsfs-faq-item summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:700;display:flex;justify-content:space-between;gap:12px;align-items:center}.lsfs-faq-item summary::-webkit-details-marker{display:none}.lsfs-faq-answer{padding:0 18px 18px;border-top:1px solid #ecf1f6}.lsfs-faq-meta{font-size:12px;color:#5d6b82;margin:12px 0}.lsfs-faq-feedback{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.lsfs-faq-pill{display:inline-block;padding:4px 10px;border-radius:999px;background:#eef4ff;color:#2446b3;font-size:12px;font-weight:700}

/* v2.2 appointment booking */
.lsfs-public-card{background:#fff;border:1px solid #dde7f2;border-radius:18px;padding:22px;box-shadow:0 10px 26px rgba(31,61,102,.06);max-width:980px;margin:0 auto 24px}
.lsfs-public-header h2{margin:0 0 8px}.lsfs-public-header p{margin:0 0 18px;color:#5d6b82}
.lsfs-alert{padding:12px 14px;border-radius:12px;margin-bottom:16px}.lsfs-alert-success{background:#ecfdf3;color:#166534}.lsfs-alert-error{background:#fef2f2;color:#b91c1c}
.lsfs-public-grid{display:grid;gap:16px}.lsfs-public-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lsfs-public-grid-span-2{grid-column:1/-1}
.lsfs-public-form label{display:block;font-weight:600;margin-bottom:6px}.lsfs-public-form input,.lsfs-public-form select,.lsfs-public-form textarea{width:100%;border:1px solid #d7e2ee;border-radius:12px;padding:12px 14px;box-sizing:border-box}
.lsfs-public-actions{margin-top:18px}.lsfs-public-actions button{background:#2446b3;color:#fff;border:none;border-radius:12px;padding:12px 16px;font-weight:700;cursor:pointer}
@media(max-width:760px){.lsfs-public-grid-2{grid-template-columns:1fr}}

.lsfs-kb-suggest{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px 16px;margin:0 0 18px}.lsfs-kb-suggest-label{font-size:13px;font-weight:700;color:#1d4ed8;margin-bottom:8px}.lsfs-kb-suggest-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lsfs-kb-suggest-list li{background:#fff;border:1px solid #dbeafe;border-radius:12px;padding:10px 12px}.lsfs-kb-suggest-list li strong{display:block;color:#0f172a;margin-bottom:4px}.lsfs-kb-suggest-list li span{display:block;color:#475569;font-size:13px;line-height:1.5}

.lsfs-kb-suggest-list li em{display:block;margin-top:4px;font-size:12px;color:#5b6470;font-style:normal;}
.lsfs-faq-meta{font-size:13px;color:#5b6470;margin-bottom:10px;}

/* v2.5 appointment calendar */
.lsfs-appointment-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.95fr);gap:18px;align-items:start}.lsfs-appointment-calendar-card,.lsfs-appointment-slots-card{border:1px solid #dbe5f1;border-radius:18px;background:linear-gradient(180deg,#ffffff,#f8fbff);padding:16px;box-shadow:0 8px 24px rgba(36,70,179,.06)}.lsfs-appointment-side-title{font-size:15px;font-weight:800;color:#0f172a;margin-bottom:10px}.lsfs-appointment-selected{font-size:14px;color:#334155;padding:12px 14px;border:1px solid #d7e2ee;border-radius:14px;background:#fff;margin-bottom:12px;min-height:48px}.lsfs-appointment-side-note{margin-top:12px;font-size:12px;color:#64748b;line-height:1.5}.lsfs-appointment-calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin-bottom:12px}.lsfs-cal-month{text-align:center;font-weight:800;color:#0f172a;font-size:16px}.lsfs-cal-nav{border:1px solid #d7e2ee;background:#fff;border-radius:12px;height:40px;cursor:pointer;font-size:20px;line-height:1;color:#2446b3}.lsfs-cal-nav[disabled]{opacity:.45;cursor:not-allowed}.lsfs-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.lsfs-cal-grid--labels span{font-size:12px;font-weight:700;color:#64748b;text-align:center;padding:6px 0}.lsfs-cal-day{appearance:none;border:1px solid #d7e2ee;background:#fff;min-height:48px;border-radius:14px;font-weight:700;color:#0f172a;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.lsfs-cal-day.is-today{box-shadow:inset 0 0 0 2px #93c5fd}.lsfs-cal-day.is-selected{background:#2446b3;color:#fff;border-color:#2446b3;box-shadow:0 8px 18px rgba(36,70,179,.22)}.lsfs-cal-day.is-disabled{background:#f8fafc;color:#94a3b8;border-style:dashed;cursor:not-allowed}.lsfs-cal-day--empty{visibility:hidden}.lsfs-cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:#64748b}.lsfs-cal-legend span{display:inline-flex;align-items:center;gap:6px}.lsfs-cal-legend i{display:inline-block;width:10px;height:10px;border-radius:999px;background:#cbd5e1}.lsfs-cal-legend .is-open{background:#86efac}.lsfs-cal-legend .is-selected{background:#2446b3}.lsfs-cal-legend .is-disabled{background:#e2e8f0}.lsfs-appointment-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lsfs-slot-button{appearance:none;border:1px solid #d7e2ee;background:#fff;border-radius:12px;padding:11px 12px;font-weight:700;color:#0f172a;cursor:pointer;transition:all .18s ease}.lsfs-slot-button:hover{border-color:#8fb3ff;box-shadow:0 6px 16px rgba(36,70,179,.1)}.lsfs-slot-button.is-selected{background:#0f172a;color:#fff;border-color:#0f172a}.lsfs-appointment-empty{padding:14px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;background:#fff}@media(max-width:900px){.lsfs-appointment-layout{grid-template-columns:1fr}.lsfs-appointment-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.lsfs-appointment-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.lsfs-cal-grid{gap:6px}.lsfs-cal-day{min-height:42px;border-radius:12px}}

/* Live chat widget */
.lsfs-chat-shell{font-family:inherit}
.lsfs-chat-launcher{position:fixed;right:20px;bottom:20px;z-index:9999;display:flex;align-items:center;gap:10px;background:#1d4ed8;color:#fff;border:none;border-radius:999px;padding:14px 18px;box-shadow:0 16px 34px rgba(15,23,42,.25);cursor:pointer}
.lsfs-chat-launcher-dot{width:10px;height:10px;border-radius:50%;background:#86efac}
.lsfs-chat-shell-embedded .lsfs-chat-panel,.lsfs-chat-shell-widget .lsfs-chat-panel{width:min(380px,calc(100vw - 24px));background:#fff;border:1px solid #dbe3ef;border-radius:18px;box-shadow:0 18px 45px rgba(15,23,42,.22);overflow:hidden}
.lsfs-chat-shell-widget .lsfs-chat-panel{position:fixed;right:20px;bottom:84px;z-index:9999}
.lsfs-chat-shell-embedded .lsfs-chat-panel{position:relative;bottom:auto;right:auto;width:100%;max-width:760px;margin:0 auto}
.lsfs-chat-panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 18px;background:linear-gradient(135deg,#eff6ff,#fff)}
.lsfs-chat-close{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:#334155}
.lsfs-chat-subtitle{font-size:12px;color:#64748b;margin-top:4px}
.lsfs-chat-presession,.lsfs-chat-active{padding:16px 18px}
.lsfs-chat-welcome-bubble{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px;color:#334155;margin-bottom:14px}
.lsfs-chat-field-label{display:block;font-weight:600;margin:8px 0 6px}
.lsfs-chat-name,.lsfs-chat-email,.lsfs-chat-question,.lsfs-chat-reply{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:11px 12px;box-sizing:border-box}
.lsfs-chat-question{min-height:110px}
.lsfs-chat-pre-actions,.lsfs-chat-composer-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}
.lsfs-chat-error{margin-top:10px;padding:10px 12px;background:#fef2f2;color:#991b1b;border-radius:10px}
.lsfs-chat-thread{height:320px;overflow:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px}
.lsfs-chat-message{margin-bottom:12px}
.lsfs-chat-message .meta{font-size:12px;color:#64748b;margin-bottom:4px}
.lsfs-chat-message .bubble{display:inline-block;max-width:92%;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #e2e8f0}
.lsfs-chat-message.staff{text-align:right}
.lsfs-chat-message.staff .bubble{background:#dbeafe;border-color:#bfdbfe}
.lsfs-chat-message.system .bubble{background:#fef9c3;border-color:#fde68a}
.lsfs-chat-status-text{font-size:12px;color:#64748b}
@media (max-width:640px){
  .lsfs-chat-launcher{right:12px;left:12px;bottom:12px;justify-content:center}
  .lsfs-chat-shell-widget .lsfs-chat-panel{right:12px;left:12px;bottom:70px;width:auto}
}
