/* ==========================================================================
   LombokCSS — utilities.css
   Atomic helpers. RTL-safe via logical properties. Responsive: sm/md/lg/xl.
   ========================================================================== */

/* ---- Display ---- */
.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}
.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}

/* ---- Flexbox ---- */
.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}
.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}
.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}
.self-start{align-self:flex-start}.self-center{align-self:center}.self-end{align-self:flex-end}

/* ---- Grid ---- */
.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}
.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}
.grid-cols-5{grid-template-columns:repeat(5,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}
.grid-cols-12{grid-template-columns:repeat(12,1fr)}
.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}
.col-span-6{grid-column:span 6}.col-span-full{grid-column:1 / -1}

/* ---- Gap (uses spacing scale) ---- */
.gap-0{gap:0}.gap-1{gap:var(--lc-space-1)}.gap-2{gap:var(--lc-space-2)}.gap-3{gap:var(--lc-space-3)}
.gap-4{gap:var(--lc-space-4)}.gap-6{gap:var(--lc-space-6)}.gap-8{gap:var(--lc-space-8)}

/* ---- Spacing: padding (logical) ---- */
.p-0{padding:0}.p-1{padding:var(--lc-space-1)}.p-2{padding:var(--lc-space-2)}.p-3{padding:var(--lc-space-3)}
.p-4{padding:var(--lc-space-4)}.p-6{padding:var(--lc-space-6)}.p-8{padding:var(--lc-space-8)}
.px-2{padding-inline:var(--lc-space-2)}.px-3{padding-inline:var(--lc-space-3)}.px-4{padding-inline:var(--lc-space-4)}.px-6{padding-inline:var(--lc-space-6)}
.py-1{padding-block:var(--lc-space-1)}.py-2{padding-block:var(--lc-space-2)}.py-3{padding-block:var(--lc-space-3)}.py-4{padding-block:var(--lc-space-4)}.py-6{padding-block:var(--lc-space-6)}
.pt-4{padding-block-start:var(--lc-space-4)}.pb-4{padding-block-end:var(--lc-space-4)}

/* ---- Spacing: margin (logical) ---- */
.m-0{margin:0}.m-auto{margin:auto}
.m-1{margin:var(--lc-space-1)}.m-2{margin:var(--lc-space-2)}.m-4{margin:var(--lc-space-4)}
.mx-auto{margin-inline:auto}.my-2{margin-block:var(--lc-space-2)}.my-4{margin-block:var(--lc-space-4)}.my-6{margin-block:var(--lc-space-6)}
.mt-2{margin-block-start:var(--lc-space-2)}.mt-4{margin-block-start:var(--lc-space-4)}.mt-6{margin-block-start:var(--lc-space-6)}
.mb-0{margin-block-end:0}.mb-2{margin-block-end:var(--lc-space-2)}.mb-4{margin-block-end:var(--lc-space-4)}.mb-6{margin-block-end:var(--lc-space-6)}
.ms-auto{margin-inline-start:auto}.me-auto{margin-inline-end:auto}

/* ---- Sizing ---- */
.w-full{inline-size:100%}.w-auto{inline-size:auto}.w-screen{inline-size:100vw}.w-fit{inline-size:fit-content}
.h-full{block-size:100%}.h-screen{block-size:100vh}.min-h-screen{min-block-size:100vh}
.max-w-xs{max-inline-size:20rem}.max-w-sm{max-inline-size:24rem}.max-w-md{max-inline-size:28rem}
.max-w-lg{max-inline-size:32rem}.max-w-xl{max-inline-size:36rem}.max-w-2xl{max-inline-size:42rem}.max-w-7xl{max-inline-size:80rem}

/* ---- Typography ---- */
.text-xs{font-size:var(--lc-text-xs)}.text-sm{font-size:var(--lc-text-sm)}.text-base{font-size:var(--lc-text-base)}
.text-lg{font-size:var(--lc-text-lg)}.text-xl{font-size:var(--lc-text-xl)}.text-2xl{font-size:var(--lc-text-2xl)}.text-3xl{font-size:var(--lc-text-3xl)}
.font-light{font-weight:300}.font-normal{font-weight:var(--lc-weight-normal)}.font-medium{font-weight:var(--lc-weight-medium)}
.font-semibold{font-weight:var(--lc-weight-semibold)}.font-bold{font-weight:var(--lc-weight-bold)}
.text-start{text-align:start}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}
.leading-tight{line-height:var(--lc-leading-tight)}.leading-normal{line-height:var(--lc-leading-normal)}.leading-relaxed{line-height:var(--lc-leading-relaxed)}
.tracking-tight{letter-spacing:-.02em}.tracking-wide{letter-spacing:.04em}
.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.font-mono{font-family:var(--lc-font-mono)}

/* ---- Colors ---- */
.text-primary{color:var(--lc-accent)}.text-muted{color:var(--lc-text-muted)}.text-faint{color:var(--lc-text-faint)}
.text-success{color:var(--lc-success-text)}.text-danger{color:var(--lc-danger-text)}.text-warning{color:var(--lc-warning-text)}
.bg-bg{background:var(--lc-bg)}.bg-surface{background:var(--lc-surface)}.bg-surface-2{background:var(--lc-surface-2)}
.bg-primary{background:var(--lc-accent);color:var(--lc-accent-text)}.bg-soft{background:var(--lc-accent-soft);color:var(--lc-accent-soft-text)}
.border{border:var(--lc-border-width) solid var(--lc-border)}.border-strong{border-color:var(--lc-border-strong)}
.border-0{border:0}.border-t{border-block-start:var(--lc-border-width) solid var(--lc-border)}.border-b{border-block-end:var(--lc-border-width) solid var(--lc-border)}

/* ---- Radius ---- */
.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--lc-radius-sm)}.rounded{border-radius:var(--lc-radius)}
.rounded-lg{border-radius:var(--lc-radius-lg)}.rounded-full{border-radius:var(--lc-radius-full)}

/* ---- Effects ---- */
.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--lc-shadow-sm)}.shadow{box-shadow:var(--lc-shadow)}.shadow-lg{box-shadow:var(--lc-shadow-lg)}
.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.opacity-50{opacity:.5}.opacity-75{opacity:.75}

/* ---- Position ---- */
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.inset-0{inset:0}.top-0{inset-block-start:0}.bottom-0{inset-block-end:0}.start-0{inset-inline-start:0}.end-0{inset-inline-end:0}
.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}

/* ---- Misc ---- */
.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}
.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.select-none{user-select:none}
.transition{transition:all var(--lc-transition)}
.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16/9}

/* ---- Status colors (solid / soft / text / border) ---- */
.text-info{color:var(--lc-info-text)}
.bg-success{background:var(--lc-success);color:#fff}.bg-warning{background:var(--lc-warning);color:#fff}
.bg-danger{background:var(--lc-danger);color:#fff}.bg-info{background:var(--lc-info);color:#fff}
.bg-success-soft{background:var(--lc-success-soft);color:var(--lc-success-text)}
.bg-warning-soft{background:var(--lc-warning-soft);color:var(--lc-warning-text)}
.bg-danger-soft{background:var(--lc-danger-soft);color:var(--lc-danger-text)}
.bg-info-soft{background:var(--lc-info-soft);color:var(--lc-info-text)}
.border-success{border-color:var(--lc-success)}.border-warning{border-color:var(--lc-warning)}
.border-danger{border-color:var(--lc-danger)}.border-info{border-color:var(--lc-info)}.border-primary{border-color:var(--lc-accent)}

/* ---- Full gap scale + directional gaps ---- */
.gap-5{gap:var(--lc-space-5)}.gap-10{gap:var(--lc-space-10)}.gap-12{gap:var(--lc-space-12)}
.gap-x-2{column-gap:var(--lc-space-2)}.gap-x-4{column-gap:var(--lc-space-4)}.gap-x-6{column-gap:var(--lc-space-6)}
.gap-y-2{row-gap:var(--lc-space-2)}.gap-y-4{row-gap:var(--lc-space-4)}.gap-y-6{row-gap:var(--lc-space-6)}
/* ---- Full col-span scale ---- */
.col-span-1{grid-column:span 1}.col-span-5{grid-column:span 5}
.col-span-7{grid-column:span 7}.col-span-8{grid-column:span 8}
.col-span-9{grid-column:span 9}.col-span-10{grid-column:span 10}
.col-span-11{grid-column:span 11}.col-span-12{grid-column:span 12}

/* ==========================================================================
   Responsive prefixes (mobile-first), full scale: sm 640 / md 768 / lg 1024 / xl 1280
   ========================================================================== */
@media (min-width:640px){
.sm\:block{display:block}
.sm\:inline-block{display:inline-block}
.sm\:flex{display:flex}
.sm\:inline-flex{display:inline-flex}
.sm\:grid{display:grid}
.sm\:inline-grid{display:inline-grid}
.sm\:hidden{display:none}
.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}
.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}
.sm\:justify-start{justify-content:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}
.sm\:grid-cols-1{grid-template-columns:repeat(1,1fr)}
.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}
.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}
.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
.sm\:grid-cols-5{grid-template-columns:repeat(5,1fr)}
.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}
.sm\:grid-cols-12{grid-template-columns:repeat(12,1fr)}
.sm\:col-span-1{grid-column:span 1}
.sm\:col-span-2{grid-column:span 2}
.sm\:col-span-3{grid-column:span 3}
.sm\:col-span-4{grid-column:span 4}
.sm\:col-span-5{grid-column:span 5}
.sm\:col-span-6{grid-column:span 6}
.sm\:col-span-full{grid-column:1 / -1}
.sm\:gap-0{gap:0}
.sm\:gap-1{gap:var(--lc-space-1)}
.sm\:gap-2{gap:var(--lc-space-2)}
.sm\:gap-3{gap:var(--lc-space-3)}
.sm\:gap-4{gap:var(--lc-space-4)}
.sm\:gap-5{gap:var(--lc-space-5)}
.sm\:gap-6{gap:var(--lc-space-6)}
.sm\:gap-8{gap:var(--lc-space-8)}
.sm\:text-start{text-align:start}.sm\:text-center{text-align:center}.sm\:text-end{text-align:end}
}
@media (min-width:768px){
.md\:block{display:block}
.md\:inline-block{display:inline-block}
.md\:flex{display:flex}
.md\:inline-flex{display:inline-flex}
.md\:grid{display:grid}
.md\:inline-grid{display:inline-grid}
.md\:hidden{display:none}
.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:flex-wrap{flex-wrap:wrap}
.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}
.md\:justify-start{justify-content:flex-start}.md\:justify-center{justify-content:center}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}
.md\:grid-cols-1{grid-template-columns:repeat(1,1fr)}
.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}
.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}
.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
.md\:grid-cols-5{grid-template-columns:repeat(5,1fr)}
.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}
.md\:grid-cols-12{grid-template-columns:repeat(12,1fr)}
.md\:col-span-1{grid-column:span 1}
.md\:col-span-2{grid-column:span 2}
.md\:col-span-3{grid-column:span 3}
.md\:col-span-4{grid-column:span 4}
.md\:col-span-5{grid-column:span 5}
.md\:col-span-6{grid-column:span 6}
.md\:col-span-full{grid-column:1 / -1}
.md\:gap-0{gap:0}
.md\:gap-1{gap:var(--lc-space-1)}
.md\:gap-2{gap:var(--lc-space-2)}
.md\:gap-3{gap:var(--lc-space-3)}
.md\:gap-4{gap:var(--lc-space-4)}
.md\:gap-5{gap:var(--lc-space-5)}
.md\:gap-6{gap:var(--lc-space-6)}
.md\:gap-8{gap:var(--lc-space-8)}
.md\:text-start{text-align:start}.md\:text-center{text-align:center}.md\:text-end{text-align:end}
}
@media (min-width:1024px){
.lg\:block{display:block}
.lg\:inline-block{display:inline-block}
.lg\:flex{display:flex}
.lg\:inline-flex{display:inline-flex}
.lg\:grid{display:grid}
.lg\:inline-grid{display:inline-grid}
.lg\:hidden{display:none}
.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:flex-wrap{flex-wrap:wrap}
.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:items-end{align-items:flex-end}
.lg\:justify-start{justify-content:flex-start}.lg\:justify-center{justify-content:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}
.lg\:grid-cols-1{grid-template-columns:repeat(1,1fr)}
.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}
.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}
.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
.lg\:grid-cols-5{grid-template-columns:repeat(5,1fr)}
.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}
.lg\:grid-cols-12{grid-template-columns:repeat(12,1fr)}
.lg\:col-span-1{grid-column:span 1}
.lg\:col-span-2{grid-column:span 2}
.lg\:col-span-3{grid-column:span 3}
.lg\:col-span-4{grid-column:span 4}
.lg\:col-span-5{grid-column:span 5}
.lg\:col-span-6{grid-column:span 6}
.lg\:col-span-full{grid-column:1 / -1}
.lg\:gap-0{gap:0}
.lg\:gap-1{gap:var(--lc-space-1)}
.lg\:gap-2{gap:var(--lc-space-2)}
.lg\:gap-3{gap:var(--lc-space-3)}
.lg\:gap-4{gap:var(--lc-space-4)}
.lg\:gap-5{gap:var(--lc-space-5)}
.lg\:gap-6{gap:var(--lc-space-6)}
.lg\:gap-8{gap:var(--lc-space-8)}
.lg\:text-start{text-align:start}.lg\:text-center{text-align:center}.lg\:text-end{text-align:end}
}
@media (min-width:1280px){
.xl\:block{display:block}
.xl\:inline-block{display:inline-block}
.xl\:flex{display:flex}
.xl\:inline-flex{display:inline-flex}
.xl\:grid{display:grid}
.xl\:inline-grid{display:inline-grid}
.xl\:hidden{display:none}
.xl\:flex-row{flex-direction:row}.xl\:flex-col{flex-direction:column}.xl\:flex-wrap{flex-wrap:wrap}
.xl\:items-start{align-items:flex-start}.xl\:items-center{align-items:center}.xl\:items-end{align-items:flex-end}
.xl\:justify-start{justify-content:flex-start}.xl\:justify-center{justify-content:center}.xl\:justify-end{justify-content:flex-end}.xl\:justify-between{justify-content:space-between}
.xl\:grid-cols-1{grid-template-columns:repeat(1,1fr)}
.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}
.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}
.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}
.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}
.xl\:grid-cols-12{grid-template-columns:repeat(12,1fr)}
.xl\:col-span-1{grid-column:span 1}
.xl\:col-span-2{grid-column:span 2}
.xl\:col-span-3{grid-column:span 3}
.xl\:col-span-4{grid-column:span 4}
.xl\:col-span-5{grid-column:span 5}
.xl\:col-span-6{grid-column:span 6}
.xl\:col-span-full{grid-column:1 / -1}
.xl\:gap-0{gap:0}
.xl\:gap-1{gap:var(--lc-space-1)}
.xl\:gap-2{gap:var(--lc-space-2)}
.xl\:gap-3{gap:var(--lc-space-3)}
.xl\:gap-4{gap:var(--lc-space-4)}
.xl\:gap-5{gap:var(--lc-space-5)}
.xl\:gap-6{gap:var(--lc-space-6)}
.xl\:gap-8{gap:var(--lc-space-8)}
.xl\:text-start{text-align:start}.xl\:text-center{text-align:center}.xl\:text-end{text-align:end}
}
