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

.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; }

.field { width: 100%; border: 1px solid #E4E0D7; background: #fff; border-radius: 12px; padding: 10px 13px; font-size: 14.5px; 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[readonly] { background: #FAF9F6; }
.field-sm { padding: 7px 10px; 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 10px center; padding-right: 32px; }
textarea.field { resize: vertical; line-height: 1.55; }
input[type=checkbox] { accent-color: #0B5E8B; width: 16px; height: 16px; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; border-radius: 12px; padding: 10px 15px; 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-ok { background: #047857; color: #fff; }
.btn-ok:hover { background: #065F46; }
.btn-warn { background: #fff; color: #92400E; border: 1px solid #FCD34D; }
.btn-warn:hover { background: #FFFBEB; }
.btn-danger { background: #fff; color: #BE123C; border: 1px solid #FECDD3; }
.btn-danger:hover { background: #FFF1F2; }
.btn-sm { padding: 6px 10px; font-size: 12.5px; border-radius: 9px; }

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

/* Feuille de mémo */
.sheet { background: #fff; border-radius: 6px; box-shadow: 0 1px 2px rgba(15,31,46,.06), 0 18px 40px -24px rgba(15,31,46,.35); }
.sheet-body { font-family: "Source Serif 4", Georgia, serif; font-size: 15.5px; line-height: 1.65; color: #1b2733; }
.stamp { border: 1.5px solid currentColor; border-radius: 10px; transform: rotate(-1.2deg); }

@keyframes rise { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.rise { animation: rise .25s ease-out; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
.fade-in { animation: fade .2s ease-out; }
@keyframes sheetup { from { transform: translateY(100%); } to { transform: translateY(0); } }
.sheet-in { animation: sheetup .28s cubic-bezier(.2,.8,.2,1); }
@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 pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.pulse-dot { animation: pulse-dot 1.6s ease-in-out infinite; }

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

@media print {
  body { background: #fff !important; }
  body * { visibility: hidden; }
  #print-area, #print-area * { visibility: visible; }
  #print-area { position: absolute; left: 0; top: 0; width: 100%; box-shadow: none !important; }
}
