/* AcadiPlus — companion styles for components the Habitline template doesn't ship
   (instant-quote modal, WhatsApp bubble, left mobile drawer polish).
   Template look & feel lives untouched in assets/app.css. */

/* ---------- left mobile drawer ---------- */
.acad-drawer { -webkit-overflow-scrolling: touch; }
.acad-drawer::-webkit-scrollbar { width: 6px; }
.acad-drawer::-webkit-scrollbar-thumb { background: #d4d4d8; border-radius: 3px; }

/* ---------- WhatsApp bubble ---------- */
#wa-bubble {
  position: fixed; right: 22px; bottom: 22px; z-index: 1000;
  width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #25d366; color: #fff;
  box-shadow: 0 12px 28px -8px rgba(37,211,102,.6), 0 4px 10px rgba(0,0,0,.18);
  transition: transform .18s ease;
}
#wa-bubble svg { width: 30px; height: 30px; }
#wa-bubble:hover { transform: scale(1.08); }
#wa-bubble::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(37,211,102,.55); animation: wa-pulse 2.4s infinite;
}
@keyframes wa-pulse { 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }
@media (max-width:640px){ #wa-bubble{ width:52px;height:52px;right:16px;bottom:16px; } }
@media print { #wa-bubble { display:none; } }

/* ---------- instant-quote modal ---------- */
.acad-hp { position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; }
.acad-modal { position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; padding:20px; }
.acad-modal[hidden] { display:none; }
.acad-modal__backdrop { position:absolute; inset:0; background:rgba(10,11,25,.55); backdrop-filter:blur(3px); animation:acad-fade .2s ease; }
.acad-modal__panel {
  position:relative; width:100%; max-width:860px; max-height:calc(100vh - 40px);
  overflow:hidden; background:#fff; border-radius:20px;
  box-shadow:0 40px 90px -20px rgba(10,11,25,.5); animation:acad-pop .22s cubic-bezier(.2,.8,.2,1);
}
.acad-modal__x { position:absolute; top:12px; right:12px; z-index:3; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.14); color:#fff; }
.acad-modal__x:hover { background:rgba(255,255,255,.24); }
.acad-modal__grid { display:grid; grid-template-columns:300px 1fr; max-height:calc(100vh - 40px); }
.acad-modal__rail { background:linear-gradient(160deg,#14162e,#050616); color:#fff; padding:40px 32px; }
.acad-modal__body { padding:36px; overflow-y:auto; }
.acad-tick { width:20px; height:20px; flex-shrink:0; stroke:#fff; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:720px){
  .acad-modal__x{ color:#18181b; background:rgba(0,0,0,.06); }
  .acad-modal__grid{ grid-template-columns:1fr; }
  .acad-modal__rail{ display:none; }
  .acad-modal__body{ padding:28px 22px; }
}
.acad-field { margin-bottom:14px; }
.acad-field__row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:480px){ .acad-field__row{ grid-template-columns:1fr; } }
.acad-field label { display:block; font-size:.82rem; font-weight:600; color:#18181b; margin-bottom:6px; }
.acad-field label span { color:#e5484d; margin-left:2px; }
.acad-field label .acad-opt { color:#a1a1aa; font-weight:500; }
.acad-field input, .acad-field select, .acad-field textarea {
  width:100%; border:1px solid #d4d4d8; border-radius:10px; padding:11px 13px; font-size:.92rem;
  color:#18181b; background:#fff; transition:border-color .15s ease, box-shadow .15s ease;
}
.acad-field input:focus, .acad-field select:focus, .acad-field textarea:focus {
  outline:none; border-color:#1731c9; box-shadow:0 0 0 3px rgba(23,49,201,.12);
}
.acad-field textarea { resize:vertical; }
.acad-more { margin:4px 0 8px; }
.acad-more summary { cursor:pointer; font-size:.82rem; font-weight:600; color:#1731c9; list-style:none; }
.acad-more summary::-webkit-details-marker { display:none; }
.acad-more[open] summary { margin-bottom:12px; }
.acad-error { color:#c11574; font-size:.82rem; margin:4px 0 10px; }
.acad-submit {
  width:100%; border:0; border-radius:999px; cursor:pointer; background:#1731c9; color:#fff;
  font-weight:600; font-size:.95rem; padding:14px 20px; display:flex; align-items:center; justify-content:center; gap:8px;
  transition:transform .15s ease, background .2s ease;
}
.acad-submit:hover { background:#111f9e; }
.acad-submit:active { transform:scale(.98); }
.acad-submit[disabled] { opacity:.75; cursor:progress; }
.acad-submit__loading { display:none; align-items:center; gap:8px; }
.acad-submit.is-loading .acad-submit__label { display:none; }
.acad-submit.is-loading .acad-submit__loading { display:inline-flex; }
.acad-submit--wa { background:#25d366; margin-top:18px; text-decoration:none; }
.acad-submit--wa:hover { background:#1fb855; }
.acad-spin { width:15px; height:15px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:acad-spin .7s linear infinite; }
.acad-fineprint { font-size:.72rem; color:#a1a1aa; text-align:center; margin-top:10px; }
.acad-fineprint a { color:#71717a; text-decoration:underline; }
#quote-success { text-align:center; padding:22px 8px; }
#quote-success .acad-success__mark { width:60px; height:60px; border-radius:50%; background:#e7f8e7; color:#12832b; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
#quote-success h3 { font-size:1.25rem; font-weight:600; color:#18181b; margin-bottom:8px; }
#quote-success p { font-size:.9rem; color:#52525b; }
[data-quote-success] { text-align:center; padding:22px 8px; }
[data-quote-success] .acad-success__mark { width:60px; height:60px; border-radius:50%; background:#e7f8e7; color:#12832b; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
[data-quote-success] h3 { font-size:1.25rem; font-weight:600; color:#18181b; margin-bottom:8px; }
[data-quote-success] p { font-size:.9rem; color:#52525b; }
@keyframes acad-fade { from { opacity:0; } }
@keyframes acad-pop  { from { opacity:0; transform:translateY(14px) scale(.98); } }
@keyframes acad-spin { to { transform:rotate(360deg); } }
body.acad-modal-open { overflow:hidden; }

/* admin panel */
.adm-wrap { max-width:1180px; margin:0 auto; padding:28px 20px 80px; }
.adm-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.adm-top img { height:30px; width:auto; }
.adm-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
@media (max-width:640px){ .adm-stat-row{ grid-template-columns:1fr; } }
.adm-stat { background:#fff; border:1px solid #e4e4e7; border-radius:14px; padding:18px 20px; }
.adm-stat b { display:block; font-size:1.9rem; font-weight:600; color:#18181b; line-height:1.1; }
.adm-stat span { font-size:.8rem; color:#71717a; }
.adm-card { background:#fff; border:1px solid #e4e4e7; border-radius:16px; overflow:hidden; }
.adm-card__head { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #e4e4e7; }
.adm-login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; background:#f4f4f5; }
.adm-login form { background:#fff; border:1px solid #e4e4e7; border-radius:18px; padding:34px; width:100%; max-width:380px; }
.adm-login img { height:30px; margin-bottom:22px; }
.adm-table-wrap { overflow-x:auto; }
.adm-table { width:100%; border-collapse:collapse; min-width:920px; }
.adm-table th, .adm-table td { padding:.8rem 1rem; text-align:left; font-size:.85rem; border-bottom:1px solid #f1f1f3; vertical-align:top; }
.adm-table thead th { background:#fafafa; font-weight:600; color:#18181b; }
