/* Tailwind-lite utility set for OvertimeTaxFree.com (site-scoped).
   Goal: remove runtime Tailwind CDN and keep the current layout.
*/

/* --- Base / reset (minimal) --- */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e2e8f0}
html{line-height:1.5;-webkit-text-size-adjust:100%}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;background:#f8fafc;color:#1e293b}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:transparent}

/* --- Form / components that were previously inline --- */
input[type=range]{-webkit-appearance:none;width:100%;background:transparent}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:24px;width:24px;border-radius:50%;background:#2563eb;cursor:pointer;margin-top:-10px;box-shadow:0 2px 5px rgba(0,0,0,.2);border:2px solid #fff}
input[type=range]::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;background:#cbd5e1;border-radius:4px}
input:checked+div{background:#fff;color:#1e293b;box-shadow:0 2px 4px rgba(0,0,0,.05);font-weight:700;border:1px solid #e2e8f0}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}

/* --- Utility: display & layout --- */
.block{display:block}
.hidden{display:none}
.flex{display:flex}
.grid{display:grid}
.flex-col{flex-direction:column}
.flex-1{flex:1 1 0%}
.flex-grow{flex-grow:1}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.text-left{text-align:left}
.text-center{text-align:center}

.min-h-screen{min-height:100vh}
.sticky{position:sticky}
.top-0{top:0}
.z-50{z-index:50}

.w-full{width:100%}
.w-16{width:4rem}
.w-12{width:3rem}
.w-3{width:.75rem}
.h-3{height:.75rem}

.max-w-lg{max-width:32rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.mx-auto{margin-left:auto;margin-right:auto}

.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-8{gap:2rem}

/* --- Utility: spacing --- */
.p-1{padding:.25rem}
.p-4{padding:1rem}
.p-6{padding:1.5rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.pt-2{padding-top:.5rem}
.pt-8{padding-top:2rem}
.pb-12{padding-bottom:3rem}
.pl-5{padding-left:1.25rem}

.mt-1{margin-top:.25rem}
.mt-2{margin-top:.5rem}
.mt-3{margin-top:.75rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mt-16{margin-top:4rem}

.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-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mb-10{margin-bottom:2.5rem}

.mr-1{margin-right:.25rem}
.mr-2{margin-right:.5rem}

/* space-y utilities */
.space-y-1> :not([hidden])~ :not([hidden]){margin-top:.25rem}
.space-y-2> :not([hidden])~ :not([hidden]){margin-top:.5rem}
.space-y-4> :not([hidden])~ :not([hidden]){margin-top:1rem}
.space-y-6> :not([hidden])~ :not([hidden]){margin-top:1.5rem}

/* --- Utility: borders & rounding --- */
.border{border-width:1px}
.border-b{border-bottom-width:1px}
.border-t{border-top-width:1px}
.border-l-4{border-left-width:4px}

.border-slate-100{border-color:#f1f5f9}
.border-slate-200{border-color:#e2e8f0}
.border-blue-100{border-color:#dbeafe}
.border-blue-300{border-color:#93c5fd}
.border-blue-400{border-color:#60a5fa}
.border-green-500{border-color:#22c55e}

.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-full{border-radius:9999px}

/* --- Utility: shadows --- */
.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)}

/* --- Utility: background --- */
.bg-transparent{background-color:transparent}
.bg-white{background-color:#ffffff}
.bg-slate-50{background-color:#f8fafc}
.bg-slate-100{background-color:#f1f5f9}
.bg-slate-200{background-color:#e2e8f0}
.bg-blue-50{background-color:#eff6ff}
.bg-green-50{background-color:#f0fdf4}
.bg-green-400{background-color:#4ade80}

/* Gradient helpers */
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops, #000))}
.from-blue-600{--tw-gradient-from:#2563eb;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to, rgba(37,99,235,0))}
.to-indigo-700{--tw-gradient-to:#4338ca}

/* --- Utility: typography --- */
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.font-bold{font-weight:700}
.font-semibold{font-weight:600}
.italic{font-style:italic}
.uppercase{text-transform:uppercase}
.tracking-tight{letter-spacing:-.025em}
.tracking-wide{letter-spacing:.025em}
.tracking-widest{letter-spacing:.1em}
.leading-tight{line-height:1.25}
.leading-relaxed{line-height:1.625}

.text-[10px]{font-size:10px}
.text-\[10px\]{font-size:10px}
.text-[11px]{font-size:11px}
.text-\[11px\]{font-size:11px}
.text-xs{font-size:.75rem}
.text-sm{font-size:.875rem}
.text-base{font-size:1rem}
.text-xl{font-size:1.25rem}
.text-2xl{font-size:1.5rem}
.text-5xl{font-size:3rem;line-height:1}

.text-white{color:#ffffff}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-800{color:#1e293b}
.text-slate-900{color:#0f172a}
.text-blue-100{color:#dbeafe}
.text-blue-600{color:#2563eb}
.text-blue-700{color:#1d4ed8}
.text-blue-800{color:#1e40af}
.text-blue-900{color:#1e3a8a}
.text-green-800{color:#166534}
.text-green-900{color:#14532d}

.text-blue-100\/90{color:rgba(219,234,254,.9)}

/* --- Utility: misc --- */
.cursor-pointer{cursor:pointer}
.outline-none{outline:2px solid transparent;outline-offset:2px}
.transition{transition-property:all;transition-duration:150ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}
.list-disc{list-style-type:disc}

/* Accessibility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}

/* --- Variants (hover, group-hover) --- */
.hover\:underline:hover{text-decoration:underline}
.hover\:text-slate-900:hover{color:#0f172a}
.hover\:bg-slate-50:hover{background-color:#f8fafc}
.hover\:border-blue-300:hover{border-color:#93c5fd}
.hover\:border-blue-400:hover{border-color:#60a5fa}
.hover\:scale-\[1\.02\]:hover{transform:scale(1.02)}

.group:hover .group-hover\:text-blue-700{color:#1d4ed8}

/* --- Responsive (md) --- */
@media (min-width:768px){
  .md\:p-5{padding:1.25rem}
  .md\:p-8{padding:2rem}
  .md\:text-3xl{font-size:1.875rem;line-height:2.25rem}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}


/* --- P1.10 Mobile UX helpers --- */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:#ffffff;
  color:#0f172a;
  border:1px solid #cbd5e1;
  border-radius:9999px;
  padding:10px 14px;
  z-index:9999;
}
.skip-link:focus{
  left:12px;
  top:12px;
}

@media (max-width:480px){
  /* Prevent iOS zoom on focus */
  input[type="number"], input[type="text"], select, button, textarea{
    font-size:16px;
  }
  /* Larger tap targets for collapsibles */
  details > summary{
    padding:12px 12px;
  }
}

/* --- P1.15 Mobile QA fixes (iOS/Android) --- */

/* Better keyboard focus visibility (especially important with outline-none utility) */
:where(a, button, input, select, textarea, summary):focus{
  outline:2px solid #2563eb;
  outline-offset:2px;
}
:where(a, button, input, select, textarea, summary):focus:not(:focus-visible){
  outline:none;
}
:where(a, button, input, select, textarea, summary):focus-visible{
  outline:2px solid #2563eb;
  outline-offset:2px;
}

/* Reduce tap delays / highlight and improve touch interaction */
:where(a, button, summary){
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

/* Remove number spinners for cleaner mobile UX */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
input[type=number]{-moz-appearance:textfield;}

/* Anchor jumps shouldn't hide behind sticky header */
html{scroll-padding-top:84px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

/* Missing Tailwind-lite utilities (used across pages) */
.underline{text-decoration:underline;}
.inline-flex{display:inline-flex;}
.flex-wrap{flex-wrap:wrap;}
.gap-4{gap:1rem;}
.gap-6{gap:1.5rem;}
.max-w-5xl{max-width:64rem;}
.mt-5{margin-top:1.25rem;}
.mt-8{margin-top:2rem;}
.p-5{padding:1.25rem;}
.pb-10{padding-bottom:2.5rem;}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem;}
.shadow{box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);}
.bg-slate-900{background:#0f172a;}
.border-blue-200{border-color:#bfdbfe;}
.border-slate-300{border-color:#cbd5e1;}
.text-3xl{font-size:1.875rem;line-height:2.25rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-\[12px\]{font-size:12px;}
.text-blue-900\/80{color:rgba(30,58,138,.8);}
.text-blue-900\/90{color:rgba(30,58,138,.9);}

/* Tailwind's space-y utilities (simplified) */
.space-y-1 > :not([hidden]) ~ :not([hidden]){margin-top:.25rem;}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:.5rem;}
.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem;}
.space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.5rem;}

/* Group class used for hover patterns */
.group{position:relative;}
