/* ==========================================================
   utilities.css — DailyFinLab Utility Helpers
   Policy:
   - Atomic helpers ONLY
   - No layout decisions
   - No page-type selectors
   - Minimal & controlled expansion
   ========================================================== */

/* ----------------------------------------------------------
   Spacing helpers (limited set only)
---------------------------------------------------------- */
.u-mt-0  { margin-top: 0 !important; }
.u-mt-8  { margin-top: 8px !important; }
.u-mt-12 { margin-top: 12px !important; }

.u-mb-0  { margin-bottom: 0 !important; }
.u-mb-8  { margin-bottom: 8px !important; }
.u-mb-12 { margin-bottom: 12px !important; }

.u-pt-0  { padding-top: 0 !important; }
.u-pt-8  { padding-top: 8px !important; }
.u-pt-12 { padding-top: 12px !important; }

.u-px-12 {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

/* ----------------------------------------------------------
   Typography helpers
---------------------------------------------------------- */
.u-text-muted  { color: var(--muted) !important; }
.u-text-strong { font-weight: 700 !important; }

/* ----------------------------------------------------------
   Display / Alignment
---------------------------------------------------------- */
.u-inline       { display: inline !important; }
.u-inline-block { display: inline-block !important; }
.u-block        { display: block !important; }

.u-text-left   { text-align: left !important; }
.u-text-center { text-align: center !important; }
.u-text-right  { text-align: right !important; }

/* ----------------------------------------------------------
   Visibility / Accessibility
---------------------------------------------------------- */
.u-hidden { display: none !important; }

/* Screen reader only */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Restore when focused */
.visually-hidden:focus,
.visually-hidden:active {
  position: static !important;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* ----------------------------------------------------------
   Misc helpers
---------------------------------------------------------- */
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

.nowrap {
  white-space: nowrap !important;
}

.break-words {
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

/* ----------------------------------------------------------
   Responsive helpers
   기준:
   - sm: <= 640px (mobile)
   - lg: >= 641px (tablet / desktop)
---------------------------------------------------------- */
@media (max-width: 640px) {
  .hide-sm { display: none !important; }
}

@media (min-width: 641px) {
  .hide-lg { display: none !important; }
}
