/* ──────────────────────────────────────────────────────────────
   eBuks — pre-compiled Tailwind-style utility subset.
   A curated, build-free utility layer (no runtime compiler).
   Use alongside Bootstrap + the custom app.css.
   ────────────────────────────────────────────────────────────── */

/* display */
.tw-hidden{display:none!important}
.tw-block{display:block!important}
.tw-inline-block{display:inline-block!important}
.tw-flex{display:flex!important}
.tw-inline-flex{display:inline-flex!important}
.tw-grid{display:grid!important}

/* flex */
.tw-flex-col{flex-direction:column!important}
.tw-flex-wrap{flex-wrap:wrap!important}
.tw-items-center{align-items:center!important}
.tw-items-start{align-items:flex-start!important}
.tw-items-end{align-items:flex-end!important}
.tw-justify-center{justify-content:center!important}
.tw-justify-between{justify-content:space-between!important}
.tw-justify-end{justify-content:flex-end!important}
.tw-flex-1{flex:1 1 0%!important}
.tw-flex-none{flex:none!important}
.tw-grow{flex-grow:1!important}

/* gap */
.tw-gap-1{gap:.25rem!important}
.tw-gap-2{gap:.5rem!important}
.tw-gap-3{gap:.75rem!important}
.tw-gap-4{gap:1rem!important}
.tw-gap-6{gap:1.5rem!important}

/* grid cols */
.tw-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.tw-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.tw-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}

/* spacing */
.tw-m-0{margin:0!important}
.tw-mt-1{margin-top:.25rem!important}
.tw-mt-2{margin-top:.5rem!important}
.tw-mt-3{margin-top:.75rem!important}
.tw-mt-4{margin-top:1rem!important}
.tw-mb-1{margin-bottom:.25rem!important}
.tw-mb-2{margin-bottom:.5rem!important}
.tw-mb-3{margin-bottom:.75rem!important}
.tw-mb-4{margin-bottom:1rem!important}
.tw-p-2{padding:.5rem!important}
.tw-p-3{padding:.75rem!important}
.tw-p-4{padding:1rem!important}
.tw-px-3{padding-left:.75rem!important;padding-right:.75rem!important}
.tw-py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}

/* sizing */
.tw-w-full{width:100%!important}
.tw-h-full{height:100%!important}
.tw-min-w-0{min-width:0!important}
.tw-max-w-full{max-width:100%!important}

/* text */
.tw-text-center{text-align:center!important}
.tw-text-right{text-align:right!important}
.tw-text-left{text-align:left!important}
.tw-text-xs{font-size:.75rem!important}
.tw-text-sm{font-size:.875rem!important}
.tw-text-base{font-size:1rem!important}
.tw-text-lg{font-size:1.125rem!important}
.tw-text-xl{font-size:1.25rem!important}
.tw-font-medium{font-weight:500!important}
.tw-font-semibold{font-weight:600!important}
.tw-font-bold{font-weight:700!important}
.tw-font-extrabold{font-weight:800!important}
.tw-truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.tw-uppercase{text-transform:uppercase!important}
.tw-leading-tight{line-height:1.25!important}

/* color (brand-aware) */
.tw-text-brand{color:var(--brand)!important}
.tw-text-accent{color:var(--accent)!important}
.tw-text-muted{color:var(--muted)!important}
.tw-text-ink{color:var(--ink)!important}
.tw-text-white{color:#fff!important}
.tw-bg-brand{background:var(--brand)!important}
.tw-bg-brand-light{background:var(--brand-light)!important}
.tw-bg-accent{background:var(--accent)!important}
.tw-bg-white{background:#fff!important}
.tw-bg-card{background:var(--card)!important}

/* radius / border / shadow */
.tw-rounded{border-radius:.5rem!important}
.tw-rounded-lg{border-radius:.75rem!important}
.tw-rounded-xl{border-radius:1rem!important}
.tw-rounded-full{border-radius:9999px!important}
.tw-border{border:1px solid var(--line)!important}
.tw-border-0{border:0!important}
.tw-shadow{box-shadow:var(--shadow)!important}
.tw-shadow-sm{box-shadow:var(--shadow-sm)!important}

/* position */
.tw-relative{position:relative!important}
.tw-absolute{position:absolute!important}
.tw-sticky{position:sticky!important}
.tw-overflow-hidden{overflow:hidden!important}
.tw-overflow-x-auto{overflow-x:auto!important}

/* misc */
.tw-cursor-pointer{cursor:pointer!important}
.tw-select-none{user-select:none!important}
.tw-opacity-70{opacity:.7!important}

@media(min-width:600px){
  .sm\:tw-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .sm\:tw-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .sm\:tw-block{display:block!important}
}
