
:root{
  --hdsn-banner-bg:#ffffff;
  --hdsn-banner-text:#111111;
  --hdsn-btn-primary-bg:#80ce2c;
  --hdsn-btn-primary-text:#ffffff;
  --hdsn-btn-primary-hover-bg:#69ab50;
  --hdsn-btn-primary-hover-text:#ffffff;
  --hdsn-btn-secondary-bg:#ffffff;
  --hdsn-btn-secondary-text:#111111;
  --hdsn-btn-secondary-hover-bg:#80ce2c;
  --hdsn-btn-secondary-hover-text:#ffffff;
  --hdsn-btn-primary-border:#80ce2c;
  --hdsn-btn-primary-hover-border:#69ab50;
  --hdsn-btn-secondary-border:#80ce2c;
  --hdsn-btn-secondary-hover-border:#80ce2c;
  --hdsn-btn-radius:5px;
  --hdsn-btn-border-w:2px;
  --hdsn-bell-icon-size:22px;
  --hdsn-bell-bg:#80ce2c;
  --hdsn-bell-icon:#ffffff;

  --hdsn-adminbar-h:0px;
  --hdsn-banner-top:14px;
  --hdsn-banner-radius:16px;

  --hdsn-bell-size:52px;
  --hdsn-bell-radius:5px;
  --hdsn-bell-right:18px;
  --hdsn-bell-bottom:18px;
}

/* Banner (top center) */
.hdsn-banner{
  position: fixed;
  top: calc(var(--hdsn-adminbar-h) + var(--hdsn-banner-top));
  left: 50%;
  transform: translateX(-50%);
  z-index: 99998;
  width: min(560px, calc(100vw - 32px));
  pointer-events: auto;
}
.hdsn-banner__inner{
  background: var(--hdsn-banner-bg);
  color: var(--hdsn-banner-text);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: var(--hdsn-banner-radius);
  box-shadow: 0 10px 40px rgba(0,0,0,.18);
  padding: 14px;
  display: flex;
  flex-direction: column;
}
.hdsn-banner__title{ font-weight: 800; font-size: 16px; margin-bottom: 6px; }
.hdsn-banner__text{ font-size: 13px; opacity: .9; margin-bottom: 10px; }
.hdsn-banner__actions{ display:flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.hdsn-banner__footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:12px;}

.hdsn-btn{border-radius:var(--hdsn-btn-radius);padding:10px 14px;border:var(--hdsn-btn-border-w) solid rgba(0,0,0,.10);cursor:pointer;font-weight:800;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.hdsn-btn--primary{background:var(--hdsn-btn-primary-bg);color:var(--hdsn-btn-primary-text) !important !important;border-color:var(--hdsn-btn-primary-border);}
.hdsn-btn--primary:hover{background:var(--hdsn-btn-primary-hover-bg);color:var(--hdsn-btn-primary-hover-text) !important;border-color:var(--hdsn-btn-primary-hover-border);}
.hdsn-btn--ghost{background:var(--hdsn-btn-secondary-bg);color:var(--hdsn-btn-secondary-text) !important;border-color:var(--hdsn-btn-secondary-border);}
.hdsn-btn--ghost:hover{background:var(--hdsn-btn-secondary-hover-bg);color:var(--hdsn-btn-secondary-hover-text) !important;border-color:var(--hdsn-btn-secondary-hover-border);}

/* Bell launcher */
.hdsn-bell{
  position: fixed;
  right: var(--hdsn-bell-right);
  z-index: 99997;
  width: var(--hdsn-bell-size);
  height: var(--hdsn-bell-size);
  border-radius: var(--hdsn-bell-radius);
  border: 1px solid rgba(0,0,0,.12);
  background: var(--hdsn-bell-bg);
  box-shadow: 0 4px 10px rgba(0,0,0,.10);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-sizing: border-box;
  padding: 0;
  color: var(--hdsn-bell-icon) !important;
  opacity: 1;
  transition: opacity .18s ease;
}

/* Prehide to avoid flash before JS sync */
.hdsn-bell.hdsn-prehide{opacity:0;pointer-events:none;}

/* Prevent visual flicker while matching theme scroll-to-top buttons */
.hdsn-bell.hdsn-is-hidden{ opacity: 0; pointer-events: none; }
.hdsn-bell svg{display:block !important;width:var(--hdsn-bell-icon-size);height:var(--hdsn-bell-icon-size);min-width:18px;min-height:18px;fill:currentColor !important;stroke:currentColor !important;}
.hdsn-bell svg, .hdsn-bell svg *{fill:currentColor !important;stroke:currentColor !important;}
.hdsn-bell svg{pointer-events:none;}

.hdsn-bell--bottom-right{ bottom: var(--hdsn-bell-bottom); }
.hdsn-bell--middle-right{ top: 50%; transform: translateY(-50%); }
.hdsn-bell--near-footer{ bottom: var(--hdsn-bell-bottom); } /* visibility controlled by JS */

/* Modal */
.hdsn-modal{ position: fixed; inset: 0; z-index: 99999; display:none; }
.hdsn-modal.is-open{ display:block; }
.hdsn-modal__backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.50); }
.hdsn-modal__panel{
  position: relative;
  width: min(560px, calc(100vw - 32px));
  margin: 8vh auto 0;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  padding: 18px 18px 14px;
}
.hdsn-modal__close{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:10px !important;border:1px solid rgba(0,0,0,.10) !important;background:#f3f4f6 !important;color:#111 !important;cursor:pointer;font-size:20px;line-height:38px;text-align:center;display:inline-flex;align-items:center;justify-content:center;}
.hdsn-modal__header{ text-align:center; }
.hdsn-modal__icon{
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: rgba(128,206,44,.18);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin: 0 auto 10px;
  color:#111;
}
.hdsn-modal__icon svg{ width: 22px; height:22px; fill: currentColor; }
.hdsn-modal__title{ margin: 0; font-size: 18px; }
.hdsn-modal__subtitle{ margin: 6px 0 0; color:#475569; font-size: 13px; }

.hdsn-form{ margin-top: 14px; }
.hdsn-field{ margin-bottom: 12px; }
.hdsn-field label{ font-weight: 700; display:block; margin-bottom: 6px; }
.hdsn-field input{ width: 100%; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(0,0,0,.12); }
.hdsn-help{ font-size: 12px; color:#64748b; margin-top: 6px; }
.hdsn-link{ color: #2563eb; text-decoration: none; }
.hdsn-consent{ display:flex; gap: 10px; align-items:flex-start; font-size: 12px; color:#334155; margin: 12px 0; }
.hdsn-form__actions{ display:flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.hdsn-form__msg{ margin-top: 10px; font-size: 13px; color:#0f172a; }

.hdsn-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;}

.hdsn-banner{opacity:0;transform:translateX(-50%) translateY(-8px);transition:opacity .25s ease, transform .25s ease;}
.hdsn-banner.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}

.hdsn-modal__close:hover{background:#e5e7eb !important;}

/* Banner animations */
.hdsn-banner{opacity:1;}
.hdsn-banner--anim-none{opacity:1;transform:translateX(-50%) translateY(0);}
.hdsn-banner--anim-fade{opacity:0;transform:translateX(-50%) translateY(0);transition:opacity .25s ease;}
.hdsn-banner--anim-fade.is-visible{opacity:1;}
.hdsn-banner--anim-slide{opacity:0;transform:translateX(-50%) translateY(-10px);transition:opacity .25s ease, transform .25s ease;}
.hdsn-banner--anim-slide.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}

.hdsn-banner__row{display:flex;gap:12px;align-items:flex-start;}
.hdsn-banner__logo{flex:0 0 auto;width:64px;height:64px;border-radius:14px;overflow:hidden;background:#e5e7eb;display:flex;align-items:center;justify-content:center;box-sizing:border-box;}
.hdsn-banner__logo.is-img{background:rgba(0,0,0,.04);padding:0;}
.hdsn-banner__logo--placeholder{align-items:center;justify-content:center;padding:0;}
.hdsn-banner__logo-placeholder{font-weight:900;font-size:20px;line-height:1;color:var(--hdsn-banner-text);}
.hdsn-banner__logo img{max-width:100%;max-height:100%;display:block;}
.hdsn-banner__content{flex:1 1 auto;min-width:0;}
.hdsn-brand{margin:0;font-size:12px;opacity:.75;line-height:1;text-align:left;}
.hdsn-brand a{color:inherit;text-decoration:none;}
.hdsn-brand a:hover{text-decoration:underline;}
.hdsn-brand--modal{margin:0;text-align:left;opacity:.7;}

.hdsn-btn--primary{color:#fff !important;}


/* Responsive: mobile/tablet */
@media (max-width: 768px){
  .hdsn-banner__footer{flex-direction:column-reverse;align-items:center;justify-content:center;gap:10px;}
  .hdsn-banner__actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;justify-content:center;}
  .hdsn-banner__actions .hdsn-btn{width:100%;padding:10px 12px;font-size:14px;}
  .hdsn-brand{width:100%;text-align:center;opacity:.75;}

  /* Modal: mobile/tablet footer layout */
  .hdsn-modal__footer{flex-direction:column-reverse;align-items:center;justify-content:center;gap:10px;}
  .hdsn-form__actions{width:100%;max-width:420px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;justify-content:center;}
  .hdsn-form__actions .hdsn-btn{width:100%;}
  .hdsn-brand--modal{width:100%;text-align:center;opacity:.75;}
}
