/* Booker — EnsureLoc Records-Readiness Assistant */
.booker-launcher{position:fixed;right:22px;bottom:22px;z-index:90;display:flex;align-items:center;gap:10px;border:0;border-radius:999px;background:#243C54;color:#fff;padding:12px 17px 12px 12px;box-shadow:0 12px 34px rgba(26,44,64,.28);font:700 15px/1 'Archivo','Public Sans',system-ui,sans-serif;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.booker-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(26,44,64,.34)}
.booker-launcher:focus-visible,.booker-close:focus-visible,.booker-choice:focus-visible,.booker-send:focus-visible,.booker-input:focus-visible{outline:3px solid #FC9018;outline-offset:2px}
.booker-avatar{width:38px;height:38px;border-radius:50%;background:#18A8A8;color:#fff;display:grid;place-items:center;font:900 19px/1 'Archivo',system-ui,sans-serif;border:2px solid rgba(255,255,255,.65);flex:none}
.booker-pulse{position:absolute;left:42px;top:10px;width:10px;height:10px;border-radius:50%;background:#1FA05C;border:2px solid #fff}
.booker-panel{position:fixed;right:22px;bottom:84px;z-index:91;width:min(390px,calc(100vw - 28px));height:min(650px,calc(100vh - 120px));background:#fff;border:1px solid #D9E3EF;border-radius:18px;box-shadow:0 22px 60px rgba(26,44,64,.26);overflow:hidden;display:none;grid-template-rows:auto 1fr auto;font-family:'Public Sans',system-ui,sans-serif;color:#243C54}
.booker-panel.open{display:grid}
.booker-head{background:#243C54;color:#fff;padding:16px 17px;display:flex;align-items:center;gap:12px}
.booker-head .booker-avatar{width:42px;height:42px;background:#18A8A8}
.booker-title{min-width:0;flex:1}
.booker-title strong{display:block;font:800 17px/1.2 'Archivo',system-ui,sans-serif;color:#fff}
.booker-title span{display:block;font-size:12.5px;color:#C4D1DC;margin-top:3px}
.booker-close{border:0;background:rgba(255,255,255,.1);color:#fff;width:36px;height:36px;border-radius:10px;font-size:23px;line-height:1;cursor:pointer}
.booker-log{padding:18px;overflow-y:auto;background:linear-gradient(#FAFBFC,#F0F5FA);scroll-behavior:smooth}
.booker-row{display:flex;margin-bottom:12px}
.booker-row.user{justify-content:flex-end}
.booker-msg{max-width:88%;padding:12px 14px;border-radius:14px;font-size:14.5px;line-height:1.5;box-shadow:0 1px 2px rgba(36,60,84,.06)}
.booker-row.bot .booker-msg{background:#fff;border:1px solid #D9E3EF;border-top-left-radius:5px}
.booker-row.user .booker-msg{background:#243C54;color:#fff;border-top-right-radius:5px}
.booker-msg strong{color:inherit}
.booker-msg ul{margin:8px 0 0 18px;padding:0}
.booker-msg li{margin:4px 0}
.booker-msg a{font-weight:700;color:#128585}
.booker-row.user .booker-msg a{color:#fff}
.booker-choices{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}
.booker-choice{border:1.5px solid #18A8A8;background:#fff;color:#243C54;border-radius:999px;padding:9px 12px;font:700 13px/1.2 'Public Sans',system-ui,sans-serif;cursor:pointer;text-align:left}
.booker-choice:hover{background:#EAF2FB}
.booker-choice.primary{background:#FC9018;border-color:#FC9018;color:#fff}
.booker-choice.primary:hover{background:#E07C08}
.booker-foot{border-top:1px solid #D9E3EF;background:#fff;padding:10px}
.booker-warning{font-size:10.5px;line-height:1.35;color:#5A6B7D;padding:0 4px 8px}
.booker-form{display:flex;gap:8px}
.booker-input{flex:1;min-width:0;border:1.5px solid #D9E3EF;border-radius:12px;padding:11px 12px;font:14px 'Public Sans',system-ui,sans-serif;color:#243C54}
.booker-send{width:44px;border:0;border-radius:12px;background:#18A8A8;color:#fff;font-size:20px;cursor:pointer}
.booker-typing{display:inline-flex;gap:4px;align-items:center}
.booker-typing i{width:6px;height:6px;border-radius:50%;background:#5A6B7D;animation:booker-bounce 1s infinite ease-in-out}
.booker-typing i:nth-child(2){animation-delay:.12s}.booker-typing i:nth-child(3){animation-delay:.24s}
@keyframes booker-bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.booker-launcher,.booker-log{transition:none;scroll-behavior:auto}.booker-typing i{animation:none}}
@media(max-width:820px){body.hero-visible .booker-launcher{display:none}.booker-launcher{right:14px;bottom:18px;padding:10px}.booker-launcher .booker-label{display:none}.booker-panel{right:14px;bottom:78px;height:min(610px,calc(100vh - 105px))}body.mobile-actions-visible .booker-launcher{bottom:88px}body.mobile-actions-visible .booker-panel{bottom:146px;height:min(610px,calc(100vh - 170px))}}
@media(max-width:520px){.booker-panel{right:10px;bottom:88px;width:calc(100vw - 20px);height:min(68dvh,560px);max-height:calc(100dvh - 118px);border-radius:18px;border:1px solid #D9E3EF}.booker-panel.open{display:grid}.booker-launcher{right:14px}.booker-msg{max-width:92%}}
.booker-avatar{overflow:hidden;background:#18A8A8}
.booker-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.booker-head .booker-avatar{border-color:rgba(255,255,255,.85);box-shadow:0 4px 12px rgba(0,0,0,.18)}

/* 2026-08 typography cleanup */
.booker-launcher,.booker-title strong,.booker-choice,.booker-send{font-family:'Montserrat',Arial,sans-serif!important}
.booker-panel,.booker-msg,.booker-input,.booker-title span,.booker-warning{font-family:'Open Sans',Arial,sans-serif!important}


/* Booker visual cleanup — transparent mascot, no surrounding badge/pulse */
.booker-launcher{
  background:transparent;
  box-shadow:none;
  padding:0;
  gap:9px;
  overflow:visible;
}
.booker-launcher:hover{
  box-shadow:none;
  transform:translateY(-2px);
}
.booker-launcher .booker-label{
  display:inline-flex;
  align-items:center;
  min-height:48px;
  padding:0 18px;
  border-radius:999px;
  background:#243C54;
  color:#fff;
  box-shadow:0 12px 30px rgba(26,44,64,.24);
}
.booker-avatar,
.booker-head .booker-avatar{
  width:64px;
  height:64px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  padding:0;
}
.booker-head .booker-avatar{
  width:58px;
  height:58px;
}
.booker-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:transparent;
}
.booker-pulse{display:none!important;}
@media(max-width:820px){
  .booker-launcher{padding:0!important;}
  .booker-launcher .booker-label{display:none;}
  .booker-avatar{width:66px;height:66px;}
}

/* 2026-08-21: Booker stays compact on phones so page links remain available around it. */
@media(max-width:520px){body .booker-panel.booker-portal-panel{right:10px!important;bottom:88px!important;width:calc(100vw - 20px)!important;height:min(68dvh,560px)!important;max-height:calc(100dvh - 118px)!important;border-radius:18px!important;border:1px solid #D9E3EF!important}}

/* Desktop public pages: dock Booker to the browser edge so it cannot sit on cards. */
@media(min-width:821px){
  body:not([data-portal-page]) .booker-launcher{right:0;top:50%;bottom:auto;transform:translateY(-50%);width:52px;min-height:68px;padding:7px 4px!important;border:1px solid #D9E3EF;border-right:0;border-radius:18px 0 0 18px;background:#fff;box-shadow:0 10px 28px rgba(26,44,64,.16)}
  body:not([data-portal-page]) .booker-launcher:hover{transform:translateY(calc(-50% - 2px));box-shadow:0 12px 32px rgba(26,44,64,.20)}
  body:not([data-portal-page]) .booker-launcher .booker-label{display:none}
  body:not([data-portal-page]) .booker-launcher .booker-avatar{width:44px;height:44px}
  body:not([data-portal-page]) .booker-panel{right:64px;bottom:22px}
}

/* Authenticated mobile portal: keep Booker above the persistent navigation. */
@media(max-width:820px){
  body[data-portal-page] .booker-portal-launcher{right:12px!important;bottom:calc(var(--nav-height,62px) + 14px + env(safe-area-inset-bottom))!important;padding:0!important}
  body[data-portal-page] .booker-portal-launcher .booker-label{display:none!important}
  body[data-portal-page] .booker-portal-launcher .booker-avatar{width:58px;height:58px}
  body[data-portal-page] .booker-portal-panel{right:10px!important;left:auto!important;bottom:calc(var(--nav-height,62px) + 18px + env(safe-area-inset-bottom))!important;width:min(390px,calc(100vw - 20px))!important;height:min(68dvh,560px)!important;max-height:calc(100dvh - var(--nav-height,62px) - 92px)!important;border:1px solid #D9E3EF!important;border-radius:18px!important}
}

/* ===== 2026-09-05 final MVP cleanup: Booker phone footprint =====
   Keeps the assistant clear of primary page content and portal navigation. */
@media(max-width:520px){
  body:not([data-portal-page]) .booker-launcher{right:10px;bottom:12px}
  body:not([data-portal-page]) .booker-launcher .booker-avatar{width:56px;height:56px}
  body:not([data-portal-page]) .booker-panel{right:10px;bottom:78px;width:calc(100vw - 20px);max-height:calc(100dvh - 96px)}
}

