/* AgendaDOC Plus — intestazione, menu, area dell'app e accesso ([agendadoc_app]).
   Le regole usano gli ID (#adp-header, #adp-app, #adp-login) e, dove i temi/Elementor intervengono spesso
   (immagini, pulsanti, campi), !important: così lo stile del sito non altera l'app.
   Colori ispirati ad Amelia (primario #1246d6, testo #1a2c37). Il colore principale si cambia nelle impostazioni. */

#adp-header {
  --adp-primary: #1246d6;
  --adp-bg: #ffffff;
  --adp-text: #1a2c37;
  --adp-muted: #5b6b78;
  --adp-border: #e3e8ee;
  --adp-hover: #f2f5f9;
  --adp-active-bg: color-mix(in srgb, var(--adp-primary) 10%, #ffffff);
  --adp-danger: #c62828;
  --adp-danger-bg: #fdecec;
  --adp-h: 68px;
  /* Fisso in alto, indipendente dai container della pagina. */
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: auto !important;
  margin: 0 !important;
  z-index: 100000;
  background: var(--adp-bg);
  border-bottom: 1px solid var(--adp-border);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
  font-family: "Amelia Roboto", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1;
  text-align: left;
}
html.aai-dark #adp-header {
  --adp-bg: #18212c;
  --adp-text: #e5e9ef;
  --adp-muted: #9aa8b6;
  --adp-border: #2a3644;
  --adp-hover: #222d3a;
  --adp-active-bg: color-mix(in srgb, var(--adp-primary) 28%, #18212c);
  --adp-danger: #ff8a80;
  --adp-danger-bg: #3a2326;
}
#adp-header *, #adp-header *::before, #adp-header *::after { box-sizing: border-box; }
body.admin-bar #adp-header { top: 32px; }

/* Logo e tema a sinistra, menu al centro, (hamburger) a destra. */
#adp-header .adp-header__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 16px;
  height: var(--adp-h);
  padding: 0 20px;
  max-width: none;
  margin: 0;
}
#adp-header .adp-header__start { display: flex; align-items: center; gap: 12px; justify-self: start; min-width: 0; }
/* Schermi medi: il menu non può stare al centro dello schermo senza toccare il logo → centrato nello spazio libero. */
@media (min-width: 1201px) and (max-width: 1360px) {
  #adp-header .adp-header__inner { grid-template-columns: auto minmax(0, 1fr) 0; column-gap: 12px; }
  #adp-header .adp-header__end { display: none; }
}
#adp-header .adp-header__end { justify-self: end; display: flex; align-items: center; }

#adp-header .adp-brand { display: flex; align-items: center; flex: 0 0 auto; margin: 0; padding: 0; }
#adp-header img.adp-logo {
  display: block !important;
  height: 30px !important;
  width: auto !important;
  max-width: 170px !important;
  max-height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  object-fit: contain;
}
#adp-header img.adp-logo--dark { display: none !important; }
html.aai-dark #adp-header img.adp-logo--light { display: none !important; }
html.aai-dark #adp-header img.adp-logo--dark { display: block !important; }

#adp-header .adp-header__theme { display: flex; align-items: center; flex: 0 0 auto; }
#adp-header .adp-header__theme #menu-tema { display: inline-flex; align-items: center; justify-content: center; }

/* ---- Menu (computer): icona sopra l'etichetta, centrato ---- */
#adp-header .adp-nav { justify-self: center; min-width: 0; margin: 0; padding: 0; background: none; }
#adp-header .adp-nav__head { display: none; }
#adp-header .adp-nav__items { display: flex; align-items: center; justify-content: center; gap: 2px; margin: 0; padding: 0; }

#adp-header button.adp-item {
  all: unset;
  box-sizing: border-box !important;
  display: inline-flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 66px;
  height: 52px !important;
  margin: 0 !important;
  padding: 6px 9px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--adp-muted) !important;
  font-family: inherit !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  text-transform: none !important;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
#adp-header button.adp-item[hidden] { display: none !important; }
#adp-header button.adp-item .adp-icon { flex: 0 0 auto; width: 20px; height: 20px; }
#adp-header button.adp-item:hover { background: var(--adp-hover) !important; color: var(--adp-text) !important; }
#adp-header button.adp-item:focus-visible { outline: 2px solid var(--adp-primary); outline-offset: 2px; }
#adp-header button.adp-item.is-active { background: var(--adp-active-bg) !important; color: var(--adp-primary) !important; font-weight: 600 !important; }
html.aai-dark #adp-header button.adp-item.is-active { color: #ffffff !important; }

#adp-header button.adp-item--logout { margin-left: 8px !important; position: relative; }
#adp-header button.adp-item--logout::before {
  content: ""; position: absolute; left: -6px; top: 12px; bottom: 12px; width: 1px; background: var(--adp-border);
}
#adp-header button.adp-item--logout:hover { background: var(--adp-danger-bg) !important; color: var(--adp-danger) !important; }

/* ---- Pulsante hamburger ---- */
#adp-header button.adp-burger {
  all: unset;
  box-sizing: border-box !important;
  display: none !important;
  width: 42px !important; height: 42px !important;
  align-items: center; justify-content: center;
  margin: 0 !important; padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid var(--adp-border) !important;
  background: transparent !important;
  color: var(--adp-text) !important;
  cursor: pointer;
}
#adp-header button.adp-burger:hover { background: var(--adp-hover) !important; }
#adp-header button.adp-burger .adp-icon { width: 22px; height: 22px; }

#adp-header .adp-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, .45); backdrop-filter: blur(2px); z-index: 1; opacity: 0; transition: opacity .2s ease; }
#adp-header .adp-overlay.is-visible { opacity: 1; }

/* ---- Tablet e cellulare: menu laterale ---- */
@media (max-width: 1200px) {
  #adp-header { --adp-h: 60px; }
  #adp-header .adp-header__inner { grid-template-columns: minmax(0, 1fr) auto; padding: 0 14px; }
  #adp-header img.adp-logo { height: 26px !important; max-height: 26px !important; max-width: 150px !important; }
  #adp-header button.adp-burger { display: inline-flex !important; }

  #adp-header .adp-nav {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(86vw, 340px);
    background: var(--adp-bg);
    box-shadow: -12px 0 32px rgba(15, 23, 42, .18);
    z-index: 2;
    transform: translateX(100%);
    transition: transform .25s ease;
    display: flex; flex-direction: column;
    visibility: hidden;
  }
  #adp-header .adp-nav.is-open { transform: translateX(0); visibility: visible; }

  #adp-header .adp-nav__head {
    display: flex; align-items: center; justify-content: space-between;
    height: 60px; padding: 0 12px 0 20px;
    border-bottom: 1px solid var(--adp-border);
  }
  #adp-header .adp-nav__title { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--adp-muted); }
  #adp-header button.adp-nav__close {
    all: unset; box-sizing: border-box !important; display: inline-flex !important; align-items: center; justify-content: center;
    width: 40px !important; height: 40px !important; border-radius: 10px !important; color: var(--adp-text) !important; cursor: pointer;
    background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important;
  }
  #adp-header button.adp-nav__close:hover { background: var(--adp-hover) !important; }

  #adp-header .adp-nav__items { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2px; padding: 10px; overflow-y: auto; flex: 1 1 auto; }

  #adp-header button.adp-item {
    flex-direction: row; justify-content: flex-start; gap: 14px;
    width: 100% !important; min-width: 0; height: 48px !important; padding: 0 14px !important;
    font-size: 15px !important; color: var(--adp-text) !important;
  }
  #adp-header button.adp-item .adp-icon { color: var(--adp-muted); }
  #adp-header button.adp-item.is-active { box-shadow: inset 3px 0 0 var(--adp-primary) !important; }
  #adp-header button.adp-item.is-active .adp-icon { color: var(--adp-primary); }
  html.aai-dark #adp-header button.adp-item.is-active .adp-icon { color: #ffffff; }

  #adp-header button.adp-item--logout { margin: auto 0 0 !important; }
  #adp-header button.adp-item--logout::before { left: 8px; right: 8px; top: -6px; bottom: auto; width: auto; height: 1px; }
  #adp-header button.adp-item--logout, #adp-header button.adp-item--logout .adp-icon { color: var(--adp-danger) !important; }

  html.adp-menu-open, html.adp-menu-open body { overflow: hidden; }
}
@media (max-width: 782px) { body.admin-bar #adp-header { top: 46px; } }

@media (prefers-reduced-motion: reduce) {
  #adp-header .adp-nav, #adp-header .adp-overlay, #adp-header button.adp-item { transition: none; }
}

/* ---- Area dell'app: occupa tutto lo schermo sotto l'intestazione, qualunque sia il container della pagina ---- */
html:has(#adp-app), html:has(#adp-app) body { overflow: hidden !important; }
#adp-app .aai-app-wrapper {
  position: fixed !important;
  top: 68px; left: 0; right: 0; bottom: 0;
  width: auto !important; height: auto !important; min-height: 0 !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important;
  z-index: 99999;
}
#adp-app .aai-app-wrapper iframe.aai-app-frame {
  display: block !important;
  width: 100% !important; height: 100% !important; min-height: 0 !important; max-width: none !important;
  margin: 0 !important; border: 0 !important;
}
body.admin-bar #adp-app .aai-app-wrapper { top: 100px; }
@media (max-width: 1200px) {
  #adp-app .aai-app-wrapper { top: 60px; }
  body.admin-bar #adp-app .aai-app-wrapper { top: 92px; }
}
@media (max-width: 782px) { body.admin-bar #adp-app .aai-app-wrapper { top: 106px; } }

/* ---- Accesso: scheda centrata sullo schermo, sopra il resto della pagina ---- */
#adp-login {
  --adp-primary: #1246d6;
  position: fixed !important;
  inset: 0;
  z-index: 100000;
  display: flex !important; align-items: center; justify-content: center;
  overflow-y: auto;
  padding: 24px 16px;
  margin: 0 !important;
  background: #f5f6f8;
  font-family: "Amelia Roboto", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  text-align: left;
}
html:has(#adp-login), html:has(#adp-login) body { overflow: hidden !important; }
#adp-login *, #adp-login *::before, #adp-login *::after { box-sizing: border-box; }
#adp-login .adp-login__card {
  width: 100%; max-width: 400px; margin: auto; background: #fff; border: 1px solid #e3e8ee; border-radius: 14px;
  padding: 32px 28px 24px; box-shadow: 0 12px 32px rgba(16, 24, 40, .08); color: #1a2c37;
}
#adp-login img.adp-login__logo {
  display: block !important; height: 36px !important; max-height: 36px !important; width: auto !important; max-width: 220px !important;
  margin: 0 auto 10px !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
}
#adp-login img.adp-logo--dark { display: none !important; }
#adp-login .adp-login__intro { text-align: center; color: #5b6b78 !important; font-size: 14px !important; margin: 0 0 20px !important; }
#adp-login .adp-login__error { margin: -8px 0 16px !important; padding: 10px 12px !important; border-radius: 8px !important; background: #fdecec !important; color: #b42318 !important; font-size: 13.5px !important; text-align: center; }
html.aai-dark #adp-login .adp-login__error, .aai-dark #adp-login .adp-login__error { background: rgba(239,68,68,.15) !important; color: #ff8a80 !important; }
#adp-login form p { margin: 0 0 14px !important; padding: 0 !important; }
#adp-login label {
  display: block !important; font-size: 13px !important; font-weight: 500 !important; margin: 0 0 6px !important;
  color: #1a2c37 !important; line-height: 1.3 !important; text-transform: none !important; letter-spacing: 0 !important;
}
#adp-login input[type=text], #adp-login input[type=password], #adp-login input[type=email] {
  display: block !important; width: 100% !important; height: 42px !important; padding: 0 12px !important; margin: 0 !important;
  border: 1px solid #d1d5d7 !important; border-radius: 8px !important; background: #fff !important; color: #1a2c37 !important;
  font-size: 15px !important; line-height: 1 !important; box-shadow: none !important;
}
#adp-login input[type=text]:focus, #adp-login input[type=password]:focus {
  outline: none !important; border-color: var(--adp-primary) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--adp-primary) 18%, transparent) !important;
}
#adp-login .login-remember label { display: inline-flex !important; align-items: center; gap: 6px; font-weight: 400 !important; color: #5b6b78 !important; }
#adp-login .login-remember input { margin: 0 !important; }
#adp-login input[type=submit] {
  display: block !important; width: 100% !important; height: 44px !important; margin: 4px 0 0 !important; padding: 0 16px !important;
  border: 0 !important; border-radius: 8px !important; background: var(--adp-primary) !important; color: #fff !important;
  font-size: 15px !important; font-weight: 600 !important; line-height: 44px !important; text-transform: none !important;
  letter-spacing: 0 !important; box-shadow: none !important; cursor: pointer;
}
#adp-login input[type=submit]:hover { filter: brightness(1.08); }
#adp-login .adp-login__lost { text-align: center; margin: 6px 0 0 !important; font-size: 13px !important; }
#adp-login .adp-login__lost a { color: var(--adp-primary) !important; text-decoration: none !important; }
