:root {
  --color-primary: #006FEE;
  --color-bg: #f4f4f5;
  --color-surface: #ffffff;
  --color-text: #11181C;
  --radius: 14px;
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html, body { font-family: var(--font-sans); background: var(--color-bg); color: var(--color-text); -webkit-tap-highlight-color: transparent; }
body { overscroll-behavior-y: none; }
.safe-bottom { padding-bottom: env(safe-area-inset-bottom); }
.safe-top { padding-top: env(safe-area-inset-top); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { scrollbar-width: none; }
@keyframes e3s-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes e3s-fade { from { opacity: 0; } to { opacity: 1; } }
.anim-pop { animation: e3s-pop .18s ease-out; }
.anim-fade { animation: e3s-fade .15s ease-out; }
@keyframes e3s-drawer { from { transform: translateY(24px); opacity: .6; } to { transform: none; opacity: 1; } }
@keyframes e3s-drawer-x { from { transform: translateX(40px); opacity: .6; } to { transform: none; opacity: 1; } }
.anim-drawer { animation: e3s-drawer .22s cubic-bezier(.2,.9,.3,1); }
@media (min-width: 640px) { .anim-drawer { animation: e3s-drawer-x .24s cubic-bezier(.2,.9,.3,1); } }
input[type=number]::-webkit-inner-spin-button { opacity: .4; }
@keyframes e3s-spin { to { transform: rotate(360deg); } }
.anim-spin { animation: e3s-spin .8s linear infinite; }
input[type=date], input[type=time], input[type=datetime-local], input[type=month] { min-height: 1.5rem; }
.chat-bubble { white-space: pre-wrap; word-break: break-word; }
@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
  .print-only { display: block !important; }
}
.print-only { display: none; }