/* School Drive website assistant (brand: navy #1D2A60, green #478857, Epilogue) */
.sdb { position: fixed; right: 20px; bottom: 20px; z-index: 99990; font-family: Epilogue, system-ui, sans-serif; }
.sdb-btn { width: 60px; height: 60px; border-radius: 50%; border: 0; background: #478857; color: #fff; box-shadow: 0 10px 28px rgba(5, 14, 47, .35); cursor: pointer; display: grid; place-items: center; transition: transform .15s; }
.sdb-btn:hover { transform: scale(1.06); }
/* the open chat sits on the bottom edge of the screen (no bottom margin) and the bubble hides */
.sdb-panel { position: fixed; right: 20px; bottom: 0; width: min(380px, calc(100vw - 32px)); height: min(620px, calc(100vh - 12px)); background: #fff; border-radius: 18px 18px 0 0; box-shadow: 0 -6px 40px rgba(5, 14, 47, .28);
    display: none; flex-direction: column; overflow: hidden; }
.sdb.open .sdb-panel { display: flex; }
.sdb.open .sdb-btn { display: none; }
.sdb-head { background: linear-gradient(135deg, #1D2A60, #050E2F); color: #fff; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; }
.sdb-title { display: flex; flex-direction: column; line-height: 1.2; }
.sdb-title strong { font-size: 16px; }
.sdb-title span { font-size: 12px; color: #75B383; }
.sdb-close { background: transparent; border: 0; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.sdb-list { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 8px; background: #f6f8f7; }
.sdb-msg { max-width: 85%; padding: 9px 12px; border-radius: 14px; font-size: 14px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; color: #17223A; }
.sdb-msg.bot { align-self: flex-start; background: #fff; border: 1px solid #e3e9e5; border-bottom-left-radius: 4px; }
.sdb-msg.me { align-self: flex-end; background: #478857; color: #fff; border-bottom-right-radius: 4px; }
.sdb-msg.typing { color: #8a96a0; }
.sdb-msg a { color: #317589; text-decoration: underline; }
.sdb-msg.me a { color: #fff; }
.sdb-chips { display: flex; gap: 6px; overflow-x: auto; padding: 8px 12px 0; background: #fff; }
.sdb-chips { scrollbar-width: none; }
.sdb-chips::-webkit-scrollbar { display: none; }
.sdb-chip { flex: none; border: 1px solid #cfe0d4; background: #eef6f0; color: #2f6b40; border-radius: 99px; padding: 6px 10px; font-size: 12.5px; cursor: pointer; font-family: inherit; }
.sdb-form, .sdb-contact { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 10px 12px 12px; background: #fff; }
.sdb-contact { display: none; grid-template-columns: 1fr; border-top: 1px solid #eef1f0; }
.sdb-contact p { margin: 0; font-size: 13px; color: #5f6b74; }
.sdb-input { border: 1px solid #d8e0dc; border-radius: 10px; padding: 9px 11px; font-size: 14px; font-family: inherit; color: #17223A; min-width: 0; }
.sdb-input:focus { outline: 2px solid #75B383; border-color: transparent; }
.sdb-send { border: 0; background: #1D2A60; color: #fff; border-radius: 10px; padding: 0 14px; font-weight: 700; font-family: inherit; cursor: pointer; min-height: 38px; }
.sdb-send:disabled { opacity: .6; }
@media (max-width: 480px) { .sdb { right: 14px; bottom: 14px; } .sdb-panel { right: 0; width: 100vw; height: calc(100vh - 48px); } }
