/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/ClosureNoticeBanner/ClosureNoticeBanner.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.ClosureNoticeBanner_banner__7_fPL {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 16px;
    background: linear-gradient(90deg, rgba(59, 91, 140, 0.12), rgba(59, 91, 140, 0.06));
    border-bottom: 1px solid rgba(59, 91, 140, 0.28);
    color: var(--text-primary);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.ClosureNoticeBanner_icon__8RTha {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 5px;
    border-radius: 999px;
    background: #3b5b8c;
    box-shadow: 0 0 0 2px rgba(59, 91, 140, 0.22);
}

.ClosureNoticeBanner_prose__outzQ {
    flex: 1 1;
    min-width: 0;
}

.ClosureNoticeBanner_prose__outzQ p {
    margin: 0 0 0.5rem;
}

.ClosureNoticeBanner_prose__outzQ p:last-child {
    margin-bottom: 0;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/CookieNoticeBar/CookieNoticeBar.module.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
.CookieNoticeBar_bar__3iIgX {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  padding: 10px 14px;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--hm-cream-solid, #fdf6f2) 96%, var(--brown-dark, #4b3d2a));
  border-top: 1px solid color-mix(in srgb, var(--brown-dark, #4b3d2a) 14%, transparent);
  box-shadow: 0 -4px 20px rgba(75, 61, 42, 0.08);
}

.CookieNoticeBar_inner__ihn0m {
  max-width: min(960px, 100%);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
}

.CookieNoticeBar_text__oa32f {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-primary, #3d3428);
  flex: 1 1 220px;
  min-width: 0;
}

.CookieNoticeBar_text__oa32f a {
  color: var(--brown-dark, #4b3d2a);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.CookieNoticeBar_actions__DYEf3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.CookieNoticeBar_ok___bYwz {
  padding: 7px 16px;
  border-radius: 999px;
  border: none;
  background: var(--brown-dark, #4b3d2a);
  color: var(--peach-light, #f7e2da);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.CookieNoticeBar_ok___bYwz:hover {
  opacity: 0.92;
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/GlobalCart/GlobalCart.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************/
.GlobalCart_desktopPanel__xbudS {
  position: fixed;
  top: 108px;
  right: 24px;
  width: 320px;
  max-height: calc(100vh - 132px);
  z-index: 120;
  background: var(--modal-panel-bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0.5px solid var(--glass-border);
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(75, 61, 42, 0.12);
}

.GlobalCart_panelInner__zUE7b {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: calc(100vh - 132px);
}

.GlobalCart_panelTitle__svtzc {
  margin: 0;
  padding: 14px 14px 10px;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-primary);
}

.GlobalCart_itemsList__xJnGA {
  list-style: none;
  margin: 0;
  padding: 0 10px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.GlobalCart_itemRow__iV60u {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 6px;
  border-top: 1px solid rgba(75, 61, 42, 0.12);
}

.GlobalCart_itemRow__iV60u:hover {
  background: rgba(75, 61, 42, 0.04);
}

.GlobalCart_itemMain__cQAQF {
  min-width: 0;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.GlobalCart_itemType__EmvQ9 {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

.GlobalCart_itemDetail__6bNGx {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.3;
}

.GlobalCart_itemRight__aYl0H {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-shrink: 0;
}

.GlobalCart_itemPrice__sYEWI {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

.GlobalCart_removeBtn__IGWbW {
  width: 20px;
  height: 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  line-height: 1;
  font-size: 15px;
}

.GlobalCart_removeBtn__IGWbW:hover {
  border-color: var(--border);
  color: var(--text-primary);
}

.GlobalCart_footer__iyMDD {
  margin-top: auto;
  border-top: 1px solid rgba(75, 61, 42, 0.12);
  padding: 12px 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.GlobalCart_totalRow__JBSZk {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--text-primary);
}

.GlobalCart_checkoutBtn__R3L4V {
  width: 100%;
  border: 1px solid var(--brown-dark);
  background: var(--brown-dark);
  color: var(--text-white);
  border-radius: 10px;
  padding: 10px 14px;
  font-weight: 600;
  cursor: pointer;
}

.GlobalCart_checkoutBtn__R3L4V:hover {
  background: color-mix(in srgb, var(--brown-dark) 88%, black);
}

.GlobalCart_checkoutBtn__R3L4V.hy-pulse-cta {
  --hy-pulse-color: var(--brown-dark);
}

.GlobalCart_guestBlock__RXCij {
  margin-top: 4px;
}

.GlobalCart_guestDetails__G_0ku summary {
  cursor: pointer;
  color: #534ab7;
  font-size: 12px;
  font-weight: 500;
}

.GlobalCart_guestDetails__G_0ku[open] summary {
  margin-bottom: 6px;
}

.GlobalCart_guestForm__efaz4 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.GlobalCart_guestForm__efaz4 input {
  font-size: 12px;
  padding: 6px 8px;
}

.GlobalCart_saveGuest__udZ7F {
  border: 1px solid var(--brown-dark);
  background: var(--brown-dark);
  color: var(--text-white);
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 8px;
  cursor: pointer;
}

.GlobalCart_guestLine__0mYca {
  display: flex;
  gap: 6px;
  align-items: center;
  font-size: 12px;
  color: var(--text-secondary);
}

.GlobalCart_removeGuest__Geg9a {
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  color: var(--text-secondary);
  width: 18px;
  height: 18px;
  border-radius: 999px;
}

.GlobalCart_removeGuest__Geg9a:hover {
  border-color: var(--border);
}

.GlobalCart_mobileSheet__kymzS {
  display: none;
}

@media (max-width: 991px) {
  .GlobalCart_desktopPanel__xbudS {
    display: none;
  }

  .GlobalCart_mobileSheet__kymzS {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 130;
    border-radius: 16px 16px 0 0;
    background: var(--modal-panel-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-top: 0.5px solid var(--glass-border);
    box-shadow: 0 -8px 24px rgba(75, 61, 42, 0.12);
  }

  .GlobalCart_mobileSummary__pSg28 {
    width: 100%;
    border: none;
    background: transparent;
    padding: 12px 16px calc(12px + var(--safe-bottom));
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--text-primary);
  }

  .GlobalCart_mobileSheetExpanded__NA5ld {
    max-height: 72vh;
  }

  .GlobalCart_mobileContent__mDb9r .GlobalCart_panelInner__zUE7b {
    max-height: calc(72vh - 44px);
  }
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/Header/Header.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
/* src/app/components/Header/Header.module.css */

.Header_syncBannerWrap__EqS63 {
  padding: 10px calc(26px + env(safe-area-inset-right, 0px)) 0 calc(26px + env(safe-area-inset-left, 0px));
  max-width: 100%;
  box-sizing: border-box;
}

.Header_header___60Q_ {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  max-height: none;
  min-height: var(--struct-nav-height, 65px);
  background-color: var(--header-bar-color);
  background-image: var(--theme-header-image, none);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: calc(16px + env(safe-area-inset-top, 0px) + var(--theme-header-pad-top, 0px));
  padding-bottom: calc(16px + var(--theme-header-pad-bottom, 0px));
  padding-left: calc(var(--struct-nav-padding-x, 26px) + env(safe-area-inset-left, 0px) + var(--theme-header-pad-left, 0px));
  padding-right: calc(var(--struct-nav-padding-x, 26px) + env(safe-area-inset-right, 0px) + var(--theme-header-pad-right, 0px));
  border-bottom: 1px solid var(--red-inactive);
  /* Bordo sottile sotto */
}

/* Sezione destra dell'header */
.Header_rightSection__Egnx3 {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 20px);
  flex-shrink: 0;
  min-width: 0;
}

.Header_rightTools__cBdU9 {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.Header_rightUser__gSqTp {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 3px;
  min-width: 0;
  max-width: min(220px, 42vw);
}

.Header_headerBellWrap__FjLLi {
  display: flex;
  align-items: center;
  align-self: center;
  flex-shrink: 0;
}

.Header_headerBellWrap__FjLLi > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Campanella header: solo il trigger, non i pulsanti dentro il pannello notifiche */
.Header_headerBellWrap__FjLLi button[aria-haspopup] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--header-text-color, #f8bcab) 42%, transparent);
  background: transparent;
  color: var(--header-text-color, #f8bcab);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  box-sizing: border-box;
  flex-shrink: 0;
}

.Header_headerBellWrap__FjLLi button[aria-haspopup]:hover {
  background-color: color-mix(in srgb, var(--header-text-color, #f8bcab) 12%, transparent);
}

.Header_headerBellWrap__FjLLi button[aria-haspopup]:focus-visible {
  outline: 2px solid var(--header-text-color, #f8bcab);
  outline-offset: 2px;
}

.Header_roleBadgeInHeader__X0JaR {
  background: color-mix(in srgb, var(--header-text-color, #f8bcab) 14%, transparent) !important;
  color: var(--header-text-color, #f8bcab) !important;
  border-color: color-mix(in srgb, var(--header-text-color, #f8bcab) 38%, transparent) !important;
  font-size: 10px;
  padding: 2px 8px;
  line-height: 1.2;
}

/* PWA: icona install (sheet iOS / install Android / istruzioni desktop) */
.Header_pwaInstallIconBtn__HUVlO {
  margin: 0;
  padding: 0;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1.5px solid color-mix(in srgb, var(--header-text-color, #f8bcab) 42%, transparent);
  border-radius: 50%;
  background: transparent;
  color: var(--header-text-color, #f8bcab);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  box-sizing: border-box;
}

.Header_pwaInstallIconBtn__HUVlO:hover {
  background-color: color-mix(in srgb, var(--header-text-color, #f8bcab) 12%, transparent);
}

.Header_pwaInstallIconBtn__HUVlO:focus-visible {
  outline: 2px solid var(--primary, #6b4e9e);
  outline-offset: 2px;
}

/* Stile per il link/logo Home */
.Header_logoLink__9HGkN {
  color: var(--header-text-color, #4B3D2A);
  font-weight: var(--font-bold);
  /* Marrone font */
  font-size: 1.2rem;
  /* Dimensione font logo/nome */
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.Header_logoLink__9HGkN:hover {
  color: color-mix(in srgb, var(--header-text-color, #6B5B4A) 80%, var(--header-bar-color, transparent));
}

/* Logo brand (marrone tema chiaro / rosa tema scuro) — niente filtro */
.Header_logoImage__aS07A {
  object-fit: contain;
  transition: transform 0.2s ease;
  display: block;
  margin: 0 auto;
}

.Header_logoImage__aS07A:hover {
  transform: scale(1.05);
  /* Leggero zoom al hover */
}

.Header_logoImageLink__o9AAM {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}

.Header_logoImageCustom__OMg_z {
  display: block;
  object-fit: contain;
  width: auto;
  height: auto;
  transition: transform 0.2s ease;
}

.Header_logoImageCustom__OMg_z:hover {
  transform: scale(1.05);
}

.Header_logoImagePwa__oM7RN {
  object-fit: cover;
  border-radius: 22%;
}

/* Stile per l'indicatore ambientale (nuova classe) */
.Header_environmentTag__KerBN {
  background-color: #DAA520;
  /* Colore ocra */
  color: #FFFFFF;
  /* Testo bianco */
  padding: 4px 10px;
  /* Padding interno */
  border-radius: 6px;
  /* Angoli arrotondati */
  font-size: 0.85rem;
  /* Dimensione del font */
  font-weight: var(--font-bold);
  text-transform: uppercase;
  /* Testo tutto in maiuscolo */
  display: flex;
  /* Per centrare il testo all'interno del div */
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* Impedisce che si rimpicciolisca su schermi più piccoli */
}


/* Contenitore per azioni utente (login/logout/info) - ora inline */
.Header_userActions__EbnwX {
  display: flex;
  align-items: center;
  gap: 1rem;
  /* Spazio tra info utente e logout, o solo per bottone login */
}

/* Stile per il saluto utente */
.Header_userGreeting__SM1fs {
  color: var(--header-text-color, #f8bcab);
  font-family: "Epilogue", sans-serif;
  font-weight: 400;
  font-size: clamp(15px, 1.6vw, 18px);
  text-align: right;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease, opacity 0.2s ease;
  padding: 0;
  display: block;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.Header_userGreeting__SM1fs:hover {
  color: var(--header-text-color, #f8bcab);
  opacity: 0.82;
  text-decoration: underline;
  text-underline-offset: 3px;
  background-color: transparent;
}

.Header_userMeta__j6sBr {
  display: grid;
  justify-items: end;
  grid-gap: 4px;
  gap: 4px;
}

/* Stile per l'hamburger menu */
.Header_hamburgerMenu__S9Yqp {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: transform 0.3s ease;
}

.Header_hamburgerLine__DwepX {
  width: 28px;
  height: 3px;
  background-color: var(--header-text-color, var(--brown-dark));
  margin: 3px 0;
  transition: all 0.3s ease;
  transform-origin: center;
}

/* Animazione hamburger quando aperto */
.Header_hamburgerMenu__S9Yqp.Header_menuOpen___5o_0 .Header_hamburgerLine__DwepX:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.Header_hamburgerMenu__S9Yqp.Header_menuOpen___5o_0 .Header_hamburgerLine__DwepX:nth-child(2) {
  opacity: 0;
}

.Header_hamburgerMenu__S9Yqp.Header_menuOpen___5o_0 .Header_hamburgerLine__DwepX:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -6px);
}

.Header_hamburgerMenu__S9Yqp:hover .Header_hamburgerLine__DwepX {
  background-color: color-mix(in srgb, var(--header-text-color, #6B5B4A) 80%, var(--header-bar-color, transparent));
}

/* ============ MENU OVERLAY — mockup Claude design ============ */
.Header_menuBackdrop__I_i45 {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal-backdrop, 1040);
  background: rgba(26, 26, 26, 0.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.Header_menuBackdrop__I_i45.Header_open__Rz4Pa {
  opacity: 1;
  pointer-events: auto;
}

.Header_menuPanel__O5xta {
  --menu-ink: #241b11;
  --menu-ink-2: rgba(36, 27, 17, 0.58);
  --menu-brown: #3a2e22;
  --menu-brown-soft: #4a3b2c;
  --menu-peach: #f8bcab;
  --menu-paper: #fffdf8;
  --menu-line: rgba(58, 46, 34, 0.16);
  --menu-line-soft: rgba(58, 46, 34, 0.1);
  --menu-ease: cubic-bezier(0.22, 1, 0.36, 1);

  position: fixed;
  inset: 0;
  z-index: calc(var(--z-modal-backdrop, 1040) + 1);
  background: var(--menu-peach);
  color: var(--menu-ink);
  transform: translateX(102%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.55s var(--menu-ease), visibility 0s linear 0.55s;
  display: flex;
  flex-direction: column;
  padding:
    calc(26px + env(safe-area-inset-top, 0px))
    calc(26px + env(safe-area-inset-right, 0px))
    calc(24px + env(safe-area-inset-bottom, 0px))
    calc(26px + env(safe-area-inset-left, 0px));
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.Header_menuPanel__O5xta.Header_open__Rz4Pa {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
  transition: transform 0.55s var(--menu-ease);
}

.Header_menuLogo__niTfr {
  display: block;
}

.Header_menuTopMobile___rwj0 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.Header_menuTopDesktop__oau6U {
  display: none;
}

.Header_menuWhoMobile__lzCJ1 {
  flex-shrink: 0;
  margin-top: 18px;
}

.Header_closeBtn__cZkof {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1.5px solid var(--menu-line);
  background: transparent;
  color: var(--menu-ink);
  border-radius: 99px;
  cursor: pointer;
  transition: all 0.18s var(--menu-ease);
}

.Header_closeBtn__cZkof:hover {
  background: var(--menu-ink);
  border-color: var(--menu-ink);
  color: var(--menu-peach);
  transform: rotate(90deg);
}

.Header_who__pA7sC {
  display: flex;
  align-items: center;
  gap: 12px;
}

.Header_whoAv__MvgwJ {
  width: 38px;
  height: 38px;
  border-radius: 99px;
  background: var(--menu-brown);
  color: var(--menu-peach);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 15px;
  flex: none;
}

.Header_whoName__W9a9P {
  font-weight: 800;
  font-size: 15px;
  letter-spacing: -0.01em;
}

.Header_menuKicker__9J4f6 {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--menu-ink-2);
  margin-bottom: 10px;
}

.Header_menuBody__pqN79 {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 20px;
  min-width: min(100%, 320px);
}

.Header_menuLeft__VcTv_,
.Header_menuRight__guLtO {
  min-width: 0;
}

.Header_menuPersonalDesktop__8ibe8,
.Header_menuPrenotaDesktop__CC3uN {
  display: none;
}

.Header_pnav__5tMVU {
  display: flex;
  flex-direction: column;
}

.Header_pnavLink__yyehi {
  display: flex;
  align-items: baseline;
  gap: 12px;
  text-decoration: none;
  color: var(--menu-ink);
  padding: 11px 0;
  border-top: 1px solid var(--menu-line-soft);
  position: relative;
  transition: padding-left 0.3s var(--menu-ease);
}

.Header_pnavLink__yyehi:first-child {
  border-top: none;
}

.Header_pnavLabel__ka5uD {
  font-family: "Epilogue", sans-serif;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 0.98;
  font-size: 28px;
  transition: color 0.2s var(--menu-ease);
}

.Header_pnavMeta__4TE2_ {
  font-size: 11px;
  font-weight: 600;
  color: var(--menu-ink-2);
  margin-left: auto;
  white-space: nowrap;
  align-self: center;
}

.Header_pnavArr__DTdhV {
  align-self: center;
  opacity: 0;
  transform: translateX(-8px);
  transition: all 0.3s var(--menu-ease);
  color: var(--menu-ink);
  flex: none;
  display: inline-flex;
}

.Header_pnavLink__yyehi::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 6px;
  border-radius: 99px;
  background: #ff5a5a;
  transform: translateY(-50%);
  transition: width 0.3s var(--menu-ease);
}

.Header_pnavLink__yyehi:hover {
  padding-left: 14px;
}

.Header_pnavLink__yyehi:hover .Header_pnavLabel__ka5uD {
  color: #ff5a5a;
}

.Header_pnavLink__yyehi:hover .Header_pnavArr__DTdhV {
  opacity: 1;
  transform: translateX(0);
}

.Header_pnavLink__yyehi:hover::before {
  width: 6px;
}

.Header_menuSection__mMUia + .Header_menuSection__mMUia {
  margin-top: 0;
}

.Header_gest__3PyiN {
  display: grid;
  grid-gap: 10px;
  gap: 10px;
  grid-template-columns: 1fr 1fr;
}

.Header_gestSingle__hHYLv {
  grid-template-columns: 1fr;
}

.Header_gcard__yo7Ny {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  background: var(--menu-brown);
  color: var(--menu-peach);
  border-radius: 14px;
  padding: 12px 14px;
  transition: all 0.2s var(--menu-ease);
}

.Header_gcard__yo7Ny:hover {
  background: var(--menu-brown-soft);
  transform: translateY(-2px);
}

.Header_gcardIcon__LnvmK {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: rgba(248, 188, 171, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}

.Header_gcardText__Rzr1_ {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
}

.Header_gcardName__g7gYX {
  font-weight: 700;
  font-size: 13px;
}

.Header_gcardSub__D6THc {
  font-size: 10px;
  color: rgba(248, 188, 171, 0.62);
  font-weight: 500;
}

.Header_gcardGo__NGhTe {
  margin-left: auto;
  opacity: 0.55;
  flex: none;
  display: inline-flex;
}

.Header_serv__JkuQO {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  max-width: 100%;
  padding-bottom: 2px;
}

.Header_serv__JkuQO::-webkit-scrollbar {
  display: none;
}

.Header_servUtil__wCTbF {
  margin-top: 8px;
}

.Header_chip__lMec5 {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  text-decoration: none;
  background: var(--menu-paper);
  color: var(--menu-ink);
  font-weight: 700;
  font-size: 12px;
  padding: 8px 14px 8px 12px;
  border-radius: 99px;
  border: 1px solid var(--menu-line-soft);
  transition: all 0.18s var(--menu-ease);
  white-space: nowrap;
  flex: none;
}

.Header_chip__lMec5:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(58, 46, 34, 0.14);
}

.Header_chipDot__1_uKH {
  width: 10px;
  height: 10px;
  border-radius: 99px;
  flex: none;
}

.Header_chipGhost__U_9vr {
  background: transparent;
  border: 1.5px solid var(--menu-line);
  font-weight: 600;
}

.Header_chipGhost__U_9vr:hover {
  border-color: var(--menu-ink);
  box-shadow: none;
}

.Header_chipGhostIcon__PE_HY {
  display: inline-flex;
}

.Header_menuFoot__PsK_m {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  margin-top: 20px;
  padding-top: 16px;
}

.Header_footSpacer__aWc1X {
  flex: 1 1;
}

.Header_menuFootRight__IQW0l {
  margin-left: auto;
  display: flex;
  align-items: center;
}

.Header_footBtnSync__NRi6E,
.Header_footBtnLogout__9u_1y {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 700;
  font-size: 12px;
  border-radius: 99px;
  transition: all 0.18s var(--menu-ease);
}

.Header_footBtnSync__NRi6E {
  background: transparent;
  color: var(--menu-ink);
  border: 1.5px solid var(--menu-line);
  padding: 11px 20px;
}

.Header_footBtnSync__NRi6E:hover:not(:disabled) {
  border-color: var(--menu-ink);
}

.Header_footBtnSync__NRi6E:disabled {
  opacity: 0.55;
  cursor: default;
}

.Header_footBtnLogout__9u_1y {
  background: var(--menu-ink);
  color: var(--menu-peach);
  border: none;
  padding: 12px 24px;
}

.Header_footBtnLogout__9u_1y:hover {
  filter: brightness(1.12);
  transform: translateX(2px);
}

/* Stile generico per bottoni nell'header */
.Header_headerButton__0V5Vm {
  padding: 10px 20px;
  font-size: 0.9rem;
  /* Usa variabile --button o specifica */
  font-weight: var(--font-bold);
  /* Usa variabile */
  border: 1.5px solid var(--header-text-color, #4B3D2A);
  background-color: transparent;
  /* Sfondo trasparente */
  color: var(--header-text-color, #4B3D2A);
  /* Testo marrone font */
  border-radius: var(--radius-pill, 99px);
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
  text-decoration: none;
  /* Per i link stilizzati come bottoni */
  display: inline-block;
  /* Per applicare padding correttamente */
}

.Header_headerButton__0V5Vm:hover {
  background-color: var(--header-text-color, #4B3D2A);
  color: var(--header-bar-color, #F8BCAB);
}

/* Stile specifico per bottone logout (opzionale, può usare headerButton) */
.Header_logoutButton__0nbgJ {
  border-color: var(--header-text-color, #4B3D2A);
  color: var(--header-text-color, #4B3D2A);
}

.Header_logoutButton__0nbgJ:hover {
  background-color: var(--header-text-color, #4B3D2A);
  color: var(--header-bar-color, #F8BCAB);
  border-color: var(--header-text-color, #4B3D2A);
}

/* Media query per schermi più piccoli */
@media (max-width: 768px) {
  .Header_rightSection__Egnx3 {
    gap: 10px;
  }

  .Header_rightUser__gSqTp {
    max-width: min(160px, 36vw);
  }

  .Header_userGreeting__SM1fs {
    font-size: 14px;
  }

  .Header_hamburgerMenu__S9Yqp {
    width: 36px;
    height: 36px;
  }

  .Header_hamburgerLine__DwepX {
    width: 24px;
    height: 3px;
  }

  .Header_headerBellWrap__FjLLi button[aria-haspopup],
  .Header_pwaInstallIconBtn__HUVlO {
    width: 36px;
    height: 36px;
  }

  .Header_headerInner__lwL0a {
    gap: 1rem;
  }

  .Header_menuFoot__PsK_m {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--menu-line-soft);
    background: var(--menu-peach);
  }

  .Header_footSpacer__aWc1X {
    display: none;
  }

  .Header_menuFootRight__IQW0l {
    margin-left: 0;
    width: 100%;
  }

  .Header_footBtnSync__NRi6E,
  .Header_footBtnLogout__9u_1y {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }

  .Header_chipGhost__U_9vr {
    max-width: 100%;
  }
}

@media (min-width: 769px) {
  .Header_menuPanel__O5xta {
    padding:
      calc(48px + env(safe-area-inset-top, 0px))
      calc(64px + env(safe-area-inset-right, 0px))
      calc(40px + env(safe-area-inset-bottom, 0px))
      calc(64px + env(safe-area-inset-left, 0px));
  }

  .Header_menuTopMobile___rwj0,
  .Header_menuWhoMobile__lzCJ1,
  .Header_menuPersonalMobile__1_O8q,
  .Header_menuPrenotaMobile__basi6 {
    display: none;
  }

  .Header_menuTopDesktop__oau6U {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
    margin-bottom: 36px;
  }

  .Header_menuTopDesktop__oau6U .Header_who__pA7sC {
    margin-left: auto;
  }

  .Header_closeBtn__cZkof {
    width: 50px;
    height: 50px;
  }

  .Header_menuBody__pqN79 {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    grid-gap: 72px;
    gap: 72px;
    align-content: start;
    padding-top: 0;
  }

  .Header_menuLeft__VcTv_ .Header_menuKicker__9J4f6 {
    margin-bottom: 20px;
  }

  .Header_menuPersonalDesktop__8ibe8 {
    display: block;
  }

  .Header_menuPrenotaDesktop__CC3uN {
    display: block;
  }

  .Header_menuRight__guLtO {
    display: flex;
    flex-direction: column;
    gap: 34px;
    padding-top: 6px;
  }

  .Header_menuRight__guLtO .Header_menuKicker__9J4f6 {
    margin-bottom: 16px;
  }

  .Header_serv__JkuQO {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .Header_pnavLabel__ka5uD {
    font-size: 42px;
  }

  .Header_pnavLink__yyehi {
    padding: 14px 0;
  }

  .Header_menuFoot__PsK_m {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--menu-line-soft);
  }
}

@media (prefers-reduced-motion: reduce) {
  .Header_menuPanel__O5xta,
  .Header_menuBackdrop__I_i45 {
    transition: none;
  }
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/BrandLogo/BrandLogo.module.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************/
.BrandLogo_wrap__sqD8F {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}

.BrandLogo_img__oPFxs {
  display: block;
  object-fit: contain;
}

/* PWA / icona circolare — eccezione al border-radius 0 del design system */
.BrandLogo_imgRounded__8IOoa {
  border-radius: 50%;
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/InlineBanner/InlineBanner.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************/
.InlineBanner_banner__NvJ8d {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  margin: 0 0 12px;
  border-radius: 8px;
  border-left: 3px solid;
  font-size: 13px;
  line-height: 1.45;
  font-weight: var(--font-medium, 500);
  box-sizing: border-box;
  width: 100%;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.InlineBanner_icon___FsVy {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 1px;
}

.InlineBanner_message__dz3dt {
  flex: 1 1;
  margin: 0;
  min-width: 0;
}

.InlineBanner_closeButton__Z4pW9 {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 2px;
  margin: -2px -2px -2px 4px;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  opacity: 0.65;
  transition: opacity 0.15s ease, background-color 0.15s ease;
}

.InlineBanner_closeButton__Z4pW9:hover {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.06);
}

.InlineBanner_error__E1BSp {
  border-left-color: rgb(220, 38, 38);
  color: #7f1d1d;
  background-color: rgba(220, 38, 38, 0.08);
}

.InlineBanner_error__E1BSp .InlineBanner_icon___FsVy {
  color: rgb(220, 38, 38);
}

.InlineBanner_warning__d2dr3 {
  border-left-color: rgb(217, 119, 6);
  color: #78350f;
  background-color: rgba(217, 119, 6, 0.08);
}

.InlineBanner_warning__d2dr3 .InlineBanner_icon___FsVy {
  color: rgb(217, 119, 6);
}

.InlineBanner_success__1XYIE {
  border-left-color: rgb(22, 163, 74);
  color: #14532d;
  background-color: rgba(22, 163, 74, 0.08);
}

.InlineBanner_success__1XYIE .InlineBanner_icon___FsVy {
  color: rgb(22, 163, 74);
}

.InlineBanner_info__LfEKs {
  border-left-color: rgb(37, 99, 235);
  color: #1e3a8a;
  background-color: rgba(37, 99, 235, 0.08);
}

.InlineBanner_info__LfEKs .InlineBanner_icon___FsVy {
  color: rgb(37, 99, 235);
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/AdminNotificationsBell/AdminNotificationsBell.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.AdminNotificationsBell_wrap__UQ2mI {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: center;
}

.AdminNotificationsBell_trigger__7xmE6 {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--brown-dark, #4b3d2a);
  border-radius: 10px;
  background: transparent;
  color: var(--brown-dark, #4b3d2a);
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.AdminNotificationsBell_trigger__7xmE6:hover {
  background-color: color-mix(in srgb, var(--peach-background, #fdf6f2) 50%, transparent);
}

.AdminNotificationsBell_trigger__7xmE6:focus-visible {
  outline: 2px solid var(--primary, #6b4e9e);
  outline-offset: 2px;
}

.AdminNotificationsBell_badge__fo98e {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #f5c800;
  color: #1a1a1a;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  box-sizing: border-box;
}

.AdminNotificationsBell_badgePulse__UAKVU {
  animation: AdminNotificationsBell_bellBadgePulse__slKyp 2s ease-in-out infinite;
}

@keyframes AdminNotificationsBell_bellBadgePulse__slKyp {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(245, 200, 0, 0.45);
  }
  50% {
    transform: scale(1.06);
    box-shadow: 0 0 0 4px rgba(245, 200, 0, 0);
  }
}

.AdminNotificationsBell_dropdown__Ox37X {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 320px;
  max-height: min(420px, 70vh);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #faf7f4;
  border-radius: 16px;
  box-shadow:
    0 12px 40px rgba(75, 61, 42, 0.12),
    0 2px 8px rgba(0, 0, 0, 0.06);
  z-index: 2100;
  opacity: 0;
  animation: AdminNotificationsBell_dropdownIn__2I3XS 150ms ease forwards;
}

@keyframes AdminNotificationsBell_dropdownIn__2I3XS {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.AdminNotificationsBell_dropdownHead__kCH5I {
  padding: 12px 14px 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary, #1a1523);
  border-bottom: 1px solid color-mix(in srgb, var(--brown-dark, #4b3d2a) 12%, transparent);
  flex-shrink: 0;
}

.AdminNotificationsBell_list__o3oOk {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  flex: 1 1;
  min-height: 0;
}

.AdminNotificationsBell_item__e3OAV {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--brown-dark, #4b3d2a) 10%, transparent);
  cursor: pointer;
  text-align: left;
  width: 100%;
  border-left: none;
  border-right: none;
  border-top: none;
  background: #f0eae4;
  font: inherit;
  color: inherit;
  box-sizing: border-box;
}

.AdminNotificationsBell_itemUnread__xCRT0 {
  background: #f0eae4;
}

.AdminNotificationsBell_itemRead__2o3W8 {
  background: #faf7f4;
  opacity: 0.5;
}

.AdminNotificationsBell_itemDot__s6e3G {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary, #6b4e9e);
  margin-top: 6px;
  flex-shrink: 0;
}

.AdminNotificationsBell_itemRead__2o3W8 .AdminNotificationsBell_itemDot__s6e3G {
  opacity: 0;
  width: 0;
  margin: 0;
}

.AdminNotificationsBell_emoji__DEcNg {
  font-size: 1.15rem;
  line-height: 1.2;
  flex-shrink: 0;
  width: 1.5rem;
  text-align: center;
}

.AdminNotificationsBell_body__K1Zko {
  min-width: 0;
  flex: 1 1;
}

.AdminNotificationsBell_msg__ccK2A {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--text-primary, #1a1523);
}

.AdminNotificationsBell_time__rVMSB {
  margin: 4px 0 0;
  font-size: 11px;
  color: var(--text-secondary, #5c5568);
}

.AdminNotificationsBell_empty__ATh7j {
  padding: 28px 20px 32px;
  text-align: center;
}

.AdminNotificationsBell_emptyIllu__m1Kud {
  margin: 0 auto 12px;
  opacity: 0.35;
}

.AdminNotificationsBell_emptyText__Ckrk0 {
  margin: 0;
  font-size: 13px;
  font-weight: 300;
  color: var(--text-secondary, #5c5568);
}

.AdminNotificationsBell_loading__u_dlc {
  padding: 20px;
  text-align: center;
  font-size: 13px;
  color: var(--text-secondary, #5c5568);
}

.AdminNotificationsBell_err__X1hwE {
  padding: 12px 14px;
  font-size: 12px;
  color: #b42318;
}

/*
 * Mobile: schermo intero. inset:0 + padding safe-area (stessi env su sx/dx) evita margini asimmetrici da max(12px, env(...)).
 */
@media (max-width: 768px) {
  .AdminNotificationsBell_dropdown__Ox37X {
    position: fixed;
    inset: 0;
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
    height: 100%;
    max-height: none !important;
    margin: 0;
    padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px)
      env(safe-area-inset-left, 0px);
    box-sizing: border-box;
    border-radius: 0;
    overscroll-behavior: contain;
  }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/NotificationCenterBell/NotificationCenterBell.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Shell: flex column so inbox + push scroll together */
.NotificationCenterBell_dropdownShell__nK0h_ {
  display: flex;
  flex-direction: column;
  max-height: min(640px, 85vh) !important;
  width: min(360px, calc(100vw - 32px));
  background: var(--surface-card, var(--hg-cream, #faf5ef));
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.12));
  font-family: var(--font-body, var(--font-family));
}

.NotificationCenterBell_dropdownShellAdmin__h_lGd {
  width: min(420px, calc(100vw - 24px));
  max-height: min(720px, 88vh) !important;
}

.NotificationCenterBell_dropdownShellPortal__cL_0p {
  z-index: 1750;
}

.NotificationCenterBell_draftBadge__DMD_t {
  margin-left: 8px;
  height: 28px;
  padding: 0 10px;
  border-radius: var(--radius-pill, 999px);
  border: 1px solid color-mix(in srgb, var(--hg-red-deep, #9c2f2f) 48%, transparent);
  background: var(--hg-red, #ff5a5a);
  color: var(--hg-cream, #faf5ef);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.NotificationCenterBell_draftBadge__DMD_t:hover {
  filter: brightness(1.05);
}

.NotificationCenterBell_draftBadge__DMD_t:focus-visible {
  outline: 2px solid var(--hg-peach, #f4c9a8);
  outline-offset: 2px;
}

.NotificationCenterBell_headerTrigger__cS2zf {
  position: relative;
  color: var(--header-text-color, #f8bcab) !important;
  border-color: color-mix(in srgb, var(--header-text-color, #f8bcab) 42%, transparent) !important;
  background: transparent !important;
}

.NotificationCenterBell_headerBadge__YpXVK {
  z-index: 2;
  border: 2px solid var(--header-bar-color, #3a2e22);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
  color: #1a1a1a;
  background: #f5c800;
}

.NotificationCenterBell_bodyScroll__MPQY3 {
  overflow-y: auto;
  flex: 1 1;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}

.NotificationCenterBell_subHead__RF2TZ {
  padding: 12px 16px 8px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-3, var(--text-secondary));
  border-bottom: 1px solid var(--border-2, rgba(58, 46, 34, 0.1));
}

.NotificationCenterBell_subHeadMuted__pCO25 {
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  padding-top: 2px;
  color: var(--text-2, var(--text-primary));
}

.NotificationCenterBell_pushBlock__YcJlD {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.NotificationCenterBell_permissionWarn__M4PDx {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--hg-red-deep, #9c2f2f);
  background: var(--hg-red-tint, #ffdcd6);
  border: 1px solid color-mix(in srgb, var(--hg-red-deep, #9c2f2f) 18%, transparent);
}

.NotificationCenterBell_ctaPrimary__0Uyuy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 12px 14px;
  border: none;
  border-radius: var(--radius-pill, 99px);
  background: var(--hg-ink, var(--brown-dark, #3a2e22));
  color: var(--hg-cream, #faf5ef);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: filter 0.15s ease, transform 0.1s ease;
}

.NotificationCenterBell_ctaPrimary__0Uyuy:hover {
  filter: brightness(1.06);
}

.NotificationCenterBell_ctaPrimary__0Uyuy:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.NotificationCenterBell_ctaSecondary__xTZNM {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.18));
  border-radius: var(--radius-pill, 99px);
  background: transparent;
  color: var(--text-1, var(--text-primary));
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.NotificationCenterBell_ctaSecondary__xTZNM:hover {
  background: var(--hg-peach-tint, rgba(244, 201, 168, 0.25));
}

.NotificationCenterBell_pushActiveNote__i2HGC {
  margin: 0;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--hg-green-deep, #1f4a36);
  background: var(--hg-green-tint, #d9e7de);
}

.NotificationCenterBell_compactGrid__f2vj3 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.NotificationCenterBell_compactRow__sGWKB {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.1));
  background: var(--surface-page, #fff);
  font-size: 13px;
  line-height: 1.35;
  transition: background-color 0.15s ease;
}

.NotificationCenterBell_compactRow__sGWKB:hover {
  background: color-mix(in srgb, var(--hg-peach, #f4c9a8) 16%, var(--surface-page, #fff));
}

.NotificationCenterBell_compactRow__sGWKB input {
  margin-top: 3px;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--hg-ink, var(--brown-dark));
}

.NotificationCenterBell_compactLabel__czrxp {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.NotificationCenterBell_compactTitle__5x2TB {
  font-weight: 600;
  color: var(--text-1, var(--text-primary));
}

.NotificationCenterBell_compactDesc__pkVx8 {
  font-size: 11px;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_leadSelectWrap__hWrD2 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.NotificationCenterBell_leadSelectLabel__GjoKu {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_leadSelect__ilJq7 {
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.16));
  background: var(--surface-page, #fff);
  font: inherit;
  font-size: 14px;
  color: var(--text-1, var(--text-primary));
}

.NotificationCenterBell_divider__nhI2S {
  height: 1px;
  margin: 0;
  border: none;
  background: var(--border-2, rgba(58, 46, 34, 0.12));
}

.NotificationCenterBell_adminInboxHead__4LDDc {
  padding: 14px 16px 10px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_inboxSection__K82du {
  padding: 0 12px 8px;
  background: color-mix(in srgb, var(--hg-ink, #3a2e22) 3%, var(--surface-card, #faf5ef));
}

.NotificationCenterBell_inboxList__oE4zl {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.NotificationCenterBell_inboxItem__wtZW4 {
  position: relative;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  grid-gap: 12px;
  gap: 12px;
  align-items: start;
  width: 100%;
  margin: 0;
  padding: 12px 14px 12px 12px;
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.1));
  border-radius: 16px;
  cursor: pointer;
  text-align: left;
  background: var(--surface-page, #fff);
  font: inherit;
  color: inherit;
  box-sizing: border-box;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.NotificationCenterBell_inboxItem__wtZW4:hover {
  border-color: color-mix(in srgb, var(--hg-peach, #f4c9a8) 45%, transparent);
  box-shadow: 0 4px 14px rgba(58, 46, 34, 0.06);
}

.NotificationCenterBell_inboxItemUnread__sGefm {
  border-color: color-mix(in srgb, var(--hg-peach, #f4c9a8) 35%, transparent);
  border-left: 3px solid var(--hg-red, #ff5a5a);
  padding-left: 10px;
  background: var(--surface-page, #fff);
}

.NotificationCenterBell_inboxItemRead__W303W {
  background: color-mix(in srgb, var(--surface-page, #fff) 88%, var(--hg-cream, #faf5ef));
}

.NotificationCenterBell_inboxItemRead__W303W .NotificationCenterBell_inboxTitle__ojIO7,
.NotificationCenterBell_inboxItemRead__W303W .NotificationCenterBell_inboxDetail__OqUkG {
  color: var(--text-2, var(--text-secondary));
}

.NotificationCenterBell_inboxIconChip__4fOXN {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  flex-shrink: 0;
}

.NotificationCenterBell_inboxIconChip_danger__NVTla {
  background: var(--hg-red-tint, #ffdcd6);
  color: var(--hg-red-deep, #9c2f2f);
}

.NotificationCenterBell_inboxIconChip_warn__fGGLA {
  background: var(--hg-yellow-tint, #fbecc2);
  color: var(--hg-yellow-deep, #7a5a00);
}

.NotificationCenterBell_inboxIconChip_ok__i70_Z {
  background: var(--hg-green-tint, #d9e7de);
  color: var(--hg-green-deep, #1f4a36);
}

.NotificationCenterBell_inboxIconChip_lilla__LjSZD {
  background: var(--hg-lilla-tint, #eae0f5);
  color: var(--hg-lilla-deep, #5e4380);
}

.NotificationCenterBell_inboxIconChip_neutral__nvtd5 {
  background: var(--surface-sunken, rgba(58, 46, 34, 0.06));
  color: var(--text-1, var(--text-primary));
}

.NotificationCenterBell_inboxBody__1ErlI {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-right: 8px;
}

.NotificationCenterBell_inboxMetaRow__hwVTM {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.NotificationCenterBell_inboxCategory__LvtUe {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_inboxTitle__ojIO7 {
  display: block;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-1, var(--text-primary));
}

.NotificationCenterBell_inboxDetail__OqUkG {
  display: block;
  font-size: 12px;
  line-height: 1.35;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_inboxTime__tS2Gl {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 500;
  color: var(--text-3, var(--text-secondary));
  white-space: nowrap;
}

.NotificationCenterBell_adminHint__ex91t {
  margin: 0;
  padding: 10px 16px 16px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_adminHint__ex91t a {
  color: var(--hg-ink, var(--brown-dark));
  font-weight: 600;
}

.NotificationCenterBell_inboxEmpty__f1aJv,
.NotificationCenterBell_inboxLoading___Tm1m {
  padding: 20px 16px 24px;
  text-align: center;
  font-size: 13px;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_inboxErr__Ze14j {
  margin: 0 12px 8px;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 12px;
  color: var(--hg-red-deep, #9c2f2f);
  background: var(--hg-red-tint, #ffdcd6);
}

.NotificationCenterBell_prefsLoading__1V41E {
  margin: 0;
  font-size: 12px;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_roleHint__xWRiA {
  margin: 0;
  padding: 0 16px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text-3, var(--text-secondary));
}

.NotificationCenterBell_sheetHead__mJQMI {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px 12px !important;
  border-bottom: 1px solid var(--border-2, rgba(58, 46, 34, 0.1)) !important;
  background: var(--surface-card, var(--hg-cream, #faf5ef));
}

.NotificationCenterBell_sheetHeadTitle__RH3lx {
  flex: 1 1;
  min-width: 0;
  font-family: var(--font-display, var(--font-family-heading));
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--text-1, var(--text-primary));
}

.NotificationCenterBell_sheetClose__fWhFM {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  border: 1px solid var(--border-2, rgba(58, 46, 34, 0.16));
  border-radius: 12px;
  background: var(--surface-page, #fff);
  color: var(--text-1, var(--text-primary));
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.NotificationCenterBell_sheetClose__fWhFM:hover {
  background: var(--hg-peach-tint, rgba(244, 201, 168, 0.35));
}

.NotificationCenterBell_sheetClose__fWhFM:focus-visible {
  outline: 2px solid var(--hg-peach, #f4c9a8);
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .NotificationCenterBell_draftBadge__DMD_t {
    display: none;
  }

  .NotificationCenterBell_dropdownShell__nK0h_,
  .NotificationCenterBell_dropdownShellAdmin__h_lGd {
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  .NotificationCenterBell_dropdownShellPortal__cL_0p {
    position: fixed;
    inset: 0;
    height: 100%;
    padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px)
      env(safe-area-inset-left, 0px);
    box-sizing: border-box;
    overscroll-behavior: contain;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/user/RoleBadge.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.RoleBadge_badge__8V0fq {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}

.RoleBadge_admin__stJpt {
  background: rgba(185, 28, 28, 0.14);
  color: #991b1b;
  border-color: rgba(185, 28, 28, 0.3);
}

.RoleBadge_chief__1NywN {
  background: rgba(109, 40, 217, 0.14);
  color: #6d28d9;
  border-color: rgba(109, 40, 217, 0.28);
}

.RoleBadge_teacher__5JDkv {
  background: rgba(29, 78, 216, 0.14);
  color: #1d4ed8;
  border-color: rgba(29, 78, 216, 0.3);
}

.RoleBadge_courseTeacher__kdR_j {
  background: rgba(2, 132, 199, 0.14);
  color: #0284c7;
  border-color: rgba(2, 132, 199, 0.3);
}

.RoleBadge_user__uyNbJ {
  background: rgba(75, 85, 99, 0.14);
  color: #4b5563;
  border-color: rgba(75, 85, 99, 0.25);
}

/* Variante menu navigazione (mockup Claude design) */
.RoleBadge_menu__FShwM {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  padding: 4px 10px;
  border: none;
}

.RoleBadge_menu__FShwM.RoleBadge_admin__stJpt {
  background: #3a2e22;
  color: #f8bcab;
}

.RoleBadge_menu__FShwM.RoleBadge_chief__1NywN {
  background: #3a2e22;
  color: #f8bcab;
}

.RoleBadge_menu__FShwM.RoleBadge_teacher__5JDkv {
  background: #eae0f5;
  color: #5e4380;
}

.RoleBadge_menu__FShwM.RoleBadge_courseTeacher__kdR_j {
  background: #eae0f5;
  color: #5e4380;
}

.RoleBadge_menu__FShwM.RoleBadge_user__uyNbJ {
  background: rgba(58, 46, 34, 0.1);
  color: rgba(36, 27, 17, 0.58);
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/InstallPrompt/InstallIosSheet.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************/
.InstallIosSheet_backdrop__m15Mc {
  position: fixed;
  inset: 0;
  z-index: 1700;
  background: rgba(75, 61, 42, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  font-family: var(--font-family, "Epilogue", sans-serif);
  animation: InstallIosSheet_iosSheetFadeIn__K1kpi 0.2s ease-out;
}

@keyframes InstallIosSheet_iosSheetFadeIn__K1kpi {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.InstallIosSheet_sheet__F5_KD {
  width: 100%;
  max-width: 420px;
  max-height: min(78vh, 520px);
  background: var(--modal-panel-bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0.5px solid var(--glass-border, var(--border));
  border-radius: var(--border-radius-lg, 16px) var(--border-radius-lg, 16px) 0 0;
  box-shadow: 0 -8px 28px rgba(75, 61, 42, 0.12);
  padding: var(--spacing-md, 16px);
  padding-bottom: max(var(--spacing-md, 16px), env(safe-area-inset-bottom, 0px));
  animation: InstallIosSheet_iosSheetSlideUp__rWwsA 0.32s ease-out;
}

@keyframes InstallIosSheet_iosSheetSlideUp__rWwsA {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

.InstallIosSheet_header__FThb1 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: var(--spacing-md, 16px);
}

.InstallIosSheet_title__OiLwH {
  margin: 0;
  font-size: var(--text-base, 16px);
  font-weight: var(--font-semibold, 600);
  color: var(--text-primary);
  line-height: 1.3;
}

.InstallIosSheet_closeBtn__AlHqM {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  padding: 0;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.InstallIosSheet_closeBtn__AlHqM:hover {
  background: color-mix(in srgb, var(--brown-dark) 6%, transparent);
  color: var(--text-primary);
}

.InstallIosSheet_steps__yX_3c {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.InstallIosSheet_step__hvzQ0 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.InstallIosSheet_stepIcon__kf5Z3 {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 0.5px solid var(--glass-border);
  background: var(--glass-bg);
  color: var(--brown-dark);
}

.InstallIosSheet_stepText__TTE0o {
  margin: 0;
  font-size: var(--text-sm, 14px);
  line-height: 1.4;
  color: var(--text-primary);
}

.InstallIosSheet_dismissForever__LYSJQ {
  margin-top: var(--spacing-md, 16px);
  padding-top: var(--spacing-md, 16px);
  border-top: 0.5px solid var(--glass-border, var(--border));
  text-align: center;
}

.InstallIosSheet_dismissForeverBtn__a7fW4 {
  margin: 0;
  padding: 6px 8px;
  border: none;
  background: transparent;
  font: inherit;
  font-size: var(--text-sm, 13px);
  color: var(--text-secondary);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.InstallIosSheet_dismissForeverBtn__a7fW4:hover {
  color: var(--text-primary);
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/InstallPrompt/InstallPrompt.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************/
/* —— Floating fallback (non-home, 5+ interazioni) —— */
@keyframes InstallPrompt_installPromptSlideUp__5YUwX {
  from {
    transform: translateY(110%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.InstallPrompt_floatingRoot__5_TOx {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1650;
  padding: var(--spacing-md, 16px);
  padding-bottom: max(var(--spacing-md, 16px), env(safe-area-inset-bottom, 0px));
  pointer-events: none;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.InstallPrompt_floatingPanel__8Cffq {
  pointer-events: auto;
  width: min(420px, 100%);
  background: var(--modal-panel-bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0.5px solid var(--glass-border, var(--border));
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(75, 61, 42, 0.08);
  padding: 14px 16px 16px;
  font-family: var(--font-family, "Epilogue", sans-serif);
  color: var(--text-primary);
  animation: InstallPrompt_installPromptSlideUp__5YUwX 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.InstallPrompt_title__KrRfX {
  margin: 0 0 8px;
  font-size: var(--text-base, 16px);
  font-weight: var(--font-semibold, 600);
  line-height: 1.3;
}

.InstallPrompt_body__Fnp_s {
  margin: 0 0 14px;
  font-size: var(--text-sm, 14px);
  line-height: 1.45;
  color: var(--text-secondary);
}

.InstallPrompt_actions__urzY9 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
}

.InstallPrompt_btnPrimary__Y_XOO {
  min-height: 40px;
  padding: 0 16px;
  border-radius: 10px;
  border: 1px solid var(--brown-dark);
  background: var(--brown-dark);
  color: var(--text-on-accent, #fff);
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-semibold, 600);
  font-family: inherit;
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.InstallPrompt_btnPrimary__Y_XOO:hover:not(:disabled) {
  opacity: 0.92;
}

.InstallPrompt_btnPrimary__Y_XOO:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.InstallPrompt_btnGhost__PqgHt {
  min-height: 40px;
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-primary);
  font-size: var(--text-sm, 14px);
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.InstallPrompt_btnGhost__PqgHt:hover {
  background: color-mix(in srgb, var(--brown-dark) 6%, transparent);
}

.InstallPrompt_closeIcon__m22Z8 {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  padding: 0;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.InstallPrompt_closeIcon__m22Z8:hover {
  background: rgba(75, 61, 42, 0.08);
  color: var(--text-primary);
}

.InstallPrompt_floatingWrap__sKHQh {
  position: relative;
  padding-right: 28px;
}

/* —— Toast installazione —— */
@keyframes InstallPrompt_installToastIn__BTIKm {
  from {
    opacity: 0;
    transform: translate(-50%, 8px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.InstallPrompt_installToast__pOsgZ {
  position: fixed;
  bottom: max(24px, env(safe-area-inset-bottom, 0px));
  left: 50%;
  transform: translateX(-50%);
  z-index: 1800;
  padding: 10px 18px;
  border-radius: 999px;
  font-family: var(--font-family, "Epilogue", sans-serif);
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-semibold, 600);
  color: var(--text-primary);
  background: var(--modal-panel-bg);
  border: 0.5px solid var(--glass-border);
  box-shadow: 0 4px 16px rgba(75, 61, 42, 0.1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  animation: InstallPrompt_installToastIn__BTIKm 0.25s ease-out;
  pointer-events: none;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/MaintenanceBanner/MaintenanceBanner.module.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************/
.MaintenanceBanner_banner__OKBlw {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 16px;
    background: linear-gradient(90deg, rgba(180, 83, 9, 0.14), rgba(217, 119, 6, 0.1));
    border-bottom: 1px solid rgba(180, 83, 9, 0.35);
    color: var(--text-primary);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.MaintenanceBanner_dot__EGgPN {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 5px;
    border-radius: 999px;
    background: #b45309;
    box-shadow: 0 0 0 2px rgba(180, 83, 9, 0.25);
}

.MaintenanceBanner_text__RJFda {
    flex: 1 1;
    min-width: 0;
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/AppModalShell/appModalShell.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Shell condivisa per popup/modal: allineata a UserProfileModal (profilo completo, tab Gestione utenti).
 * Usare queste classi per overlay, pannello, header, titolo, chiusura, corpo, footer.
 */

/* ── Overlay ── */

.appModalShell_overlay__lrR8z {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /* Sfondo anche su desktop: evita che la pagina (es. colonna Chiamate) resti leggibile sotto la modale */
    background: color-mix(in srgb, var(--brown-dark) 24%, transparent);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000;
    padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px))
        max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    box-sizing: border-box;
}

/**
 * Stesso livello click-catcher senza flex: per pannelli `position: fixed` centrati via
 * useAnchoredPanelPosition (stesso effetto visivo dell’overlay flex del profilo completo).
 */
.appModalShell_overlayStatic__goN9m {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: transparent;
    z-index: 2000;
    padding: 16px;
    pointer-events: auto;
    box-sizing: border-box;
}

/* ── Pannello principale ── */

.appModalShell_panel__iwh8s {
    /* Popup: superficie opaca (leggibilità; il vetro resta su card/sidebar via --glass-bg) */
    background: var(--modal-panel-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    width: 96%;
    max-width: 960px;
    max-height: 92vh;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    box-shadow:
        0 10px 44px rgba(75, 61, 42, 0.09),
        var(--hm-agenda-glass-edge, inset 0 1px 0 rgba(253, 246, 242, 0.42));
    overflow: hidden;
    border: 0.5px solid var(--glass-border);
    box-sizing: border-box;
}

/** Con SearchableSelect / menu assoluti: evita clip sul pannello (il corpo resta scrollabile). */
.appModalShell_panelAllowOverflow__ABdb9 {
    overflow: visible;
}

.appModalShell_panelNarrow__6dSHD {
    max-width: 480px;
}

.appModalShell_panelMedium__7oIAE {
    max-width: 640px;
}

.appModalShell_panelLarge__6df7K {
    max-width: 900px;
}

.appModalShell_panelExtraWide__1A_EE {
    max-width: min(1200px, calc(100vw - 32px));
}

/**
 * Modali operative / editor inline: larghezza utile, ~⅔ viewport, corpo scrollabile.
 * Token: --hm-editor-panel-* in globals.css
 */
.appModalShell_panel__iwh8s.appModalShell_panelEditor__p0gBm {
    width: var(--hm-editor-panel-width);
    max-width: var(--hm-editor-panel-width);
    min-height: var(--hm-editor-panel-min-height);
    max-height: var(--hm-editor-panel-max-height);
}

.appModalShell_panel__iwh8s.appModalShell_panelEditor__p0gBm.appModalShell_panelAllowOverflow__ABdb9 {
    overflow: hidden;
}

.appModalShell_panel__iwh8s.appModalShell_panelEditor__p0gBm.appModalShell_panelAllowOverflow__ABdb9 .appModalShell_body__vkCmN {
    overflow-y: auto;
    min-height: 0;
}

/**
 * Con `createPortal(..., document.body)`: il pannello può usare quasi tutta l’altezza utile
 * (Ripetizioni / recap giornata admin). Senza portal, antenati con filter/overflow restringono il fixed.
 * Doppio selettore: vince sulle regole `.panel` nei breakpoint.
 */
.appModalShell_panel__iwh8s.appModalShell_panelTallViewport__j_MGS {
    max-height: min(96dvh, calc(100dvh - max(32px, calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px)))));
}

@supports not (min-height: 1dvh) {
    .appModalShell_panel__iwh8s.appModalShell_panelTallViewport__j_MGS {
        max-height: min(96vh, calc(100vh - 32px));
    }
}

/**
 * Pannello opaco (regolamenti / testi lunghi): niente vetro, massima leggibilità.
 */
.appModalShell_panelSolid__ND6v3 {
    background: var(--hm-cream-solid, var(--surface-solid));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid var(--border);
    box-shadow:
        0 10px 44px rgba(75, 61, 42, 0.12),
        var(--hm-agenda-glass-edge, inset 0 1px 0 rgba(253, 246, 242, 0.5));
}

/**
 * Overlay per bottom-sheet (es. regolamenti): su stretto allinea in basso; padding orizzontale + safe-area.
 */
.appModalShell_overlaySheet__yvPhE {
    /* desktop: identico a .overlay */
}

/**
 * Pannello ancorato (centrato o spostato da hook): stessa grafica del profilo, position fixed.
 */
.appModalShell_panelFixed__11_vE {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: var(--modal-panel-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    width: min(900px, calc(100vw - 40px));
    max-width: 900px;
    max-height: 85vh;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    box-shadow:
        0 10px 44px rgba(75, 61, 42, 0.09),
        var(--hm-agenda-glass-edge, inset 0 1px 0 rgba(253, 246, 242, 0.42));
    overflow: hidden;
    border: 0.5px solid var(--glass-border);
    box-sizing: border-box;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .appModalShell_panel__iwh8s,
    .appModalShell_panelFixed__11_vE {
        background: var(--modal-panel-bg);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .appModalShell_panelSolid__ND6v3 {
        background: var(--hm-cream-solid, var(--surface-solid));
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

.appModalShell_panelFixedWide__zMIkH {
    width: min(1200px, calc(100vw - 40px));
    max-width: 1200px;
}

.appModalShell_panelFixedMedium__oZXUs {
    width: min(640px, calc(100vw - 40px));
    max-width: 640px;
}

.appModalShell_panelFixed720___0yAr {
    width: min(720px, calc(100vw - 40px));
    max-width: 720px;
}

/* ── Header ── */

.appModalShell_header__WX4or {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    flex-shrink: 0;
}

.appModalShell_headerInfo__K9rHl {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1;
    min-width: 0;
}

.appModalShell_title__FtP0Z {
    margin: 0;
    color: var(--text-primary);
    font-size: var(--text-lg);
    font-family: var(--font-family);
    font-weight: 700;
    text-transform: none;
    letter-spacing: -0.01em;
}

.appModalShell_subtitle__KqFaR {
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

.appModalShell_closeButton__Qn2vF {
    background: transparent;
    border: 1px solid var(--brown-dark);
    border-radius: 10px;
    font-size: var(--text-xl, 20px);
    cursor: pointer;
    color: var(--brown-dark);
    padding: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color var(--transition-fast);
    line-height: 1;
}

.appModalShell_closeButton__Qn2vF:hover {
    background-color: color-mix(in srgb, var(--peach-background) 50%, transparent);
    color: var(--brown-dark);
}

/* ── Tabs (stile profilo) ── */

.appModalShell_tabRow__xdWz1 {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border);
    padding: 0 20px;
    overflow-x: auto;
    flex-shrink: 0;
}

.appModalShell_tab__or75l {
    padding: 10px 16px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    font-family: var(--font-family);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--text-secondary);
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}

.appModalShell_tab__or75l:hover {
    color: var(--text-primary);
}

.appModalShell_tabActive__mD5_z {
    color: var(--brown-dark);
    font-weight: var(--font-semibold);
    border-bottom-color: var(--brown-dark);
}

/* ── Corpo ── */

.appModalShell_body__vkCmN {
    flex: 1 1;
    overflow-y: auto;
    padding: 20px;
    min-height: 0;
}

/**
 * Corpo modale come colonna flex: l’overflow-y avviene sul figlio scrollabile,
 * così header/footer (o fascia azioni) restano visibili e il contenuto lungo non viene tagliato.
 */
.appModalShell_bodyColumn__etM9X {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    padding: 0;
}

/* ── Footer azioni ── */

.appModalShell_footer__azf_F {
    padding: 16px 20px;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.appModalShell_footerCenter__CjqPy {
    justify-content: center;
}

.appModalShell_actionsRow__XgMQZ {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
    width: 100%;
}

.appModalShell_btnSecondary__z_tz4 {
    padding: 10px 18px;
    font-family: var(--font-family);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    transition:
        background-color var(--transition-fast),
        border-color var(--transition-fast);
}

.appModalShell_btnSecondary__z_tz4:hover {
    background-color: rgba(75, 61, 42, 0.06);
    border-color: color-mix(in srgb, var(--brown-dark) 35%, var(--border));
}

.appModalShell_btnPrimary__Igrcn {
    padding: 10px 18px;
    font-family: var(--font-family);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    color: var(--text-white);
    background: var(--brown-dark);
    border: 1px solid var(--brown-dark);
    border-radius: 10px;
    cursor: pointer;
    transition: filter 0.15s;
}

.appModalShell_btnPrimary__Igrcn:hover:not(:disabled) {
    filter: brightness(1.05);
}

.appModalShell_btnPrimary__Igrcn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ── Responsive ── */

@media (max-width: 700px) {
    .appModalShell_overlay__lrR8z,
    .appModalShell_overlayStatic__goN9m {
        background: color-mix(in srgb, var(--brown-dark) 34%, transparent);
        padding: max(10px, env(safe-area-inset-top, 0px)) max(14px, env(safe-area-inset-right, 0px))
            max(14px, env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px));
        align-items: center;
    }

    .appModalShell_overlaySheet__yvPhE {
        align-items: flex-end;
        justify-content: center;
        padding-top: max(10px, env(safe-area-inset-top, 0px));
        padding-left: max(10px, env(safe-area-inset-left, 0px));
        padding-right: max(10px, env(safe-area-inset-right, 0px));
        padding-bottom: 0;
    }

    .appModalShell_panel__iwh8s.appModalShell_panelEditor__p0gBm {
        width: 100%;
        max-width: 100%;
        min-height: min(62dvh, calc(100dvh - 120px));
        max-height: min(
            70dvh,
            calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px)
        );
    }

    @supports not (height: 1dvh) {
        .appModalShell_panel__iwh8s.appModalShell_panelEditor__p0gBm {
            min-height: min(62vh, calc(100vh - 120px));
            max-height: min(
                70vh,
                calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px)
            );
        }
    }

    .appModalShell_panel__iwh8s {
        width: 100%;
        max-width: 100%;
        max-height: min(96dvh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 20px));
        border-radius: 14px;
    }

    .appModalShell_panel__iwh8s.appModalShell_panelTallViewport__j_MGS {
        max-height: min(96dvh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 20px));
    }

    .appModalShell_panelFixed__11_vE {
        width: min(
            900px,
            calc(100vw - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))
        );
        max-height: min(85vh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 28px));
    }

    .appModalShell_panelFixedWide__zMIkH {
        width: min(
            1200px,
            calc(100vw - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))
        );
        max-height: min(85vh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 28px));
    }

    .appModalShell_panelFixedMedium__oZXUs {
        width: min(
            640px,
            calc(100vw - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))
        );
        max-height: min(85vh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 28px));
    }

    .appModalShell_panelFixed720___0yAr {
        width: min(
            720px,
            calc(100vw - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))
        );
        max-height: min(85vh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 28px));
    }

    .appModalShell_header__WX4or {
        padding: 14px 16px;
    }

    .appModalShell_body__vkCmN {
        padding: 14px 16px;
    }

    .appModalShell_bodyColumn__etM9X {
        padding: 0;
    }

    .appModalShell_footer__azf_F {
        padding: 14px 16px;
    }

    .appModalShell_tabRow__xdWz1 {
        padding: 0 14px;
    }
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/SiteAnnouncementModal/SiteAnnouncementModal.module.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.SiteAnnouncementModal_markdown__yRhc6 {
    color: var(--text-primary);
    line-height: 1.65;
}

.SiteAnnouncementModal_markdown__yRhc6 h1,
.SiteAnnouncementModal_markdown__yRhc6 h2,
.SiteAnnouncementModal_markdown__yRhc6 h3 {
    color: var(--brown-dark);
    margin-top: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    font-family: var(--font-family-heading);
    font-size: var(--text-base);
}

.SiteAnnouncementModal_markdown__yRhc6 p {
    margin-bottom: var(--spacing-md);
}

.SiteAnnouncementModal_markdown__yRhc6 ul {
    margin: 0 0 var(--spacing-md);
    padding-left: 1.25rem;
}

.SiteAnnouncementModal_logoWrap___QfdJ {
    display: flex;
    justify-content: center;
    margin-bottom: var(--spacing-md);
}

.SiteAnnouncementModal_logo__ExdC2 {
    max-height: 56px;
    width: auto;
    object-fit: contain;
}

.SiteAnnouncementModal_footerRow__BGV31 {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
}

.SiteAnnouncementModal_detailLink__p5N9I {
    text-decoration: none;
    margin-right: auto;
}

@media (max-width: 520px) {
    .SiteAnnouncementModal_footerRow__BGV31 {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .SiteAnnouncementModal_detailLink__p5N9I {
        margin-right: 0;
        text-align: center;
    }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/ThemeFooterStrip/ThemeFooterStrip.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************/
.ThemeFooterStrip_strip__A9B4z {
  display: none;
  width: 100%;
  box-sizing: border-box;
  background-color: transparent;
  background-image: var(--theme-footer-image, none);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  padding-top: var(--theme-footer-pad-top, 0px);
  padding-bottom: var(--theme-footer-pad-bottom, 0px);
  padding-left: var(--theme-footer-pad-left, 0px);
  padding-right: var(--theme-footer-pad-right, 0px);
  min-height: 0;
}

html[data-theme-footer="on"] .ThemeFooterStrip_strip__A9B4z {
  display: block;
  min-height: 3rem;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/VetrinaBottomNav/VetrinaBookingSheet.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.VetrinaBookingSheet_backdrop___v6yg {
  position: fixed;
  inset: 0;
  z-index: 1700;
  background: rgba(75, 61, 42, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  animation: VetrinaBookingSheet_bookingSheetFadeIn__l14Ji 0.2s ease-out;
}

@keyframes VetrinaBookingSheet_bookingSheetFadeIn__l14Ji {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.VetrinaBookingSheet_sheet__UK3Al {
  width: 100%;
  max-width: 420px;
  max-height: min(82vh, 560px);
  background: var(--surface-card, var(--modal-panel-bg));
  border: 0.5px solid var(--border-2, var(--border));
  border-radius: var(--radius-lg, 16px) var(--radius-lg, 16px) 0 0;
  box-shadow: 0 -8px 28px rgba(75, 61, 42, 0.12);
  padding: 16px;
  padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  animation: VetrinaBookingSheet_bookingSheetSlideUp__GyjBU 0.32s ease-out;
}

@keyframes VetrinaBookingSheet_bookingSheetSlideUp__GyjBU {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

.VetrinaBookingSheet_header__7pq_4 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.VetrinaBookingSheet_title__Hf02n {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-1, var(--text-primary));
  line-height: 1.3;
}

.VetrinaBookingSheet_lead__fuzhv {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--text-3, var(--text-secondary));
  line-height: 1.4;
}

.VetrinaBookingSheet_closeBtn__4MvvW {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-2, var(--border));
  border-radius: 10px;
  background: transparent;
  color: var(--text-3, var(--text-secondary));
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  padding: 0;
}

.VetrinaBookingSheet_options__tOfSI {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.VetrinaBookingSheet_option__EozHW {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 14px 14px 12px;
  border: 1px solid var(--border-2, var(--border));
  border-radius: 14px;
  background: var(--surface-page, var(--background));
  color: var(--text-1, var(--text-primary));
  text-align: left;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

.VetrinaBookingSheet_option__EozHW:active {
  transform: scale(0.985);
}

.VetrinaBookingSheet_optionYellow__nsmI2 {
  background: color-mix(in srgb, var(--hg-yellow, #ffc62b) 28%, var(--surface-page, #fff));
  border-color: color-mix(in srgb, var(--hg-yellow-deep, #7a5a00) 18%, transparent);
}

.VetrinaBookingSheet_optionRed__NVDt0 {
  background: color-mix(in srgb, var(--hg-red, #ff5a5a) 22%, var(--surface-page, #fff));
  border-color: color-mix(in srgb, var(--hg-red-deep, #9c2f2f) 16%, transparent);
}

.VetrinaBookingSheet_optionStudio___CGf1 {
  background: color-mix(in srgb, var(--hg-red, #ff5a5a) 18%, var(--surface-page, #fff));
  border-color: color-mix(in srgb, var(--hg-red-deep, #9c2f2f) 14%, transparent);
}

.VetrinaBookingSheet_optionNeutral__UqdqQ {
  background: color-mix(in srgb, var(--hg-peach, #f4c9a8) 35%, var(--surface-page, #fff));
}

.VetrinaBookingSheet_optionRecommended__SHGZE {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--hg-peach, #f4c9a8) 70%, transparent);
}

.VetrinaBookingSheet_iconWrap__Sw1aR {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.55);
  color: var(--hg-ink, var(--brown-dark));
}

.VetrinaBookingSheet_copy__Kw1Xa {
  flex: 1 1;
  min-width: 0;
}

.VetrinaBookingSheet_optionTitle__OrvOe {
  display: block;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}

.VetrinaBookingSheet_optionSub__D92hy {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--text-3, var(--text-secondary));
  line-height: 1.35;
}

.VetrinaBookingSheet_badge__vcpOr {
  position: absolute;
  top: 10px;
  right: 12px;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--hg-ink, var(--brown-dark));
  background: rgba(255, 255, 255, 0.72);
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/components/VetrinaBottomNav/VetrinaBottomNav.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************/
.VetrinaBottomNav_nav__eBkbz {
  display: none;
}

@media (max-width: 768px) {
  .VetrinaBottomNav_nav__eBkbz {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    align-items: stretch;
    grid-gap: 0;
    gap: 0;
    padding:
      6px
      max(4px, env(safe-area-inset-left, 0px))
      max(10px, env(safe-area-inset-bottom, 0px))
      max(4px, env(safe-area-inset-right, 0px));
    background: var(--surface-card);
    border-top: 1px solid var(--border-2);
    box-sizing: border-box;
  }

  .VetrinaBottomNav_item__ezNLy {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-width: 0;
    min-height: 52px;
    padding: 2px 1px 0;
    text-decoration: none;
    color: var(--text-3);
    font-size: 11px;
    font-weight: var(--w-semibold, 600);
    line-height: 1.15;
    -webkit-tap-highlight-color: transparent;
    transition: color var(--t-fast, 0.15s) var(--ease-out);
  }

  .VetrinaBottomNav_itemActive__ptCiJ {
    color: var(--text-1);
  }

  .VetrinaBottomNav_label__pB8X3 {
    width: 100%;
    max-width: 100%;
    text-align: center;
    letter-spacing: -0.01em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .VetrinaBottomNav_iconWrap__lrTjW {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 48px;
    height: 32px;
    border-radius: var(--radius-pill, 99px);
    transition: background-color var(--t-fast, 0.15s) var(--ease-out);
  }

  .VetrinaBottomNav_itemActive__ptCiJ .VetrinaBottomNav_iconWrap__lrTjW {
    background: var(--hg-peach);
    color: var(--hg-ink);
  }

  .VetrinaBottomNav_itemButton__HfPvC {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
    width: 100%;
  }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/globals.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Palette grafici CRM (PROMPT 17) — accessibile e unificata */
  --chart-packages: #7c6af7; /* viola brand */
  --chart-lessons: #2dd4bf; /* teal — lezioni admin */
  --chart-coworking: #f59e0b; /* ambra — coworking */
  --chart-studio: #ec4899; /* magenta — studio */
  --chart-courses: #6366f1; /* indigo — corsi (futuro) */
  --chart-events: #14b8a6; /* verde acqua — eventi (futuro) */
  --chart-prev: #cbd5e1; /* grigio — periodo precedente */
  --chart-avg: #475569; /* media */
  --chart-future: rgba(148, 163, 184, 0.18); /* shade futuro */

  /* Immagini tema (applyThemeConfig) */
  --theme-bg-image-layer: none;
  --theme-bg-image-size: auto;
  --theme-bg-pad-top: 0px;
  --theme-bg-pad-bottom: 0px;
  --theme-bg-pad-left: 0px;
  --theme-bg-pad-right: 0px;
  --theme-header-image: none;
  --theme-header-pad-top: 0px;
  --theme-header-pad-bottom: 0px;
  --theme-header-pad-left: 0px;
  --theme-header-pad-right: 0px;
  --theme-footer-image: none;
  --theme-footer-pad-top: 0px;
  --theme-footer-pad-bottom: 0px;
  --theme-footer-pad-left: 0px;
  --theme-footer-pad-right: 0px;

  /* ===== Hygge design tokens (palette + tipografia) — riferimento canonico ===== */
  --hy-cream: #faf5ef;
  --hy-cream-soft: #f5eee3;
  --hy-surface: #fffcf7;
  --hy-peach: #f4d9c6;
  --hy-peach-deep: #eaccb8;
  --hy-terracotta: #c9664a;
  --hy-terracotta-hover: #a84e38;
  --hy-terracotta-deep: #7a3d25;
  --hy-sage: #6f8a68;
  --hy-sage-soft: #d7e2d4;
  --hy-lavender: #c7bbdb;
  --hy-lavender-soft: #dfd5ee;
  --hy-lavender-deep: #3a2b5f;
  --hy-coral-warn: #d86d56;
  --hy-brown-deep: #3a2e22;
  --hy-brown: #4b3d2a;
  --hy-brown-soft: #6b5a48;
  --hy-brown-mute: #8b7555;
  --hy-line: #e8d9c7;
  --hy-line-strong: #c0b29e;

  --hy-font-sans: var(--font-sans), "Epilogue", system-ui, sans-serif;
  --hy-font-serif: var(--hy-font-sans);

  --hy-text-xs: 11px;
  --hy-text-sm: 13px;
  --hy-text-base: 15px;
  --hy-text-md: 17px;
  --hy-text-lg: 20px;
  --hy-text-xl: 26px;
  --hy-text-2xl: 32px;
  --hy-text-3xl: 44px;

  --hy-radius-sm: 8px;
  --hy-radius-md: 14px;
  --hy-radius-lg: 18px;
  --hy-radius-xl: 24px;
  --hy-radius-2xl: 28px;
  --hy-radius-full: 999px;

  --hy-shadow-soft: 0 2px 8px rgba(58, 46, 34, 0.06);
  --hy-shadow-raised: 0 10px 28px rgba(58, 46, 34, 0.09);
  --hy-shadow-float: 0 20px 60px rgba(58, 46, 34, 0.12);

  --hy-space-1: 4px;
  --hy-space-2: 8px;
  --hy-space-3: 12px;
  --hy-space-4: 16px;
  --hy-space-5: 20px;
  --hy-space-6: 24px;
  --hy-space-8: 32px;
  --hy-space-10: 40px;
  --hy-space-12: 56px;

  /* ===== COLORS ===== */
  
  --orange-light: #FBD583;   
  --coral-light: #FB9F9B; 
  --lavender-light: #DDC5DF;    
  --peach-active: #F8BCAB;
  --peach-hover: #F8BCAB7F;
  --peach-light: var(--hy-cream-soft);
  --peach-background: #F8BCAB4C;
  --yellow-active: #FFC62B;
  --yellow-hover: #FFC62B7F;
  --lavender-active: #C2A6E2;
  --lavender-hover: #C2A6E27F;
  --green-active: #1D963F;
  --green-hover: #1D963F7F;
  --brown-dark: #3A2E22;
  --header-bar-color: #3A2E22;
  /* Testo/icone sulla barra header (tema-driven, vedi applyThemeConfig) */
  --header-text-color: #F8BCAB;

  /* Token strutturali — default Hygge Vetrina (applyThemeConfig può sovrascrivere) */
  --struct-nav-height: 72px;
  --struct-nav-padding-x: clamp(20px, 4vw, 56px);
  --struct-main-padding-x: clamp(20px, 4vw, 56px);
  --struct-body-font-size: 17px;
  --struct-btn-radius: 999px;
  --struct-btn-min-height: 48px;
  --struct-btn-padding-y: 14px;
  --struct-btn-padding-x: 28px;
  --struct-btn-font-weight: 700;
  --struct-btn-hover-scale: 1.03;
  --struct-card-radius: 22px;
  --struct-card-min-height: 120px;
  --struct-card-hero-min-height: 140px;
  --struct-card-padding: 20px 24px;
  --struct-card-gap: 16px;
  --struct-card-title-size: clamp(22px, 2.6vw, 30px);
  --struct-card-title-weight: 400;
  --struct-card-title-transform: uppercase;
  --struct-card-title-font: var(--font-family-heading);
  --struct-card-title-tracking: -0.01em;
  --struct-card-hover-transform: translateY(-2px) scale(1.01);
  --struct-card-bg-mix: 88%;
  --struct-card-hover-bg-mix: 100%;
  --struct-tab-radius: 999px;
  --struct-tabs-nav-radius: 22px;
  --struct-tabs-active-bg: var(--accent);
  --struct-tabs-active-color: var(--brown-dark);
  --struct-tabs-active-border: transparent;
  --struct-tabs-active-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 45%, transparent);
  --struct-tabs-hover-bg: color-mix(in srgb, var(--accent) 18%, transparent);
  --struct-home-max-width: 1100px;
  --struct-home-admin-max-width: 1400px;
  --struct-section-title-size: 13px;
  --struct-section-title-weight: 700;
  --struct-section-title-transform: uppercase;
  --struct-section-title-tracking: 0.14em;
  --struct-input-radius: 14px;
  --struct-input-padding-y: 14px;
  --struct-input-padding-x: 16px;
  --struct-chip-radius: 999px;
  --struct-menu-panel-bg: #F8BCAB;
  --sidebar-bg: #3A2E22;
  /* Testo card interactive (neutre) — stesso marrone brand dei pulsanti */
  --interactive-card-text: var(--brown-dark);
  --interactive-card-text-muted: color-mix(in srgb, var(--brown-dark) 42%, var(--text-secondary));
  --red-classic: #FF5A5A;        
  --red-light: #FF5A5A7F;      
  --yellow-light: #FFE5AA;       
  --gray-medium: #707070;        
  --white: #FFFFFF;
  
  /* CoWorking workstation colors */
  --coworking-blue: #00839E;
  --coworking-blue-hover: #7BB2BB;              
  

  /* Colori pulsanti home page*/
  --coworking-active: var(--red-light);
  --coworking-hover: var(--red-classic);

  --ripetizioni-active: var(--yellow-hover);
  --ripetizioni-hover: var(--yellow-active);

  --spazi-lavoro-active: var(--red-light);
  --spazi-lavoro-hover: var(--red-classic);

  --studio-active: var(--lavender-hover);
  --studio-hover: var(--lavender-active);

  --corsi-active: var(--lavender-hover);
  --corsi-hover: var(--lavender-active);

  --eventi-active: var(--green-hover);
  --eventi-hover: var(--green-active);

  --generic-active: var(--peach-hover);
  --generic-hover: var(--peach-active);
  
  /* Neutral Colors - Updated to match new design */
  --brown-text: var(--brown-dark);
  /* Titoli: sempre colore brand (pulsanti), non --text-primary (può essere nero da admin) */
  --text-heading: #3A2E22;
  --background: #F9F5EE;
  /* Superficie opaca: form, select, datepicker (leggibilità) */
  --surface: #FFFFFF;
  --surface-solid: #FFFFFF;
  /* Popup/modal/dialog: superficie opaca (applyThemeConfig la allinea a --surface) */
  --modal-panel-bg: var(--surface-solid);
  /* Glass (card/pannelli) — valori sovrascritti da applyThemeConfig */
  --glass-bg: rgb(255 255 255 / 0.35);
  --glass-border: rgba(255, 255, 255, 0.45);
  --glass-opacity: 0.35;
  --glass-blur: 12px;
  --glass-modal-blur: 16px;
  --glass-blur-sm: 8px;
  --layer-gradient-start: #F9F5EE;
  --layer-gradient-end: #FFFFFF;
  /* Crema dedicata (dashboard admin / glass): stesso paradigma “no #FFFFFF” */
  --hm-cream-solid: var(--hy-surface);
  --hm-cream-mist: rgba(253, 246, 242, 0.94);
  --hm-slot-muted: rgba(247, 226, 218, 0.72);
  --hm-slot-past: rgba(228, 214, 204, 0.82);
  --transparent: transparent;

  /* Token allineati a bg-background / border-border / accent (hover righe, ecc.) */
  --accent: #FFC62B;
  --btn-style: filled;
  --border: rgba(75, 61, 42, 0.14);
  --border-color: var(--border);
  /* Hover righe tabelle / liste dati (bassa intensità) */
  --table-row-hover-bg: rgba(75, 61, 42, 0.04);
  
  /* Text Colors */
  --text-primary: #1A1A1A;
  --text-secondary: #6B5A48;
  --text-light: var(--gray-medium);
  /* Solo per testo su accenti ad alto contrasto (es. btn primario); no sfondi bianchi */
  --text-white: var(--white);
  --text-on-accent: var(--white);
  
  /* Status Colors */
  --success: var(--hy-sage);
  --warning: var(--orange-light);
  --error: var(--coral-light);
  --info: var(--lavender-light);
  
  /* ===== TYPOGRAPHY ===== */
  --font-family: var(--hy-font-sans);
  --font-family-heading: var(--hy-font-serif);
  
  /* New Design System Typography */
  --font-epilogue: Epilogue;
  --font-style-normal: normal;
  --font-weight-normal: normal;
  --font-size-title: 20px;
  --font-size-hero: 89px;
  --character-spacing-none: 0px;
  --line-height-title: 21px;
  --line-height-hero: 91px;
  
  /* Font Sizes */
  --text-xs: var(--hy-text-xs);
  --text-sm: var(--hy-text-sm);
  --text-base: var(--hy-text-base);
  --text-lg: var(--hy-text-md);
  --text-xl: var(--hy-text-lg);
  --text-2xl: var(--hy-text-xl);
  --text-3xl: var(--hy-text-2xl);
  --text-4xl: 36px;
  --text-5xl: var(--hy-text-3xl);
  --text-button: 48px; /* Dimensione comune per pulsanti */
  
  /* Font Weights */
  --font-light: 300;
  --font-normal: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --font-extrabold: 800;
  
  /* Line Heights */
  --leading-tight: 1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.75;
  
  /* ===== SPACING ===== */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 48px;
  --spacing-3xl: 64px;
  
  /* ===== BORDERS ===== */
  --border-radius-sm: 10px;
  --border-radius-md: 12px;
  --border-radius-lg: 12px;
  --border-radius-xl: 16px;
  --border-radius-full: 9999px;
  
  --border-width: 1px;
  --border-width-thick: 2px;
  
  /* ===== SHADOWS ===== */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  
  /* ===== TRANSITIONS ===== */
  --transition-fast: 150ms ease-in-out;
  --transition-normal: 250ms ease-in-out;
  --transition-slow: 350ms ease-in-out;
  
  /* ===== Z-INDEX ===== */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;

  /* FullCalendar / legacy — alias su token Hygge */
  --red-inactive: var(--hy-line);
  --red-active: var(--hy-terracotta);
  --purple-active: var(--hy-lavender);

  /* iOS / notch: usare con env() dove serve */
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);

  /*
   * Pannelli editor inline / modali operative (AppModalShell.panelEditor, agenda admin…).
   * Larghezza generosa; altezza ~⅔ viewport con scroll interno al corpo.
   */
  --hm-editor-panel-width: min(960px, calc(100vw - 40px));
  --hm-editor-panel-min-height: 66dvh;
  --hm-editor-panel-max-height: min(
    72dvh,
    calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 32px)
  );
}

@supports not (height: 1dvh) {
  :root {
    --hm-editor-panel-min-height: 66vh;
    --hm-editor-panel-max-height: min(
      72vh,
      calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 32px)
    );
  }
}

/*
 * Hover righe dati — applicazione globale (tabelle).
 * Non sostituisce hover di card home, postazioni coworking, tab navigation, bottoni.
 */
table tbody tr {
  transition: background 0.15s ease;
}

table tbody tr:hover,
.table-row:hover,
[data-row]:hover {
  background: var(--table-row-hover-bg);
}

/**
 * Card / aree cliccabili neutre (non colorate, non filled button):
 * hover glass leggero — standard app. Non usare su card home colorate, postazioni coworking, btn primari.
 * `.clickable-card` è alias di `.interactive-card`.
 */
.interactive-card,
.clickable-card {
  cursor: pointer;
  transition:
    background 0.2s ease,
    transform 0.15s ease,
    backdrop-filter 0.2s ease,
    -webkit-backdrop-filter 0.2s ease;
  background: transparent;
}

.interactive-card:hover:not(:disabled),
.clickable-card:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.interactive-card:active:not(:disabled),
.clickable-card:active:not(:disabled) {
  transform: scale(0.98);
}

.interactive-card:disabled,
.clickable-card:disabled {
  cursor: not-allowed;
}

/* Testo: sempre marrone, nessun cambio colore in hover (annulla a:hover globale sui link) */
.interactive-card,
.clickable-card {
  color: var(--interactive-card-text);
}

a.interactive-card:hover,
a.interactive-card:focus-visible,
a.clickable-card:hover,
a.clickable-card:focus-visible {
  color: var(--interactive-card-text);
}

button.interactive-card:hover:not(:disabled),
button.clickable-card:hover:not(:disabled) {
  color: var(--interactive-card-text);
}

.interactive-card-title {
  color: var(--interactive-card-text);
  transition: text-shadow 0.2s ease;
}

.interactive-card-subtitle {
  color: var(--interactive-card-text-muted);
}

.interactive-card:hover:not(:disabled) .interactive-card-subtitle,
.clickable-card:hover:not(:disabled) .interactive-card-subtitle {
  color: var(--interactive-card-text-muted);
}

/* Alone caldo sul titolo in hover — stesso colore, solo luminosità percepita */
.interactive-card:hover:not(:disabled) .interactive-card-title,
.clickable-card:hover:not(:disabled) .interactive-card-title {
  text-shadow: 0 0 8px rgba(75, 61, 42, 0.15);
}

/* Pulsanti/link che sono solo “titolo” (pill, chip testuali) */
button.interactive-card.interactive-card-title:hover:not(:disabled),
a.interactive-card.interactive-card-title:hover:not(:disabled),
button.clickable-card.interactive-card-title:hover:not(:disabled),
a.clickable-card.interactive-card-title:hover:not(:disabled) {
  text-shadow: 0 0 8px rgba(75, 61, 42, 0.15);
}

@media (prefers-reduced-motion: reduce) {
  .interactive-card,
  .clickable-card {
    transition: background 0.2s ease, backdrop-filter 0.2s ease, -webkit-backdrop-filter 0.2s ease;
  }

  .interactive-card:active:not(:disabled),
  .clickable-card:active:not(:disabled) {
    transform: none;
  }

  .interactive-card-title {
    transition: none;
  }

  .interactive-card:hover:not(:disabled) .interactive-card-title,
  .clickable-card:hover:not(:disabled) .interactive-card-title,
  button.interactive-card.interactive-card-title:hover:not(:disabled),
  a.interactive-card.interactive-card-title:hover:not(:disabled) {
    text-shadow: none;
  }
}

/* ===== RESET & BASE STYLES ===== */
* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  /* Riduce salti di layout quando compare la barra di scorrimento (desktop) */
  scrollbar-gutter: stable;
}

html,
body {
  background-color: var(--background);
  background-image: var(--theme-bg-image-layer, none),
    linear-gradient(180deg, var(--layer-gradient-start), var(--layer-gradient-end));
  background-size: var(--theme-bg-image-size, auto), auto;
  background-position: center top, center top;
  background-repeat: no-repeat, no-repeat;
  background-attachment: fixed, fixed;
  color: var(--hy-brown-deep);
  font-family: var(--hy-font-sans);
  font-size: var(--hy-text-base);
  line-height: 1.5;
  max-width: 100vw;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/*
 * Safe area orizzontale: solo su <main>, non anche su body.
 * Doppio inset (body + main) rendeva margini sinistro/destro molto diversi su notch / PWA.
 */
body {
  padding-top: var(--theme-bg-pad-top, 0px);
  padding-bottom: var(--theme-bg-pad-bottom, 0px);
  padding-left: var(--theme-bg-pad-left, 0px);
  padding-right: var(--theme-bg-pad-right, 0px);
}

/* Contenuto principale full-width su desktop */
body > main {
  max-width: none;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding-top: var(--struct-main-padding-top, var(--spacing-lg));
  padding-left: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-left, 0px));
  padding-right: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-right, 0px));
  padding-bottom: calc(var(--safe-bottom) + var(--hm-cookie-bar, 0px));
  box-sizing: border-box;
  /* Allinea elementi position:fixed (es. scheda CRM admin) al bordo interno del main */
  --main-padding-end: max(24px, env(safe-area-inset-right, 0px));
}

html[data-shop-embed="1"] body > main {
  padding-left: max(12px, env(safe-area-inset-left, 0px));
  padding-right: max(12px, env(safe-area-inset-right, 0px));
  padding-bottom: 12px;
}

/* Shop vetrina: hero teal full-bleed attaccato all'header */
html[data-shop-vetrina="1"] body > main {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Quando il carrello fisso (shop) è visibile, riserva spazio a destra */
@media (min-width: 992px) {
  body.has-global-cart > main {
    padding-right: max(clamp(312px, 25vw, 392px), env(safe-area-inset-right, 0px));
    --main-padding-end: max(clamp(312px, 25vw, 392px), env(safe-area-inset-right, 0px));
  }
}

@media (min-width: 992px) and (max-width: 1200px) {
  body.has-global-cart > main {
    padding-right: max(312px, env(safe-area-inset-right, 0px));
    --main-padding-end: max(312px, env(safe-area-inset-right, 0px));
  }
}

/* Titoli sezione layout (no card): 15px semibold + separatore */
.layout-section-title {
  font-size: var(--struct-section-title-size, 15px);
  font-weight: var(--struct-section-title-weight, 600);
  text-transform: var(--struct-section-title-transform, none);
  letter-spacing: var(--struct-section-title-tracking, 0);
  margin: 0 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.06);
  color: var(--text-heading);
}

/* Wrapper layout: niente doppia cornice/sfondo opaco (le card restano su componenti foglia) */
.tab-content,
[data-tab-panel],
.admin-dashboard-inner {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

@media (max-width: 640px) {
  body > main {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
    --main-padding-end: max(16px, env(safe-area-inset-right, 0px));
  }
}

/* ===== TYPOGRAPHY ===== */
h1,
h2,
h3 {
  font-family: var(--hy-font-serif);
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--hy-brown-deep);
  margin-bottom: var(--spacing-md);
}

h1 {
  font-size: var(--hy-text-3xl);
  line-height: 1.1;
}
h2 {
  font-size: var(--hy-text-2xl);
  line-height: 1.15;
}
h3 {
  font-size: var(--hy-text-xl);
  line-height: 1.2;
}

/* Tema con font display (es. Anton, preset Hygge Vetrina): titoli maiuscoli come il sito vetrina.
   La classe è gestita da applyThemeConfig in base al font heading. */
body.theme-display-heading h1,
body.theme-display-heading h2,
body.theme-display-heading h3 {
  text-transform: uppercase;
  letter-spacing: -0.01em;
  font-weight: 400; /* Anton ha solo il peso 400: evita il faux-bold */
}

h4,
h5,
h6 {
  font-family: var(--hy-font-sans);
  font-weight: var(--font-semibold);
  line-height: var(--leading-tight);
  color: var(--text-heading);
  margin-bottom: var(--spacing-md);
}

h4 {
  font-size: var(--text-2xl);
}
h5 {
  font-size: var(--text-xl);
}
h6 {
  font-size: var(--text-lg);
}

p {
  margin-bottom: var(--spacing-md);
  line-height: var(--leading-relaxed);
}

a {
  color: var(--brown-dark);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover:not(.interactive-card):not(.clickable-card):not(.hg-navcard):not(.hg-flow__chip) {
  color: var(--accent);
}

/* ===== BUTTON SYSTEM ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--struct-btn-padding-y, var(--spacing-sm)) var(--struct-btn-padding-x, var(--spacing-md));
  font-family: var(--font-family);
  font-size: var(--text-base);
  font-weight: var(--struct-btn-font-weight, var(--font-semibold));
  line-height: 1;
  border: var(--border-width) solid var(--border);
  border-radius: var(--struct-btn-radius, var(--border-radius-sm));
  cursor: pointer;
  transition: all var(--transition-fast);
  text-decoration: none;
  min-height: var(--struct-btn-min-height, 44px);
}

.btn:focus {
  outline: 2px solid var(--brown-dark);
  outline-offset: 2px;
}

/* Button Variants */
.btn-primary {
  background-color: var(--brown-dark);
  color: var(--text-white);
  border-color: var(--brown-dark);
}

.btn-primary:hover {
  background-color: color-mix(in srgb, var(--brown-dark) 85%, var(--accent));
  border-color: color-mix(in srgb, var(--brown-dark) 85%, var(--accent));
}

.btn-secondary {
  background-color: rgba(124, 106, 247, 0.15);
  color: #6b57e8;
  border-color: rgba(124, 106, 247, 0.35);
}

.btn-secondary:hover {
  background-color: rgba(124, 106, 247, 0.22);
  border-color: rgba(124, 106, 247, 0.45);
}

.btn-tertiary {
  background-color: rgba(194, 166, 226, 0.25);
  color: #6b57e8;
  border-color: rgba(194, 166, 226, 0.5);
}

.btn-tertiary:hover {
  background-color: rgba(194, 166, 226, 0.34);
  border-color: rgba(194, 166, 226, 0.58);
}

.btn-outline {
  background-color: transparent;
  color: var(--brown-dark);
  border-color: var(--brown-dark);
}

.btn-outline:hover {
  background-color: rgba(75, 61, 42, 0.06);
  border-color: var(--brown-text);
  color: var(--brown-text);
}

.btn-ghost {
  background-color: transparent;
  color: var(--text-primary);
  border-color: transparent;
}

.btn-ghost:hover {
  background-color: color-mix(in srgb, var(--accent) 18%, transparent);
}

body.btn-outlined .btn-primary {
  background-color: transparent;
  color: var(--brown-dark);
  border-color: var(--brown-dark);
}

body.btn-outlined .btn-primary:hover {
  background-color: color-mix(in srgb, var(--accent) 14%, transparent);
  border-color: color-mix(in srgb, var(--brown-dark) 70%, var(--accent));
  color: color-mix(in srgb, var(--brown-dark) 78%, var(--accent));
}

body.btn-ghost .btn-primary {
  background-color: color-mix(in srgb, var(--accent) 8%, transparent);
  color: var(--text-primary);
  border-color: transparent;
}

body.btn-ghost .btn-primary:hover {
  background-color: color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--text-primary);
  border-color: transparent;
}

.btn-transparent {
  background-color: var(--transparent);
  color: var(--text-primary);
  border-color: var(--transparent);
}

.btn-transparent:hover {
  background-color: rgba(75, 61, 42, 0.1);
}

/* Button Sizes */
.btn-sm {
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: var(--text-sm);
  min-height: 36px;
}

.btn-lg {
  padding: var(--spacing-md) var(--spacing-lg);
  font-size: var(--text-lg);
  min-height: 52px;
}

/* Button States */
.btn:disabled,
.btn.disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

/* ===== APP-WIDE BUTTON UNIFICATION ===== */
/* Uniforma TUTTI i pulsanti (anche quelli realizzati come Link) */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
a[role="button"],
a[class*="Button"],
a[class*="button"] {
  font-family: var(--font-family);
  border-radius: var(--border-radius-sm);
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
}

button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
input[type="reset"]:focus-visible,
a[role="button"]:focus-visible,
a[class*="Button"]:focus-visible,
a[class*="button"]:focus-visible {
  outline: 2px solid var(--brown-dark);
  outline-offset: 2px;
}

/* ===== FORM ELEMENTS ===== */
input, textarea, select {
  font-family: var(--font-family);
  font-size: var(--text-base);
  padding: var(--spacing-sm);
  border: var(--border-width) solid var(--border);
  border-radius: var(--border-radius-sm);
  background-color: var(--surface-solid);
  color: var(--text-primary);
  transition: border-color var(--transition-fast);
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--brown-dark) 50%),
    linear-gradient(135deg, var(--brown-dark) 50%, transparent 50%);
  background-position:
    calc(100% - 16px) calc(50% - 2px),
    calc(100% - 11px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

select option,
select optgroup {
  background-color: var(--surface-solid);
  color: var(--text-primary);
}

input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--brown-dark);
  box-shadow: 0 0 0 3px rgba(75, 61, 42, 0.14);
}

/* Caret coerente col tema hygge */
input,
textarea,
[contenteditable="true"] {
  caret-color: var(--brown-dark);
}

/* Scrollbar globale in palette marrone */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(75, 61, 42, 0.55) rgba(75, 61, 42, 0.12);
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(75, 61, 42, 0.1);
  border-radius: 999px;
}

*::-webkit-scrollbar-thumb {
  background: rgba(75, 61, 42, 0.55);
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.65);
}

*::-webkit-scrollbar-thumb:hover {
  background: rgba(75, 61, 42, 0.72);
}

/* ===== LAYOUT & FLEXBOX ===== */
.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.block { display: block; }
.inline-block { display: inline-block; }
.hidden { display: none; }

/* Flexbox Utilities */
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }

/* Grid Utilities */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Gap Utilities */
.gap-xs { gap: var(--spacing-xs); }
.gap-sm { gap: var(--spacing-sm); }
.gap-md { gap: var(--spacing-md); }
.gap-lg { gap: var(--spacing-lg); }
.gap-xl { gap: var(--spacing-xl); }

/* Space Utilities */
.space-y-xs > * + * { margin-top: var(--spacing-xs); }
.space-y-sm > * + * { margin-top: var(--spacing-sm); }
.space-y-md > * + * { margin-top: var(--spacing-md); }
.space-y-lg > * + * { margin-top: var(--spacing-lg); }
.space-y-xl > * + * { margin-top: var(--spacing-xl); }

/* Width Utilities */
.w-full { width: 100%; }
.w-auto { width: auto; }

/* ===== UTILITY CLASSES ===== */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.font-light { font-weight: var(--font-light); }
.font-normal { font-weight: var(--font-normal); }
.font-medium { font-weight: var(--font-medium); }
.font-semibold { font-weight: var(--font-semibold); }
.font-bold { font-weight: var(--font-bold); }
.font-extrabold { font-weight: var(--font-extrabold); }

.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }
.text-3xl { font-size: var(--text-3xl); }
.text-4xl { font-size: var(--text-4xl); }
.text-5xl { font-size: var(--text-5xl); }

.mt-xs { margin-top: var(--spacing-xs); }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }

.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }

.p-xs { padding: var(--spacing-xs); }
.p-sm { padding: var(--spacing-sm); }
.p-md { padding: var(--spacing-md); }
.p-lg { padding: var(--spacing-lg); }
.p-xl { padding: var(--spacing-xl); }

.rounded-sm { border-radius: var(--border-radius-sm); }
.rounded-md { border-radius: var(--border-radius-md); }
.rounded-lg { border-radius: var(--border-radius-lg); }
.rounded-xl { border-radius: var(--border-radius-xl); }
.rounded-full { border-radius: var(--border-radius-full); }

.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }
.shadow-xl { box-shadow: var(--shadow-xl); }

/* ===== ACCESSIBILITY ===== */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 768px) {
  :root {
    --text-5xl: 36px;
    --text-4xl: 30px;
    --text-3xl: 24px;
    --text-2xl: 20px;
    --text-xl: 18px;
  }

  h1 {
    font-size: 36px;
  }
  h2 {
    font-size: 28px;
  }
  h3 {
    font-size: 22px;
  }

  .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ===== ALERT SYSTEM ===== */
.alert {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  margin: var(--spacing-md) 0;
  border-radius: var(--border-radius-md);
  font-weight: var(--font-medium);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  box-shadow: var(--shadow-sm);
  border: var(--border-width) solid;
  position: relative;
  transition: all var(--transition-normal);
}

.alert.success {
  background-color: rgba(51, 196, 116, 0.1);
  color: var(--success);
  border-color: var(--success);
}

.alert.error {
  background-color: rgba(255, 90, 90, 0.1);
  color: var(--error);
  border-color: var(--error);
}

.alert.warning {
  background-color: rgba(255, 198, 43, 0.1);
  color: var(--warning);
  border-color: var(--warning);
}

.alert.info {
  background-color: rgba(193, 147, 205, 0.1);
  color: var(--info);
  border-color: var(--info);
}

/* Legacy support for existing classes */
.statusMessage {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 15px;
  margin-top: 20px;
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.95rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  max-width: 600px;
  width: 100%;
  text-align: left;
}

.statusMessage.success {
  background-color: rgba(51, 196, 116, 0.1);
  color: var(--success);
  border: 1px solid var(--success);
}

.statusMessage.error {
  background-color: rgba(255, 90, 90, 0.1);
  color: var(--error);
  border: 1px solid var(--error);
}

.statusMessage .icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.statusMessage.success .icon {
  color: var(--success);
}

.statusMessage.error .icon {
  color: var(--error);
}

/* ===== FULLCALENDAR CUSTOMIZATIONS ===== */
/* Griglia: solo tint semi-trasparente — NO backdrop-filter sui contenitori (altrimenti il blur copre anche gli eventi) */
.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard .fc-scrollgrid-sync-table,
.fc .fc-timegrid-body,
.fc .fc-daygrid-body,
.fc .fc-timegrid .fc-timegrid-slots,
.fc .fc-timegrid-col {
  background: var(--glass-bg) !important;
}

/* Eventi: mai blur/backdrop — testo sempre nitido */
.fc .fc-event,
.fc .fc-event .fc-event-main,
.fc .fc-event .fc-event-title,
.fc .fc-timegrid-event,
.fc .fc-daygrid-event,
.fc-h-event,
.fc-v-event {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
}

.fc .fc-scrollgrid {
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.fc .fc-button {
  border-radius: 10px !important;
}

/* Colonna / cella "oggi": highlight marrone */
.fc .fc-day-today {
  background-color: rgba(75, 61, 42, 0.06) !important;
  border-left: none !important;
}

.fc .fc-col-header-cell.fc-day-today {
  background-color: rgba(75, 61, 42, 0.12) !important;
}

.fc .fc-col-header-cell.fc-day-today a,
.fc .fc-col-header-cell.fc-day-today .fc-col-header-cell-cushion {
  color: var(--brown-dark) !important;
  font-weight: 700;
}

.fc-event {
  cursor: pointer;
  border-radius: var(--border-radius-sm);
}

.fc-event-primary {
  background-color: var(--red-active);
  border-color: var(--red-active);
}

.fc-event-secondary {
  background-color: var(--yellow-active);
  border-color: var(--yellow-active);
}

.fc-event-tertiary {
  background-color: var(--purple-active);
  border-color: var(--purple-active);
}

/* ===== NEW DESIGN SYSTEM TYPOGRAPHY CLASSES ===== */
.hero-title {
  font-family: var(--font-epilogue);
  font-style: var(--font-style-normal);
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-hero);
  line-height: var(--line-height-hero);
  letter-spacing: var(--character-spacing-none);
  color: var(--text-heading);
}

.section-title {
  font-family: var(--font-epilogue);
  font-style: var(--font-style-normal);
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-title);
  line-height: var(--line-height-title);
  letter-spacing: var(--character-spacing-none);
  color: var(--text-heading);
}

/* react-datepicker (pacchetto: default bianco) */
.react-datepicker {
  background-color: var(--surface-solid) !important;
  border-color: var(--brown-dark) !important;
  color: var(--text-primary) !important;
  border-radius: 12px !important;
  font-family: var(--font-family) !important;
}

.react-datepicker__header {
  background-color: var(--peach-background) !important;
  border-bottom-color: var(--brown-dark) !important;
  border-top-left-radius: 12px !important;
  border-top-right-radius: 12px !important;
}

.react-datepicker__current-month,
.react-datepicker__day-name,
.react-datepicker-time__header {
  color: var(--text-primary) !important;
}

.react-datepicker__day {
  color: var(--text-primary) !important;
  border-radius: 10px !important;
}

.react-datepicker__day:hover {
  background-color: var(--peach-hover) !important;
}

.react-datepicker__day--selected,
.react-datepicker__day--keyboard-selected:not(.react-datepicker__day--outside-month) {
  background-color: var(--brown-dark) !important;
  color: var(--text-on-accent) !important;
}

.react-datepicker__triangle {
  display: none !important;
}

.react-datepicker__navigation-icon::before {
  border-color: var(--brown-dark) !important;
}

.react-datepicker__time-container {
  border-left-color: color-mix(in srgb, var(--brown-dark) 35%, var(--border)) !important;
}

.react-datepicker__time-list-item:hover {
  background-color: var(--peach-hover) !important;
  color: var(--text-primary) !important;
}

.react-datepicker__time-list-item--selected,
.react-datepicker__time-list-item--selected:hover {
  background-color: var(--brown-dark) !important;
  color: var(--text-on-accent) !important;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  filter: sepia(0.5) saturate(0.8);
}

/*
 * Data / ora nativi: senza min-width:0 il box supera il contenitore (flex, grid, card) su mobile.
 * Vale per tutte le schermate (admin, teacher, form raw type="date").
 */
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
input[type="week"] {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* react-datepicker (AppDateInput desktop): wrapper non eredita larghezza → overflow a destra */
.react-datepicker-wrapper,
.react-datepicker__input-container {
  max-width: 100%;
  min-width: 0;
}

.react-datepicker__input-container input {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Pannelli glass riutilizzabili (token tema --glass-*) */
.app-glass-panel {
  background: var(--glass-bg);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 0.5px solid var(--glass-border);
}

.app-glass-modal {
  background: var(--modal-panel-bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0.5px solid var(--glass-border);
}

/* Schede cliccabili: nessun bordo contenitore (stesso aspetto locale/prod; evita fallback a currentColor). */
button.interactive-card,
button.clickable-card,
a.interactive-card,
a.clickable-card,
article.interactive-card {
  border: none !important;
}

/* Mobile / touch: evita zoom automatico di Safari su focus (font < 16px) su testo e campi nativi */
@media (max-width: 767px), (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]),
  textarea,
  select {
    font-size: max(16px, 1em);
  }

  /*
   * Campi data: larghezza al contenuto (es. «7 apr 2026»), non tutta la riga.
   * !important: vince su moduli con .dateInput / .input a width 100%.
   */
  input[type="date"] {
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .react-datepicker-wrapper,
  .react-datepicker__input-container {
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 100% !important;
  }

  .react-datepicker__input-container input {
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/theme-vetrina.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Override strutturali tema Vetrina — attivi quando applyThemeConfig imposta
 * preset Hygge Vetrina → ora id `vetrina`.
 */

/*
 * UI operativa: Epilogue bold classico. Anton (display) resta su --font-display
 * e sui lockup espliciti — evita faux-bold su Anton (peso unico 400).
 */
html[data-structural-theme="vetrina"] {
  --font-family-heading: var(--font-family);
  --hy-font-serif: var(--font-family);
}

html[data-structural-theme="vetrina"] h1,
html[data-structural-theme="vetrina"] h2,
html[data-structural-theme="vetrina"] h3 {
  font-family: var(--font-family);
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.015em;
}

html[data-structural-theme="vetrina"] body.theme-display-heading h1,
html[data-structural-theme="vetrina"] body.theme-display-heading h2,
html[data-structural-theme="vetrina"] body.theme-display-heading h3 {
  font-family: var(--font-family);
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.015em;
}

html[data-structural-theme="vetrina"] [data-brand-claim],
html[data-structural-theme="vetrina"] [data-brand-lockup] [data-brand-claim],
html[data-structural-theme="vetrina"] .homeVetrinaShell [class*="cardTitle"],
html[data-structural-theme="vetrina"] .hg-display,
html[data-structural-theme="vetrina"] .hg-card__title,
html[data-structural-theme="vetrina"] .hg-pagetitle,
html[data-structural-theme="vetrina"] .hg-navcard__name,
html[data-structural-theme="vetrina"] .hg-tile__name {
  font-family: var(--font-display, var(--font-anton), "Anton", sans-serif);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}

/* ——— Tipografia e ritmo generale ——— */
html[data-structural-theme="vetrina"] body {
  font-size: var(--struct-body-font-size, 17px);
  line-height: 1.6;
}

@media (max-width: 768px) {
  html[data-structural-theme="vetrina"] {
    /*
     * Fallback finché VetrinaBottomNav non misura l’altezza reale (safe-area inclusa).
     * --hm-cookie-bar è impostato da CookieNoticeBar quando visibile.
     */
    --vetrina-bottom-nav-h: calc(64px + max(10px, env(safe-area-inset-bottom, 0px)));
    --vetrina-bottom-inset: calc(var(--vetrina-bottom-nav-h) + var(--hm-cookie-bar, 0px));
  }

  html[data-structural-theme="vetrina"] body > main {
    padding-left: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-left, 0px));
    padding-right: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-right, 0px));
    padding-bottom: var(--vetrina-bottom-inset);
  }

  /* Cookie sopra la tab bar: niente copertura di nav né del contenuto scrollabile */
  html[data-structural-theme="vetrina"] [data-hmate-cookie-bar] {
    bottom: var(--vetrina-bottom-nav-h);
    z-index: 910;
  }
}

@media (min-width: 769px) {
  html[data-structural-theme="vetrina"] body > main {
    padding-left: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-left, 0px));
    padding-right: max(var(--struct-main-padding-x, 24px), env(safe-area-inset-right, 0px));
    padding-bottom: 0;
  }
}

html[data-structural-theme="vetrina"] .layout-section-title,
html[data-structural-theme="vetrina"] .section-title,
html[data-structural-theme="vetrina"] .hero-title {
  font-size: var(--struct-section-title-size, 13px);
  font-weight: var(--struct-section-title-weight, 700);
  text-transform: var(--struct-section-title-transform, uppercase);
  letter-spacing: var(--struct-section-title-tracking, 0.14em);
  font-family: var(--font-family-heading);
}

/* ——— Bottoni globali (.btn legacy) ——— */
html[data-structural-theme="vetrina"] .btn {
  border-radius: var(--struct-btn-radius, 999px);
  min-height: var(--struct-btn-min-height, 48px);
  padding: var(--struct-btn-padding-y, 14px) var(--struct-btn-padding-x, 28px);
  font-weight: var(--struct-btn-font-weight, 700);
  font-size: 17px;
  touch-action: manipulation;
  transition:
    transform 0.2s ease,
    filter 0.2s ease,
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast);
}

@media (hover: hover) and (pointer: fine) {
  html[data-structural-theme="vetrina"] .btn:not(:disabled):hover {
    transform: scale(var(--struct-btn-hover-scale, 1.03));
    filter: brightness(1.04);
  }
}

html[data-structural-theme="vetrina"] .btn-primary {
  background-color: var(--brown-dark);
  border-color: var(--brown-dark);
}

html[data-structural-theme="vetrina"] body.btn-filled .btn-primary {
  background-color: var(--brown-dark);
}

/* CTA giallo stile vetrina (.btn-yellow equivalente) */
html[data-structural-theme="vetrina"] .btn-accent,
html[data-structural-theme="vetrina"] .btn-warning {
  background: var(--accent);
  color: var(--brown-dark);
  border-color: var(--accent);
}

/* ——— Form / input globali ——— */
html[data-structural-theme="vetrina"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
html[data-structural-theme="vetrina"] select,
html[data-structural-theme="vetrina"] textarea {
  border-radius: var(--struct-input-radius, 14px);
  padding: var(--struct-input-padding-y, 14px) var(--struct-input-padding-x, 16px);
  font-size: 16px;
}

/* ——— Card interattive / glass ——— */
html[data-structural-theme="vetrina"] .interactive-card,
html[data-structural-theme="vetrina"] .app-glass-panel {
  border-radius: var(--struct-card-radius, 22px);
}

html[data-structural-theme="vetrina"] .interactive-card:not(.comingSoonCard):hover {
  transform: var(--struct-card-hover-transform, translateY(-2px) scale(1.01));
}

/* ——— Modali ——— */
html[data-structural-theme="vetrina"] .modal-panel,
html[data-structural-theme="vetrina"] [class*="modalContent"] {
  border-radius: var(--struct-card-radius, 22px);
}

/* ——— Chip / badge stile vetrina ——— */
html[data-structural-theme="vetrina"] .chip,
html[data-structural-theme="vetrina"] .pill,
html[data-structural-theme="vetrina"] .badge {
  border-radius: var(--struct-chip-radius, 999px);
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* Titoli pagina / dashboard */
html[data-structural-theme="vetrina"] h1,
html[data-structural-theme="vetrina"] h2 {
  font-family: var(--font-family-heading);
  letter-spacing: -0.01em;
  line-height: 1.08;
}

/* Card home: bordi più netti su blocchi colorati (stile vetrina) */
html[data-structural-theme="vetrina"] a[class*="mainCard"] {
  border-width: 1.5px;
  border-color: color-mix(in srgb, var(--brown-dark) 14%, transparent);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brown-dark) 6%, transparent);
}

html[data-structural-theme="vetrina"] a[class*="mainCard"]:not([class*="comingSoonCard"]):hover {
  box-shadow: 0 16px 36px color-mix(in srgb, var(--brown-dark) 10%, transparent);
}

/* Menu hamburger overlay — sfondo pesca come vetrina */
html[data-structural-theme="vetrina"] [class*="menuContent"] {
  border-radius: var(--struct-card-radius, 22px);
}

html[data-structural-theme="vetrina"] [class*="menuButton"] {
  font-family: var(--font-family-heading);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* ——— Home: griglia servizi e agenda ——— */
html[data-structural-theme="vetrina"] [class*="mainActionsVetrina"] {
  margin-top: 4px;
}

/* Booking lessons: niente titolo pagina legacy, contenuto centrato (non Manifesto) */
html[data-structural-theme="vetrina"] [class*="pageContainer"]:not([class*="pageContainerManifesto"]) {
  width: 100%;
  max-width: min(960px, 100%);
  margin-inline: auto;
  padding-inline: max(var(--struct-main-padding-x, 20px), 12px);
}

html[data-structural-theme="vetrina"] [class*="bookingContainer"]:not([class*="Manifesto"]) {
  padding-top: 8px;
  max-width: min(960px, 100%);
}

/* Wizard Manifesto V3: full-bleed, niente cap 960px */
html[data-structural-theme="vetrina"] [class*="pageContainerManifesto"],
html[data-structural-theme="vetrina"] [data-lessons-booking="manifesto"] {
  max-width: none !important;
  width: 100%;
  margin-inline: 0;
  padding: 0;
}

html[data-structural-theme="vetrina"] [class*="pageContainer"] > h1,
html[data-structural-theme="vetrina"] [class*="PageShell"] h1:first-of-type:not([data-brand-claim]) {
  display: none;
}

/* Lockup Studia. Lavora. Crea. — mai trattato come titolo pagina legacy */
html[data-structural-theme="vetrina"] [data-brand-lockup] [data-brand-claim] {
  display: flex !important;
}

html[data-structural-theme="vetrina"] .stepNavigationVetrina {
  margin-bottom: 18px;
}

/* ——— Booking wizard (ripetizioni) ——— */
html[data-structural-theme="vetrina"] [class*="progressCard"] {
  border: none;
  border-radius: var(--struct-card-radius, 22px);
  background: var(--surface-solid, #fff);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brown-dark) 6%, transparent);
}

html[data-structural-theme="vetrina"] [class*="SubjectSelection"] [class*="stepLabel"],
html[data-structural-theme="vetrina"] [class*="TeacherSelection"] [class*="stepLabel"],
html[data-structural-theme="vetrina"] [class*="BookingConfirmation"] [class*="stepLabel"],
html[data-structural-theme="vetrina"] [class*="LessonsBooking"] [class*="stepLabel"],
html[data-structural-theme="vetrina"] [class*="timeFirstTitle"],
html[data-structural-theme="vetrina"] [class*="BookingConfirmation"] [class*="title"],
html[data-structural-theme="vetrina"] [class*="TeacherSelection"] [class*="title"],
html[data-structural-theme="vetrina"] [class*="SubjectSelection"] [class*="progressCard"] [class*="title"] {
  font-family: var(--font-display, var(--font-anton), "Anton", sans-serif);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

html[data-structural-theme="vetrina"] [class*="schoolChipActive"],
html[data-structural-theme="vetrina"] [class*="macroTabActive"] {
  background: var(--brown-dark);
  color: #fff;
  border-color: var(--brown-dark);
}

html[data-structural-theme="vetrina"] [class*="schoolChip"],
html[data-structural-theme="vetrina"] [class*="macroTab"]:not([class*="Active"]) {
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 16%, transparent);
  background: var(--surface-solid, #fff);
  min-height: 44px;
  font-weight: 600;
}

html[data-structural-theme="vetrina"] [class*="teacherCard"] {
  border-radius: var(--struct-card-radius, 22px);
  border-width: 1.5px;
  max-width: none;
}

html[data-structural-theme="vetrina"] [class*="teacherCardSelected"] {
  border-width: 2.5px;
  border-color: var(--brown-dark);
  box-shadow: none;
  background: var(--surface-solid, #fff);
}

html[data-structural-theme="vetrina"] [class*="dayPill"] {
  border-radius: 16px;
  min-width: 72px;
  min-height: 72px;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 14%, transparent);
  background: var(--surface-solid, #fff);
}

html[data-structural-theme="vetrina"] [class*="dayPillSelected"] {
  background: var(--brown-dark);
  color: #fff;
  border-color: var(--brown-dark);
}

html[data-structural-theme="vetrina"] [class*="slotRow"],
html[data-structural-theme="vetrina"] [class*="timeSlot"] {
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 14%, transparent);
  background: var(--surface-solid, #fff);
}

html[data-structural-theme="vetrina"] [class*="slotRowSelected"],
html[data-structural-theme="vetrina"] [class*="timeSlot"][class*="selected"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--brown-dark);
}

html[data-structural-theme="vetrina"] [class*="detailCard"],
html[data-structural-theme="vetrina"] [class*="bookingDetails"] {
  border-radius: var(--struct-card-radius, 22px);
  background: var(--surface-solid, #fff);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--brown-dark) 5%, transparent);
}

html[data-structural-theme="vetrina"] [class*="confirmBtn"],
html[data-structural-theme="vetrina"] [class*="submitButton"],
html[data-structural-theme="vetrina"] [class*="primaryAction"] {
  background: #f8bcab !important;
  border-color: #f8bcab !important;
  color: var(--brown-dark) !important;
  border-radius: 999px;
  min-height: 52px;
  font-weight: 700;
}

html[data-structural-theme="vetrina"] [class*="continueBtn"],
html[data-structural-theme="vetrina"] [class*="nextButton"] {
  background: var(--brown-dark) !important;
  border-color: var(--brown-dark) !important;
  color: #fff !important;
  border-radius: 999px;
  min-height: 52px;
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ——— Home admin: pannelli Notion / recap bianchi (niente glass viola) ——— */
html[data-structural-theme="vetrina"] [class*="NotionTodoCard_card"],
html[data-structural-theme="vetrina"] [class*="ScratchCard_card"],
html[data-structural-theme="vetrina"] [class*="AdminAppointmentsDayRecapCard_card"],
html[data-structural-theme="vetrina"] [class*="HomeAdminPhoneLeadsCard_card"],
html[data-structural-theme="vetrina"] [class*="PhoneLeadsCard_card"] {
  background: var(--surface-solid, #fff) !important;
  border: none !important;
  border-radius: var(--struct-card-radius, 22px) !important;
  box-shadow: 0 10px 28px color-mix(in srgb, var(--brown-dark) 6%, transparent) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html[data-structural-theme="vetrina"] [class*="NotionTodoCard_title"],
html[data-structural-theme="vetrina"] [class*="ScratchCard_title"],
html[data-structural-theme="vetrina"] [class*="AdminAppointmentsDayRecapCard"] [class*="title"],
html[data-structural-theme="vetrina"] [class*="PhoneLeadsCard"] [class*="title"] {
  font-family: var(--font-family);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.01em;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/booking-wizard-vetrina.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Wizard prenotazione lezioni — stile Vetrina (V2) sul flusso CLASSICO
 *
 * Attivo con:
 *   - html[data-booking-wizard="v2"] + [data-lessons-booking="v2"]  (skin V2, scelta admin)
 *   - html[data-structural-theme="vetrina"] + [data-lessons-booking="vetrina"]  (classico + layout vetrina)
 *
 * Con bookingWizardSkin = v3 il wizard usa BookingWizardV3Shell + booking-wizard-v3.css
 * indipendentemente dal layout vetrina dell'app.
 */

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] {
  max-width: min(920px, 100%);
  margin: 0 auto;
  padding: 8px clamp(12px, 3vw, 24px) 56px;
  box-sizing: border-box;
}

/* ─── Shell unica: niente card annidate ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="progressCard"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="GradeSelection_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="TeacherSelectionStep_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="TimeFirstSelectionStep_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="BookingConfirmationStep_container"] {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  max-width: 100% !important;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="stepNavigationVetrina"] {
  margin-bottom: 22px;
  padding: 0;
  max-width: 100%;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="vetrinaWizardShell"] [class*="stepEnter"] {
  animation: none;
}

/* ─── Layout step 2/3: niente sidebar, niente header duplicato ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="timeFirstSidebar"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="sidebarCartStretch"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="sidebarCredits"] {
  display: none !important;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="timeFirstLayout"] {
  display: block !important;
  grid-template-columns: unset !important;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="timeFirstFullHeader"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="timeFirstHint"] {
  display: none !important;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="timeFirstWrapper"] {
  max-width: 100%;
}

/* ─── Card bianca comune (solo fuori shell, fallback) ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"]:not(:has([class*="vetrinaWizardShell"])) [class*="GradeSelection_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"]:not(:has([class*="vetrinaWizardShell"])) [class*="TeacherSelectionStep_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"]:not(:has([class*="vetrinaWizardShell"])) [class*="BookingConfirmationStep_container"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"]:not(:has([class*="vetrinaWizardShell"])) [class*="TimeFirstSelectionStep_container"] {
  background: var(--surface-solid, #fff);
  border-radius: var(--struct-card-radius, 22px);
  box-shadow: 0 12px 40px color-mix(in srgb, var(--brown-dark) 8%, transparent);
  padding: 28px 28px 24px;
  max-width: 100%;
  margin-inline: auto;
  border: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="SubjectSelection_progressCard"] {
  box-shadow: none;
  border: none;
  background: transparent;
  padding: 0;
}

/* ─── Titoli step ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_title"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_title"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_title"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_title"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="SubjectSelection_title"] {
  font-family: var(--font-family-heading);
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  text-align: center;
  color: var(--text-heading);
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="header"] {
  text-align: center;
  margin-bottom: 1.25rem;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_subtitle"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_subtitle"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_subtitle"] {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 10px;
}

/* ─── Grade selection: 3 card orizzontali ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_gradesContainer"] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 12px;
  gap: 12px;
  margin-bottom: 0;
  flex-wrap: unset;
  justify-content: unset;
}

@media (max-width: 720px) {
  html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_gradesContainer"] {
    grid-template-columns: 1fr;
  }
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_gradeCard"] {
  border-radius: var(--struct-card-radius, 22px);
  border: 1px solid color-mix(in srgb, var(--brown-dark) 12%, transparent);
  background: #fff;
  padding: 18px 16px;
  min-height: 160px;
  text-align: left;
  flex: unset;
  min-width: 0;
  width: auto;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="GradeSelection_gradeCard"]:hover {
  border-color: var(--brown-dark);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--brown-dark) 8%, transparent);
}

/* ─── Docenti: griglia full-width ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_teachersGrid"] {
  grid-template-columns: 1fr;
  max-width: 100%;
  gap: 12px;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_teacherCard"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_anyTeacherCard"] {
  max-width: none;
  width: 100%;
  border-radius: var(--struct-card-radius, 22px);
  border: 1.5px solid color-mix(in srgb, var(--brown-dark) 14%, transparent);
  background: #fff;
  padding: 18px 20px;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_teacherCardSelected"] {
  border-width: 2.5px;
  border-color: var(--brown-dark);
  background: #fff;
  box-shadow: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_slotBadge"] {
  background: color-mix(in srgb, var(--eventi-hover, #1d963f) 18%, transparent);
  border-color: color-mix(in srgb, var(--eventi-hover, #1d963f) 45%, transparent);
  color: color-mix(in srgb, var(--eventi-hover, #1d963f) 90%, #000);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherSelectionStep_cardFooter"] {
  border-top-color: color-mix(in srgb, var(--border) 70%, transparent);
}

/* ─── Date strip ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_weekStrip"] {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
  max-width: 100%;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_weekStrip"]::-webkit-scrollbar {
  display: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_dayPill"] {
  flex: 0 0 auto;
  min-width: 72px;
  border-radius: 16px;
  min-height: 76px;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 12%, transparent);
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_dayPillSelected"] {
  background: var(--brown-dark);
  border-color: var(--brown-dark);
  color: #fff;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_dayPillSelected"] [class*="dayPillWeekday"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_dayPillSelected"] [class*="dayPillNum"] {
  color: #fff;
}

/* ─── Griglia orari 3 colonne ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotList"] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-gap: 10px;
  gap: 10px;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotRow"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 8px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 12%, transparent);
  background: #fff;
  text-align: center;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotRowRight"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotRowLeft"] [class*="subjectBadge"] {
  display: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotRowSelected"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--brown-dark);
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotsSection"] {
  max-width: 100%;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TimeFirstSelectionStep_slotsSectionTitle"] {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  color: var(--text-secondary);
  margin: 1.25rem 0 0.75rem;
}

/* ─── Calendario legacy nascosto in vetrina ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="TeacherCalendarView_container"] {
  display: none !important;
}

/* ─── Conferma ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_bookingDetails"] {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 10%, transparent);
  border-radius: var(--struct-card-radius, 22px);
  overflow: hidden;
  background: #fff;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_detailCard"] {
  border: none;
  border-radius: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  box-shadow: none;
  padding: 16px 20px;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_detailCard"]:last-child {
  border-bottom: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_confirmButton"] {
  width: 100%;
  max-width: 100%;
  min-height: 54px;
  border-radius: 999px;
  background: #f8bcab !important;
  color: var(--brown-dark) !important;
  font-weight: 700;
  font-size: 16px;
  border: none;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_confirmButton"]:hover:not(:disabled) {
  filter: brightness(0.97);
  background: #f8bcab !important;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_creditsInfo"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="BookingConfirmationStep_infoBox"] {
  border-radius: 16px;
  background: color-mix(in srgb, var(--eventi-hover, #1d963f) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--eventi-hover, #1d963f) 25%, transparent);
}

/* ─── Navigazione: indietro pill ─── */
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="navigation"] {
  border-top: none;
  margin-top: 1.5rem;
  padding-top: 0;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="backButton"] {
  border-radius: 999px;
  min-height: 48px;
  padding: 0 22px;
  font-weight: 600;
  border: 1px solid color-mix(in srgb, var(--brown-dark) 18%, transparent);
  background: #fff;
}

html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="previewCta"],
html[data-structural-theme="vetrina"] [data-lessons-booking="vetrina"],
html[data-booking-wizard="v2"] [data-lessons-booking="v2"] [class*="nextButton"] {
  border-radius: 999px;
  min-height: 52px;
  padding: 0 28px;
  font-weight: 700;
  background: var(--brown-dark);
  color: #fff;
  border: none;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/theme-app-restyle.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   Restyling app Hygge (design Claude) — token di base condivisi.
   Palette --hg-* usata da sidebar dashboard e wizard v3; non
   sovrascrive i token tema esistenti (--brown-dark, --accent, …).
   ============================================================ */

:root {
  /* tematici */
  --hg-yellow: #FFC62B;
  --hg-yellow-tint: #FBECC2;
  --hg-yellow-deep: #7A5A00;
  --hg-red: #FF5A5A;
  --hg-red-tint: #FFDCD6;
  --hg-red-deep: #9C2F2F;
  --hg-lilla: #C2A6E2;
  --hg-lilla-tint: #EAE0F5;
  --hg-lilla-deep: #5E4380;
  --hg-green: #2E6B4F;
  --hg-green-tint: #D9E7DE;
  --hg-green-deep: #1F4A36;

  /* brand */
  --hg-peach: #F8BCAB;
  --hg-peach-soft: #FBD9CF;
  --hg-brown: #3A2E22;
  --hg-brown-soft: #4A3B2C;
  --hg-cream: #F9F5EE;
  --hg-ink: #1A1A1A;
  --hg-teal: #1B4C5C;
  --hg-paper: #FFFDF8;

  /* superfici e testo (riferimento design; i componenti possono
     preferire i token tema runtime quando devono seguire i preset) */
  --hg-surface-page: #F9F5EE;
  --hg-surface-card: #FFFDF8;
  --hg-surface-sunken: #F1EADF;
  --hg-text-1: #241B11;
  --hg-text-2: rgba(36, 27, 17, 0.64);
  --hg-text-3: rgba(36, 27, 17, 0.42);
  --hg-border-1: rgba(58, 46, 34, 0.16);
  --hg-border-2: rgba(58, 46, 34, 0.09);

  /* forme, ombre, transizioni */
  --hg-radius-tile: 24px;
  --hg-radius-card: 20px;
  --hg-radius-field: 14px;
  --hg-radius-cell: 10px;
  --hg-shadow-card: 0 1px 2px rgba(58, 46, 34, 0.05), 0 4px 16px rgba(58, 46, 34, 0.06);
  --hg-shadow-float: 0 8px 30px rgba(58, 46, 34, 0.14);
  --hg-t-fast: 0.18s;
  --hg-t-med: 0.35s;
  --hg-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/booking-wizard-v3.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   WIZARD PRENOTAZIONE V3 — «Manifesto» (design Claude → Hygge)

   Attivo quando l’admin imposta bookingWizardSkin = v3:
     html[data-booking-wizard="v3"]
     [data-lessons-booking="manifesto"]  (LessonsBooking + BookingWizardV3Shell)

   Accento token: html[data-wizard-accent="giallo"|"pesca"]
   Token alias verso theme-app-restyle.css (--hg-*).
   Indipendente dal layout strutturale «Vetrina» (home/header/sidebar).

   Due assi di densità (stesse convenzioni, PROMPT 26 + 33):
   - Larghezza: breakpoint orizzontali (≤920 / ≤560 / ≤480, ≥921 desktop).
   - Altezza: su desktop (≥921px) anche max-height (820 / 700) riduce corpi,
     padding e min-height — stesso layout, meno pixel verticali (portatili 1366×768).

   Contrasto (PROMPT 34): le classi w3-rrow-*, w3-receipt-*, w3-ticket-*
   usano --text-1/2/3 e valgono SOLO dentro .w3-receipt / .w3-paper
   (superficie chiara). Sul palco bruno usare --st-text, --st-dim,
   --st-faint, --acc (o .w3-link-acc). Mescolarli produce testo invisibile.
   ============================================================ */

[data-lessons-booking="manifesto"] {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

.w3 {
  --font-display: var(--heading-font-family, var(--font-family, 'Epilogue', sans-serif));
  --font-body: var(--font-family, 'Epilogue', sans-serif);
  --t-fast: var(--hg-t-fast, 0.18s);
  --t-med: var(--hg-t-med, 0.35s);
  --ease-out: var(--hg-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
  --radius-card: 28px;
  --radius-field: 22px;
  --radius-pill: 999px;
  /* Minimo tap target (PROMPT 26 / 28) */
  --hg-tap-min: 44px;
  --text-1: var(--hg-text-1, #241b11);
  --text-2: var(--hg-text-2, rgba(36, 27, 17, 0.64));
  --text-3: var(--hg-text-3, rgba(36, 27, 17, 0.42));
  --border-1: var(--hg-border-1, rgba(58, 46, 34, 0.16));
  --border-2: var(--hg-border-2, rgba(58, 46, 34, 0.09));
  --surface-sunken: var(--hg-surface-sunken, #f1eadf);
  --surface-card: var(--hg-surface-card, #fffdf8);
  --shadow-float: var(--hg-shadow-float, 0 8px 30px rgba(58, 46, 34, 0.14));
  --acc: var(--hg-yellow);
  --acc-deep: var(--hg-yellow-deep);
  --st-text: var(--hg-cream);
  --st-dim: rgba(249, 245, 238, 0.72);
  --st-faint: rgba(249, 245, 238, 0.5);
  --st-line: rgba(255, 255, 255, 0.16);
  --st-line-soft: rgba(255, 255, 255, 0.09);
  /* Conferma prenotazione (CSS Modules): token espliciti, indipendenti dai nomi hash in prod */
  --confirm-ink: var(--st-text);
  --confirm-muted: var(--st-dim);
  --confirm-line: var(--st-line);
  --confirm-line-soft: var(--st-line-soft);
  --confirm-panel-bg: var(--surface-card);
  --confirm-panel-ink: var(--text-1);
  --confirm-panel-muted: var(--text-2);
  --confirm-panel-border: var(--border-1);
  --confirm-person-bg: rgba(255, 255, 255, 0.06);
  --confirm-person-active-bg: var(--hg-cream);
  --confirm-person-active-fg: var(--hg-ink);
  --confirm-person-active-muted: rgba(26, 26, 26, 0.62);
  --confirm-cta-bg: var(--acc);
  --confirm-cta-fg: var(--hg-ink);
  --confirm-cta-hover-bg: var(--acc-deep);
  --confirm-cta-hover-fg: var(--hg-cream);
  --confirm-cta-disabled-bg: rgba(255, 255, 255, 0.18);
  --confirm-cta-disabled-fg: rgba(249, 245, 238, 0.72);
  --confirm-link: var(--acc);
  --confirm-warn-border: var(--acc);
  --confirm-warn-bg: rgba(220, 80, 60, 0.18);
  --confirm-warn-title: var(--acc);
  /* Allineato al padding header (favicon / burger menu) */
  --w3-pad-l: calc(
    var(--struct-nav-padding-x, 26px) + env(safe-area-inset-left, 0px) +
      var(--theme-header-pad-left, 0px)
  );
  --w3-pad-r: calc(
    var(--struct-nav-padding-x, 26px) + env(safe-area-inset-right, 0px) +
      var(--theme-header-pad-right, 0px)
  );
  font-family: var(--font-body);
  background: var(--hg-brown);
  color: var(--st-text);
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}

html[data-wizard-accent="pesca"] .w3 {
  --acc: var(--hg-peach);
  --acc-deep: #8c4a37;
}

.w3 * {
  box-sizing: border-box;
}
.w3 button {
  font-family: inherit;
}

/* ============ TESTATA (rimossa: usa header sito) ============ */
.w3-head{display:none;}

/* ============ LA FRASE (PROMPT 34: line-clamp per righe, niente fit JS) ============ */
.w3-sentence-wrap{
  flex-shrink:0;
  padding:16px var(--w3-pad-r) 4px var(--w3-pad-l);
}
@media (max-width:920px){
  .w3-sentence-wrap.is-compact{
    padding-top:8px;
    padding-bottom:2px;
  }
  .w3-sentence-wrap.is-compact .w3-eyebrow{display:none;}
  .w3-review-strip{
    flex-shrink:0;
    display:flex;
    align-items:center;
    gap:12px;
    min-height:32px;
    padding:10px var(--w3-pad-r) 6px var(--w3-pad-l);
  }
  .w3-review-strip-label{
    font-family:var(--font-anton, Anton), var(--font-display), sans-serif;
    font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);
  }
}
@media (min-width:921px){
  .w3-review-strip{display:none;}
}
.w3-eyebrow{
  display:flex;align-items:center;gap:12px;margin-bottom:16px;
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;
  font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);
}
.w3-eyebrow::after{content:"";flex:0 0 56px;height:2px;background:var(--acc);border-radius:2px;}
.w3-sentence{
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;
  font-weight:400;text-transform:uppercase;
  --w3-sentence-base: clamp(28px, 3.6vw, 56px);
  --w3-sentence-lines: 4;
  font-size:max(15px, calc(var(--w3-sentence-base) * var(--w3-sentence-scale, 1)));
  line-height:1.08;letter-spacing:.012em;
  color:var(--st-text);max-width:none;width:100%;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--w3-sentence-lines, 4);
  line-clamp:var(--w3-sentence-lines, 4);
  overflow:hidden;
  overflow-wrap:anywhere;
  -webkit-hyphens:auto;
          hyphens:auto;
  transition:font-size var(--t-med) var(--ease-out);
}
.w3-sentence-line{display:inline;text-wrap:inherit;}
@media (max-width:920px){
  .w3-sentence{
    --w3-sentence-lines: 4;
    text-wrap:pretty;
  }
  .w3-sentence-wrap.is-compact .w3-sentence{ --w3-sentence-lines: 2; }
}
@media (min-width:921px){
  .w3-sentence{
    --w3-sentence-lines: 6;
    font-size:var(--w3-sentence-base, clamp(28px, 3.6vw, 56px));
    text-wrap:balance;
  }
}
@media (prefers-reduced-motion: reduce){
  .w3-sentence{transition:none;}
}
/* Link accent sul palco bruno (mai --text-* scuri) */
.w3-link-acc{
  display:inline-flex;align-items:center;min-height:var(--hg-tap-min);
  color:var(--acc);font-weight:700;text-decoration:underline;
  text-underline-offset:.14em;background:none;border:none;cursor:pointer;
  touch-action:manipulation;font:inherit;padding:0;
}
.w3-link-acc:active{opacity:.75;}
.w3-tok{
  display:inline;background:none;border:none;cursor:pointer;padding:0 .06em;
  font:inherit;color:var(--st-faint);letter-spacing:inherit;text-transform:inherit;
  border-bottom:none;
  text-decoration:underline;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;text-decoration-thickness:3px;
  -webkit-text-decoration-color:var(--st-faint);
          text-decoration-color:var(--st-faint);text-underline-offset:.14em;
  transition:color var(--t-fast) var(--ease-out);
}
.w3-tok:hover{color:var(--st-dim);}
.w3-tok.is-filled{
  color:var(--acc);-webkit-text-decoration-style:solid;text-decoration-style:solid;-webkit-text-decoration-color:var(--acc);text-decoration-color:var(--acc);
}
.w3-tok.is-filled:hover{color:var(--st-text);}
.w3-tok.is-cur{color:var(--st-text);-webkit-text-decoration-color:var(--acc);text-decoration-color:var(--acc);}
.w3-tok.is-cur.is-filled{color:var(--acc);}
.w3-tok.is-static{pointer-events:none;}
@keyframes w3blink{0%,100%{opacity:1;}50%{opacity:.25;}}
@media (prefers-reduced-motion: no-preference){
  .w3-tok.is-cur:not(.is-filled){animation:w3blink 1.6s ease-in-out infinite;}
}

/* ============ PALCO ============ */
.w3-body{
  flex:1 1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--hg-brown);
}
.w3-body.has-side{
  /* desktop override below */
}
.w3-stage{
  flex:1 1;min-height:0;overflow-y:auto;
  padding:12px var(--w3-pad-r) 6px var(--w3-pad-l);
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  background:var(--hg-brown);
}
/* height:auto — height:100% sul wrapper scrollabile crea una fascia vuota
   sotto il contenuto (il “gap” sopra Continua finché non scrolli in fondo). */
.w3-stage-in{max-width:none;width:100%;min-height:0;}
.w3-stage-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.w3-stage-side{
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
}
/* Desktop: stage + carrello affiancati */
@media (min-width:921px){
  .w3-body.has-side{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(200px,240px);
    grid-gap:clamp(14px,2vw,22px);
    gap:clamp(14px,2vw,22px);
    align-items:stretch;
    padding-right:var(--w3-pad-r);
    padding-left:var(--w3-pad-l);
  }
  .w3-body.has-side .w3-stage{
    padding-left:0;
    padding-right:0;
  }
  .w3-body.has-side .w3-stage-side{
    padding-top:12px;
    padding-bottom:6px;
    min-height:0;
    align-self:start;
  }
  /* Carrello vuoto: alto quanto il contenuto, non tutta la colonna */
  .w3-cart-dock [data-cart-count="0"],
  .w3-cart-dock [class*="isEmpty"]{
    height:auto;
    max-block-size:-moz-fit-content;
    max-block-size:fit-content;
    align-self:start;
  }
}

/* Portatili bassi: 1366×768, 1440×900 con barre. Densità ridotta, non layout diverso. */
@media (min-width:921px) and (max-height:820px){
  .w3-sentence{ --w3-sentence-base: clamp(24px, 2.4vw, 34px); }
  .w3-eyebrow{ margin-bottom:10px; }
  .w3-eyebrow::after{ flex-basis:36px; }
  .w3-sentence-wrap{ padding-top:12px; padding-bottom:2px; }
  .w3-stepnum{ font-size:18px; }
  .w3-stepnum b{ font-size:24px; }
  .w3-foot{ padding-top:8px; padding-bottom:10px; }
  .w3-subject{ min-height:76px; }
  .w3-subject-ico{ width:34px; height:34px; }
  .w3-level{ padding:14px 16px; }
  .w3-caption.w3-caption-lead{ margin:6px 0 10px; font-size:13px; }
}
@media (min-width:921px) and (max-height:700px){
  .w3-sentence{ --w3-sentence-base: clamp(22px, 2vw, 28px); }
  .w3-subject{ min-height:66px; }
}
/* Legacy alias (shell non usa più lo split interno) */
.w3-stage-split{
  display:block;
  width:100%;
}
@keyframes w3up{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: no-preference){
  .w3-anim{animation:w3up var(--t-med) var(--ease-out) both;}
  .w3-anim-2{animation:w3up var(--t-med) var(--ease-out) .07s both;}
}

.w3-group{margin-top:18px;}
.w3-group:first-child{margin-top:0;}
.w3-group-lbl{
  display:flex;align-items:baseline;gap:10px;margin-bottom:14px;
  font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--st-dim);
}
.w3-group-lbl--display{
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;
  font-weight:400;
  font-size:clamp(22px, 3.2vw, 30px);
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--st-text);
  flex-wrap:wrap;
  gap:8px 12px;
  margin-bottom:18px;
}
.w3-group-lbl em{font-style:normal;letter-spacing:.03em;text-transform:none;font-weight:600;font-size:12px;color:var(--st-faint);}
.w3-group-lbl--display em{
  font-family:var(--font-body, Epilogue), sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--st-dim);
  width:100%;
}

/* ---- livello: card teatro ---- */
.w3-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px;max-width:860px;}
.w3-level{
  display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;
  padding:22px;border-radius:var(--radius-card);cursor:pointer;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-text);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-level:hover{border-color:var(--st-dim);transform:translateY(-2px);}
.w3-level.is-sel{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}
.w3-level-ico{
  width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--st-line);color:inherit;
}
.w3-level.is-sel .w3-level-ico{border-color:rgba(26,26,26,.25);}
.w3-level-name{
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;font-weight:400;text-transform:uppercase;
  font-size:21px;letter-spacing:.02em;
}
.w3-level-desc{font-size:12.5px;font-weight:600;color:var(--st-dim);line-height:1.4;}
.w3-level.is-sel .w3-level-desc{color:rgba(26,26,26,.62);}

/* Percorso (orario / docente / di solito): card compatte, tutte in viewport */
.w3-flow-paths{
  grid-template-columns:1fr;
  max-width:560px;
  gap:10px;
}
.w3-flow-paths .w3-level{
  padding:12px 14px;
  gap:6px;
  border-radius:18px;
}
.w3-flow-paths .w3-level-ico{
  width:34px;height:34px;border-radius:10px;
}
.w3-flow-paths .w3-level-ico svg{width:18px;height:18px;}
.w3-flow-paths .w3-level-name{font-size:17px;letter-spacing:.01em;}
.w3-flow-paths .w3-level-desc{font-size:11.5px;line-height:1.35;}
.w3-flow-usual{
  border-color:color-mix(in srgb, var(--acc) 55%, var(--st-line));
}
.w3-flow-usual-avatar{
  overflow:hidden;
  letter-spacing:.02em;
  font-size:12px !important;
}
@media (min-width:640px){
  .w3-flow-paths{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .w3-flow-usual{
    grid-column:1 / -1;
  }
}

.w3-prof-initial{font-family:var(--font-display);font-weight:400;font-size:20px;line-height:1;}
.w3-caption{font-size:13px;font-weight:500;color:var(--st-dim);line-height:1.6;margin:18px 0 0;max-width:520px;}
.w3-caption-lead{margin-top:0;margin-bottom:14px;max-width:none;}
.w3-caption b{font-weight:700;color:var(--st-text);}
.w3-buy{
  background:none;border:none;cursor:pointer;padding:0;
  font:inherit;font-weight:800;color:var(--acc);
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;
}
.w3-buy:hover{color:var(--st-text);}

/* ---- anni ---- */
.w3-years{display:flex;gap:12px;flex-wrap:wrap;}
.w3-year{
  width:62px;height:62px;border-radius:50%;cursor:pointer;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-text);
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;font-weight:400;font-size:21px;
  transition:all var(--t-fast) var(--ease-out);
}
.w3-year sup{font-size:11px;}
.w3-year:hover{border-color:var(--st-dim);transform:translateY(-2px);}
.w3-year.is-sel{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}

/* ---- chips ---- */
.w3-chips{display:flex;flex-wrap:wrap;gap:9px;max-width:900px;}
.w3-chip{
  padding:11px 18px;border-radius:var(--radius-pill);font-size:13px;font-weight:700;cursor:pointer;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-dim);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-chip:hover{border-color:var(--st-dim);color:var(--st-text);}
.w3-chip.is-sel{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}

/* ---- materie (griglia icone scelta rapida; cerca sotto) ---- */
.w3-search{
  display:flex;align-items:center;gap:10px;width:100%;max-width:none;
  padding:12px 16px;border-radius:var(--radius-pill);
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-dim);
}
.w3-search--after{margin-top:16px;}
.w3-search input{
  border:none;outline:none;background:none;flex:1 1;font-family:inherit;
  font-size:14px;color:var(--st-text);
}
.w3-search input::placeholder{color:var(--st-faint);}
.w3-search:focus-within{border-color:var(--acc);}
.w3-subjects{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-gap:10px;
  gap:10px;
  margin-top:4px;
  max-width:none;
  width:100%;
}
.w3-subject{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;min-height:96px;padding:14px 10px;border-radius:var(--radius-card);cursor:pointer;text-align:center;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-text);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-subject:hover{border-color:var(--st-dim);transform:translateY(-2px);}
.w3-subject.is-sel{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}
.w3-subject-ico{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:44px;height:44px;border-radius:14px;
  background:rgba(249,245,238,.1);color:inherit;
}
.w3-subject.is-sel .w3-subject-ico{background:rgba(26,26,26,.08);}
.w3-subject-lbl{
  font-size:12px;font-weight:700;line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.w3-noresults{margin-top:12px;font-size:14px;color:var(--st-dim);}

/* ---- docenti ---- */
.w3-docs{display:flex;gap:11px;flex-wrap:wrap;}
.w3-doc{
  display:flex;align-items:center;gap:11px;padding:8px 18px 8px 8px;border-radius:99px;cursor:pointer;text-align:left;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-text);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-doc:hover{border-color:var(--st-dim);}
.w3-doc.is-sel{background:var(--hg-cream);border-color:var(--hg-cream);color:var(--hg-ink);}
.w3-doc-avatar{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;
}
.w3-doc-avatar.is-lilla{background:var(--hg-lilla);color:var(--hg-lilla-deep);}
.w3-doc-avatar.is-yellow{background:var(--hg-yellow);color:var(--hg-yellow-deep);}
.w3-doc-avatar.is-any{background:rgba(255,255,255,.12);color:var(--st-text);}
.w3-doc.is-sel .w3-doc-avatar.is-any{background:var(--hg-brown);color:var(--hg-cream);}
/* Numeretto cerchiato: slot con più docenti → «Scegli il docente» */
.w3-doc-avatar.is-count{
  background:var(--acc);color:var(--hg-ink);
  font-family:var(--font-display);font-weight:800;font-size:15px;
  letter-spacing:0;border:none;
}
.w3-paper .w3-row.is-multi .w3-row-name{
  color:var(--hg-ink);
  text-decoration:underline;
  text-underline-offset:.14em;
  text-decoration-thickness:1.5px;
}
.w3-doc-body{display:flex;flex-direction:column;gap:4px;min-width:0;}
.w3-doc-name{display:block;font-size:13.5px;font-weight:700;line-height:1.15;}
.w3-doc-tag{display:block;font-size:11.5px;font-weight:600;color:var(--st-text);line-height:1.2;}
.w3-doc-hint{display:block;font-size:10.5px;font-weight:600;color:var(--st-faint);line-height:1.2;letter-spacing:.01em;}
.w3-doc.is-sel .w3-doc-tag{color:var(--hg-ink);}
.w3-doc.is-sel .w3-doc-hint{color:rgba(26,26,26,.62);}

/* ============ BIGLIETTO DI CARTA (calendario) ============ */
.w3-paper{
  margin-top:16px;background:var(--hg-paper);color:var(--text-1);
  border-radius:var(--radius-card);box-shadow:var(--shadow-float);
  padding:18px 20px 20px;max-width:1000px;position:relative;
  overflow:hidden;
}
.w3-stage-main > .w3-paper{
  margin-top:0;
  flex:1 1;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.w3-stage-main > .w3-paper > .w3-teacher-pick,
.w3-stage-main > .w3-paper > .w3-weekbar,
.w3-stage-main > .w3-paper > .w3-daystrip,
.w3-stage-main > .w3-paper > .w3-pick,
.w3-stage-main > .w3-paper > .w3-note,
.w3-stage-main > .w3-paper > .w3-rows-empty{
  flex-shrink:0;
}
.w3-stage-main > .w3-paper > .w3-rows{
  flex:1 1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  margin-top:12px;
  padding-bottom:4px;
}
@media (max-width:920px){
  .w3-stage-main > .w3-paper > .w3-weekbar,
  .w3-stage-main > .w3-paper > .w3-daystrip{
    position:-webkit-sticky;
    position:sticky;
    top:0;
    z-index:2;
    background:var(--hg-paper);
  }
  .w3-stage-main > .w3-paper > .w3-weekbar{padding-bottom:6px;}
  .w3-stage-main > .w3-paper > .w3-daystrip{padding-bottom:8px;}
}
.w3-paper::before,.w3-paper::after{
  content:"";position:absolute;top:50%;width:22px;height:22px;border-radius:50%;
  background:var(--hg-brown);transform:translateY(-50%);
}
.w3-paper::before{left:-11px;}
.w3-paper::after{right:-11px;}

.w3-weekbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;}
.w3-weeknav{
  width:34px;height:34px;border-radius:50%;border:1.5px solid var(--border-1);
  background:transparent;color:var(--text-1);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all var(--t-fast) var(--ease-out);
}
.w3-weeknav:hover{background:var(--surface-sunken);}
.w3-weeknav:disabled{opacity:.3;cursor:default;}
.w3-weeknav:disabled:hover{background:transparent;}
.w3-weekrange{
  font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  font-size:20px;letter-spacing:.03em;
}
.w3-week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px;}
.w3-col{display:flex;flex-direction:column;gap:7px;min-width:0;}
.w3-col-head{
  display:flex;flex-direction:column;align-items:center;gap:0;
  padding:7px 0 8px;border-radius:11px;background:var(--surface-sunken);
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);
}
.w3-col-head b{font-size:16px;font-weight:800;color:var(--text-1);letter-spacing:0;}
.w3-col.is-today .w3-col-head{background:var(--hg-brown);color:rgba(249,245,238,.66);}
.w3-col.is-today .w3-col-head b{color:var(--hg-cream);}
.w3-col-today-tag{font-size:8.5px;font-weight:800;letter-spacing:.12em;color:var(--acc);}
.w3-col-empty{
  flex:1 1;min-height:48px;border-radius:11px;border:1.5px dashed var(--border-2);
  display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-3);
}
.w3-slot{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 4px;border-radius:11px;width:100%;
  border:1.5px solid var(--border-1);background:var(--surface-card);
  font-size:12.5px;font-weight:700;color:var(--text-1);cursor:pointer;
  transition:all var(--t-fast) var(--ease-out);
}
.w3-slot:hover{border-color:var(--acc-deep);}
.w3-slot.is-on{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}
.w3-slot-doc{font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--text-3);}
.w3-slot.is-on .w3-slot-doc{color:var(--acc-deep);}
.w3-legend{
  display:flex;gap:18px;justify-content:center;margin-top:14px;
  font-size:11.5px;font-weight:600;color:var(--text-3);
}
.w3-legend span{display:flex;align-items:center;gap:7px;}
.w3-legend i{width:13px;height:13px;border-radius:4px;border:1.5px solid var(--border-1);background:var(--surface-card);}
.w3-legend i.is-on{background:var(--acc);border-color:var(--acc);}

/* ---- pillole orario del giorno + scelta docente ---- */
.w3-paper .w3-daystrip{margin-top:0;}
.w3-slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));grid-gap:10px;gap:10px;margin-top:14px;}
.w3-slotwrap{position:relative;}
.w3-slotwrap .w3-row{width:100%;}
.w3-pill{
  width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:12px 8px;border-radius:13px;border:1.5px solid var(--border-1);
  background:var(--surface-card);cursor:pointer;transition:all var(--t-fast) var(--ease-out);
}
.w3-pill b{font-size:15px;font-weight:800;color:var(--text-1);}
.w3-pill-sub{font-size:11px;font-weight:700;color:var(--text-3);}
.w3-pill:hover{border-color:var(--acc-deep);}
.w3-pill.is-on{background:var(--acc);border-color:var(--acc);}
.w3-pill.is-on b{color:var(--hg-ink);}
.w3-pill.is-on .w3-pill-sub{color:var(--acc-deep);}
.w3-pick{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:30;
  min-width:218px;background:var(--surface-card);border:1px solid var(--border-1);
  border-radius:14px;box-shadow:var(--shadow-float);padding:8px;
}
.w3-pick-head{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);padding:6px 10px 8px;}
.w3-pick-opt{
  display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:10px;
  background:none;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--text-1);text-align:left;
  transition:background var(--t-fast) var(--ease-out);
}
.w3-pick-opt:hover{background:var(--surface-sunken);}

/* Scelta docente (2+ alla stessa ora) — pannello inline sopra l’agenda */
.w3-teacher-pick{
  margin:0 0 14px;
  padding:12px 12px 10px;
  border-radius:16px;
  background:var(--surface-sunken,#f1eadf);
  border:1.5px solid var(--border-1);
  color:var(--text-1);
  animation:w3TeacherPickIn var(--t-med) var(--ease-out) both;
}
@keyframes w3TeacherPickIn{
  from{opacity:0;transform:translateY(-6px);}
  to{opacity:1;transform:none;}
}
@media (prefers-reduced-motion: reduce){
  .w3-teacher-pick{animation:none;}
}
.w3-teacher-pick-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  margin-bottom:10px;padding:0 2px;
}
.w3-teacher-pick-titles{min-width:0;}
.w3-teacher-pick-title{
  margin:0;font-size:15px;font-weight:800;letter-spacing:.01em;
}
.w3-teacher-pick-sub{
  margin:3px 0 0;font-size:12px;font-weight:600;color:var(--text-2);
}
.w3-teacher-pick-close{
  flex-shrink:0;width:36px;height:36px;border:none;border-radius:12px;
  background:rgba(0,0,0,.06);font-size:22px;line-height:1;
  cursor:pointer;color:inherit;
}
.w3-teacher-pick-list{
  display:flex;flex-direction:column;gap:8px;
}
@media (min-width:640px){
  .w3-teacher-pick-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    grid-gap:8px;
    gap:8px;
  }
  .w3-teacher-pick-opt-any{grid-column:1 / -1;}
}
.w3-teacher-pick-opt{
  display:flex;align-items:center;gap:12px;width:100%;
  min-height:48px;padding:10px 12px;border-radius:14px;
  border:1.5px solid rgba(0,0,0,.1);background:var(--surface-card,#fffdf8);
  font-family:inherit;font-size:14px;font-weight:700;color:inherit;
  text-align:left;cursor:pointer;
  transition:border-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}
.w3-teacher-pick-opt:hover{border-color:var(--text-2);}
.w3-teacher-pick-opt:active{transform:scale(.99);}
.w3-teacher-pick-opt.is-in-cart{border-color:var(--acc);background:color-mix(in srgb, var(--acc) 14%, var(--surface-card));}
.w3-teacher-pick-opt-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.w3-teacher-pick-opt-name{font-size:14px;font-weight:800;}
.w3-teacher-pick-opt-meta{font-size:11.5px;font-weight:600;color:var(--text-2);}
.w3-teacher-pick-opt-any{
  justify-content:center;border-style:dashed;background:transparent;
  font-weight:700;min-height:44px;
}

/* Carrello inline rimosso: unico riepilogo = BookingCartPanel (dock) */

.w3-avstack{display:flex;}
.w3-avstack .w3-doc-avatar{margin-left:-9px;border:2px solid var(--surface-card);}
.w3-avstack .w3-doc-avatar:first-child{margin-left:0;}

/* ---- vista lista (dentro la carta) ---- */
.w3-daystrip{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px;}
.w3-daybtn{
  display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 0;
  border-radius:13px;border:1.5px solid var(--border-1);background:var(--surface-card);
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);
  cursor:pointer;transition:all var(--t-fast) var(--ease-out);
}
.w3-daybtn b{font-size:17px;color:var(--text-1);letter-spacing:0;}
.w3-daybtn:hover{border-color:var(--text-2);}
.w3-daybtn.is-sel{background:var(--hg-brown);border-color:var(--hg-brown);color:rgba(249,245,238,.66);}
.w3-daybtn.is-sel b{color:var(--hg-cream);}
.w3-daybtn.is-off{opacity:.38;cursor:default;}
.w3-daybtn.is-off:hover{border-color:var(--border-1);}
.w3-daybtn-n{font-size:9px;font-weight:700;color:var(--acc-deep);text-transform:none;letter-spacing:.02em;}
.w3-daybtn.is-sel .w3-daybtn-n{color:var(--acc);}
.w3-rows{display:flex;flex-direction:column;gap:9px;margin-top:14px;}
/* Lezioni · step «quando»: slot in griglia; layout a colonna così
   nome docente e CTA restano leggibili (niente ellissi tipo «I..»). */
.w3-rows-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  grid-gap:10px;
  gap:10px;
  margin-top:12px;
}
.w3-rows-grid .w3-row,
.w3-row-teach{
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  padding:14px 14px 12px;
}
.w3-rows-grid .w3-row-time,
.w3-row-teach .w3-row-time{
  width:auto;
  min-width:0;
  font-size:15px;
  line-height:1.1;
}
.w3-rows-grid .w3-row-doc,
.w3-row-teach .w3-row-doc{
  min-width:0;
  width:100%;
  align-items:center;
}
.w3-row-doc-meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  flex:1 1;
}
.w3-rows-grid .w3-row-name,
.w3-row-teach .w3-row-name{
  overflow:visible;
  text-overflow:unset;
  white-space:normal;
  font-size:14.5px;
  font-weight:800;
  line-height:1.2;
  color:var(--text-1);
}
.w3-row-doc-count{
  font-size:11px;
  font-weight:700;
  color:var(--text-3);
  letter-spacing:.02em;
}
.w3-rows-grid .w3-row-add,
.w3-row-teach .w3-row-add{
  width:100%;
  justify-content:center;
  padding:9px 12px;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media (max-width:600px){
  .w3-rows-grid{grid-template-columns:1fr;}
  /* Mobile PROMPT 30: riga toccabile snella (niente pillola CTA) */
  .w3-rows-grid .w3-row,
  .w3-row-teach{
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    gap:10px;
    min-height:56px;
    padding:8px 12px;
  }
  .w3-rows-grid .w3-row-time,
  .w3-row-teach .w3-row-time{
    width:64px;
    min-width:64px;
    font-size:15px;
  }
  .w3-rows-grid .w3-row-doc,
  .w3-row-teach .w3-row-doc{
    flex:1 1;
    min-width:0;
  }
  .w3-rows-grid .w3-row-name,
  .w3-row-teach .w3-row-name{
    font-size:13.5px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .w3-rows-grid .w3-row-add,
  .w3-row-teach .w3-row-add{display:none;}
  .w3-row-check{
    flex-shrink:0;
    width:24px;
    text-align:center;
    font-size:16px;
    font-weight:800;
    color:var(--acc-deep, var(--acc));
    opacity:0;
  }
  .w3-row.is-in-cart .w3-row-check{opacity:1;}
  .w3-rows-grid .w3-doc-avatar,
  .w3-row-teach .w3-doc-avatar{
    width:32px;height:32px;font-size:11px;
  }
}
.w3-row{
  display:flex;align-items:center;gap:16px;padding:12px 16px;
  border-radius:14px;border:1.5px solid var(--border-1);background:var(--surface-card);
  cursor:pointer;transition:all var(--t-fast) var(--ease-out);text-align:left;color:var(--text-1);
}
.w3-row:hover{border-color:var(--text-2);}
.w3-row.is-on{border-color:var(--acc);background:var(--hg-yellow-tint);}
html[data-wizard-accent="pesca"] .w3-row.is-on{background:var(--hg-peach-soft);}
/* Slot già nel carrello (secondo tap = rimuovi) */
.w3-row.is-in-cart,
.w3-slot.is-in-cart{
  border-color:var(--acc);
  background:var(--hg-yellow-tint);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--acc) 40%, transparent);
}
html[data-wizard-accent="pesca"] .w3-row.is-in-cart,
html[data-wizard-accent="pesca"] .w3-slot.is-in-cart{
  background:var(--hg-peach-soft);
}
.w3-row-time{font-size:17px;font-weight:800;width:116px;flex-shrink:0;}
.w3-row-doc{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0;}
.w3-row-name{font-size:13.5px;font-weight:600;}
.w3-row-add{
  display:flex;align-items:center;gap:6px;flex-shrink:0;
  font-size:12.5px;font-weight:700;padding:8px 15px;border-radius:99px;
  border:1.5px solid var(--border-1);color:var(--text-1);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-row.is-on .w3-row-add{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}
.w3-rows-empty{
  margin-top:14px;padding:26px;border-radius:14px;border:1.5px dashed var(--border-1);
  text-align:center;font-size:13px;color:var(--text-3);
}
.w3-paper .w3-weekbar.is-foot{margin:16px 0 0;}

/* ---- matrici (biglietti strappati = carrello) ---- */
.w3-stubs{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.w3-stub{
  display:flex;align-items:center;gap:10px;padding:9px 12px 9px 16px;
  background:var(--acc);color:var(--hg-ink);border-radius:12px;
  border-left:2px dashed var(--hg-brown);
  font-size:12.5px;font-weight:700;
}
.w3-stub small{display:block;font-size:10.5px;font-weight:700;color:var(--acc-deep);}
.w3-stub-x{
  width:22px;height:22px;border-radius:50%;border:none;background:rgba(26,26,26,.12);
  color:var(--hg-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast) var(--ease-out);
}
.w3-stub-x:hover{background:rgba(26,26,26,.25);}

/* ============ BIGLIETTO DEL CINEMA (riepilogo + conferma) ============
   Matrice (stub) a sinistra = 1/3 · corpo evento a destra = 2/3.
   Payoff + marchio in rosa (--hg-peach) su fondo scuro; carta su bruno. */
.w3-receipt{
  margin-top:6px;margin-inline:auto;background:var(--hg-paper);color:var(--text-1);max-width:900px;
  border-radius:var(--radius-card);box-shadow:var(--shadow-float);
  border:2px solid var(--hg-peach);
  position:relative;display:flex;align-items:stretch;overflow:hidden;
}
/* Tacche di perforazione (fori) sul bordo tra matrice e corpo */
.w3-receipt::before,
.w3-receipt::after{
  content:"";position:absolute;left:calc(33.333% - 9px);
  width:18px;height:18px;border-radius:50%;background:var(--hg-brown);z-index:3;
}
.w3-receipt::before{top:-9px;}
.w3-receipt::after{bottom:-9px;}

/* ---- Matrice (stub) 1/3 — lockup login (variant ticket) ---- */
.w3-ticket-stub{
  flex:0 0 33.333%;min-width:0;position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0;padding:20px 16px;background:var(--hg-brown);
}
.w3-ticket-stub::after{
  content:"";position:absolute;top:12px;bottom:12px;right:0;
  border-right:2px dashed rgba(249,245,238,.32);
}
.w3-ticket-stub [data-brand-lockup]{
  width:100%;
  max-width:13rem;
}

/* ---- Corpo evento 2/3 ---- */
.w3-ticket-body{flex:1 1 auto;min-width:0;padding:16px 28px;}

.w3-receipt.is-plain{border-radius:var(--radius-card);}
.w3-receipt-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  border-bottom:2px solid var(--hg-ink);padding-bottom:10px;margin-bottom:2px;
}
.w3-receipt-head span{
  font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  font-size:24px;letter-spacing:.03em;
}
.w3-receipt-head em{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);}
@media (max-width:920px){
  .w3-receipt-head{display:none;}
}
.w3-rrow{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  padding:9px 0;border-bottom:1px dashed var(--border-1);font-size:14px;
}
.w3-rrow > span{color:var(--text-2);flex-shrink:0;}
.w3-rrow > b{font-weight:700;text-align:right;line-height:1.4;}
.w3-rrow-subject{
  display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  font-weight:700;text-align:right;
}
.w3-rrow-subject-name{font-weight:700;color:var(--text-1);}
.w3-rrow-subject-topic{
  font-size:12px;font-weight:600;line-height:1.3;color:var(--text-2);
}
.w3-rrow-change{
  display:inline-flex;align-items:center;
  min-height:var(--hg-tap-min);padding:0 8px;margin:-4px 0;
  font:inherit;font-weight:600;color:var(--text-3);
  text-decoration:underline;background:none;border:none;cursor:pointer;
  touch-action:manipulation;
}
.w3-rrow-change:active{opacity:.75;}
a.w3-rrow-change{color:var(--text-3);}
.w3-rrow-when{
  display:flex;align-items:flex-start;gap:8px;justify-content:flex-end;
}
.w3-rrow-remove{
  display:inline-flex;align-items:center;justify-content:center;
  width:var(--hg-tap-min);height:var(--hg-tap-min);flex-shrink:0;
  margin:-10px -8px -10px 0;padding:0;
  font-size:20px;line-height:1;color:var(--text-3);
  background:none;border:none;cursor:pointer;
  touch-action:manipulation;
}
.w3-rrow-remove:active{opacity:.75;}
.w3-receipt-total{
  display:flex;align-items:center;justify-content:space-between;padding-top:11px;
  font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
}
.w3-receipt-total b{font-family:var(--font-display);font-weight:400;font-size:24px;letter-spacing:.02em;}
.w3-receipt-where{
  margin:6px 0 0;padding:0;font-size:11px;font-weight:600;
  color:var(--text-2);text-align:right;line-height:1.3;
}
.w3-receipt-slots.is-scroll{
  max-block-size:30vh;
  max-block-size:30dvh;
  overflow-y:auto;
  overscroll-behavior:contain;
  margin:4px 0;
  padding-right:2px;
}
.w3-text-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:var(--hg-tap-min,44px);padding:8px 4px;
  border:none;background:none;cursor:pointer;
  font-size:13.5px;font-weight:700;color:var(--st-dim);
  text-decoration:underline;text-underline-offset:.16em;
}
.w3-text-link:hover{color:var(--st-text);}
.w3-text-link:disabled{opacity:.35;cursor:default;}
.w3-row-check{display:none;}
@media (max-width:600px){
  .w3-row-check{display:block;}
}
.w3-note{
  max-width:540px;margin-top:18px;border-radius:0;
  padding:10px 12px 10px 14px;font-size:13px;line-height:1.55;font-weight:600;
  border:none;border-left:3px solid var(--st-line);background:transparent;color:var(--st-dim);
}
.w3-note.is-warn{border-left-color:var(--acc);color:var(--st-text);}
.w3-note b{font-weight:800;color:var(--st-text);}

/* Riga azioni nello step (Indietro + Continua sul palco) */
.w3-step-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:20px;
}

/* ============ PIEDE / ACTIONBAR ============ */
.w3-foot{
  flex-shrink:0;display:flex;align-items:center;gap:18px;
  padding:10px var(--w3-pad-r) max(16px, env(safe-area-inset-bottom, 0px)) var(--w3-pad-l);
  border-top:1px solid var(--st-line-soft);
  background:var(--hg-brown);
  margin:0;
}
.w3-stepnum{
  font-family:var(--font-anton, Anton), var(--font-display), sans-serif;
  font-weight:400;font-size:26px;letter-spacing:.05em;
  color:var(--st-faint);display:flex;align-items:baseline;gap:6px;
}
.w3-stepnum b{font-weight:400;color:var(--acc);font-size:34px;}
.w3-foot-spacer{flex:1 1;}
.w3-foot-hint{font-size:12.5px;font-weight:600;color:var(--st-dim);}
/* Progress mobile (nascosto su desktop) */
.w3-progress{display:none;flex-direction:column;gap:4px;width:56px;flex-shrink:0;}
.w3-progress-label{
  font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--st-dim);line-height:1;
}
.w3-progress-track{
  display:block;height:3px;width:100%;border-radius:99px;background:var(--st-line);
  overflow:hidden;
}
.w3-progress-fill{
  display:block;height:100%;border-radius:inherit;background:var(--acc);
  transition:width var(--t-med) var(--ease-out);
}
@media (prefers-reduced-motion: reduce){
  .w3-progress-fill{transition:none;}
}
/* Hint sopra l'actionbar (touch: title non basta) */
.w3-foot-hint-above{
  flex-shrink:0;margin:0;padding:0 var(--w3-pad-r) 4px var(--w3-pad-l);
  font-size:12px;font-weight:600;color:var(--st-dim);line-height:1.3;
}
@media (min-width:921px){
  .w3-foot-hint-above{display:none;}
}
@media (max-width:920px){
  .w3-foot.w3-actionbar{
    gap:8px;
    /* Solo riga controlli: safe-area/tab bar stanno nel padding-bottom */
    min-height:56px;
    padding-top:8px;
    padding-bottom:max(8px, env(safe-area-inset-bottom, 0px));
  }
  .w3-foot.w3-actionbar .w3-stepnum--desktop{display:none;}
  .w3-foot.w3-actionbar .w3-progress{display:flex;}
  .w3-foot.w3-actionbar .w3-btn-back.is-icon{
    width:var(--hg-tap-min,44px);height:var(--hg-tap-min,44px);
    padding:0;gap:0;
  }
  .w3-foot.w3-actionbar .w3-btn-back.is-icon .w3-btn-back-label{display:none;}
  .w3-foot.w3-actionbar .w3-foot-hint{display:none;}
  .w3-foot.w3-actionbar .w3-btn-acc{
    font-size:14px;padding:10px 18px;min-height:var(--hg-tap-min);flex:0 1 auto;
  }
  .w3-stage{padding-bottom:12px;}
}
@media (min-width:921px){
  .w3-foot.w3-actionbar .w3-progress{display:none;}
  .w3-foot.w3-actionbar .w3-stepnum--desktop{display:flex;}
}

/* ---- studenti collegati (genitore) ---- */
.w3-learners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;max-width:none;width:100%;}
.w3-learner{
  display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius-card);cursor:pointer;text-align:left;
  border:1.5px solid var(--st-line);background:transparent;color:var(--st-text);
  transition:all var(--t-fast) var(--ease-out);
}
.w3-learner:hover{border-color:var(--st-dim);transform:translateY(-2px);}
.w3-learner.is-sel{background:var(--acc);border-color:var(--acc);color:var(--hg-ink);}
.w3-learner-ico{
  width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--st-line);flex-shrink:0;
}
.w3-learner.is-sel .w3-learner-ico{border-color:rgba(26,26,26,.25);}
.w3-learner-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1;}
.w3-learner-name{font-size:15px;font-weight:800;line-height:1.2;}
.w3-learner-meta{font-size:12px;font-weight:600;color:var(--st-dim);line-height:1.35;}
.w3-learner.is-sel .w3-learner-meta{color:rgba(26,26,26,.62);}
.w3-learner-badge{
  flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:6px 10px;border-radius:99px;border:1px solid var(--st-line);color:var(--st-dim);
}
.w3-learner-badge.is-ok{border-color:rgba(255,255,255,.22);color:var(--st-text);}
.w3-learner.is-sel .w3-learner-badge{border-color:rgba(26,26,26,.18);color:rgba(26,26,26,.72);}

.w3-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 26px;border-radius:var(--radius-pill);border:1.5px solid transparent;
  font-size:14.5px;font-weight:700;cursor:pointer;
  transition:all var(--t-fast) var(--ease-out);
}
.w3-btn:disabled{opacity:.35;cursor:default;}
.w3-btn-acc{background:var(--acc);color:var(--hg-ink);}
.w3-btn-acc:not(:disabled):hover{filter:brightness(1.05);transform:translateY(-1px);}
.w3-btn-ghost{background:transparent;color:var(--st-dim);border-color:var(--st-line);}
.w3-btn-ghost:hover{color:var(--st-text);border-color:var(--st-dim);}
.w3-btn-cream{background:var(--hg-cream);color:var(--hg-ink);}
.w3-btn-cream:not(:disabled):hover{filter:brightness(.97);transform:translateY(-1px);}

/* ============ FATTO ============ */
.w3-done{
  flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:40px var(--w3-pad-r) max(24px, env(safe-area-inset-bottom, 0px)) var(--w3-pad-l);
  gap:0;
}
.w3-done-kicker{
  font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin-bottom:18px;
}
.w3-done-title{
  font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  font-size:clamp(48px,7vw,96px);line-height:1.02;letter-spacing:.012em;color:var(--st-text);margin:0;
}
.w3-done-title em{font-style:normal;color:var(--acc);}
.w3-done-sub{font-size:15px;color:var(--st-dim);line-height:1.7;margin-top:22px;max-width:480px;}
.w3-done-sub b{color:var(--st-text);font-weight:700;}
.w3-done-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap;justify-content:center;}
.w3-done-actions--secondary{margin-top:24px;justify-content:flex-start;}

/* ============ RESPONSIVE ============ */
@media (max-width:1180px){
  .w3-subjects{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:920px){
  .w3{overflow-y:auto;}
  .w3-stage{overflow-y:auto;}
  .w3-body.has-side{
    display:flex;
    flex-direction:column;
  }
  /* Dock fisso sopra il footer: non scrolla via con le lezioni */
  .w3-cart-dock{
    flex-shrink:0;
    width:100%;
    max-width:none;
    min-height:0;
    max-height:none;
    z-index:900;
    padding:0 var(--w3-pad-r) 0 var(--w3-pad-l);
    background:var(--hg-brown);
    border-top:1px solid var(--st-line-soft);
    box-shadow:0 -8px 24px rgba(0,0,0,.22);
  }
  /* Vuoto: nascondi il dock per liberare spazio agli slot */
  .w3-cart-dock:has([data-cart-count="0"]),
  .w3-cart-dock:has([class*="isEmpty"]){
    display:none;
  }
  /*
   * Solo lezioni: slot restano nella carta con scroll interno.
   * Non applicare a .wsp (coworking/studio): lì serve scroll dello stage
   * per raggiungere date / mappa sotto le fasce.
   */
  [data-lessons-booking="manifesto"] .w3-body.has-side .w3-stage{
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  [data-lessons-booking="manifesto"] .w3-body.has-side .w3-stage-in{
    flex:1 1;
    min-height:0;
    display:flex;
    flex-direction:column;
    height:100%;
  }
  [data-lessons-booking="manifesto"] .w3-body.has-side .w3-stage-main{
    flex:1 1;
    min-height:0;
  }
  .w3-sentence{--w3-sentence-base:clamp(24px,6.2vw,36px);}
  .w3-levels{grid-template-columns:1fr;}
  .w3-subjects{grid-template-columns:repeat(3,minmax(0,1fr));}
  .w3-learners{grid-template-columns:1fr;}
  .w3-slotgrid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}
  .w3-paper::before,.w3-paper::after{display:none;}
  .w3-foot{position:relative;flex-wrap:wrap;gap:10px;}
  .w3-foot-hint{display:none;}
  /* Biglietto mobile: stub a striscia (PROMPT 34) */
  .w3-receipt{flex-direction:column;max-width:440px;}
  .w3-receipt::before,
  .w3-receipt::after{display:none;}
  .w3-ticket-stub{
    flex:0 0 auto;flex-direction:row;justify-content:center;align-items:center;
    gap:0;padding:16px 14px;min-height:72px;
  }
  .w3-ticket-stub [data-brand-lockup]{
    max-width:none;
  }
  .w3-ticket-stub::after{
    top:auto;right:16px;left:16px;bottom:0;
    border-right:none;border-bottom:2px dashed rgba(249,245,238,.32);
  }
  .w3-rrow{padding:7px 0;font-size:13.5px;}
}
@media (max-width:560px){
  .w3-subjects{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .w3-subject{min-height:68px;padding:10px 6px;gap:6px;border-radius:16px;}
  .w3-subject-ico{width:30px;height:30px;border-radius:10px;}
  .w3-subject-ico svg{width:17px;height:17px;}
  .w3-subject-lbl{font-size:10.5px;line-height:1.2;}
  .w3-row-time{width:72px;font-size:15px;}
  .w3-stepnum{font-size:20px;}
  .w3-stepnum b{font-size:26px;}
  .w3-foot{
    padding-top:6px;
    padding-bottom:6px;
  }
}
@media (max-width:480px){
  .w3-sentence-wrap{
    padding-top:14px;padding-bottom:4px;
  }
  .w3-eyebrow{margin-bottom:12px;}
  .w3-eyebrow::after{display:none;}
  .w3-sentence{--w3-sentence-base:clamp(21px,7vw,28px);line-height:1.18;}
  .w3-tok{text-decoration-thickness:2px;}
  .w3-stage{padding-top:12px;padding-bottom:12px;}
  .w3-group{margin-top:20px;}
  .w3-level{padding:16px;flex-direction:row;align-items:center;gap:14px;}
  .w3-level-name{font-size:18px;}
  .w3-level-desc{display:none;}
  /* Flow choice: ancora più compatto su mobile stretto */
  .w3-flow-paths{gap:8px;}
  .w3-flow-paths .w3-level{
    flex-wrap:wrap;
    align-items:flex-start;
    padding:10px 12px;
    gap:4px 10px;
  }
  .w3-flow-paths .w3-level-ico{width:30px;height:30px;}
  .w3-flow-paths .w3-level-ico svg{width:16px;height:16px;}
  .w3-flow-paths .w3-level-name{
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: calc(100% - 48px);
    font-size:15px;
  }
  .w3-flow-paths .w3-level-desc{
    display:block;
    flex:1 1 100%;
    margin-left:40px;
    margin-top:0;
    font-size:11px;
    line-height:1.3;
  }
  .w3-year{width:52px;height:52px;font-size:18px;}
  .w3-paper{padding:10px 10px 12px;}
  .w3-slotgrid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .w3-weekrange{font-size:16px;}
  .w3-daystrip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
  .w3-daybtn{padding:6px 2px;min-width:0;}
  .w3-daybtn-n{font-size:8px;}
  .w3-daybtn b{font-size:13px;}
  .w3-foot{padding:8px 12px;gap:8px;}
  .w3-btn{padding:10px 16px;font-size:13px;}
  .w3-ticket-body{padding:16px 18px;}
  .w3-done-title{font-size:clamp(36px,11vw,52px);}
  .w3-done-actions{flex-direction:column;width:100%;}
  .w3-done-actions .w3-btn{width:100%;}
}
@media (max-width:400px){
  /* Contatore slot solo sul giorno selezionato */
  .w3-daybtn-n{display:none;}
  .w3-daybtn.is-sel .w3-daybtn-n{display:block;}
}

/* ============ MANIFESTO WIZARD · MOBILE (actionbar fissa, no tab bar) ============ */
@media (max-width: 768px) {
  /*
   * Actionbar fixed al bordo visibile + clearance sul palco.
   * Evita Continua tagliata da 100dvh/browser chrome e chip sotto la barra.
   */
  body:has([data-booking-manifesto]),
  body:has([data-course-wizard-manifesto]) {
    --w3-actionbar-clearance: calc(
      56px + max(12px, env(safe-area-inset-bottom, 0px))
    );
  }

  body:has([data-booking-manifesto]) .w3,
  body:has([data-course-wizard-manifesto]) .w3 {
    overflow: hidden;
    box-sizing: border-box;
    padding-bottom: 0;
    background: var(--hg-brown);
  }

  body:has([data-booking-manifesto]) .w3-body,
  body:has([data-course-wizard-manifesto]) .w3-body,
  body:has([data-booking-manifesto]) .w3-stage,
  body:has([data-course-wizard-manifesto]) .w3-stage {
    background: var(--hg-brown);
  }

  body:has([data-booking-manifesto]) .w3-stage,
  body:has([data-course-wizard-manifesto]) .w3-stage {
    flex: 1 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* Ultima riga chip/materia sopra Continua (barra fixed) */
    padding-bottom: var(--w3-actionbar-clearance);
    scroll-padding-bottom: var(--w3-actionbar-clearance);
  }

  /*
   * In wizard: tab bar Home/Agenda nascosta (VetrinaBottomNav non monta).
   * main senza inset fantasma; foot = sola actionbar + safe-area.
   */
  html[data-structural-theme="vetrina"] body:has([data-booking-manifesto]) > main,
  html[data-structural-theme="vetrina"] body:has([data-course-wizard-manifesto]) > main {
    padding-bottom: 0;
  }
  body:has([data-booking-manifesto]) [data-vetrina-bottom-nav],
  body:has([data-course-wizard-manifesto]) [data-vetrina-bottom-nav] {
    display: none !important;
  }

  body:has([data-booking-manifesto]) .w3-foot,
  body:has([data-course-wizard-manifesto]) .w3-foot {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    z-index: 920;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: center;
    background: var(--hg-brown);
    box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.28);
    border-top: 1px solid var(--st-line);
    display: flex !important;
    gap: 8px;
    padding: 8px 12px;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
    min-height: 56px;
    overflow: visible;
    margin: 0;
    pointer-events: auto;
    box-sizing: border-box;
  }

  /* Hint sopra la barra: anche lui ancorato sopra il foot fixed */
  body:has([data-booking-manifesto]) .w3-foot-hint-above,
  body:has([data-course-wizard-manifesto]) .w3-foot-hint-above {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--w3-actionbar-clearance);
    z-index: 919;
    background: var(--hg-brown);
    padding: 4px 12px 6px;
    margin: 0;
  }

  /* Actionbar: una riga di controlli, sempre visibile */
  body:has([data-booking-manifesto]) .w3-foot.w3-actionbar {
    flex-wrap: nowrap;
    gap: 6px;
    padding-top: 8px;
    min-height: 56px;
  }
  body:has([data-booking-manifesto]) .w3-foot.w3-actionbar .w3-btn {
    min-height: var(--hg-tap-min, 44px);
    padding: 8px 12px;
  }
  body:has([data-booking-manifesto]) .w3-foot.w3-actionbar .w3-btn-acc {
    font-size: 14px;
    padding: 10px 18px;
    min-height: var(--hg-tap-min, 44px);
    flex: 0 1 auto;
  }
  body:has([data-booking-manifesto]) .w3-foot.w3-actionbar .w3-btn-back.is-icon {
    width: var(--hg-tap-min, 44px);
    padding: 0;
  }

  /* Riga Indietro + Continua nello step (materia/argomento): CTA sempre visibile nel palco */
  body:has([data-booking-manifesto]) .w3-step-actions,
  body:has([data-course-wizard-manifesto]) .w3-step-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
  }

  body:has([data-booking-manifesto]) .w3-step-actions .w3-btn-acc,
  body:has([data-course-wizard-manifesto]) .w3-step-actions .w3-btn-acc {
    flex: 0 0 auto;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-foot-hint,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-foot-hint {
    display: none;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-foot-spacer,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-foot-spacer {
    display: block;
    flex: 1 1;
    min-width: 4px;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-stepnum,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-stepnum {
    flex: 0 0 auto;
    font-size: 16px;
    gap: 4px;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-stepnum b,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-stepnum b {
    font-size: 20px;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-btn-acc,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-btn-acc,
  body:has([data-booking-manifesto]) .w3-foot .w3-btn-ghost,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-btn-ghost,
  body:has([data-course-wizard-manifesto]) .w3-foot .cw3-foot-draft {
    flex: 0 1 auto;
    width: auto;
    min-height: 38px;
    padding: 8px 14px;
    font-size: 13px;
    justify-content: center;
  }

  /* Actionbar: tap ≥44px e CTA 14px vincono sul min-height 38px sopra */
  body:has([data-booking-manifesto]) .w3-foot.w3-actionbar .w3-btn-acc {
    min-height: var(--hg-tap-min, 44px);
    padding: 10px 18px;
    font-size: 14px;
    flex-shrink: 0;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-btn-acc,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-btn-acc {
    flex-shrink: 0;
  }

  body:has([data-booking-manifesto]) .w3-foot .w3-btn,
  body:has([data-course-wizard-manifesto]) .w3-foot .w3-btn,
  body:has([data-course-wizard-manifesto]) .w3-foot .cw3-foot-draft {
    touch-action: manipulation;
  }
}

/* ============================================================
   STEP CONFERMA (Batch/Singola) SUL PALCO BRUNO MANIFESTO
   Classi CSS Modules: `[name]__[local]--[hash]` → `BookingConfirmationStep__…`
   Sul palco `.w3` bruno i testi fuori dalla carta restano crema;
   il riepilogo è un unico pannello carta con inchiostro scuro.
   ============================================================ */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__bookingDetails"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__detailCard"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__summaryPanel"] {
  background: var(--surface-card, #fffdf8);
  border-color: rgba(58, 46, 34, 0.16);
  color: var(--text-1, #241b11);
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__summaryPanelBlocked"] {
  border-color: rgba(220, 80, 60, 0.7);
  box-shadow: 0 0 0 1px rgba(220, 80, 60, 0.25);
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__summaryHeading"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__cardTitle"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__detailLabel"] {
  color: var(--text-2, rgba(36, 27, 17, 0.64));
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__lessonDate"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__detailValue"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__lessonTeacher"] {
  color: var(--text-1, #241b11);
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__lessonTeacher"] {
  opacity: 0.82;
  font-weight: 600;
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__summaryDivider"] {
  background: rgba(58, 46, 34, 0.14);
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__creditsShortfall"] {
  color: #b91c1c;
}

[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__title"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__successTitle"] {
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__subtitle"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__successSubtitle"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__toggleLabel"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__childToggleHint"] {
  color: var(--st-dim);
}

/* Person picker su bruno */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOption"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionAdd"] {
  border-color: var(--st-line);
  background: rgba(255, 255, 255, 0.06);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personName"] {
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personHint"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personIcon"] {
  color: var(--st-dim);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionAdd"] [class*="BookingConfirmationStep__personName"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personIconAdd"] {
  color: var(--st-dim);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionActive"] {
  background: var(--hg-cream);
  border-color: var(--hg-cream);
  box-shadow: none;
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionActive"] [class*="BookingConfirmationStep__personName"] {
  color: var(--hg-ink);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionActive"] [class*="BookingConfirmationStep__personHint"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__personOptionActive"] [class*="BookingConfirmationStep__personIcon"] {
  color: rgba(26, 26, 26, 0.62);
}

/* "Nuovo utente collegato" */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__addLinkedUserBtn"] {
  border-color: var(--st-line);
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__addLinkedUserBtn"]:hover {
  border-color: var(--st-dim);
  background: rgba(255, 255, 255, 0.06);
  color: var(--st-text);
}

/* Checkbox regolamento */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__regulationSection"] {
  border-color: var(--st-line);
  background: rgba(255, 255, 255, 0.04);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__checkboxContainer"],
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__checkboxLabel"] {
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__checkmark"] {
  border-color: var(--st-dim);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__checkbox"]:checked ~ [class*="BookingConfirmationStep__checkmark"] {
  background: var(--acc);
  border-color: var(--acc);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__checkbox"]:checked ~ [class*="BookingConfirmationStep__checkmark"]::after {
  border-color: var(--hg-ink);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__regulationLink"] {
  color: var(--acc);
}

/* Navigazione */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__navigation"] {
  border-top-color: var(--st-line-soft);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__backButton"] {
  border-color: var(--st-line);
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__backButton"]:hover:not(:disabled) {
  color: var(--st-text);
  border-color: var(--st-dim);
  background: rgba(255, 255, 255, 0.06);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__confirmButton"] {
  background: var(--acc);
  color: var(--hg-ink);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__confirmButton"]:hover:not(:disabled) {
  background: var(--acc-deep);
  color: var(--hg-cream);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__confirmButton"]:disabled {
  background: rgba(255, 255, 255, 0.18);
  color: rgba(249, 245, 238, 0.72);
  opacity: 1;
}

/* Banner crediti insufficienti — blocco evidente su bruno */
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__noCreditsWarning"] {
  border: 2px solid var(--acc);
  background: rgba(220, 80, 60, 0.18);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__noCreditsWarningTitle"] {
  color: var(--acc);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__noCreditsText"] {
  color: var(--st-text);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__buyCreditsButton"] {
  background: var(--acc);
  color: var(--hg-ink);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__buyCreditsButton"]:hover {
  background: var(--acc-deep);
  color: var(--hg-cream);
}
[data-lessons-booking="manifesto"] [class*="BookingConfirmationStep__anotherSubjectButton"] {
  border-color: var(--st-line);
  color: var(--st-text);
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/course-wizard-v3.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/
/* Wizard proposta corso — Manifesto V3 (accento lavanda) */

[data-course-wizard-manifesto] .w3 {
  --acc: var(--hg-lilla, #c7b8ea);
  --acc-deep: var(--hg-lilla-deep, #7c6aad);
}

[data-course-wizard-manifesto] {
  --st-text: var(--hg-cream, #f9f5f0);
  --st-dim: rgba(249, 245, 238, 0.5);
  --st-faint: rgba(249, 245, 238, 0.28);
  --st-line: rgba(255, 255, 255, 0.16);
  --radius-pill: 999px;
  --t-fast: 0.18s;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---- stepper ---- */
.cw3-stepper {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 0 var(--w3-pad-r) 12px var(--w3-pad-l);
  flex-shrink: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.cw3-stepper::-webkit-scrollbar {
  display: none;
}
.cw3-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 72px;
  flex: 0 0 auto;
}
.cw3-step-btn {
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cw3-step-btn:disabled {
  cursor: default;
  opacity: 0.5;
}
.cw3-step-dot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  border: 1.5px solid var(--st-line);
  color: var(--st-dim);
  transition: all var(--t-fast) var(--ease-out);
}
.cw3-step-dot.is-pending {
  color: var(--hg-sage, #588157);
  border-color: var(--st-line);
}
.cw3-step-dot.is-active {
  background: var(--acc);
  border-color: var(--acc);
  color: var(--hg-ink);
  width: auto;
  min-width: 36px;
  padding: 0 14px;
  border-radius: 999px;
}
.cw3-step-dot.is-done {
  background: var(--hg-sage, #588157);
  border-color: var(--hg-sage, #588157);
  color: var(--hg-cream);
}
.cw3-step-lbl {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--st-faint);
  white-space: nowrap;
}
.cw3-step-lbl.is-active {
  color: var(--acc);
}
.cw3-step-lbl.is-done {
  color: var(--st-dim);
}
.cw3-step-line {
  flex: 1 1;
  min-width: 24px;
  height: 2px;
  background: var(--st-line-soft);
  margin-top: 17px;
  align-self: flex-start;
}
.cw3-step-line.is-done {
  background: var(--hg-sage, #588157);
}

/* ---- top bar ---- */
.cw3-topbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 8px var(--w3-pad-r) 0 var(--w3-pad-l);
  flex-shrink: 0;
}
.cw3-draft-badge {
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--st-line);
  color: var(--st-dim);
  background: transparent;
}
.cw3-exit-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--st-line);
  background: transparent;
  color: var(--st-dim);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--t-fast) var(--ease-out);
}
.cw3-exit-btn:hover {
  color: var(--st-text);
  border-color: var(--st-dim);
}

/* ---- form fields (dark theme) ---- */
.cw3-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}
.cw3-field:last-child {
  margin-bottom: 0;
}
.cw3-lbl {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--st-dim);
}
.cw3-lbl em {
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--st-faint);
}
.cw3-input,
.cw3-textarea {
  width: 100%;
  padding: 14px 18px;
  border-radius: var(--radius-field);
  border: 1.5px solid var(--st-line);
  background: rgba(255, 255, 255, 0.04);
  color: var(--st-text);
  font-family: inherit;
  font-size: 15px;
  outline: none;
  transition: border-color var(--t-fast) var(--ease-out);
}
.cw3-input:focus,
.cw3-textarea:focus {
  border-color: var(--acc);
}
.cw3-input::placeholder,
.cw3-textarea::placeholder {
  color: var(--st-faint);
}
.cw3-textarea {
  min-height: 140px;
  resize: vertical;
  line-height: 1.5;
}
.cw3-counter {
  font-size: 12px;
  color: var(--st-faint);
  text-align: right;
}
.cw3-err {
  font-size: 13px;
  color: var(--hg-coral-warn, #e07a5f);
}
.cw3-cat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cw3-cat-hint {
  font-size: 13px;
  color: var(--st-dim);
  margin: 0;
}

.cw3-levels {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.cw3-level-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 20px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--st-line);
  background: transparent;
  color: var(--st-text);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--t-fast) var(--ease-out);
}
.cw3-level-pill:hover {
  border-color: var(--st-dim);
  color: var(--st-text);
}
.cw3-level-pill.is-sel {
  background: var(--acc);
  border-color: var(--acc);
  color: var(--hg-ink);
}

/* ---- cover uploader ---- */
.cw3-cover-box {
  border: 1.5px solid var(--st-line);
  border-radius: var(--radius-card);
  padding: 16px;
  background: rgba(255, 255, 255, 0.03);
  margin-bottom: 20px;
}
.cw3-cover-preview {
  display: flex;
  align-items: center;
  gap: 14px;
}
.cw3-cover-thumb {
  width: 80px;
  height: 80px;
  border-radius: 14px;
  overflow: hidden;
  background: var(--hg-peach-soft, #f5d5c8);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cw3-cover-meta {
  flex: 1 1;
  min-width: 0;
}
.cw3-cover-meta p {
  margin: 0;
  font-size: 13px;
  color: var(--st-dim);
  line-height: 1.45;
}
.cw3-cover-rm {
  background: none;
  border: none;
  color: var(--st-dim);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  margin-top: 6px;
}
.cw3-cover-rm:hover {
  color: var(--st-text);
}

/* ---- session rows ---- */
.cw3-sessions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cw3-session-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 0.8fr 0.8fr auto;
  grid-gap: 10px;
  gap: 10px;
  align-items: end;
}
.cw3-session-row .cw3-field {
  margin-bottom: 0;
}
.cw3-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--st-line);
  background: transparent;
  color: var(--st-dim);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 12px;
  transition: all var(--t-fast) var(--ease-out);
}
.cw3-add-btn:hover {
  border-color: var(--st-dim);
  color: var(--st-text);
}
.cw3-session-summary {
  font-size: 13px;
  color: var(--st-faint);
  margin-top: 10px;
}
.cw3-session-rm {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--st-line);
  background: transparent;
  color: var(--st-dim);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.cw3-session-rm:hover {
  color: var(--st-text);
  border-color: var(--st-dim);
}

/* ---- pricing grid ---- */
.cw3-price-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 14px;
  gap: 14px;
}
.cw3-fee-box {
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: var(--radius-card);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--st-line-soft);
  font-size: 14px;
  line-height: 1.7;
  color: var(--st-dim);
}
.cw3-fee-box strong {
  color: var(--st-text);
}
.cw3-policy {
  font-size: 13px;
  color: var(--st-faint);
  line-height: 1.5;
  margin: 0 0 16px;
}
.cw3-policy b {
  color: var(--st-dim);
  font-weight: 700;
}

/* ---- review ---- */
.cw3-review-box {
  padding: 20px 22px;
  border-radius: var(--radius-card);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--st-line-soft);
  margin-bottom: 20px;
}
.cw3-review-box h3 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--st-dim);
  margin: 0 0 12px;
}
.cw3-review-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--st-text);
  margin: 0 0 8px;
}
.cw3-review-detail {
  font-size: 14px;
  color: var(--st-dim);
  line-height: 1.55;
  margin: 0;
}
.cw3-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cw3-checklist li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--st-line-soft);
  font-size: 14px;
  color: var(--st-dim);
}
.cw3-checklist li:last-child {
  border-bottom: none;
}
.cw3-check-ok {
  color: var(--hg-sage, #588157);
  font-weight: 800;
}
.cw3-check-no {
  color: var(--st-faint);
}

/* ---- preview sidebar ---- */
.cw3-preview-lbl {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--st-dim);
  margin: 0 0 10px;
}
.cw3-preview-hint {
  font-size: 12px;
  color: var(--st-faint);
  margin: 10px 0 0;
}

/* ---- footer extras ---- */
.cw3-foot-draft {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 20px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--st-line);
  background: transparent;
  color: var(--st-dim);
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--t-fast) var(--ease-out);
}
.cw3-foot-draft:hover {
  color: var(--st-text);
  border-color: var(--st-dim);
}
.cw3-foot-draft:disabled {
  opacity: 0.35;
  cursor: default;
}

/* ---- success screen ---- */
.cw3-success {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.cw3-success-dark {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 48px var(--w3-pad-r) 40px var(--w3-pad-l);
}
.cw3-success-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--acc);
  margin-bottom: 18px;
}
.cw3-success-title {
  font-family: var(--font-anton, Anton), var(--font-display), sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(48px, 7vw, 96px);
  line-height: 1.02;
  letter-spacing: 0.012em;
  color: var(--st-text);
  margin: 0;
}
.cw3-success-title em {
  font-style: normal;
  color: var(--acc);
}
.cw3-success-sub {
  font-size: 15px;
  color: var(--st-dim);
  line-height: 1.7;
  margin-top: 22px;
  max-width: 480px;
}
.cw3-success-sub b {
  color: var(--st-text);
  font-weight: 700;
}
.cw3-success-actions {
  display: flex;
  gap: 12px;
  margin-top: 30px;
  flex-wrap: wrap;
  justify-content: center;
}
.cw3-success-light {
  flex-shrink: 0;
  min-height: 120px;
  background: var(--hg-cream, #f9f5f0);
}

@media (max-width: 920px) {
  .cw3-session-row {
    grid-template-columns: 1fr 1fr;
  }
  .cw3-session-row .cw3-field:first-child {
    grid-column: 1 / -1;
  }
  .cw3-price-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .cw3-step-lbl {
    display: none;
  }
  .cw3-session-row {
    grid-template-columns: 1fr;
  }
}

/*!************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/agenda-glass.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Glass stile Apple / 2026 + outline marrone agenda (--brown-dark).
 * Wrapper: `hm-agenda-glass` (area calendario) e `hm-agenda-glass-subtle` (chrome / sidebar).
 * Nessun bordo bianco: alone caldo crema per i bordi luminosi.
 */

:root {
  --hm-agenda-glass-border: 1px solid var(--brown-dark);
  --hm-agenda-glass-edge: inset 0 1px 0 rgba(253, 246, 242, 0.42);
}

.hm-agenda-glass-subtle {
  background: var(--glass-bg);
  /* no backdrop-filter: sul wrapper avrebbe effetto su tutto il calendario inclusi eventi */
  border: 0.5px solid var(--glass-border);
  border-radius: 16px;
  box-shadow:
    0 10px 44px rgba(75, 61, 42, 0.09),
    var(--hm-agenda-glass-edge);
}

.hm-agenda-glass {
  background: color-mix(in srgb, var(--surface-solid, #fdfbf8) 92%, var(--glass-bg)) !important;
  border: 1px solid rgba(75, 61, 42, 0.16) !important;
  border-radius: 14px !important;
  box-shadow:
    0 4px 24px rgba(75, 61, 42, 0.08),
    var(--hm-agenda-glass-edge);
  padding: 12px !important;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .hm-agenda-glass-subtle {
    background: var(--hm-cream-mist);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .hm-agenda-glass {
    background: var(--hm-cream-solid);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* FullCalendar: trasparenza, griglia marrone, niente bianco di default */
.hm-agenda-glass .fc,
.hm-agenda-glass-subtle .fc {
  font-family: var(--font-family);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(247, 226, 218, 0.28);
  --fc-neutral-text-color: var(--gray-medium);
  --fc-border-color: rgba(75, 61, 42, 0.22);
  --fc-button-bg-color: rgba(253, 246, 242, 0.38);
  --fc-button-border-color: var(--brown-dark);
  --fc-button-text-color: var(--brown-dark);
  --fc-button-hover-bg-color: rgba(248, 188, 171, 0.32);
  --fc-button-hover-border-color: var(--brown-dark);
  --fc-button-active-bg-color: rgba(194, 166, 226, 0.26);
  --fc-button-active-border-color: var(--brown-dark);
  --fc-today-bg-color: rgba(194, 166, 226, 0.14);
  --fc-highlight-color: rgba(194, 166, 226, 0.2);
  --fc-now-indicator-color: var(--coral-light);
  --fc-more-link-bg-color: rgba(247, 226, 218, 0.75);
  --fc-more-link-text-color: var(--brown-dark);
  --fc-non-business-color: rgba(247, 226, 218, 0.22);
}

.hm-agenda-glass .fc .fc-button,
.hm-agenda-glass-subtle .fc .fc-button {
  border-radius: 10px !important;
  font-weight: var(--font-medium, 500);
  font-family: var(--font-family) !important;
  box-shadow: none !important;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

/* Toolbar nav in stile mockup: prev/next compatti, Oggi pill morbida, titolo centrale */
.hm-agenda-glass .fc .fc-header-toolbar,
.hm-agenda-glass-subtle .fc .fc-header-toolbar {
  margin-bottom: var(--spacing-md, 16px);
  padding-bottom: var(--spacing-sm, 12px);
  border-bottom: 1px solid rgba(75, 61, 42, 0.18);
  gap: 10px;
}

.hm-agenda-glass .fc .fc-toolbar-chunk,
.hm-agenda-glass-subtle .fc .fc-toolbar-chunk {
  display: flex;
  align-items: center;
  gap: 8px;
}

.hm-agenda-glass .fc .fc-toolbar-chunk:first-child .fc-button-group,
.hm-agenda-glass-subtle .fc .fc-toolbar-chunk:first-child .fc-button-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  box-shadow: none;
}

.hm-agenda-glass .fc .fc-prev-button,
.hm-agenda-glass .fc .fc-next-button,
.hm-agenda-glass-subtle .fc .fc-prev-button,
.hm-agenda-glass-subtle .fc .fc-next-button {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  border-radius: 10px !important;
  border: 1px solid rgba(75, 61, 42, 0.22) !important;
  background: rgba(253, 246, 242, 0.55) !important;
  color: var(--brown-dark) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

.hm-agenda-glass .fc .fc-prev-button:hover:not(:disabled),
.hm-agenda-glass .fc .fc-next-button:hover:not(:disabled),
.hm-agenda-glass-subtle .fc .fc-prev-button:hover:not(:disabled),
.hm-agenda-glass-subtle .fc .fc-next-button:hover:not(:disabled) {
  background: rgba(248, 188, 171, 0.35) !important;
  border-color: rgba(75, 61, 42, 0.35) !important;
}

/* Oggi = pill morbida (non piena) tra le frecce */
.hm-agenda-glass .fc .fc-today-button,
.hm-agenda-glass-subtle .fc .fc-today-button,
.hm-agenda-glass .fc .fc-today-button.fc-button-active,
.hm-agenda-glass-subtle .fc .fc-today-button.fc-button-active {
  background-color: rgba(253, 246, 242, 0.72) !important;
  border: 1px solid rgba(75, 61, 42, 0.28) !important;
  color: var(--brown-dark) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: capitalize;
}

.hm-agenda-glass .fc .fc-today-button:hover:not(:disabled),
.hm-agenda-glass-subtle .fc .fc-today-button:hover:not(:disabled) {
  background-color: rgba(248, 188, 171, 0.42) !important;
  border-color: rgba(75, 61, 42, 0.38) !important;
  color: var(--brown-dark) !important;
}

.hm-agenda-glass .fc .fc-scrollgrid,
.hm-agenda-glass-subtle .fc .fc-scrollgrid {
  border: 1px solid rgba(75, 61, 42, 0.14) !important;
  border-radius: 12px !important;
  overflow: hidden;
}

.hm-agenda-glass .fc .fc-col-header-cell,
.hm-agenda-glass-subtle .fc .fc-col-header-cell {
  background: #ede4df !important;
  border-radius: 0 !important;
}

.hm-agenda-glass .fc .fc-timegrid-axis,
.hm-agenda-glass-subtle .fc .fc-timegrid-axis {
  background: rgba(253, 246, 242, 0.5) !important;
}

.hm-agenda-glass .fc .fc-timegrid-slot,
.hm-agenda-glass-subtle .fc .fc-timegrid-slot {
  height: 5em;
}

/* Evita troncamenti/ellipsis nei timeGrid: vogliamo testo multilinea */
.hm-agenda-glass .fc .fc-v-event,
.hm-agenda-glass-subtle .fc .fc-v-event {
  overflow: visible !important;
}

.hm-agenda-glass .fc .fc-event,
.hm-agenda-glass-subtle .fc .fc-event {
  overflow: visible !important;
}

.hm-agenda-glass .fc .fc-event-main,
.hm-agenda-glass-subtle .fc .fc-event-main {
  overflow: visible !important;
}

.hm-agenda-glass .fc .fc-event-title,
.hm-agenda-glass-subtle .fc .fc-event-title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  display: block;
}

.hm-agenda-glass .fc .fc-timegrid-slot-lane,
.hm-agenda-glass-subtle .fc .fc-timegrid-slot-lane {
  background: transparent;
}

/*
 * Shell FC trasparente: tutto il look è in AgendaEventCard via eventContent.
 */
.hm-agenda-glass .fc .fc-event,
.hm-agenda-glass-subtle .fc .fc-event,
[data-agenda-skin='claude'] .fc .fc-event {
  position: relative !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  height: 100%;
}

.hm-agenda-glass .fc .fc-event .fc-event-main,
.hm-agenda-glass-subtle .fc .fc-event .fc-event-main,
[data-agenda-skin='claude'] .fc .fc-event .fc-event-main {
  padding: 0 !important;
  height: 100%;
  background: transparent !important;
  color: inherit !important;
}

/* In modalità modifica/drag leggera opacità sul mirror FC */
.hm-agenda-glass .fc .fc-event.fc-event-dragging,
.hm-agenda-glass .fc .fc-event.fc-event-mirror {
  opacity: 0.92;
}

.hm-agenda-glass .fc .fc-popover,
.hm-agenda-glass-subtle .fc .fc-popover {
  background: rgba(253, 246, 242, 0.96) !important;
  border: var(--hm-agenda-glass-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 48px rgba(75, 61, 42, 0.14) !important;
}

.hm-agenda-glass .fc .fc-popover-header,
.hm-agenda-glass-subtle .fc .fc-popover-header {
  background: rgba(248, 188, 171, 0.22) !important;
  border-radius: 10px !important;
}

.hm-agenda-glass .fc .fc-button:not(.fc-today-button):disabled,
.hm-agenda-glass-subtle .fc .fc-button:not(.fc-today-button):disabled {
  opacity: 0.45;
}

.hm-agenda-glass .fc .fc-toolbar-title,
.hm-agenda-glass-subtle .fc .fc-toolbar-title {
  font-size: clamp(17px, 2vw, 21px);
  font-weight: var(--font-bold, 700);
  color: var(--text-primary);
  letter-spacing: -0.02em;
  text-transform: capitalize;
}

.hm-agenda-glass .fc .fc-timegrid-slot-label,
.hm-agenda-glass-subtle .fc .fc-timegrid-slot-label {
  font-size: var(--text-xs, 12px);
  color: var(--text-secondary);
  font-weight: var(--font-medium, 500);
}

.hm-agenda-glass .fc .fc-col-header-cell-cushion,
.hm-agenda-glass-subtle .fc .fc-col-header-cell-cushion {
  color: var(--text-primary);
  font-weight: var(--font-semibold, 600);
  font-size: var(--text-sm, 14px);
}

.hm-agenda-glass .fc .fc-day-today,
.hm-agenda-glass-subtle .fc .fc-day-today {
  background-color: rgba(75, 61, 42, 0.06) !important;
  border-left: none !important;
}

.hm-agenda-glass .fc .fc-timegrid .fc-day-today,
.hm-agenda-glass-subtle .fc .fc-timegrid .fc-day-today {
  box-shadow: none;
}

.hm-agenda-glass .fc .fc-daygrid-day.fc-day-today,
.hm-agenda-glass-subtle .fc .fc-daygrid-day.fc-day-today {
  border-left: none;
}

.hm-agenda-glass .fc .fc-col-header-cell.fc-day-today,
.hm-agenda-glass-subtle .fc .fc-col-header-cell.fc-day-today {
  background-color: rgba(75, 61, 42, 0.12) !important;
}

.hm-agenda-glass .fc .fc-col-header-cell.fc-day-today a,
.hm-agenda-glass-subtle .fc .fc-col-header-cell.fc-day-today a,
.hm-agenda-glass .fc .fc-col-header-cell.fc-day-today .fc-col-header-cell-cushion,
.hm-agenda-glass-subtle .fc .fc-col-header-cell.fc-day-today .fc-col-header-cell-cushion {
  color: var(--brown-dark) !important;
  font-weight: 700;
}

.hm-agenda-glass .fc .fc-daygrid-day-number,
.hm-agenda-glass-subtle .fc .fc-daygrid-day-number {
  color: var(--text-primary);
  font-weight: var(--font-semibold, 600);
  font-size: var(--text-sm, 14px);
  padding: var(--spacing-xs, 4px);
}

.hm-agenda-glass .fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number,
.hm-agenda-glass-subtle .fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
  background-color: rgba(75, 61, 42, 0.12);
  color: var(--brown-dark);
  font-weight: 700;
  border: none;
}

.hm-agenda-glass .fc .fc-daygrid-day,
.hm-agenda-glass-subtle .fc .fc-daygrid-day,
.hm-agenda-glass .fc .fc-timeGridDay-view .fc-day,
.hm-agenda-glass-subtle .fc .fc-timeGridDay-view .fc-day,
.hm-agenda-glass .fc .fc-timeGridWeek-view .fc-day,
.hm-agenda-glass-subtle .fc .fc-timeGridWeek-view .fc-day {
  border-color: rgba(75, 61, 42, 0.28);
  border-radius: 8px;
}

@media (max-width: 640px) {
  .hm-agenda-glass .fc .fc-header-toolbar,
  .hm-agenda-glass-subtle .fc .fc-header-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .hm-agenda-glass .fc .fc-toolbar-chunk,
  .hm-agenda-glass-subtle .fc .fc-toolbar-chunk {
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
  }

  .hm-agenda-glass .fc .fc-toolbar-title,
  .hm-agenda-glass-subtle .fc .fc-toolbar-title {
    font-size: clamp(15px, 4.5vw, 19px);
    text-align: center;
    overflow-wrap: anywhere;
    line-height: 1.25;
    width: 100%;
  }
}

/* ── Legenda chip pill (mockup weekly-grid) ── */
.hm-agenda-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: color-mix(in srgb, var(--surface-solid, #fff) 80%, transparent);
  border: 1px solid rgba(75, 61, 42, 0.14);
  border-radius: 12px;
}

.hm-agenda-legendItem {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border: 1px solid rgba(75, 61, 42, 0.22);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary);
  background: transparent;
  line-height: 1.3;
}

.hm-agenda-legendDot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}

.hm-agenda-legendDotDashed {
  background: transparent;
  border: 2px dashed currentColor;
  border-radius: 3px;
  box-sizing: border-box;
}


/*!***************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/theme/app-theme.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================================
   HYGGE · APP BASE  —  hygge-app.css
   Base unica per la web-app gestionale (Dashboard, prenotazioni, tabelle…).
   Anima "operativa" del design system Hygge: bruno scuro teatrale + display
   Anton, superfici crema calme, 4 colori tematici, accento pesca.
   Riferimento: Login · Pannello Operativo · Home utente · Wizard prenotazione.
   --------------------------------------------------------------------------
   COME SI USA  (Next.js 15 / React 19 + CSS Modules)
   1) Importa UNA volta a livello globale (app/layout.tsx).
   2) Metti la classe ".hg-app" sul contenitore radice (di solito <body>).
      Tutto il reset/base è scoptato lì sotto: non collide con i CSS Modules.
   3) Aggancia i componenti con le classi ".hg-*" qui sotto. Pochi hook stabili.
   4) STATO dei componenti via data-attr / aria-*  (NON classi js-only):
          data-active="true" · aria-checked · aria-current · [disabled]
      Così i CSS Modules possono fare `composes: hg-btn from global;` e tu
      gestisci solo gli stati in React.
   5) TEMA RUNTIME: data-attr su <html> (vedi applyThemeConfig in fondo).
      Nessun valore hardcoded nei layout: tutto passa dai token in :root.
   --------------------------------------------------------------------------
   FONT: Anton (display) ed Epilogue (body) sono caricati via next/font in
   app/layout.tsx; i token --font-display/--font-body puntano alle variabili
   next/font (--font-anton / --font-sans) con fallback al nome famiglia.
   ============================================================================ */

/* ============================================================
   1 · DESIGN TOKENS
   ============================================================ */
:root{
  /* ---- Pigmenti base ---- */
  --hg-ink:#1A1A1A;          /* nero caldo — testo display */
  --hg-brown:#3A2E22;        /* bruno scuro — header brand, CTA, momenti scuri */
  --hg-brown-soft:#4A3B2C;   /* bruno rialzato (hover su brown) */
  --hg-cream:#F9F5EE;        /* crema — fondo app */
  --hg-paper:#FFFDF8;        /* bianco caldo — card */
  --hg-peach:#F8BCAB;        /* pesca — accento brand */
  --hg-peach-soft:#FBD9CF;
  --hg-teal:#1B4C5C;         /* petrolio — link, focus, dati */

  /* ---- 4 colori tematici (INVARIANTI — mappati ai servizi) ---- */
  --hg-yellow:#FFC62B;  /* Ripetizioni */
  --hg-red:#FF5A5A;     /* Co-Working */
  --hg-lilla:#C2A6E2;   /* Corsi */
  --hg-green:#2E6B4F;   /* Eventi */
  --hg-yellow-tint:#FBECC2; --hg-red-tint:#FFDCD6; --hg-lilla-tint:#EAE0F5; --hg-green-tint:#D9E7DE;
  --hg-yellow-deep:#7A5A00; --hg-red-deep:#9C2F2F; --hg-lilla-deep:#5E4380; --hg-green-deep:#1F4A36;

  /* ---- Semantici: superfici / testo ---- */
  --surface-page:#F9F5EE;
  --surface-card:#FFFDF8;
  --surface-sunken:#F1EADF;   /* incassi: input, righe zebra, chip neutri */
  --surface-brand:#3A2E22;    /* barra/header brand */
  --text-1:#241B11;
  --text-2:rgba(36,27,17,.64);
  --text-3:rgba(36,27,17,.42);
  --text-inverse:#F9F5EE;
  --border-1:rgba(58,46,34,.16);
  --border-2:rgba(58,46,34,.09);
  --link:var(--hg-teal);
  --focus-ring:var(--hg-teal);

  /* ---- Stati ---- */
  --ok:#2E6B4F; --warn:#B07B00; --danger:#C03434;
  --ok-tint:#D9E7DE; --warn-tint:#FBECC2; --danger-tint:#FFDCD6;

  /* ---- Tipografia ---- */
  --font-display:var(--font-anton),'Anton','Epilogue',Helvetica,sans-serif; /* display teatrale, SOLO uppercase */
  --font-body:var(--font-sans),'Epilogue',Helvetica,Arial,sans-serif;       /* tutta la UI, il corpo, i dati */
  --fs-pagetitle:clamp(32px,4.4vw,52px); /* claim Anton */
  --fs-title:30px; --fs-h2:21px; --fs-h3:16px;
  --fs-body:15px; --fs-small:13.5px; --fs-micro:11px;
  --w-medium:500; --w-semibold:600; --w-bold:700; --w-black:900;
  --lh-tight:1.04; --lh-ui:1.35; --lh-body:1.6;

  /* ---- Spaziatura (base 4px) ---- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --sp-8:32px; --sp-10:40px; --sp-12:48px;

  /* ---- Raggi ---- */
  --radius-pill:99px;   /* azioni, chip, tab, badge */
  --radius-card:20px;   /* card, widget, modali */
  --radius-panel:24px;  /* contenitori grandi */
  --radius-field:14px;  /* input, select */
  --radius-tile:24px;   /* i 4 tematici */
  --radius-cell:10px;   /* eventi calendario, micro-superfici */

  /* ---- Ombre (calde, mai grigio-blu) ---- */
  --shadow-card:0 1px 2px rgba(58,46,34,.05), 0 4px 16px rgba(58,46,34,.06);
  --shadow-float:0 8px 30px rgba(58,46,34,.14);

  /* ---- Bordi ---- */
  --bw-hair:1px; --bw-bold:1.5px;

  /* ---- Movimento ---- */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-menu:cubic-bezier(.7,0,.25,1);
  --t-fast:.18s; --t-med:.32s;

  /* ---- Densità tabelle (commutabile via [data-densita]) ---- */
  --row-pad-y:17px;       /* "comoda" di default */
  --cell-pad-x:18px;
}

/* ============================================================
   1b · TEMA RUNTIME — data-attr su <html>  (applyThemeConfig)
   ============================================================ */

/* Intensità tematici: vividi (default) / pastello */
html[data-intensita="pastello"]{
  --hg-yellow:#F8DFA0; --hg-red:#FBB3AB; --hg-lilla:#D9C9EC; --hg-green:#86AC97;
}

/* Titoli: anton (default, display vetrina) / sobrio (Epilogue 900, niente maiuscolo forzato) */
html[data-titoli="sobrio"]{ --font-display:var(--font-sans),'Epilogue',Helvetica,Arial,sans-serif; }
html[data-titoli="sobrio"] .hg-display,
html[data-titoli="sobrio"] .hg-pagetitle,
html[data-titoli="sobrio"] .hg-card__title,
html[data-titoli="sobrio"] .hg-navcard__name{
  font-weight:var(--w-black); letter-spacing:-.015em; text-transform:none;
}

/* Forma raggi: morbida (default) / squadrata */
html[data-forma="squadrata"]{
  --radius-pill:12px; --radius-card:14px; --radius-panel:16px;
  --radius-field:10px; --radius-tile:16px; --radius-cell:8px;
}

/* Sfondo app */
html[data-sfondo="crema"]{ --surface-page:#F9F5EE; --surface-sunken:#F1EADF; }
html[data-sfondo="carta"]{ --surface-page:#EDE8DC; --surface-sunken:#E0DAD0; }
html[data-sfondo="lino"]{  --surface-page:#E4DFD5; --surface-sunken:#D8D2C8; }

/* Densità tabelle */
html[data-densita="compatta"]{ --row-pad-y:11px; --cell-pad-x:14px; }

/* ============================================================
   2 · APP SHELL  (reset scoptato a .hg-app)
   ============================================================ */
.hg-app{
  font-family:var(--font-body); color:var(--text-1);
  background:var(--surface-page); min-height:100vh;
  font-size:var(--fs-body); line-height:1.5; -webkit-font-smoothing:antialiased;
}
.hg-app *{ box-sizing:border-box; }
.hg-app button{ font-family:inherit; touch-action:manipulation; }
.hg-app a[role="button"], .hg-app [role="button"]{ touch-action:manipulation; }
.hg-app a:not([class]){ color:var(--link); }  /* solo link "nudi": i componenti gestiscono il proprio colore */
.hg-shell{ max-width:1320px; margin:0 auto; padding:24px 32px 56px; display:flex; flex-direction:column; gap:22px; }

/* Classi tipografiche di servizio */
.hg-display{ font-family:var(--font-display); font-weight:400; text-transform:uppercase; letter-spacing:.01em; line-height:var(--lh-tight); }
.hg-kicker{ font-family:var(--font-body); font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.14em; text-transform:uppercase; color:var(--text-3); }

/* ============================================================
   3 · APP HEADER  (barra brand bruna — admin)
   ============================================================ */
.hg-appbar{
  display:flex; align-items:center; gap:20px;
  background:var(--surface-brand); color:var(--text-inverse);
  padding:0 32px; height:66px;
}
.hg-appbar__logo{ height:30px; color:var(--hg-peach); display:flex; }
.hg-appbar__logo svg{ height:100%; width:auto; fill:currentColor; display:block; }
.hg-appbar__spacer{ flex:1 1; }
.hg-appbar__badge{
  font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.12em; text-transform:uppercase;
  background:var(--hg-peach); color:var(--hg-ink); padding:5px 12px; border-radius:var(--radius-pill);
}
.hg-appbar__bell{
  position:relative; width:40px; height:40px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.3); background:transparent; color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.hg-appbar__bell-dot{
  position:absolute; top:-4px; right:-4px; min-width:18px; height:18px; padding:0 4px;
  border-radius:9px; background:var(--hg-yellow); color:var(--hg-ink);
  font-size:11px; font-weight:var(--w-bold); display:flex; align-items:center; justify-content:center;
}
.hg-appbar__user{ display:flex; align-items:center; gap:12px; }
.hg-appbar__user-name{ font-size:14px; font-weight:var(--w-semibold); }
.hg-appbar__avatar{
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:var(--hg-peach); color:var(--hg-ink);
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:var(--w-bold);
}

/* ============================================================
   4 · HERO PAGINA  (logo + kicker + claim Anton)
   ============================================================ */
.hg-hero{ display:flex; align-items:center; gap:24px; padding:6px 0 18px; border-bottom:1.5px solid var(--border-2); }
.hg-hero__logo{ height:60px; color:var(--hg-ink); flex-shrink:0; }
.hg-hero__logo svg{ height:100%; width:auto; fill:currentColor; display:block; }
.hg-hero__txt{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.hg-pagetitle{
  font-family:var(--font-display); font-weight:400; text-transform:uppercase;
  font-size:var(--fs-pagetitle); line-height:.98; letter-spacing:.01em; color:var(--text-1);
}
.hg-pagetitle em{ font-style:normal; color:var(--hg-red); }   /* parola-accento corallo */

/* Titolo "interno" semplice (sezioni admin) */
.hg-sectiontitle{ font-size:var(--fs-title); font-weight:var(--w-black); letter-spacing:-.01em; color:var(--text-1); }
.hg-sectionsub{ font-size:var(--fs-small); color:var(--text-2); margin-top:6px; max-width:64ch; }

/* ============================================================
   5 · NAV  ·  card di accesso rapido + strip tematica
   ============================================================ */
.hg-navlabel{
  font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-3); display:flex; align-items:center; gap:8px;
}
.hg-navgrid{ display:grid; grid-template-columns:repeat(4,1fr); grid-gap:14px; gap:14px; }
.hg-navcard{
  position:relative; display:flex; flex-direction:column; gap:14px;
  padding:18px 20px; min-height:122px; border-radius:var(--radius-card);
  border:1.5px solid var(--border-1); background:var(--surface-card);
  cursor:pointer; text-align:left; text-decoration:none; color:var(--text-1);
  transition:transform var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);
}
.hg-navcard:hover{ transform:translateY(-3px); border-color:var(--text-1); box-shadow:var(--shadow-card); color:var(--text-1); }
a.hg-navcard:hover,
a.hg-navcard:focus-visible{ color:var(--text-1); }
a.hg-navcard:hover .hg-navcard__name,
a.hg-navcard:focus-visible .hg-navcard__name{ color:var(--hg-yellow-deep); }
a.hg-navcard[data-primary]:hover,
a.hg-navcard[data-primary]:focus-visible{ color:var(--hg-cream); }
a.hg-navcard[data-primary]:hover .hg-navcard__name,
a.hg-navcard[data-primary]:focus-visible .hg-navcard__name{ color:var(--hg-yellow); }
.hg-navcard__icon{
  width:46px; height:46px; border-radius:14px; flex-shrink:0;
  background:var(--surface-sunken); color:var(--text-1);
  display:flex; align-items:center; justify-content:center;
}
.hg-navcard__meta{ display:flex; flex-direction:column; gap:4px; margin-top:auto; }
.hg-navcard__name{
  font-family:var(--font-display); font-weight:400; text-transform:uppercase;
  font-size:21px; line-height:1; letter-spacing:.01em;
}
.hg-navcard__sub{ font-size:12.5px; color:var(--text-2); font-weight:var(--w-medium); line-height:1.25; }
.hg-navcard__go{ position:absolute; top:17px; right:17px; color:var(--text-3); display:inline-flex; }
.hg-navcard:hover .hg-navcard__go{ color:var(--text-1); }
/* card primaria = bruna */
.hg-navcard[data-primary]{ background:var(--hg-brown); border-color:var(--hg-brown); color:var(--hg-cream); }
.hg-navcard[data-primary] .hg-navcard__icon{ background:rgba(249,245,238,.16); color:var(--hg-cream); }
.hg-navcard[data-primary] .hg-navcard__sub{ color:rgba(249,245,238,.72); }
.hg-navcard[data-primary] .hg-navcard__go{ color:rgba(249,245,238,.7); }
.hg-navcard[data-primary]:hover{ border-color:var(--hg-brown); box-shadow:var(--shadow-float); }

/* Strip "Percorso iscritti" — i 4 tematici demoti a chip */
.hg-flow{ display:grid; grid-template-columns:repeat(4,1fr); grid-gap:12px; gap:12px; }
.hg-flow__chip{
  display:flex; align-items:center; gap:12px; padding:12px 16px;
  border-radius:14px; border:none; cursor:pointer; text-decoration:none; color:var(--hg-ink);
  transition:transform var(--t-fast) var(--ease-out), filter var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.hg-flow__chip:hover{ transform:translateY(-2px); filter:brightness(.96); color:var(--hg-ink); }
a.hg-flow__chip:hover,
a.hg-flow__chip:focus-visible{ color:var(--hg-ink); }
a.hg-flow__chip:hover .hg-flow__name,
a.hg-flow__chip:focus-visible .hg-flow__name{ color:var(--hg-yellow-deep); }
.hg-flow__chip > span{ display:flex; flex-direction:column; min-width:0; }
.hg-flow__chip[data-tema="yellow"]{ background:var(--hg-yellow); }
.hg-flow__chip[data-tema="red"]{ background:var(--hg-red); }
.hg-flow__chip[data-tema="lilla"]{ background:var(--hg-lilla); }
.hg-flow__chip[data-tema="green"]{ background:var(--hg-green); color:var(--hg-cream); }
html[data-intensita="pastello"] .hg-flow__chip[data-tema="green"]{ color:var(--hg-ink); }
a.hg-flow__chip[data-tema="green"]:hover,
a.hg-flow__chip[data-tema="green"]:focus-visible{ color:var(--hg-cream); }
html[data-intensita="pastello"] a.hg-flow__chip[data-tema="green"]:hover,
html[data-intensita="pastello"] a.hg-flow__chip[data-tema="green"]:focus-visible{ color:var(--hg-ink); }
a.hg-flow__chip[data-tema="green"]:hover .hg-flow__name,
a.hg-flow__chip[data-tema="green"]:focus-visible .hg-flow__name{ color:var(--hg-yellow); }
.hg-flow__name{ font-size:14px; font-weight:var(--w-bold); line-height:1.1; transition:color var(--t-fast) var(--ease-out); }
.hg-flow__sub{ font-size:11.5px; opacity:.74; margin-top:2px; }

/* ============================================================
   6 · PANEL / CARD  (contenitore contenuto)
   ============================================================ */
.hg-card{
  background:var(--surface-card); border:var(--bw-hair) solid var(--border-2);
  border-radius:var(--radius-card); box-shadow:var(--shadow-card);
}
.hg-panel{
  background:var(--surface-card); border:var(--bw-hair) solid var(--border-2);
  border-radius:var(--radius-panel); box-shadow:var(--shadow-card);
  padding:28px 30px;
}
.hg-card--pad{ padding:22px 24px; }
.hg-panel__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:18px; }
.hg-card__title{ font-family:var(--font-display); font-weight:400; text-transform:uppercase; font-size:var(--fs-h2); letter-spacing:.01em; line-height:1; display:flex; align-items:center; gap:9px; }
.hg-card__link{ font-size:12.5px; font-weight:var(--w-bold); color:var(--link); text-decoration:none; }
.hg-panel__actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* Stat chip ("1 nel tab", "64 iscrizioni sommate") */
.hg-statchips{ display:flex; gap:10px; flex-wrap:wrap; }
.hg-statchip{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--surface-card); border:var(--bw-hair) solid var(--border-1);
  border-radius:var(--radius-pill); padding:8px 16px; font-size:var(--fs-small); color:var(--text-2);
}
.hg-statchip b{ font-size:15px; font-weight:var(--w-bold); color:var(--text-1); }

/* Tab filtro (Bozze / Pubblicati / Archivio) */
.hg-filtertabs{ display:flex; gap:8px; flex-wrap:wrap; }
.hg-filtertab{
  font-size:var(--fs-small); font-weight:var(--w-semibold); color:var(--text-2);
  background:transparent; border:none; cursor:pointer; padding:9px 18px; border-radius:var(--radius-pill);
  transition:all var(--t-fast) var(--ease-out);
}
.hg-filtertab:hover{ background:var(--surface-sunken); color:var(--text-1); }
.hg-filtertab[aria-current="true"]{ background:var(--hg-brown); color:var(--hg-cream); }

/* ============================================================
   7 · TOOLBAR  ·  search · chip filtro · segment
   ============================================================ */
.hg-toolbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.hg-search{
  flex:1 1; min-width:240px; display:flex; align-items:center; gap:10px;
  background:var(--surface-card); border:var(--bw-bold) solid var(--border-1);
  border-radius:var(--radius-field); padding:4px 6px 4px 16px;
  transition:border-color var(--t-fast) var(--ease-out);
}
.hg-search:focus-within{ border-color:var(--focus-ring); }
.hg-search svg{ color:var(--text-3); flex-shrink:0; }
.hg-search input{ flex:1 1; border:none; background:transparent; outline:none; font:inherit; color:var(--text-1); padding:11px 0; }
.hg-search input::placeholder{ color:var(--text-3); }

/* Chip filtro pillola */
.hg-chip{
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  font-size:var(--fs-small); font-weight:var(--w-semibold);
  padding:9px 18px; border-radius:var(--radius-pill);
  border:var(--bw-bold) solid var(--border-1); background:transparent; color:var(--text-2);
  cursor:pointer; transition:all var(--t-fast) var(--ease-out);
}
.hg-chip:hover{ border-color:var(--text-1); color:var(--text-1); }
.hg-chip[data-active="true"]{ background:var(--hg-brown); border-color:var(--hg-brown); color:var(--hg-cream); }

/* Segmented control (Tabella / Catalogo · Oggi / Domani) */
.hg-segment{ display:inline-flex; gap:4px; padding:4px; background:var(--surface-sunken); border-radius:var(--radius-pill); }
.hg-segment button{
  font-size:var(--fs-small); font-weight:var(--w-semibold); color:var(--text-2);
  background:transparent; border:none; cursor:pointer; padding:8px 18px; border-radius:var(--radius-pill);
  transition:all var(--t-fast) var(--ease-out);
}
.hg-segment button[data-active="true"]{ background:var(--hg-brown); color:var(--hg-cream); }

/* Sotto-barra "incassata" (es. Divisione Stripe / Manuale) */
.hg-subbar{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--surface-sunken); border-radius:var(--radius-field); padding:14px 18px;
}
.hg-subbar__label{ font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.12em; text-transform:uppercase; color:var(--text-2); }

/* ============================================================
   8 · TABELLA  (comoda di default · hover · zebra opzionale)
   ============================================================ */
.hg-table{ width:100%; border-collapse:collapse; font-size:var(--fs-body); }
.hg-table thead th{
  text-align:left; font-weight:var(--w-bold); color:var(--text-1); font-size:var(--fs-small);
  padding:0 var(--cell-pad-x) 14px; border-bottom:var(--bw-hair) solid var(--border-1); white-space:nowrap;
}
.hg-table th[data-sortable]{ cursor:pointer; -webkit-user-select:none; -moz-user-select:none; user-select:none; }
.hg-table th[data-sortable] svg{ color:var(--text-3); margin-left:5px; vertical-align:middle; }
.hg-table tbody td{
  padding:var(--row-pad-y) var(--cell-pad-x); border-bottom:var(--bw-hair) solid var(--border-2);
  color:var(--text-1); vertical-align:middle;
}
.hg-table tbody tr{ transition:background var(--t-fast) var(--ease-out); }
.hg-table tbody tr:hover{ background:var(--surface-sunken); }
.hg-table tbody tr:last-child td{ border-bottom:none; }
.hg-table[data-zebra] tbody tr:nth-child(even){ background:rgba(58,46,34,.025); }
.hg-table[data-zebra] tbody tr:nth-child(even):hover{ background:var(--surface-sunken); }

.hg-table__link{ color:var(--link); font-weight:var(--w-semibold); text-decoration:underline; text-underline-offset:3px; }
.hg-cell-strong{ font-weight:var(--w-bold); }
.hg-cell-sub{ display:block; font-size:var(--fs-small); color:var(--text-2); margin-top:3px; }
.hg-cell-actions{ display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.hg-table__empty{ padding:44px; text-align:center; color:var(--text-3); }

/* ============================================================
   9 · BOTTONI
   ============================================================ */
.hg-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:var(--w-bold); font-size:var(--fs-small); line-height:1;
  padding:12px 24px; border-radius:var(--radius-pill); border:none; cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:transform var(--t-fast) var(--ease-out), filter var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.hg-btn:hover{ transform:scale(1.03); filter:brightness(1.06); }
.hg-btn:active{ transform:scale(.98); }
.hg-btn:focus-visible{ outline:2px solid var(--focus-ring); outline-offset:2px; }
.hg-btn svg{ width:16px; height:16px; }
.hg-btn--primary{ background:var(--hg-brown); color:var(--hg-cream); }   /* azione principale */
.hg-btn--peach{ background:var(--hg-peach); color:var(--hg-ink); }       /* CTA brand calda */
.hg-btn--ghost{ background:var(--surface-card); color:var(--text-1); box-shadow:inset 0 0 0 var(--bw-bold) var(--border-1); }
.hg-btn--ghost:hover{ filter:none; box-shadow:inset 0 0 0 var(--bw-bold) var(--text-1); }
.hg-btn--danger{ background:var(--surface-card); color:var(--hg-red-deep); box-shadow:inset 0 0 0 var(--bw-bold) rgba(156,47,47,.4); }
.hg-btn--danger:hover{ filter:none; background:var(--danger-tint); box-shadow:inset 0 0 0 var(--bw-bold) var(--hg-red-deep); }
.hg-btn--sm{ padding:8px 15px; font-size:13px; }
.hg-btn[disabled]{ opacity:.45; pointer-events:none; }

/* Bottone icona tondo (… azioni riga) */
.hg-iconbtn{
  width:40px; height:40px; border-radius:50%; border:var(--bw-hair) solid var(--border-1);
  background:var(--surface-card); color:var(--text-2); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; transition:all var(--t-fast) var(--ease-out);
}
.hg-iconbtn:hover{ background:var(--surface-sunken); color:var(--text-1); }

/* ============================================================
   10 · BADGE / STATO  (pill tinte, soft)
   ============================================================ */
.hg-badge{
  display:inline-flex; align-items:center; gap:5px; white-space:nowrap;
  font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.08em; text-transform:uppercase;
  padding:6px 13px; border-radius:var(--radius-pill);
}
.hg-badge--ok{ background:var(--ok-tint); color:var(--hg-green-deep); }
.hg-badge--warn{ background:var(--warn-tint); color:var(--hg-yellow-deep); }
.hg-badge--danger{ background:var(--danger-tint); color:var(--hg-red-deep); }
.hg-badge--lilla{ background:var(--hg-lilla-tint); color:var(--hg-lilla-deep); }
.hg-badge--neutral{ background:var(--surface-sunken); color:var(--text-2); }
.hg-badge--admin{ background:var(--hg-peach); color:var(--hg-ink); }

/* Pill di pagamento (outline) */
.hg-paytag{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-size:var(--fs-small); font-weight:var(--w-semibold); padding:7px 14px; border-radius:var(--radius-pill); }
.hg-paytag--stripe{ color:var(--hg-lilla-deep); box-shadow:inset 0 0 0 1.5px var(--hg-lilla); }
.hg-paytag--manual{ color:var(--text-2); background:var(--surface-sunken); }

/* ============================================================
   11 · TOGGLE  (Core ON / OFF)
   ============================================================ */
.hg-toggle{ display:inline-flex; align-items:center; gap:10px; }
.hg-toggle__label{ font-size:var(--fs-small); font-weight:var(--w-semibold); color:var(--text-2); }
.hg-toggle__switch{
  position:relative; width:46px; height:26px; border-radius:99px; flex-shrink:0;
  background:#D8CCBD; border:none; cursor:pointer; padding:0; transition:background var(--t-fast) var(--ease-out);
}
.hg-toggle__switch::after{
  content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform var(--t-fast) var(--ease-out);
}
.hg-toggle__switch[aria-checked="true"]{ background:var(--hg-brown); }
.hg-toggle__switch[aria-checked="true"]::after{ transform:translateX(20px); }
.hg-toggle__state{ font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.1em; color:var(--text-2); width:26px; }

/* ============================================================
   12 · TILE TEMATICO  (i 4 pulsanti home)
   ============================================================ */
.hg-tile{
  position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:var(--sp-4);
  padding:var(--sp-5) var(--sp-6); min-height:138px; border-radius:var(--radius-tile);
  border:none; cursor:pointer; text-align:left; text-decoration:none; color:var(--hg-ink); overflow:hidden;
  transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);
}
.hg-tile:hover{ transform:translateY(-3px); box-shadow:var(--shadow-float); }
.hg-tile[data-tema="yellow"]{ background:var(--hg-yellow); }
.hg-tile[data-tema="red"]{ background:var(--hg-red); }
.hg-tile[data-tema="lilla"]{ background:var(--hg-lilla); }
.hg-tile[data-tema="green"]{ background:var(--hg-green); color:var(--hg-cream); }
.hg-tile__name{ font-family:var(--font-display); font-weight:400; text-transform:uppercase; font-size:24px; line-height:var(--lh-tight); letter-spacing:.01em; }
.hg-tile__sub{ font-size:var(--fs-small); font-weight:var(--w-medium); opacity:.78; }
.hg-tile__letter{
  position:absolute; right:14px; top:10px; font-family:var(--font-display); font-size:56px; line-height:1;
  color:transparent; -webkit-text-stroke:1.5px rgba(26,26,26,.5); pointer-events:none; -webkit-user-select:none; -moz-user-select:none; user-select:none;
}
.hg-tile[data-tema="green"] .hg-tile__letter{ -webkit-text-stroke-color:rgba(249,245,238,.55); }

/* ============================================================
   13 · CARD MATERIA + card selezionabili (Didattica)
   ============================================================ */
.hg-pickrow{ display:grid; grid-template-columns:repeat(4,1fr); grid-gap:14px; gap:14px; }
.hg-pickcard{
  text-align:left; cursor:pointer; border-radius:var(--radius-card);
  border:1.5px solid var(--border-1); background:var(--surface-card); padding:18px 20px;
  transition:all var(--t-fast) var(--ease-out);
}
.hg-pickcard:hover{ border-color:var(--text-1); }
.hg-pickcard[aria-pressed="true"]{ background:var(--hg-brown); border-color:var(--hg-brown); color:var(--hg-cream); }
.hg-pickcard__title{ font-size:var(--fs-h3); font-weight:var(--w-bold); }
.hg-pickcard__desc{ font-size:var(--fs-small); margin-top:5px; opacity:.8; line-height:1.45; }

.hg-subjectgrid{ display:grid; grid-template-columns:repeat(5,1fr); grid-gap:14px; gap:14px; }
.hg-subjectcard{ background:var(--surface-card); border:var(--bw-hair) solid var(--border-1); border-radius:var(--radius-card); padding:18px; display:flex; flex-direction:column; gap:14px; }
.hg-subjectcard__top{ display:flex; align-items:flex-start; gap:12px; }
.hg-subjectcard__icon{ width:42px; height:42px; flex-shrink:0; border-radius:13px; background:var(--surface-sunken); color:var(--hg-brown); display:flex; align-items:center; justify-content:center; }
.hg-subjectcard__name{ font-size:var(--fs-h3); font-weight:var(--w-bold); line-height:1.2; }
.hg-subjectcard__meta{ font-size:var(--fs-small); color:var(--text-2); margin-top:3px; }
.hg-subjectcard__link{ font-size:var(--fs-small); font-weight:var(--w-semibold); color:var(--link); text-decoration:underline; text-underline-offset:2px; }
.hg-subjectcard__foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; border-top:var(--bw-hair) solid var(--border-2); }
.hg-eyebtn{ display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-small); font-weight:var(--w-semibold); color:var(--text-2); background:none; border:none; cursor:pointer; }
.hg-eyebtn:hover{ color:var(--text-1); }

/* ============================================================
   14 · FORM
   ============================================================ */
.hg-field{ display:flex; flex-direction:column; gap:7px; }
.hg-field > label, .hg-label{ font-size:var(--fs-micro); font-weight:var(--w-bold); letter-spacing:.1em; text-transform:uppercase; color:var(--text-2); }
.hg-input, .hg-select, .hg-textarea{
  font-family:var(--font-body); font-size:var(--fs-body); color:var(--text-1);
  background:var(--surface-card); border:var(--bw-bold) solid var(--border-1);
  border-radius:var(--radius-field); padding:12px 14px; width:100%;
  transition:border-color var(--t-fast) var(--ease-out);
}
.hg-input::placeholder, .hg-textarea::placeholder{ color:var(--text-3); }
.hg-input:focus, .hg-select:focus, .hg-textarea:focus{ outline:none; border-color:var(--focus-ring); }
.hg-textarea{ resize:vertical; min-height:84px; line-height:1.5; }
.hg-select{ -webkit-appearance:auto; -moz-appearance:auto; appearance:auto; cursor:pointer; }
.hg-checkrow{ display:inline-flex; align-items:center; gap:9px; font-size:var(--fs-body); color:var(--text-1); cursor:pointer; }
.hg-checkrow input{ width:18px; height:18px; accent-color:var(--hg-brown); }
.hg-formgrid{ display:grid; grid-template-columns:1fr 1fr; grid-gap:16px; gap:16px; }

/* ============================================================
   15 · RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .hg-navgrid, .hg-flow{ grid-template-columns:repeat(2,1fr); }
  .hg-subjectgrid{ grid-template-columns:repeat(3,1fr); }
  .hg-pickrow{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  .hg-shell{ padding:16px 14px 40px; }
  .hg-panel{ padding:20px 16px; }
  .hg-navgrid, .hg-flow{ grid-template-columns:1fr; }
  .hg-subjectgrid{ grid-template-columns:1fr 1fr; }
  .hg-formgrid{ grid-template-columns:1fr; }
  .hg-hero{ flex-direction:column; align-items:flex-start; gap:14px; }

  /* Toolbar / filtri — niente overflow orizzontale su mobile */
  .hg-sectiontitle{ overflow-wrap:anywhere; word-break:break-word; }
  .hg-sectionsub{ max-width:100%; }
  .hg-panel__head{ flex-direction:column; align-items:stretch; gap:12px; }
  .hg-panel__actions{ width:100%; flex-direction:column; align-items:stretch; }
  .hg-panel__actions .hg-btn{ width:100%; justify-content:center; }
  .hg-toolbar{ flex-direction:column; align-items:stretch; gap:10px; max-width:100%; min-width:0; }
  .hg-search{ min-width:0; width:100%; flex:none; }
  .hg-statchips{ max-width:100%; min-width:0; gap:8px; }
  .hg-statchip{ flex-grow:1; flex-shrink:1; flex-basis:calc(50% - 4px); min-width:0; box-sizing:border-box; }
  .hg-subbar{
    flex-direction:column; align-items:stretch; gap:10px;
    max-width:100%; min-width:0; box-sizing:border-box; padding:12px 14px;
  }
  .hg-subbar__label{ width:100%; }
  .hg-subbar > .hg-chip{ width:100%; justify-content:center; box-sizing:border-box; }
  .hg-segment{
    display:flex; width:100%; max-width:100%; box-sizing:border-box;
  }
  .hg-segment button{ flex:1 1; min-width:0; padding:8px 12px; }
}
@media (prefers-reduced-motion:reduce){
  .hg-app *{ transition:none !important; animation:none !important; }
}

/* ============ Lampeggio guida CTA (attention pulse) ============ */
@keyframes hy-attention-pulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--hy-pulse-color, var(--acc, var(--hg-yellow))) 55%, transparent);
  }
  70% {
    box-shadow: 0 0 0 9px color-mix(in srgb, var(--hy-pulse-color, var(--acc, var(--hg-yellow))) 0%, transparent);
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}

.hy-pulse-cta {
  animation: hy-attention-pulse 1.3s var(--ease-out, cubic-bezier(.22, 1, .36, 1)) 2;
}

@media (prefers-reduced-motion: reduce) {
  .hy-pulse-cta {
    animation: none;
  }
}

/* ============================================================================
   RIFERIMENTO RAPIDO  ·  aggancio React + tema runtime
   ----------------------------------------------------------------------------
   STATO via attributi (niente classi js):
     <button className="hg-chip" data-active={isActive}>Tutte</button>
     <button className="hg-filtertab" aria-current={tab==='pub'}>Pubblicati</button>
     <button className="hg-toggle__switch" aria-checked={on} role="switch" />
     <button className="hg-navcard" data-primary>Dashboard Admin</button>
     <th data-sortable>Data e ora <ChevronsUpDown/></th>
     <table className="hg-table" data-zebra>…</table>
   CSS Modules:  .myCol { composes: hg-table from global; }
   ----------------------------------------------------------------------------
   TEMA RUNTIME (es. da un context / pannello impostazioni):
     function applyThemeConfig(cfg){
       const r = document.documentElement;
       r.dataset.intensita = cfg.intensita ?? 'vividi';   // vividi | pastello
       r.dataset.titoli    = cfg.titoli    ?? 'anton';     // anton  | sobrio
       r.dataset.forma     = cfg.forma     ?? 'pill';      // pill   | squadrata
       r.dataset.sfondo    = cfg.sfondo    ?? 'crema';     // crema  | carta | lino
       r.dataset.densita   = cfg.densita   ?? 'comoda';    // comoda | compatta
     }
   I default coincidono coi valori in :root, quindi senza data-attr l'app è già
   nello stato di riferimento (Anton · vividi · pill · crema · comoda).
   ============================================================================ */

/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/ui/primitives.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************/
/* Hygge UI primitives — token-driven (see globals.css --hy-*) */

.primitives_cx__hM_4w {
  box-sizing: border-box;
}

/* ——— Button ——— */
.primitives_btn__T0x0p {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--hy-font-sans);
  font-weight: 600;
  line-height: 1.2;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.12s ease;
  text-decoration: none;
  white-space: nowrap;
}

.primitives_btn__T0x0p:focus-visible {
  outline: 2px solid var(--hy-terracotta);
  outline-offset: 2px;
}

.primitives_btn__T0x0p:disabled,
.primitives_btnDisabled__RBdHK {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.primitives_btnSm__RGpIo {
  padding: 8px 14px;
  border-radius: 12px;
  font-size: 12px;
}

.primitives_btnMd__jkwAb {
  padding: 10px 18px;
  border-radius: 14px;
  font-size: 13px;
}

.primitives_btnLg__h54Cb {
  padding: 14px 24px;
  border-radius: 16px;
  font-size: 15px;
}

.primitives_btnPrimary__oKaJC {
  background: var(--hy-terracotta);
  color: var(--hy-cream);
  border-color: var(--hy-terracotta);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnPrimary__oKaJC:hover:not(:disabled) {
  background: var(--hy-terracotta-hover);
  border-color: var(--hy-terracotta-hover);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnSecondary__6Ugi3 {
  background: transparent;
  color: var(--hy-brown-deep);
  border-color: var(--hy-line-strong);
}

.primitives_btnSecondary__6Ugi3:hover:not(:disabled) {
  background: color-mix(in srgb, var(--hy-surface) 70%, var(--hy-peach) 30%);
  border-color: var(--hy-brown-mute);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnSage__NFnmX {
  background: var(--hy-sage);
  color: var(--hy-cream);
  border-color: var(--hy-sage);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnSage__NFnmX:hover:not(:disabled) {
  background: color-mix(in srgb, var(--hy-sage) 88%, var(--hy-brown-deep) 12%);
  border-color: color-mix(in srgb, var(--hy-sage) 88%, var(--hy-brown-deep) 12%);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnDanger__sJ_cH {
  background: var(--hy-coral-warn);
  color: var(--hy-cream);
  border-color: var(--hy-coral-warn);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnDanger__sJ_cH:hover:not(:disabled) {
  background: color-mix(in srgb, var(--hy-coral-warn) 90%, var(--hy-brown-deep) 10%);
  border-color: color-mix(in srgb, var(--hy-coral-warn) 90%, var(--hy-brown-deep) 10%);
  box-shadow: var(--hy-shadow-soft);
}

.primitives_btnGhost__j9zY2 {
  background: transparent;
  color: var(--hy-brown-deep);
  border-color: transparent;
}

.primitives_btnGhost__j9zY2:hover:not(:disabled) {
  background: color-mix(in srgb, var(--hy-peach) 35%, transparent);
  box-shadow: none;
}

.primitives_btn__T0x0p:active:not(:disabled) {
  transform: scale(0.98);
}

@media (prefers-reduced-motion: reduce) {
  .primitives_btn__T0x0p:active:not(:disabled) {
    transform: none;
  }
}

.primitives_spinner__cBvEn {
  width: 1em;
  height: 1em;
  border: 2px solid color-mix(in srgb, currentColor 35%, transparent);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: primitives_hySpin__WBSsZ 0.65s linear infinite;
}

@keyframes primitives_hySpin__WBSsZ {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .primitives_spinner__cBvEn {
    animation: none;
    border-top-color: color-mix(in srgb, currentColor 60%, transparent);
  }
}

/* ——— Field wrap ——— */
.primitives_field__lVNGz {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}

.primitives_label__GvPP3 {
  font-size: var(--hy-text-sm);
  font-weight: 600;
  color: var(--hy-brown-deep);
}

.primitives_hint__q2eB6 {
  font-size: var(--hy-text-xs);
  color: var(--hy-brown-mute);
}

.primitives_err__6MDLp {
  font-size: var(--hy-text-xs);
  color: var(--hy-coral-warn);
}

.primitives_inputShell___1ALT {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--hy-surface);
  border: 1px solid var(--hy-line);
  border-radius: 14px;
  padding: 10px 14px;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.primitives_inputShellFocused__sHP6o {
  border-color: var(--hy-terracotta);
  box-shadow: 0 0 0 3px rgba(201, 102, 74, 0.15);
}

.primitives_inputShellError__ljDYy {
  border-color: var(--hy-coral-warn);
  box-shadow: 0 0 0 3px rgba(216, 109, 86, 0.12);
}

.primitives_nativeInput__edMij,
.primitives_nativeTextarea__wlr0N {
  flex: 1 1;
  min-width: 0;
  border: none;
  background: transparent;
  font-family: var(--hy-font-sans);
  font-size: var(--hy-text-base);
  color: var(--hy-brown-deep);
  outline: none;
}

.primitives_nativeTextarea__wlr0N {
  resize: vertical;
  min-height: 96px;
}

.primitives_iconSlot__QH3TY {
  display: flex;
  color: var(--hy-brown-mute);
  flex-shrink: 0;
}

.primitives_suffix__dWR5n {
  font-size: var(--hy-text-xs);
  color: var(--hy-brown-mute);
  flex-shrink: 0;
}

/* ——— Card ——— */
.primitives_card__KlGU9 {
  background: var(--hy-surface);
  border: 1px solid var(--hy-line);
  border-radius: var(--hy-radius-lg);
  padding: 16px 20px;
  box-sizing: border-box;
}

.primitives_cardRaised__27JdV {
  box-shadow: var(--hy-shadow-soft);
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.primitives_cardRaised__27JdV:hover {
  box-shadow: var(--hy-shadow-raised);
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .primitives_cardRaised__27JdV {
    transition: box-shadow 0.2s ease;
  }

  .primitives_cardRaised__27JdV:hover {
    transform: none;
  }
}

/* ——— Pill ——— */
.primitives_pill__lZeG9 {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 4px 10px;
  border-radius: var(--hy-radius-full);
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  font-family: var(--hy-font-sans);
}

.primitives_pillPeach__vl_RH {
  background: var(--hy-peach);
  color: var(--hy-terracotta-deep);
}

.primitives_pillSage__ZmyIG {
  background: var(--hy-sage-soft);
  color: color-mix(in srgb, var(--hy-sage) 55%, var(--hy-brown-deep) 45%);
}

.primitives_pillLavender__JaKNV {
  background: var(--hy-lavender-soft);
  color: var(--hy-lavender-deep);
}

.primitives_pillGhost__vms1j {
  background: transparent;
  color: var(--hy-brown-soft);
  border: 1px solid var(--hy-line);
}

.primitives_pillWarn__HOsiU {
  background: var(--hy-peach-deep);
  color: var(--hy-terracotta-deep);
}

/* ——— Chip ——— */
.primitives_chip__st50J {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 8px 16px;
  border-radius: var(--hy-radius-full);
  font-size: var(--hy-text-sm);
  font-weight: 500;
  font-family: var(--hy-font-sans);
  border: 1px solid var(--hy-line);
  background: transparent;
  color: var(--hy-brown-deep);
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.primitives_chip__st50J:focus-visible {
  outline: 2px solid var(--hy-terracotta);
  outline-offset: 2px;
}

.primitives_chipActive__aoEog {
  background: var(--hy-brown-deep);
  color: var(--hy-cream);
  border-color: var(--hy-brown-deep);
}

/* ——— Stepper ——— */
.primitives_stepper__m4H_k {
  width: 100%;
}

.primitives_stepperTrack___HWjC {
  display: flex;
  align-items: flex-start;
  width: 100%;
}

.primitives_stepCell__21lDA {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
  gap: 8px;
}

.primitives_stepLine__vAuw_ {
  flex: 1 1;
  height: 2px;
  min-width: 8px;
  margin-top: 11px;
  background: var(--hy-line);
  border-radius: 1px;
}

.primitives_stepLineDone__wVqiA {
  background: var(--hy-sage);
}

.primitives_stepLabel__GOe8l {
  font-size: var(--hy-text-xs);
  color: var(--hy-brown-mute);
  text-align: center;
  max-width: 120px;
  line-height: 1.25;
}

.primitives_stepLabelActive__Y9rMp {
  color: var(--hy-brown-deep);
  font-weight: 600;
}

.primitives_stepDot__1FN_c {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--hy-font-sans);
  flex-shrink: 0;
}

.primitives_dotPending__w3dOa {
  background: var(--hy-line);
  color: var(--hy-brown-mute);
}

.primitives_dotActive__H0WcF {
  background: var(--hy-terracotta);
  color: var(--hy-cream);
}

.primitives_dotDone__C360O {
  background: var(--hy-sage);
  color: var(--hy-cream);
}

/* ——— Avatar ——— */
.primitives_avatar__g_anB {
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-family: var(--hy-font-sans);
  overflow: hidden;
  flex-shrink: 0;
}

.primitives_avatarSm__OfgPx {
  width: 32px;
  height: 32px;
  font-size: 12px;
}

.primitives_avatarMd__dwocx {
  width: 40px;
  height: 40px;
  font-size: 14px;
}

.primitives_avatarLg__pJQ5d {
  width: 48px;
  height: 48px;
  font-size: 16px;
}

.primitives_avatarXl__AblWp {
  width: 56px;
  height: 56px;
  font-size: 18px;
}

.primitives_avatarImg__SZxms {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ——— Empty state ——— */
.primitives_empty__J506h {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 24px;
  gap: 12px;
}

.primitives_emptyIcon__SS1nU {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.primitives_emptyTitle__Wl77l {
  font-family: var(--hy-font-sans);
  font-size: var(--hy-text-lg);
  font-weight: 600;
  color: var(--hy-brown-deep);
  margin: 0;
}

.primitives_emptyDesc__X87mj {
  font-size: 14px;
  color: var(--hy-brown-soft);
  max-width: 360px;
  margin: 0;
  line-height: 1.5;
}

/* ——— Modal (native <dialog>) ——— */
.primitives_dialogNative__EAm0M {
  border: none;
  padding: 0;
  margin: auto;
  background: transparent;
  max-width: 100vw;
  max-height: 100vh;
}

.primitives_dialogNative__EAm0M::-webkit-backdrop {
  background: rgba(58, 46, 34, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.primitives_dialogNative__EAm0M::backdrop {
  background: rgba(58, 46, 34, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.primitives_modalBackdrop__FuK1V {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal-backdrop);
  background: rgba(58, 46, 34, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.primitives_modalPanel__l8WZy {
  position: relative;
  z-index: var(--z-modal);
  width: 100%;
  max-width: 520px;
  max-height: min(90vh, 900px);
  overflow: auto;
  background: var(--hy-surface);
  border-radius: var(--hy-radius-xl);
  padding: 28px;
  box-shadow: var(--hy-shadow-float);
  border: 1px solid var(--hy-line);
  box-sizing: border-box;
}

.primitives_modalHeader__GZ4OF {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.primitives_modalTitle__Cc_N5 {
  font-family: var(--hy-font-serif);
  font-size: var(--hy-text-xl);
  font-weight: 500;
  color: var(--hy-brown-deep);
  margin: 0;
  line-height: 1.2;
}

.primitives_closeBtn__wT_BK {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--hy-line);
  background: color-mix(in srgb, var(--hy-surface) 85%, var(--hy-peach) 15%);
  color: var(--hy-brown-deep);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}

.primitives_closeBtn__wT_BK:hover {
  background: var(--hy-peach);
}

.primitives_closeBtn__wT_BK:focus-visible {
  outline: 2px solid var(--hy-terracotta);
  outline-offset: 2px;
}

.primitives_modalBody__J0AFX {
  font-size: var(--hy-text-base);
  color: var(--hy-brown);
  line-height: 1.5;
}

.primitives_modalFooter__DI8iR {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

/* Pannello ampio (programma didattico, wizard dati densi) */
.primitives_modalPanelWide__89UCM {
  max-width: min(1200px, calc(100vw - 32px));
  max-height: min(94vh, 1100px);
  width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.primitives_modalPanelWide__89UCM .primitives_modalHeader__GZ4OF {
  flex-shrink: 0;
}

.primitives_modalPanelWide__89UCM .primitives_modalBody__J0AFX {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

.primitives_modalPanelWide__89UCM .primitives_modalFooter__DI8iR {
  flex-shrink: 0;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--hy-line);
}

/* ——— Toast ——— */
.primitives_toastRegion__31GtJ {
  position: fixed;
  top: max(16px, var(--safe-top));
  right: max(16px, var(--safe-right));
  z-index: var(--z-tooltip);
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: min(360px, calc(100vw - 32px));
  pointer-events: none;
}

.primitives_toastItem__KG2IB {
  pointer-events: auto;
  border-radius: var(--hy-radius-md);
  padding: 12px 14px;
  font-size: var(--hy-text-sm);
  font-weight: 500;
  box-shadow: var(--hy-shadow-raised);
  border: 1px solid var(--hy-line);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  animation: primitives_hyToastIn__3__II 0.28s ease;
}

@keyframes primitives_hyToastIn__3__II {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .primitives_toastItem__KG2IB {
    animation: none;
  }
}

.primitives_toastInfo__wwuTo {
  background: var(--hy-surface);
  color: var(--hy-brown-deep);
}

.primitives_toastSuccess___GFMw {
  background: var(--hy-sage-soft);
  color: color-mix(in srgb, var(--hy-sage) 50%, var(--hy-brown-deep) 50%);
  border-color: color-mix(in srgb, var(--hy-sage) 35%, var(--hy-line));
}

.primitives_toastError__M_C54 {
  background: color-mix(in srgb, var(--hy-coral-warn) 12%, var(--hy-surface));
  color: var(--hy-coral-warn);
  border-color: color-mix(in srgb, var(--hy-coral-warn) 35%, var(--hy-line));
}

.primitives_toastWarn__ARdxw {
  background: var(--hy-peach-deep);
  color: var(--hy-terracotta-deep);
  border-color: var(--hy-peach);
}

.primitives_toastClose__2_NtY {
  margin-left: auto;
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: inherit;
  opacity: 0.65;
  cursor: pointer;
  padding: 2px;
  border-radius: 6px;
}

.primitives_toastClose__2_NtY:hover {
  opacity: 1;
}

.primitives_toastClose__2_NtY:focus-visible {
  outline: 2px solid var(--hy-terracotta);
  outline-offset: 2px;
}

/* ——— Decorative blob ——— */
.primitives_blob__h3GkU {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  border-radius: 50%;
  filter: blur(24px);
  opacity: 0.5;
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!../node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!../node_modules/next/font/google/target.css?{"path":"src/app/(tenant)/layout.tsx","import":"Epilogue","arguments":[{"subsets":["latin"],"variable":"--font-sans","weight":["400","500","600","700"]}],"variableName":"epilogue"} ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* vietnamese */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Epilogue Fallback';src: local("Arial");ascent-override: 71.15%;descent-override: 21.16%;line-gap-override: 0.00%;size-adjust: 111.04%
}.__className_40ab80 {font-family: 'Epilogue', 'Epilogue Fallback';font-style: normal
}.__variable_40ab80 {--font-sans: 'Epilogue', 'Epilogue Fallback'
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!../node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!../node_modules/next/font/google/target.css?{"path":"src/app/(tenant)/layout.tsx","import":"Anton","arguments":[{"subsets":["latin"],"variable":"--font-anton","weight":"400"}],"variableName":"anton"} ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* vietnamese */
@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/6ced06489fd81a3f-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/aa5f74293546f6d0-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/62c97acc3aa63787-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Anton Fallback';src: local("Arial");ascent-override: 129.70%;descent-override: 36.29%;line-gap-override: 0.00%;size-adjust: 90.69%
}.__className_ec6dc7 {font-family: 'Anton', 'Anton Fallback';font-weight: 400;font-style: normal
}.__variable_ec6dc7 {--font-anton: 'Anton', 'Anton Fallback'
}

