/* ============================================================
   SMARTC&S base — reset, app background, scrollbars, motion.
   Global-affecting rules are scoped under .app-shell so this file
   is DORMANT until the shell (Phase 2) wraps page_container.
   @keyframes are global but inert until referenced.
   ============================================================ */

/* app surface — only active once .app-shell exists */
.app-shell {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  color: var(--fg1);
  background: var(--bg-app);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.app-shell *, .app-shell *::before, .app-shell *::after { box-sizing: border-box; }

.app-shell .shell-content { background: var(--bg-app); }

/* tasteful scrollbars inside the shell */
.app-shell ::-webkit-scrollbar { width: 10px; height: 10px; }
.app-shell ::-webkit-scrollbar-thumb { background: var(--ink-300); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
.app-shell ::-webkit-scrollbar-thumb:hover { background: var(--ink-400); background-clip: padding-box; }
.app-shell ::-webkit-scrollbar-track { background: transparent; }

/* status dot pulse — one pulse on change (used by status_pill pulse=True) */
@keyframes ds-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(31,138,91,0.45); }
  70%  { box-shadow: 0 0 0 6px rgba(31,138,91,0); }
  100% { box-shadow: 0 0 0 0 rgba(31,138,91,0); }
}
.ds-pulse-dot { animation: ds-pulse 1.6s var(--ease-standard); }

/* entrance fade — restrained */
@keyframes ds-fade-in {
  from { opacity: 0; transform: translateY(3px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ds-fade-in { animation: ds-fade-in var(--dur-base) var(--ease-standard); }

@media (prefers-reduced-motion: reduce) {
  .ds-pulse-dot, .ds-fade-in { animation: none !important; }
  .app-shell * { transition: none !important; }
}

/* number inputs: hide native spinners (옛 style.css 에서 이전 — 휠 스크롤 차단은 assets/disable_number_scroll.js) */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
