/* Estensioni isolate: conserva il tema e il logo della versione aggiornata. */
.skip-link { position:fixed; top:8px; left:8px; transform:translateY(-200%); padding:12px 18px; background:#fff; color:#17132f; z-index:100; }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid #a168ee; outline-offset:4px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.cost-panel { background:#f1edfb; color:#1b2036; border:1px solid #ddd2ef; border-radius:24px; padding:32px; }
.period-choice { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:20px 0; font-weight:700; }
.period-choice select { border:1px solid #766b91; border-radius:10px; padding:10px 14px; font:inherit; background:#fff; color:#1b2036; }
.cost-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:16px; }
.cost-card { background:#fff; border:1px solid #e4dcf1; border-radius:16px; padding:22px; min-width:0; }
.cost-total { color:#422070; font-size:1.8rem; font-weight:800; }
.cost-total small { display:block; font-size:.85rem; font-weight:400; }
.mobile-actions { display:none; }
@media(max-width:820px) {
  body { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .mobile-actions { position:fixed; inset:auto 0 0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #ddd2ef; box-shadow:0 -5px 25px #17132f14; }
  .mobile-actions > a { font-weight:700; }
  .wa-float { bottom:calc(88px + env(safe-area-inset-bottom)); }
  .cost-panel { padding:20px; }
}
