:root { color-scheme: light; }
html { -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; }
.tabular { font-variant-numeric: tabular-nums; }

/* Barres de défilement discrètes */
.scroll-thin { scrollbar-width: thin; scrollbar-color: #D6D1C5 transparent; }
.scroll-thin::-webkit-scrollbar { width: 8px; height: 8px; }
.scroll-thin::-webkit-scrollbar-thumb { background: #D6D1C5; border-radius: 8px; border: 2px solid transparent; background-clip: padding-box; }
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* Champs */
.field { width: 100%; border: 1px solid #E4E0D7; background: #fff; border-radius: 12px; padding: 11px 14px; font-size: 15px; font-weight: 500; color: #0F1F2E; outline: none; transition: border-color .15s, box-shadow .15s; }
.field::placeholder { color: #9AA3AD; font-weight: 500; }
.field:focus { border-color: #1678A6; box-shadow: 0 0 0 4px rgba(22,120,166,.12); }
.field-sm { padding: 8px 11px; font-size: 13.5px; border-radius: 10px; }
select.field { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7785' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }
input[type=range] { accent-color: #0B5E8B; }
input[type=checkbox] { accent-color: #0B5E8B; width: 16px; height: 16px; }

/* Boutons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; border-radius: 12px; padding: 11px 16px; font-size: 14px; transition: background-color .15s, color .15s, border-color .15s, transform .05s; white-space: nowrap; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .45; pointer-events: none; }
.btn-primary { background: #0B5E8B; color: #fff; }
.btn-primary:hover { background: #0A4C70; }
.btn-dark { background: #0F1F2E; color: #fff; }
.btn-dark:hover { background: #1d3245; }
.btn-ghost { background: #fff; color: #0F1F2E; border: 1px solid #E4E0D7; }
.btn-ghost:hover { border-color: #D6D1C5; background: #FAF9F6; }
.btn-soft { background: #EEF6FA; color: #0A4C70; }
.btn-soft:hover { background: #D6EAF3; }
.btn-danger { background: #fff; color: #BE123C; border: 1px solid #FECDD3; }
.btn-danger:hover { background: #FFF1F2; }
.btn-sm { padding: 7px 11px; font-size: 13px; border-radius: 10px; }

/* Carte */
.card { background: #fff; border: 1px solid #E4E0D7; border-radius: 18px; }

/* Téléphone */
.phone-notch { width: 112px; height: 30px; background: #0F1F2E; border-radius: 0 0 18px 18px; }
@keyframes drop { from { transform: translateY(-120%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.banner-in { animation: drop .35s cubic-bezier(.2,.8,.2,1); }
@keyframes rise { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.rise { animation: rise .25s ease-out; }
@keyframes sheet { from { transform: translateY(100%); } to { transform: translateY(0); } }
.sheet-in { animation: sheet .28s cubic-bezier(.2,.8,.2,1); }
@keyframes slidein { from { transform: translateX(100%); } to { transform: translateX(0); } }
.drawer-in { animation: slidein .25s cubic-bezier(.2,.8,.2,1); }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
.fade-in { animation: fade .2s ease-out; }
@keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.pulse-dot { animation: pulse-dot 1.6s ease-in-out infinite; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.ticker { animation: ticker 40s linear infinite; }

/* Rayures pour les absences et no-show */
.hatch { background-image: repeating-linear-gradient(135deg, rgba(190,18,60,.08) 0 6px, transparent 6px 12px); }
.hatch-grey { background-image: repeating-linear-gradient(135deg, rgba(15,31,46,.05) 0 6px, transparent 6px 12px); }

/* Leaflet */
.leaflet-container { font-family: Manrope, sans-serif; background: #ECE9E2; }
.leaflet-container img { max-width: none !important; max-height: none !important; height: auto; }
.leaflet-container img.leaflet-tile { width: 256px; height: 256px; }
.leaflet-tile-pane { filter: sepia(.12) brightness(1.02); }
.coucou-pin { display: flex; align-items: center; justify-content: center; }
.coucou-pin span { display: block; width: 18px; height: 18px; border-radius: 999px; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(15,31,46,.35); }
.leaflet-tooltip.coucou-tip { background: #0F1F2E; color: #fff; border: 0; border-radius: 8px; font-weight: 700; font-size: 12px; padding: 4px 8px; box-shadow: none; }
.leaflet-tooltip.coucou-tip::before { display: none; }

/* QR */
[data-qr] img, [data-qr] canvas { display: block; width: 100% !important; height: auto !important; image-rendering: pixelated; }

@media print {
  #header, #toasts, #overlay { display: none !important; }
}
