/* TADS Utility Classes — Torch Analytics Design System */

/* Layout */
.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}
.inline-flex{display:inline-flex;align-items:center}
.grid{display:grid}.grid-full{grid-column:1/-1}
.relative{position:relative}.absolute{position:absolute}
.block{display:block}.hidden{display:none}

/* Spacing — uses TADS spacing tokens */
.gap-xs{gap:var(--sp-xs)}.gap-sm{gap:var(--sp-sm)}.gap-md{gap:var(--sp-md)}.gap-lg{gap:var(--sp-lg)}.gap-xl{gap:var(--sp-xl)}
.mt-xs{margin-top:var(--sp-xs)}.mt-sm{margin-top:var(--sp-sm)}.mt-md{margin-top:var(--sp-md)}.mt-lg{margin-top:var(--sp-lg)}.mt-xl{margin-top:var(--sp-xl)}.mt-2xl{margin-top:var(--sp-2xl)}.mt-3xl{margin-top:var(--sp-3xl)}
.mb-xs{margin-bottom:var(--sp-xs)}.mb-sm{margin-bottom:var(--sp-sm)}.mb-md{margin-bottom:var(--sp-md)}.mb-lg{margin-bottom:var(--sp-lg)}.mb-xl{margin-bottom:var(--sp-xl)}.mb-2xl{margin-bottom:var(--sp-2xl)}.mb-3xl{margin-bottom:var(--sp-3xl)}
.p-xs{padding:var(--sp-xs)}.p-sm{padding:var(--sp-sm)}.p-md{padding:var(--sp-md)}.p-lg{padding:var(--sp-lg)}.p-xl{padding:var(--sp-xl)}.p-2xl{padding:var(--sp-2xl)}.p-3xl{padding:var(--sp-3xl)}
.px-sm{padding-left:var(--sp-sm);padding-right:var(--sp-sm)}.px-md{padding-left:var(--sp-md);padding-right:var(--sp-md)}.px-lg{padding-left:var(--sp-lg);padding-right:var(--sp-lg)}
.py-sm{padding-top:var(--sp-sm);padding-bottom:var(--sp-sm)}.py-md{padding-top:var(--sp-md);padding-bottom:var(--sp-md)}.py-lg{padding-top:var(--sp-lg);padding-bottom:var(--sp-lg)}

/* Typography */
.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-upper{text-transform:uppercase;letter-spacing:0.05em}
.text-mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}
.text-main{color:var(--text-main)}.text-light{color:var(--text-light)}.text-primary{color:var(--primary)}
.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}
.fs-xs{font-size:var(--fs-xs)}.fs-sm{font-size:var(--fs-sm)}.fs-base{font-size:var(--fs-base)}.fs-md{font-size:var(--fs-md)}.fs-lg{font-size:var(--fs-lg)}.fs-xl{font-size:var(--fs-xl)}.fs-2xl{font-size:var(--fs-2xl)}.fs-3xl{font-size:var(--fs-3xl)}

/* Borders & Radius */
.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:9999px}

/* Sizing */
.w-full{width:100%}.overflow-y-auto{overflow-y:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Interaction */
.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.no-select{user-select:none}
.scroll-sm{max-height:300px;overflow-y:auto}.scroll-md{max-height:400px;overflow-y:auto}.scroll-lg{max-height:520px;overflow-y:auto}
