/*
  Tailwind foundation (TW-prefixed utilities).
  - This file is intentionally tiny: enough utilities to eliminate inline styles in key templates.
  - Optional: you can generate a full Tailwind build via scripts/tailwind (npm) to replace this file.
*/

:root {
  --tw-space-1: 4px;
  --tw-space-2: 8px;
  --tw-space-3: 12px;
  --tw-space-4: 16px;
  --tw-space-5: 20px;
  --tw-space-6: 24px;
  --tw-radius-lg: 12px;
  --tw-radius-xl: 16px;
}

/* Layout */
.tw-flex{display:flex;}
.tw-inline-flex{display:inline-flex;}
.tw-grid{display:grid;}
.tw-flex-1{flex:1 1 0%;}
.tw-flex-wrap{flex-wrap:wrap;}
.tw-items-center{align-items:center;}
.tw-items-baseline{align-items:baseline;}
.tw-justify-between{justify-content:space-between;}
.tw-justify-center{justify-content:center;}
.tw-gap-1{gap:var(--tw-space-1);}
.tw-gap-2{gap:var(--tw-space-2);}
.tw-gap-3{gap:var(--tw-space-3);}
.tw-gap-4{gap:var(--tw-space-4);}
.tw-gap-5{gap:var(--tw-space-5);}

/* Position */
.tw-relative{position:relative;}
.tw-absolute{position:absolute;}
.tw-left-6{left:24px;}
.tw-left-8{left:32px;}
.tw-right-6{right:24px;}
.tw-right-8{right:32px;}
.tw-top-4{top:16px;}
.tw-top-6{top:24px;}

/* Spacing */
.tw-m-0{margin:0;}
.tw-mt-0{margin-top:0;}
.tw-mt-2{margin-top:var(--tw-space-2);}
.tw-mt-3{margin-top:var(--tw-space-3);}
.tw-mt-4{margin-top:var(--tw-space-4);}
.tw-mb-0{margin-bottom:0;}
.tw-mb-2{margin-bottom:var(--tw-space-2);}
.tw-mb-3{margin-bottom:var(--tw-space-3);}
.tw-mb-4{margin-bottom:var(--tw-space-4);}
.tw-mb-5{margin-bottom:var(--tw-space-5);}
.tw-my-4{margin-top:var(--tw-space-4);margin-bottom:var(--tw-space-4);}
.tw-p-0{padding:0;}
.tw-p-3{padding:var(--tw-space-3);}
.tw-p-4{padding:var(--tw-space-4);}
.tw-p-5{padding:var(--tw-space-5);}
.tw-p-6{padding:var(--tw-space-6);}
.tw-py-2{padding-top:var(--tw-space-2);padding-bottom:var(--tw-space-2);}
.tw-py-3{padding-top:var(--tw-space-3);padding-bottom:var(--tw-space-3);}
.tw-px-2{padding-left:var(--tw-space-2);padding-right:var(--tw-space-2);}
.tw-px-3{padding-left:var(--tw-space-3);padding-right:var(--tw-space-3);}
.tw-px-4{padding-left:var(--tw-space-4);padding-right:var(--tw-space-4);}

/* Typography */
.tw-text-xs{font-size:0.75rem;}
.tw-text-sm{font-size:0.875rem;}
.tw-text-base{font-size:1rem;}
.tw-text-lg{font-size:1.125rem;}
.tw-text-xl{font-size:1.25rem;}
.tw-font-medium{font-weight:500;}
.tw-font-semibold{font-weight:600;}
.tw-font-bold{font-weight:700;}
.tw-leading-tight{line-height:1.25;}
.tw-text-right{text-align:right;}
.tw-text-center{text-align:center;}

/* Color helpers (mapped to existing design tokens) */
.tw-text-muted{color: var(--text-muted);}
.tw-text-main{color: var(--text-color);}
.tw-text-cyan{color: var(--accent-cyan);}
.tw-text-blue{color: var(--accent-blue);}
.tw-text-green{color: var(--accent-green);}
.tw-text-yellow{color: var(--accent-orange);}
.tw-text-red{color: var(--accent-red);}

/* Borders */
.tw-rounded-lg{border-radius:var(--tw-radius-lg);}
.tw-rounded-xl{border-radius:var(--tw-radius-xl);}
.tw-rounded-full{border-radius:999px;}
.tw-border-t{border-top:1px solid rgba(255,255,255,0.08);}

/* Truncation */
.tw-min-w-0{min-width:0;}
.tw-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tw-whitespace-nowrap{white-space:nowrap;}

/* Width */
.tw-w-full{width:100%;}

.tw-overflow-x-auto{overflow-x:auto;}

.tw-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}

.tw-self-center{align-self:center;}
