/* =============================================================
   widget.css — CSS statico per il search widget (embed)
   Sostituisce cdn.tailwindcss.com (niente compilazione runtime).
   Copre SOLO le classi usate in search_widget.php.
   ============================================================= */

/* ---- reset minimo box-model ---- */
#cm-search-widget-container, #cm-search-widget-container *,
#cm-unified-modal, #cm-unified-modal * { box-sizing: border-box; }

/* ---- colori brand ---- */
:root{ --cm-navy:#003366; --cm-cyan:#0099cc; --cm-gold:#ffaa00; }

/* ---- layout / posizionamento ---- */
.relative{ position:relative; }
.absolute{ position:absolute; }
.fixed{ position:fixed; }
.inset-0{ top:0; right:0; bottom:0; left:0; }
.z-10{ z-index:10; }
.z-\[9999\]{ z-index:9999; }
.hidden{ display:none; }
.flex{ display:flex; }
.grid{ display:grid; }
.flex-col{ flex-direction:column; }
.flex-grow{ flex-grow:1; }
.items-center{ align-items:center; }
.items-end{ align-items:flex-end; }
.justify-center{ justify-content:center; }
.justify-between{ justify-content:space-between; }
.gap-2{ gap:0.5rem; }
.gap-3{ gap:0.75rem; }
.text-center{ text-align:center; }
.pointer-events-none{ pointer-events:none; }
.pointer-events-auto{ pointer-events:auto; }
.overflow-y-auto{ overflow-y:auto; }
.truncate{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.transition{ transition:all .15s ease; }
.transition-all{ transition:all .2s ease; }
.transition-opacity{ transition:opacity .2s ease; }
.backdrop-blur-md{ -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.backdrop-blur-sm{ -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }

/* ---- dimensioni ---- */
.w-full{ width:100%; }
.w-12{ width:3rem; }
.h-1\.5{ height:0.375rem; }
.min-h-\[72px\]{ min-height:72px; }
.max-h-\[85vh\]{ max-height:85vh; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.mb-1{ margin-bottom:0.25rem; }

/* ---- griglia ---- */
.grid-cols-1{ grid-template-columns:repeat(1,minmax(0,1fr)); }

/* ---- spaziature ---- */
.p-0{ padding:0; }
.p-4{ padding:1rem; }
.p-6{ padding:1.5rem; }
.px-6{ padding-left:1.5rem; padding-right:1.5rem; }
.py-4{ padding-top:1rem; padding-bottom:1rem; }
.pt-3{ padding-top:0.75rem; }
.pb-1{ padding-bottom:0.25rem; }

/* ---- tipografia ---- */
.text-\[10px\]{ font-size:10px; line-height:1.2; }
.text-\[15px\]{ font-size:15px; }
.text-lg{ font-size:1.125rem; line-height:1.6rem; }
.text-xl{ font-size:1.25rem; line-height:1.75rem; }
.text-2xl{ font-size:1.5rem; line-height:2rem; }
.font-bold{ font-weight:700; }
.font-extrabold{ font-weight:800; }
.uppercase{ text-transform:uppercase; }
.tracking-widest{ letter-spacing:0.1em; }
.tracking-wide{ letter-spacing:0.025em; }
.font-display{ font-family:'Montserrat',system-ui,sans-serif; }

/* ---- colori testo/sfondo ---- */
.text-slate-400{ color:#94a3b8; }
.text-slate-800{ color:#1e293b; }
.text-white{ color:#fff; }
.bg-white{ background:#fff; }
.bg-white\/95{ background:rgba(255,255,255,0.95); }
.bg-slate-200{ background:#e2e8f0; }
.bg-slate-50\/50{ background:rgba(248,250,252,0.5); }
.bg-slate-900\/40{ background:rgba(15,23,42,0.4); }
.text-\[\#003366\]{ color:#003366; }
.bg-\[\#ffaa00\]{ background:#ffaa00; }
.bg-\[\#0099cc\]{ background:#0099cc; }

/* ---- bordi / raggi / ombre ---- */
.rounded-full{ border-radius:9999px; }
.rounded-2xl{ border-radius:1rem; }
.rounded-3xl{ border-radius:1.5rem; }
.rounded-t-3xl{ border-top-left-radius:1.5rem; border-top-right-radius:1.5rem; }
.rounded-\[2rem\]{ border-radius:2rem; }
.border-b{ border-bottom:1px solid #f1f5f9; }
.border-t{ border-top:1px solid #f1f5f9; }
.border-slate-100{ border-color:#f1f5f9; }
.shadow-lg{ box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1); }
.shadow-2xl{ box-shadow:0 25px 50px -12px rgba(0,0,0,0.25); }
.shadow-blue-500\/30{ box-shadow:0 10px 20px -5px rgba(59,130,246,0.3); }

/* ---- hover / stati ---- */
.hover\:bg-yellow-400:hover{ background:#facc15; }
.hover\:bg-blue-600:hover{ background:#2563eb; }
.hover\:text-red-500:hover{ color:#ef4444; }

/* ---- responsive (md = 768px) ---- */
@media (min-width:768px){
  .md\:grid-cols-5{ grid-template-columns:repeat(5,minmax(0,1fr)); }
  .md\:p-6{ padding:1.5rem; }
  .md\:p-4{ padding:1rem; }
  .md\:items-center{ align-items:center; }
  .md\:w-\[90\%\]{ width:90%; }
  .md\:max-w-md{ max-width:28rem; }
  .md\:max-h-\[80vh\]{ max-height:80vh; }
  .md\:rounded-3xl{ border-radius:1.5rem; }
  .md\:rounded-b-3xl{ border-bottom-left-radius:1.5rem; border-bottom-right-radius:1.5rem; }
  .md\:hidden{ display:none; }
}

/* ---- FontAwesome resta dal suo CSS; nulla da fare qui ---- */

/* =============================================================
   CLASSI DEI MODALI (generate da JS: liste dest/porto/compagnia,
   ricerca, griglia mesi, warning lock). Aggiunte per opzione A.
   ============================================================= */

/* display / posizione extra */
.block{ display:block; }
.sticky{ position:sticky; }
.top-0{ top:0; }
.z-50{ z-index:50; }
.normal-case{ text-transform:none; }
.select-none{ -webkit-user-select:none; user-select:none; }
.whitespace-nowrap{ white-space:nowrap; }
.cursor-pointer{ cursor:pointer; }
.outline-none{ outline:none; }
.text-center{ text-align:center; }

/* dimensioni checkbox/radio e icone */
.w-3{ width:0.75rem; } .h-3{ height:0.75rem; }
.w-6{ width:1.5rem; }  .h-6{ height:1.5rem; }
.w-7{ width:1.75rem; } .h-7{ height:1.75rem; }

/* spaziature usate nei modali */
.-mx-6{ margin-left:-1.5rem; margin-right:-1.5rem; }
.mr-1{ margin-right:0.25rem; } .mr-3{ margin-right:0.75rem; }
.mb-2{ margin-bottom:0.5rem; } .mb-3{ margin-bottom:0.75rem; }
.mt-0\.5{ margin-top:0.125rem; } .mt-3{ margin-top:0.75rem; }
.p-3{ padding:0.75rem; } .p-4{ padding:1rem; }
.px-3{ padding-left:0.75rem; padding-right:0.75rem; }
.pt-1{ padding-top:0.25rem; } .pb-3{ padding-bottom:0.75rem; }
.py-1\.5{ padding-top:0.375rem; padding-bottom:0.375rem; }
.py-3{ padding-top:0.75rem; padding-bottom:0.75rem; }
.py-6{ padding-top:1.5rem; padding-bottom:1.5rem; }
.pl-11{ padding-left:2.75rem; } .pr-10{ padding-right:2.5rem; }
.left-4{ left:1rem; } .right-3{ right:0.75rem; }

/* griglia mesi + liste */
.grid-cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.gap-2\.5{ gap:0.625rem; }
.gap-2{ gap:0.5rem; }

/* tipografia extra */
.text-xs{ font-size:0.75rem; line-height:1rem; }
.text-sm{ font-size:0.875rem; line-height:1.25rem; }
.text-\[11px\]{ font-size:11px; }
.font-medium{ font-weight:500; }
.tracking-wider{ letter-spacing:0.05em; }

/* colori extra */
.text-slate-300{ color:#cbd5e1; }
.text-slate-500{ color:#64748b; }
.text-slate-600{ color:#475569; }
.text-cyan-c{ color:#0099cc; }
.text-amber-800{ color:#92400e; }
.bg-white{ background:#fff; }
.bg-blue-50{ background:#eff6ff; }
.bg-slate-100{ background:#f1f5f9; }
.bg-slate-50\/95{ background:rgba(248,250,252,0.95); }
.bg-amber-100{ background:#fef3c7; }

/* bordi / raggi extra */
.border{ border-width:1px; border-style:solid; }
.border-2{ border-width:2px; border-style:solid; }
.rounded-md{ border-radius:0.375rem; }
.border-slate-100{ border-color:#f1f5f9; }
.border-slate-200{ border-color:#e2e8f0; }
.border-slate-300{ border-color:#cbd5e1; }
.border-amber-300{ border-color:#fcd34d; }
.border-\[\#0099cc\]{ border-color:#0099cc; }
.shadow-sm{ box-shadow:0 1px 2px rgba(0,0,0,0.05); }
.shadow-lg{ box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1); }

/* transizioni / stati extra */
.transition-colors{ transition:background-color .15s ease,border-color .15s ease,color .15s ease; }
.hover\:border-blue-200:hover{ border-color:#bfdbfe; }
.hover\:bg-slate-200:hover{ background:#e2e8f0; }
.focus\:border-\[\#0099cc\]:focus{ border-color:#0099cc; }
.focus\:ring-2:focus{ box-shadow:0 0 0 2px #dbeafe; }
.focus\:ring-blue-100:focus{ box-shadow:0 0 0 2px #dbeafe; }
.placeholder\:text-slate-400::placeholder{ color:#94a3b8; }
.placeholder\:font-normal::placeholder{ font-weight:400; }

/* transform per icone centrate verticalmente (top-1/2 -translate-y-1/2) e warning */
.top-1\/2{ top:50%; }
.left-1\/2{ left:50%; }
.-top-2{ top:-0.5rem; }
.-translate-y-1\/2{ transform:translateY(-50%); }
.-translate-x-1\/2{ transform:translateX(-50%); }
.-translate-y-full{ transform:translateY(-100%); }
/* combinazioni usate insieme (Tailwind le compone; qui le esplicito) */
.-top-2.left-1\/2.-translate-x-1\/2.-translate-y-full{ transform:translate(-50%,-100%); }
.left-4.top-1\/2.-translate-y-1\/2,
.right-3.top-1\/2.-translate-y-1\/2{ transform:translateY(-50%); }

/* item lista custom */
#cm-search-widget-container .cm-select-item,
#cm-modal-body .cm-select-item{ }
.cm-lock-warn{ }
