/* DentaCore custom utilities */
:root { color-scheme: light; }
html, body { font-family: 'Manrope', system-ui, sans-serif; }
::selection { background:#bfdbfe; color:#1e3a8a; }

/* Asymmetric layout helpers */
.glass {
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Tooth interactive */
.tooth {
  cursor: pointer;
  transition: all .2s cubic-bezier(0.4, 0, 0.2, 1);
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.05));
}
.tooth:hover { transform: translateY(-3px) scale(1.05); filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1)); }

.tooth--healthy   { fill:#ffffff; stroke:#cbd5e1; background-color:#ffffff; border-color:#cbd5e1; }
.tooth--caries    { fill:#fee2e2; stroke:#ef4444; background-color:#fee2e2; border-color:#ef4444; }
.tooth--filled    { fill:#cbd5e1; stroke:#475569; background-color:#cbd5e1; border-color:#475569; }
.tooth--crown     { fill:#fef08a; stroke:#d97706; background-color:#fef08a; border-color:#d97706; }
.tooth--missing   { fill:#f8fafc; stroke:#e2e8f0; stroke-dasharray:4; opacity:0.6; filter:none; background-color:#f8fafc; border-color:#e2e8f0; border-style:dashed; }
.tooth--extraction_needed { fill:#fca5a5; stroke:#b91c1c; stroke-width:2px; background-color:#fca5a5; border-color:#b91c1c; }
.tooth--root_canal{ fill:#d8b4fe; stroke:#9333ea; background-color:#d8b4fe; border-color:#9333ea; }
.tooth--implant   { fill:#a7f3d0; stroke:#059669; background-color:#a7f3d0; border-color:#059669; }
.tooth--sealant   { fill:#bfdbfe; stroke:#2563eb; background-color:#bfdbfe; border-color:#2563eb; }
.tooth--selected  { stroke-width:3px; filter: drop-shadow(0 0 0 #0ea5e9) drop-shadow(0 0 8px rgba(14,165,233,.6)); }

/* Subtle scrollbar */
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:99px; }
::-webkit-scrollbar-thumb:hover { background:#94a3b8; }

/* Print */
@media print {
  aside, header, footer, .no-print { display:none !important; }
  main { padding:0 !important; }
  body { background:#fff !important; }
}

/* Calendar grid */
.cal-grid { display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 4px; }
.cal-cell { min-height: 88px; }

/* Form basics (lightweight, plus tailwind classes used inline) */
.field { display:block; width:100%; padding:.625rem .75rem; border-radius:.625rem; border:1px solid #e2e8f0; background:#fff; font-size:.875rem; }
.field:focus { outline: none; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.18); }
.label { display:block; font-size:.75rem; font-weight:600; color:#475569; margin-bottom:.35rem; letter-spacing:.04em; text-transform:uppercase; }
.btn  { display:inline-flex; align-items:center; gap:.5rem; padding:.6rem 1rem; border-radius:.75rem; font-weight:600; font-size:.875rem; transition:all .15s; }
.btn-primary { background:#2563eb; color:#fff; }
.btn-primary:hover { background:#1d4ed8; }
.btn-ghost { background:transparent; color:#475569; }
.btn-ghost:hover { background:#f1f5f9; color:#0f172a; }
.btn-danger { background:#fef2f2; color:#b91c1c; }
.btn-danger:hover { background:#fee2e2; }

.card { background:#fff; border:1px solid #e2e8f0; border-radius:1rem; box-shadow: 0 1px 2px rgba(15,23,42,.04); }

/* Stagger entrance */
@keyframes rise { from { opacity:0; transform: translateY(8px);} to { opacity:1; transform:none;} }
.rise > * { animation: rise .4s ease both; }
.rise > *:nth-child(1){ animation-delay:.02s }
.rise > *:nth-child(2){ animation-delay:.06s }
.rise > *:nth-child(3){ animation-delay:.1s }
.rise > *:nth-child(4){ animation-delay:.14s }
.rise > *:nth-child(5){ animation-delay:.18s }
.rise > *:nth-child(6){ animation-delay:.22s }
