/* Photobooth — stili di supporto a Tailwind */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { scrollbar-width: none; }

.nav-link { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .7rem; border-radius: .5rem; color: #cbd5e1; font-weight: 500; }
.nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav-link.is-active { background: rgba(245,158,11,.18); color: #fbbf24; }
.nav-link i { font-size: 1.15rem; }

.tab-link { display: inline-flex; align-items: center; gap: .35rem; padding: .55rem .75rem; color: #cbd5e1; border-bottom: 2px solid transparent; white-space: nowrap; font-weight: 500; }
.tab-link:hover { color: #fff; }
.tab-link.is-active { color: #fbbf24; border-color: #f59e0b; }
.tab-link i { font-size: 1.05rem; }

.card { background: #fff; border-radius: .9rem; box-shadow: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.08); }

.btn { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .9rem; border-radius: .6rem; font-weight: 600; font-size: .875rem; line-height: 1.25rem; border: 1px solid transparent; cursor: pointer; transition: background .15s, color .15s; white-space: nowrap; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary { background: #f59e0b; color: #0f172a; }
.btn-primary:hover { background: #fbbf24; }
.btn-dark { background: #0f172a; color: #fff; }
.btn-dark:hover { background: #1e293b; }
.btn-ghost { background: #fff; color: #334155; border-color: #cbd5e1; }
.btn-ghost:hover { background: #f1f5f9; }
.btn-danger { background: #fff; color: #be123c; border-color: #fecdd3; }
.btn-danger:hover { background: #fff1f2; }
.btn-sm { padding: .3rem .6rem; font-size: .8rem; }
.btn-icon { padding: .35rem; border-radius: .5rem; line-height: 1; }

.field { display: block; width: 100%; border: 1px solid #cbd5e1; border-radius: .55rem; padding: .5rem .65rem; font-size: .9rem; background: #fff; color: #0f172a; }
.field:focus { outline: 2px solid #f59e0b; outline-offset: 1px; border-color: #f59e0b; }
.field-sm { padding: .3rem .5rem; font-size: .85rem; }
.label { display: block; font-size: .75rem; font-weight: 600; color: #475569; margin-bottom: .25rem; text-transform: uppercase; letter-spacing: .02em; }
.help { font-size: .75rem; color: #64748b; margin-top: .25rem; }

.flash { display: flex; align-items: center; gap: .5rem; padding: .7rem .9rem; border-radius: .7rem; margin-bottom: 1rem; font-size: .9rem; font-weight: 500; }
.flash-ok { background: #d1fae5; color: #065f46; }
.flash-err { background: #ffe4e6; color: #9f1239; }

.table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.table th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: #64748b; font-weight: 600; padding: .55rem .6rem; border-bottom: 1px solid #e2e8f0; white-space: nowrap; }
.table td { padding: .55rem .6rem; border-bottom: 1px solid #f1f5f9; vertical-align: middle; }
.table tr:last-child td { border-bottom: none; }
.table tbody tr:hover { background: #f8fafc; }
.table .num { text-align: right; font-variant-numeric: tabular-nums; }
.table tfoot td { font-weight: 700; border-top: 2px solid #e2e8f0; background: #f8fafc; }

.badge { display: inline-flex; align-items: center; gap: .25rem; padding: .1rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 600; white-space: nowrap; }

dialog { border: none; border-radius: 1rem; padding: 0; max-width: min(96vw, 560px); width: 100%; box-shadow: 0 25px 60px rgba(15,23,42,.35); }
dialog::backdrop { background: rgba(15,23,42,.55); backdrop-filter: blur(2px); }
dialog .dlg-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem .5rem; }
dialog .dlg-body { padding: .25rem 1.25rem 1.25rem; }
dialog h2 { font-weight: 800; font-size: 1.05rem; }

.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-day { background: #fff; border-radius: .6rem; min-height: 96px; padding: .35rem; border: 1px solid #e2e8f0; position: relative; }
.cal-day.is-out { background: #f8fafc; opacity: .55; }
.cal-day.is-today { border-color: #f59e0b; box-shadow: inset 0 0 0 1px #f59e0b; }
.cal-day.is-festivo .cal-num { color: #be123c; }
.cal-num { font-size: .75rem; font-weight: 700; color: #475569; }
.cal-add { position: absolute; top: .25rem; right: .25rem; width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; color: #94a3b8; }
.cal-add:hover { background: #fef3c7; color: #b45309; }
.chip { display: block; width: 100%; text-align: left; border-radius: .35rem; padding: .15rem .35rem; font-size: .7rem; line-height: 1.15; margin-top: .25rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.chip.is-assente { text-decoration: line-through; opacity: .6; }

.progress { height: 10px; border-radius: 999px; background: #e2e8f0; overflow: hidden; }
.progress > span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #f59e0b, #fbbf24); }

@media print {
  header, .no-print { display: none !important; }
  body { background: #fff; }
  .card { box-shadow: none; border: 1px solid #e2e8f0; break-inside: avoid; }
  main { max-width: none; padding: 0; }
}
