/* ============================================================
   os-tailwind.css
   Standalone replacement for cdn.tailwindcss.com used by SRG OS.
   Generated from class scan of index.html, os-app.js, crm.js.
   No @apply, no Tailwind tooling — pure CSS.
   ============================================================ */

/* ---- Theme tokens (mirrors tailwind.config in index.html) ---- */
:root{
  --tw-bg:#00054F;
  --tw-bgDeep:#000233;
  --tw-btn:#050E91;
  --tw-text:#00C8EB;
  --tw-btnText:#C7FCFC;
  --tw-textAlt:#8EE1DF;
  --tw-danger:#ff4757;
  --tw-success:#00c851;
  --tw-warn:#ffa502;
  --tw-og:#ffd700;
  --tw-tier1:#a8b8c8;
  --tw-tier2:#00c851;
  --tw-tier3:#2196f3;
  --tw-tier4:#9c27b0;
}

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

/* ---- Flex direction & wrap ---- */
.flex-row{flex-direction:row;}
.flex-col{flex-direction:column;}
.flex-wrap{flex-wrap:wrap;}
.flex-nowrap{flex-wrap:nowrap;}
.flex-1{flex:1 1 0%;}
.flex-auto{flex:1 1 auto;}
.flex-none{flex:none;}
.flex-shrink-0,.shrink-0{flex-shrink:0;}
.flex-grow{flex-grow:1;}

/* ---- Items / Justify / Align ---- */
.items-start{align-items:flex-start;}
.items-end{align-items:flex-end;}
.items-center{align-items:center;}
.items-baseline{align-items:baseline;}
.items-stretch{align-items:stretch;}
.justify-start{justify-content:flex-start;}
.justify-end{justify-content:flex-end;}
.justify-center{justify-content:center;}
.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-end{align-self:flex-end;}
.self-center{align-self:center;}
.self-stretch{align-self:stretch;}
.content-center{align-content:center;}

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

/* Arbitrary grid templates */
.grid-cols-\[110px_1fr_100px_110px_110px_120px\]{grid-template-columns:110px 1fr 100px 110px 110px 120px;}
.grid-cols-\[1fr_90px_110px_auto\]{grid-template-columns:1fr 90px 110px auto;}
.grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px;}
.grid-cols-\[1fr_380px\]{grid-template-columns:1fr 380px;}
.grid-cols-\[1fr_420px\]{grid-template-columns:1fr 420px;}
.grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr;}

/* ---- Gap ---- */
.gap-0{gap:0;}
.gap-px{gap:1px;}
.gap-1{gap:.25rem;}
.gap-1\.5{gap:.375rem;}
.gap-2{gap:.5rem;}
.gap-3{gap:.75rem;}
.gap-4{gap:1rem;}
.gap-5{gap:1.25rem;}
.gap-6{gap:1.5rem;}
.gap-8{gap:2rem;}
.gap-x-2{column-gap:.5rem;}
.gap-x-3{column-gap:.75rem;}
.gap-x-4{column-gap:1rem;}
.gap-y-2{row-gap:.5rem;}
.gap-y-3{row-gap:.75rem;}
.gap-y-4{row-gap:1rem;}

/* ---- Space between (children) ---- */
.space-x-1>*+*{margin-left:.25rem;}
.space-x-2>*+*{margin-left:.5rem;}
.space-x-3>*+*{margin-left:.75rem;}
.space-x-4>*+*{margin-left:1rem;}
.space-y-1>*+*{margin-top:.25rem;}
.space-y-2>*+*{margin-top:.5rem;}
.space-y-2\.5>*+*{margin-top:.625rem;}
.space-y-3>*+*{margin-top:.75rem;}
.space-y-4>*+*{margin-top:1rem;}
.space-y-6>*+*{margin-top:1.5rem;}

/* ---- Divide ---- */
.divide-y>*+*{border-top-width:1px;border-top-style:solid;}
.divide-\[rgba\(0\,200\,235\,\.1\)\]>*+*{border-color:rgba(0,200,235,.1);}

/* ---- Padding ---- */
.p-0{padding:0;}
.p-1{padding:.25rem;}
.p-2{padding:.5rem;}
.p-3{padding:.75rem;}
.p-4{padding:1rem;}
.p-5{padding:1.25rem;}
.p-6{padding:1.5rem;}
.p-8{padding:2rem;}
.px-0{padding-left:0;padding-right:0;}
.px-1{padding-left:.25rem;padding-right:.25rem;}
.px-2{padding-left:.5rem;padding-right:.5rem;}
.px-3{padding-left:.75rem;padding-right:.75rem;}
.px-4{padding-left:1rem;padding-right:1rem;}
.px-5{padding-left:1.25rem;padding-right:1.25rem;}
.px-6{padding-left:1.5rem;padding-right:1.5rem;}
.py-0{padding-top:0;padding-bottom:0;}
.py-1{padding-top:.25rem;padding-bottom:.25rem;}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem;}
.py-2{padding-top:.5rem;padding-bottom:.5rem;}
.py-3{padding-top:.75rem;padding-bottom:.75rem;}
.py-4{padding-top:1rem;padding-bottom:1rem;}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem;}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem;}
.pt-0{padding-top:0;}.pt-1{padding-top:.25rem;}.pt-2{padding-top:.5rem;}.pt-3{padding-top:.75rem;}.pt-4{padding-top:1rem;}.pt-6{padding-top:1.5rem;}
.pb-0{padding-bottom:0;}.pb-1{padding-bottom:.25rem;}.pb-2{padding-bottom:.5rem;}.pb-3{padding-bottom:.75rem;}.pb-4{padding-bottom:1rem;}.pb-6{padding-bottom:1.5rem;}
.pl-0{padding-left:0;}.pl-1{padding-left:.25rem;}.pl-2{padding-left:.5rem;}.pl-3{padding-left:.75rem;}.pl-4{padding-left:1rem;}.pl-5{padding-left:1.25rem;}
.pr-0{padding-right:0;}.pr-1{padding-right:.25rem;}.pr-2{padding-right:.5rem;}.pr-3{padding-right:.75rem;}.pr-4{padding-right:1rem;}

/* ---- Margin ---- */
.m-0{margin:0;}.m-1{margin:.25rem;}.m-2{margin:.5rem;}.m-3{margin:.75rem;}.m-4{margin:1rem;}
.mx-auto{margin-left:auto;margin-right:auto;}
.mx-1{margin-left:.25rem;margin-right:.25rem;}.mx-2{margin-left:.5rem;margin-right:.5rem;}.mx-3{margin-left:.75rem;margin-right:.75rem;}.mx-4{margin-left:1rem;margin-right:1rem;}
.my-1{margin-top:.25rem;margin-bottom:.25rem;}.my-2{margin-top:.5rem;margin-bottom:.5rem;}.my-3{margin-top:.75rem;margin-bottom:.75rem;}.my-4{margin-top:1rem;margin-bottom:1rem;}
.mt-0{margin-top:0;}.mt-0\.5{margin-top:.125rem;}.mt-1{margin-top:.25rem;}.mt-2{margin-top:.5rem;}.mt-3{margin-top:.75rem;}.mt-4{margin-top:1rem;}.mt-5{margin-top:1.25rem;}.mt-6{margin-top:1.5rem;}.mt-8{margin-top:2rem;}
.mb-0{margin-bottom:0;}.mb-1{margin-bottom:.25rem;}.mb-2{margin-bottom:.5rem;}.mb-3{margin-bottom:.75rem;}.mb-4{margin-bottom:1rem;}.mb-5{margin-bottom:1.25rem;}.mb-6{margin-bottom:1.5rem;}.mb-8{margin-bottom:2rem;}
.ml-0{margin-left:0;}.ml-1{margin-left:.25rem;}.ml-2{margin-left:.5rem;}.ml-3{margin-left:.75rem;}.ml-4{margin-left:1rem;}.ml-auto{margin-left:auto;}
.mr-0{margin-right:0;}.mr-1{margin-right:.25rem;}.mr-2{margin-right:.5rem;}.mr-3{margin-right:.75rem;}.mr-4{margin-right:1rem;}.mr-auto{margin-right:auto;}

/* ---- Width ---- */
.w-0{width:0;}
.w-px{width:1px;}
.w-1{width:.25rem;}
.w-1\.5{width:.375rem;}
.w-2{width:.5rem;}
.w-3{width:.75rem;}
.w-3\.5{width:.875rem;}
.w-4{width:1rem;}
.w-5{width:1.25rem;}
.w-6{width:1.5rem;}
.w-7{width:1.75rem;}
.w-8{width:2rem;}
.w-9{width:2.25rem;}
.w-10{width:2.5rem;}
.w-11{width:2.75rem;}
.w-12{width:3rem;}
.w-16{width:4rem;}
.w-20{width:5rem;}
.w-24{width:6rem;}
.w-32{width:8rem;}
.w-40{width:10rem;}
.w-48{width:12rem;}
.w-56{width:14rem;}
.w-64{width:16rem;}
.w-auto{width:auto;}
.w-1\/2{width:50%;}
.w-1\/3{width:33.333333%;}
.w-2\/3{width:66.666667%;}
.w-1\/4{width:25%;}
.w-3\/4{width:75%;}
.w-full{width:100%;}
.w-screen{width:100vw;}
.w-\[260px\]{width:260px;}

/* ---- Height ---- */
.h-0{height:0;}
.h-px{height:1px;}
.h-1{height:.25rem;}
.h-1\.5{height:.375rem;}
.h-2{height:.5rem;}
.h-3{height:.75rem;}
.h-3\.5{height:.875rem;}
.h-4{height:1rem;}
.h-5{height:1.25rem;}
.h-6{height:1.5rem;}
.h-7{height:1.75rem;}
.h-8{height:2rem;}
.h-9{height:2.25rem;}
.h-10{height:2.5rem;}
.h-11{height:2.75rem;}
.h-12{height:3rem;}
.h-16{height:4rem;}
.h-20{height:5rem;}
.h-24{height:6rem;}
.h-32{height:8rem;}
.h-40{height:10rem;}
.h-48{height:12rem;}
.h-56{height:14rem;}
.h-64{height:16rem;}
.h-auto{height:auto;}
.h-full{height:100%;}
.h-screen{height:100vh;}

/* ---- Min/Max sizing ---- */
.min-w-0{min-width:0;}
.min-w-full{min-width:100%;}
.min-w-\[200px\]{min-width:200px;}
.max-w-xs{max-width:20rem;}
.max-w-sm{max-width:24rem;}
.max-w-md{max-width:28rem;}
.max-w-lg{max-width:32rem;}
.max-w-xl{max-width:36rem;}
.max-w-2xl{max-width:42rem;}
.max-w-3xl{max-width:48rem;}
.max-w-full{max-width:100%;}
.max-w-\[260px\]{max-width:260px;}
.max-w-\[1400px\]{max-width:1400px;}
.min-h-0{min-height:0;}
.min-h-screen{min-height:100vh;}
.min-h-full{min-height:100%;}
.max-h-64{max-height:16rem;}
.max-h-80{max-height:20rem;}
.max-h-screen{max-height:100vh;}

/* ---- Typography ---- */
.font-sans{font-family:'Rajdhani','Inter',system-ui,sans-serif;}
.font-serif{font-family:'Bitter',Georgia,serif;}
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;}

.text-xs{font-size:.75rem;line-height:1rem;}
.text-sm{font-size:.875rem;line-height:1.25rem;}
.text-base{font-size:1rem;line-height:1.5rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-3xl{font-size:1.875rem;line-height:2.25rem;}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.text-5xl{font-size:3rem;line-height:1;}

/* Arbitrary text sizes */
.text-\[0\.58rem\]{font-size:0.58rem;}
.text-\[\.6rem\]{font-size:.6rem;}
.text-\[\.62rem\]{font-size:.62rem;}
.text-\[\.65rem\]{font-size:.65rem;}
.text-\[\.68rem\]{font-size:.68rem;}
.text-\[\.7rem\]{font-size:.7rem;}
.text-\[\.72rem\]{font-size:.72rem;}
.text-\[\.75rem\]{font-size:.75rem;}
.text-\[\.78rem\]{font-size:.78rem;}
.text-\[\.82rem\]{font-size:.82rem;}
.text-\[\.85rem\]{font-size:.85rem;}
.text-\[\.88rem\]{font-size:.88rem;}
.text-\[\.92rem\]{font-size:.92rem;}
.text-\[1\.15rem\]{font-size:1.15rem;}

.font-thin{font-weight:100;}
.font-light{font-weight:300;}
.font-normal{font-weight:400;}
.font-medium{font-weight:500;}
.font-semibold{font-weight:600;}
.font-bold{font-weight:700;}
.font-extrabold{font-weight:800;}
.font-black{font-weight:900;}

.italic{font-style:italic;}
.not-italic{font-style:normal;}
.uppercase{text-transform:uppercase;}
.lowercase{text-transform:lowercase;}
.capitalize{text-transform:capitalize;}
.normal-case{text-transform:none;}

.text-left{text-align:left;}
.text-center{text-align:center;}
.text-right{text-align:right;}
.text-justify{text-align:justify;}

.leading-none{line-height:1;}
.leading-tight{line-height:1.25;}
.leading-snug{line-height:1.375;}
.leading-normal{line-height:1.5;}
.leading-relaxed{line-height:1.625;}
.leading-loose{line-height:2;}
.leading-6{line-height:1.5rem;}

.tracking-tighter{letter-spacing:-.05em;}
.tracking-tight{letter-spacing:-.025em;}
.tracking-normal{letter-spacing:0;}
.tracking-wide{letter-spacing:.025em;}
.tracking-wider{letter-spacing:.05em;}
.tracking-widest{letter-spacing:.1em;}
.tracking-\[\.12em\]{letter-spacing:.12em;}
.tracking-\[\.2em\]{letter-spacing:.2em;}
.tracking-\[\.22em\]{letter-spacing:.22em;}
.tracking-\[\.35em\]{letter-spacing:.35em;}
.tracking-\[2px\]{letter-spacing:2px;}

.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.whitespace-nowrap{white-space:nowrap;}
.whitespace-normal{white-space:normal;}
.whitespace-pre{white-space:pre;}
.whitespace-pre-wrap{white-space:pre-wrap;}
.break-words{overflow-wrap:break-word;word-wrap:break-word;}
.break-all{word-break:break-all;}

.list-decimal{list-style-type:decimal;}
.list-disc{list-style-type:disc;}
.list-none{list-style-type:none;}

/* ---- Colors: text ---- */
.text-bg{color:var(--tw-bg);}
.text-bgDeep{color:var(--tw-bgDeep);}
.text-btn{color:var(--tw-btn);}
.text-text{color:var(--tw-text);}
.text-btnText{color:var(--tw-btnText);}
.text-textAlt{color:var(--tw-textAlt);}
.text-danger{color:var(--tw-danger);}
.text-success{color:var(--tw-success);}
.text-warn{color:var(--tw-warn);}
.text-og{color:var(--tw-og);}
.text-tier1{color:var(--tw-tier1);}
.text-tier2{color:var(--tw-tier2);}
.text-tier3{color:var(--tw-tier3);}
.text-tier4{color:var(--tw-tier4);}
.text-white{color:#fff;}
.text-black{color:#000;}
.text-transparent{color:transparent;}

/* ---- Colors: background ---- */
.bg-bg{background-color:var(--tw-bg);}
.bg-bgDeep{background-color:var(--tw-bgDeep);}
.bg-btn{background-color:var(--tw-btn);}
.bg-text{background-color:var(--tw-text);}
.bg-btnText{background-color:var(--tw-btnText);}
.bg-textAlt{background-color:var(--tw-textAlt);}
.bg-danger{background-color:var(--tw-danger);}
.bg-success{background-color:var(--tw-success);}
.bg-warn{background-color:var(--tw-warn);}
.bg-og{background-color:var(--tw-og);}
.bg-tier1{background-color:var(--tw-tier1);}
.bg-tier2{background-color:var(--tw-tier2);}
.bg-tier3{background-color:var(--tw-tier3);}
.bg-tier4{background-color:var(--tw-tier4);}
.bg-white{background-color:#fff;}
.bg-black{background-color:#000;}
.bg-transparent{background-color:transparent;}
.bg-black\/50{background-color:rgba(0,0,0,.5);}
.bg-\[rgba\(0\,2\,30\,0\.45\)\]{background-color:rgba(0,2,30,0.45);}
.bg-\[rgba\(0\,200\,235\,0\.06\)\]{background-color:rgba(0,200,235,0.06);}

/* ---- Background gradients (basic) ---- */
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-grad-from,transparent),var(--tw-grad-to,transparent));}
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-grad-from,transparent),var(--tw-grad-to,transparent));}
.from-text{--tw-grad-from:var(--tw-text);}
.from-tier3{--tw-grad-from:var(--tw-tier3);}
.to-btn{--tw-grad-to:var(--tw-btn);}
.to-text{--tw-grad-to:var(--tw-text);}

/* ---- Border ---- */
.border{border-width:1px;border-style:solid;}
.border-0{border-width:0;}
.border-2{border-width:2px;border-style:solid;}
.border-t{border-top-width:1px;border-top-style:solid;}
.border-b{border-bottom-width:1px;border-bottom-style:solid;}
.border-l{border-left-width:1px;border-left-style:solid;}
.border-r{border-right-width:1px;border-right-style:solid;}
.border-\[var\(--border-strong\)\]{border-color:var(--border-strong);}
.border-\[var\(--border\)\]{border-color:var(--border);}
.border-text{border-color:var(--tw-text);}
.border-textAlt{border-color:var(--tw-textAlt);}
.border-danger{border-color:var(--tw-danger);}
.border-success{border-color:var(--tw-success);}
.border-warn{border-color:var(--tw-warn);}
.border-transparent{border-color:transparent;}

/* Rounded */
.rounded-none{border-radius:0;}
.rounded-sm{border-radius:.125rem;}
.rounded{border-radius:.25rem;}
.rounded-md{border-radius:.375rem;}
.rounded-lg{border-radius:.5rem;}
.rounded-xl{border-radius:.75rem;}
.rounded-2xl{border-radius:1rem;}
.rounded-3xl{border-radius:1.5rem;}
.rounded-full{border-radius:9999px;}
.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem;}
.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem;}

/* ---- Position ---- */
.static{position:static;}
.relative{position:relative;}
.absolute{position:absolute;}
.fixed{position:fixed;}
.sticky{position:sticky;}

.inset-0{top:0;right:0;bottom:0;left:0;}
.inset-x-0{left:0;right:0;}
.inset-y-0{top:0;bottom:0;}
.top-0{top:0;}
.right-0{right:0;}
.bottom-0{bottom:0;}
.left-0{left:0;}
.top-1{top:.25rem;}.top-2{top:.5rem;}.top-3{top:.75rem;}.top-4{top:1rem;}
.right-1{right:.25rem;}.right-2{right:.5rem;}.right-3{right:.75rem;}.right-4{right:1rem;}
.bottom-1{bottom:.25rem;}.bottom-2{bottom:.5rem;}.bottom-3{bottom:.75rem;}.bottom-4{bottom:1rem;}
.left-1{left:.25rem;}.left-2{left:.5rem;}.left-3{left:.75rem;}.left-4{left:1rem;}
.-top-1{top:-.25rem;}.-top-2{top:-.5rem;}
.-right-1{right:-.25rem;}.-right-2{right:-.5rem;}

/* ---- Z-index ---- */
.z-0{z-index:0;}
.z-10{z-index:10;}
.z-20{z-index:20;}
.z-30{z-index:30;}
.z-40{z-index:40;}
.z-50{z-index:50;}
.z-auto{z-index:auto;}

/* ---- Overflow ---- */
.overflow-auto{overflow:auto;}
.overflow-hidden{overflow:hidden;}
.overflow-visible{overflow:visible;}
.overflow-scroll{overflow:scroll;}
.overflow-x-auto{overflow-x:auto;}
.overflow-y-auto{overflow-y:auto;}
.overflow-x-hidden{overflow-x:hidden;}
.overflow-y-hidden{overflow-y:hidden;}

/* ---- Object fit ---- */
.object-contain{object-fit:contain;}
.object-cover{object-fit:cover;}
.object-fill{object-fit:fill;}
.object-none{object-fit:none;}

/* ---- Shadow ---- */
.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);}
.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05);}
.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);}
.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);}
.shadow-none{box-shadow:none;}

/* ---- Opacity ---- */
.opacity-0{opacity:0;}
.opacity-25{opacity:.25;}
.opacity-50{opacity:.5;}
.opacity-60{opacity:.6;}
.opacity-70{opacity:.7;}
.opacity-75{opacity:.75;}
.opacity-80{opacity:.8;}
.opacity-90{opacity:.9;}
.opacity-100{opacity:1;}

/* ---- Backdrop blur ---- */
.backdrop-blur{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.backdrop-blur-md{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.backdrop-blur-lg{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.backdrop-blur-xl{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);}

/* ---- Transitions ---- */
.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.transition-all{transition-property:all;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.transition-colors{transition-property:color,background-color,border-color,fill,stroke;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.transition-opacity{transition-property:opacity;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.transition-transform{transition-property:transform;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.duration-100{transition-duration:100ms;}
.duration-150{transition-duration:150ms;}
.duration-200{transition-duration:200ms;}
.duration-300{transition-duration:300ms;}
.duration-500{transition-duration:500ms;}
.duration-700{transition-duration:700ms;}
.ease-linear{transition-timing-function:linear;}
.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1);}
.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1);}
.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1);}

/* ---- Transforms ---- */
.transform{transform:translate(var(--tw-tx,0),var(--tw-ty,0)) rotate(var(--tw-rotate,0)) scale(var(--tw-scale,1));}
.translate-x-0{--tw-tx:0;transform:translateX(0);}
.translate-x-full{--tw-tx:100%;transform:translateX(100%);}
.-translate-x-full{--tw-tx:-100%;transform:translateX(-100%);}
.translate-y-0{--tw-ty:0;transform:translateY(0);}
.translate-y-full{transform:translateY(100%);}
.-translate-y-full{transform:translateY(-100%);}
.scale-90{transform:scale(.9);}
.scale-95{transform:scale(.95);}
.scale-100{transform:scale(1);}
.scale-105{transform:scale(1.05);}
.scale-110{transform:scale(1.1);}
.rotate-45{transform:rotate(45deg);}
.rotate-90{transform:rotate(90deg);}
.-rotate-45{transform:rotate(-45deg);}

/* ---- Cursor / Pointer / Select ---- */
.cursor-pointer{cursor:pointer;}
.cursor-default{cursor:default;}
.cursor-not-allowed{cursor:not-allowed;}
.cursor-grab{cursor:grab;}
.cursor-grabbing{cursor:grabbing;}
.pointer-events-none{pointer-events:none;}
.pointer-events-auto{pointer-events:auto;}
.user-select-none,.select-none{user-select:none;-webkit-user-select:none;}
.select-text{user-select:text;}

/* ---- Outline ---- */
.outline-none{outline:2px solid transparent;outline-offset:2px;}
.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px;}

/* ---- Placeholder ---- */
.placeholder\:text-textAlt::placeholder{color:var(--tw-textAlt);}

/* ---- Hover variants (common) ---- */
.hover\:bg-btn:hover{background-color:var(--tw-btn);}
.hover\:bg-text:hover{background-color:var(--tw-text);}
.hover\:text-text:hover{color:var(--tw-text);}
.hover\:text-btnText:hover{color:var(--tw-btnText);}
.hover\:opacity-80:hover{opacity:.8;}
.hover\:opacity-100:hover{opacity:1;}
.hover\:scale-105:hover{transform:scale(1.05);}

/* ---- Group (passthrough; consumers can opt-in via custom rules) ---- */
.group{}

/* ============================================================
   Responsive variants
   sm  >= 640px
   md  >= 768px
   lg  >= 1024px
   xl  >= 1280px
   ============================================================ */

@media (min-width:640px){
  .sm\:block{display:block;}
  .sm\:inline{display:inline;}
  .sm\:inline-block{display:inline-block;}
  .sm\:flex{display:flex;}
  .sm\:grid{display:grid;}
  .sm\:hidden{display:none;}
  .sm\:flex-row{flex-direction:row;}
  .sm\:flex-col{flex-direction:column;}
  .sm\:items-center{align-items:center;}
  .sm\:justify-between{justify-content:space-between;}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sm\:text-base{font-size:1rem;line-height:1.5rem;}
  .sm\:text-lg{font-size:1.125rem;line-height:1.75rem;}
  .sm\:p-4{padding:1rem;}
  .sm\:p-6{padding:1.5rem;}
}

@media (min-width:768px){
  .md\:block{display:block;}
  .md\:inline{display:inline;}
  .md\:inline-block{display:inline-block;}
  .md\:flex{display:flex;}
  .md\:grid{display:grid;}
  .md\:hidden{display:none;}
  .md\:flex-row{flex-direction:row;}
  .md\:flex-col{flex-direction:column;}
  .md\:items-center{align-items:center;}
  .md\:justify-between{justify-content:space-between;}
  .md\:col-span-2{grid-column:span 2 / span 2;}
  .md\:col-span-3{grid-column:span 3 / span 3;}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .md\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr;}
  .md\:text-2xl{font-size:1.5rem;line-height:2rem;}
  .md\:text-3xl{font-size:1.875rem;line-height:2.25rem;}
  .md\:p-4{padding:1rem;}
  .md\:p-6{padding:1.5rem;}
  .md\:px-6{padding-left:1.5rem;padding-right:1.5rem;}
  .md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem;}
}

@media (min-width:1024px){
  .lg\:block{display:block;}
  .lg\:inline{display:inline;}
  .lg\:inline-block{display:inline-block;}
  .lg\:flex{display:flex;}
  .lg\:grid{display:grid;}
  .lg\:hidden{display:none;}
  .lg\:static{position:static;}
  .lg\:fixed{position:fixed;}
  .lg\:flex-row{flex-direction:row;}
  .lg\:flex-col{flex-direction:column;}
  .lg\:items-center{align-items:center;}
  .lg\:col-span-2{grid-column:span 2 / span 2;}
  .lg\:col-span-3{grid-column:span 3 / span 3;}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .lg\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px;}
  .lg\:grid-cols-\[1fr_380px\]{grid-template-columns:1fr 380px;}
  .lg\:grid-cols-\[1fr_420px\]{grid-template-columns:1fr 420px;}
  .lg\:translate-x-0{transform:translateX(0);}
  .lg\:text-2xl{font-size:1.5rem;line-height:2rem;}
  .lg\:text-3xl{font-size:1.875rem;line-height:2.25rem;}
  .lg\:p-6{padding:1.5rem;}
  .lg\:p-8{padding:2rem;}
}

@media (min-width:1280px){
  .xl\:block{display:block;}
  .xl\:flex{display:flex;}
  .xl\:hidden{display:none;}
  .xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
}
