/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
/* Compiled from resources/css/app.css — Sunrise Harbor design token system */

/* ── Preflight / Base Reset ────────────────────────────────────────────── */
*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}
html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}
body{margin:0;line-height:inherit}
hr{height:0;color:inherit;border-top-width:1px}
abbr:where([title]){text-decoration:underline dotted}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}
sup{top:-0.5em}
table{text-indent:0;border-color:inherit;border-collapse:collapse}
button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}
button,select{text-transform:none}
button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}
:-moz-focusring{outline:auto}
:-moz-ui-invalid{box-shadow:none}
progress{vertical-align:baseline}
::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
summary{display:list-item}
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}
fieldset{margin:0;padding:0}
legend{padding:0}
ol,ul,menu{list-style:none;margin:0;padding:0}
dialog{padding:0}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}
button,[role=button]{cursor:pointer}
:disabled{cursor:default}
img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}
img,video{max-width:100%;height:auto}
[hidden]:where(:not([hidden=until-found])){display:none}

/* ── CSS Custom Properties (from @theme block) ─────────────────────────── */
:root{
  --color-sky1: #a8d4ec;
  --color-sky2: #c5e2f0;
  --color-sky3: #f0e2c8;
  --color-bar-bg: #5a3a26;
  --color-bar-bg2: #8a5a3a;
  --color-violet: #4a7ec8;
  --color-orange-tag: #e08a3a;
  --color-green-tag: #6aa85a;
  --color-blue-tag: #4a8fc8;
  --color-star-yellow: #ffd86a;
  --color-star-orange: #e89a3a;
  --color-ink: #3a2818;
  --color-ink2: #6a5340;
  --color-card-bg: #f5e7c8;
  --color-line: #e4d3b0;
  --font-display: 'DM Serif Display', serif;
  --font-heading: 'Cinzel', serif;
  --font-body: 'Manrope', 'Work Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 28px;
  --spacing-2xl: 36px;
  --spacing-3xl: 60px;
  --radius-sm: 9px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --radius-2xl: 24px;
  --radius-pill: 9999px;
  --radius-nav: 22px;
  --radius-hero-frame: 24px;
  --radius-hero-image: 18px;
  --color-black: #000;
  --color-white: #fff;
  --color-red-50: #fef2f2;
  --color-red-100: #fee2e2;
  --color-red-200: #fecaca;
  --color-red-300: #fca5a5;
  --color-red-400: #f87171;
  --color-red-500: #ef4444;
  --color-red-600: #dc2626;
  --color-red-700: #b91c1c;
  --color-red-800: #991b1b;
  --color-red-900: #7f1d1d;
  --color-orange-50: #fff7ed;
  --color-orange-100: #ffedd5;
  --color-orange-200: #fed7aa;
  --color-orange-300: #fdba74;
  --color-orange-400: #fb923c;
  --color-orange-500: #f97316;
  --color-orange-600: #ea580c;
  --color-orange-700: #c2410c;
  --color-orange-800: #9a3412;
  --color-orange-900: #7c2d12;
  --color-yellow-50: #fefce8;
  --color-yellow-100: #fef9c3;
  --color-yellow-200: #fef08a;
  --color-yellow-300: #fde047;
  --color-yellow-400: #facc15;
  --color-yellow-500: #eab308;
  --color-yellow-600: #ca8a04;
  --color-yellow-700: #a16207;
  --color-yellow-800: #854d0e;
  --color-yellow-900: #713f12;
  --color-green-50: #f0fdf4;
  --color-green-100: #dcfce7;
  --color-green-200: #bbf7d0;
  --color-green-300: #86efac;
  --color-green-400: #4ade80;
  --color-green-500: #22c55e;
  --color-green-600: #16a34a;
  --color-green-700: #15803d;
  --color-green-800: #166534;
  --color-green-900: #14532d;
  --color-blue-50: #eff6ff;
  --color-blue-100: #dbeafe;
  --color-blue-200: #bfdbfe;
  --color-blue-300: #93c5fd;
  --color-blue-400: #60a5fa;
  --color-blue-500: #3b82f6;
  --color-blue-600: #2563eb;
  --color-blue-700: #1d4ed8;
  --color-blue-800: #1e40af;
  --color-blue-900: #1e3a8a;
  --color-gray-50: #f9fafb;
  --color-gray-100: #f3f4f6;
  --color-gray-200: #e5e7eb;
  --color-gray-300: #d1d5db;
  --color-gray-400: #9ca3af;
  --color-gray-500: #6b7280;
  --color-gray-600: #4b5563;
  --color-gray-700: #374151;
  --color-gray-800: #1f2937;
  --color-gray-900: #111827;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f5f5f5;
  --color-neutral-200: #e5e5e5;
  --color-neutral-300: #d4d4d4;
  --color-neutral-400: #a3a3a3;
  --color-neutral-500: #737373;
  --color-neutral-600: #525252;
  --color-neutral-700: #404040;
  --color-neutral-800: #262626;
  --color-neutral-900: #171717;
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-5xl: 3rem;
  --text-6xl: 3.75rem;
  --font-weight-thin: 100;
  --font-weight-extralight: 200;
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0/0.25);
  --opacity-0: 0;
  --opacity-5: 0.05;
  --opacity-10: 0.1;
  --opacity-20: 0.2;
  --opacity-25: 0.25;
  --opacity-30: 0.3;
  --opacity-40: 0.4;
  --opacity-50: 0.5;
  --opacity-60: 0.6;
  --opacity-70: 0.7;
  --opacity-75: 0.75;
  --opacity-80: 0.8;
  --opacity-90: 0.9;
  --opacity-95: 0.95;
  --opacity-100: 1;
  --transition-timing-function-ease: ease;
  --transition-timing-function-ease-in: ease-in;
  --transition-timing-function-ease-out: ease-out;
  --transition-timing-function-ease-in-out: ease-in-out;
  --transition-timing-function-linear: linear;
  --animate-spin: spin 1s linear infinite;
  --animate-ping: ping 1s cubic-bezier(0,0,0.2,1) infinite;
  --animate-pulse: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;
  --animate-bounce: bounce 1s infinite;
}

/* ── Core utility classes ───────────────────────────────────────────────── */
.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}
.pointer-events-none{pointer-events:none}
.pointer-events-auto{pointer-events:auto}
.visible{visibility:visible}
.invisible{visibility:hidden}
.static{position:static}
.fixed{position:fixed}
.absolute{position:absolute}
.relative{position:relative}
.sticky{position:sticky}
.inset-0{inset:0}
.inset-auto{inset:auto}
.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-auto{top:auto}
.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}
.m-0{margin:0}
.m-1{margin:0.25rem}
.m-2{margin:0.5rem}
.m-4{margin:1rem}
.m-auto{margin:auto}
.mx-auto{margin-left:auto;margin-right:auto}
.mx-0{margin-left:0;margin-right:0}
.my-0{margin-top:0;margin-bottom:0}
.my-2{margin-top:0.5rem;margin-bottom:0.5rem}
.my-4{margin-top:1rem;margin-bottom:1rem}
.my-8{margin-top:2rem;margin-bottom:2rem}
.mb-0{margin-bottom:0}
.mb-1{margin-bottom:0.25rem}
.mb-2{margin-bottom:0.5rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mt-0{margin-top:0}
.mt-1{margin-top:0.25rem}
.mt-2{margin-top:0.5rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.ml-auto{margin-left:auto}
.mr-auto{margin-right:auto}
.block{display:block}
.inline-block{display:inline-block}
.inline{display:inline}
.flex{display:flex}
.inline-flex{display:inline-flex}
.grid{display:grid}
.hidden{display:none}
.h-auto{height:auto}
.h-full{height:100%}
.h-screen{height:100vh}
.h-0{height:0}
.h-1{height:0.25rem}
.h-2{height:0.5rem}
.h-4{height:1rem}
.h-5{height:1.25rem}
.h-6{height:1.5rem}
.h-8{height:2rem}
.h-10{height:2.5rem}
.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-64{height:16rem}
.w-auto{width:auto}
.w-full{width:100%}
.w-screen{width:100vw}
.w-0{width:0}
.w-1{width:0.25rem}
.w-2{width:0.5rem}
.w-4{width:1rem}
.w-5{width:1.25rem}
.w-6{width:1.5rem}
.w-8{width:2rem}
.w-10{width:2.5rem}
.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-64{width:16rem}
.min-h-0{min-height:0}
.min-h-full{min-height:100%}
.min-h-screen{min-height:100vh}
.max-w-none{max-width:none}
.max-w-full{max-width:100%}
.max-w-screen-sm{max-width:640px}
.max-w-screen-md{max-width:768px}
.max-w-screen-lg{max-width:1024px}
.max-w-screen-xl{max-width:1280px}
.max-w-screen-2xl{max-width:1536px}
.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-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}
.max-w-7xl{max-width:80rem}
.flex-1{flex:1 1 0%}
.flex-auto{flex:1 1 auto}
.flex-none{flex:none}
.flex-col{flex-direction:column}
.flex-row{flex-direction:row}
.flex-wrap{flex-wrap:wrap}
.flex-nowrap{flex-wrap:nowrap}
.items-start{align-items:flex-start}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-stretch{align-items:stretch}
.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}
.gap-0{gap:0}
.gap-1{gap:0.25rem}
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.gap-10{gap:2.5rem}
.gap-12{gap:3rem}
.gap-x-2{column-gap:0.5rem}
.gap-x-4{column-gap:1rem}
.gap-x-6{column-gap:1.5rem}
.gap-y-2{row-gap:0.5rem}
.gap-y-4{row-gap:1rem}
.gap-y-6{row-gap:1.5rem}
.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))}
.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}
.overflow-auto{overflow:auto}
.overflow-hidden{overflow:hidden}
.overflow-visible{overflow:visible}
.overflow-x-auto{overflow-x:auto}
.overflow-y-auto{overflow-y:auto}
.overflow-x-hidden{overflow-x:hidden}
.overflow-y-hidden{overflow-y:hidden}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whitespace-normal{white-space:normal}
.whitespace-nowrap{white-space:nowrap}
.whitespace-pre{white-space:pre}
.whitespace-pre-wrap{white-space:pre-wrap}
.break-words{overflow-wrap:break-word}
.break-all{word-break:break-all}
.rounded-none{border-radius:0}
.rounded-sm{border-radius:var(--radius-sm)}
.rounded-md{border-radius:var(--radius-md)}
.rounded-lg{border-radius:var(--radius-lg)}
.rounded-xl{border-radius:var(--radius-xl)}
.rounded-2xl{border-radius:var(--radius-2xl)}
.rounded-full{border-radius:var(--radius-pill)}
.rounded-pill{border-radius:var(--radius-pill)}
.rounded-nav{border-radius:var(--radius-nav)}
.rounded-hero-frame{border-radius:var(--radius-hero-frame)}
.rounded-hero-image{border-radius:var(--radius-hero-image)}
.border{border-width:1px}
.border-0{border-width:0}
.border-2{border-width:2px}
.border-t{border-top-width:1px}
.border-b{border-bottom-width:1px}
.border-l{border-left-width:1px}
.border-r{border-right-width:1px}
.border-solid{border-style:solid}
.border-dashed{border-style:dashed}
.border-dotted{border-style:dotted}
.border-none{border-style:none}
.border-transparent{border-color:transparent}
.border-current{border-color:currentColor}
.border-black{border-color:var(--color-black)}
.border-white{border-color:var(--color-white)}
.border-sky1{border-color:var(--color-sky1)}
.border-sky2{border-color:var(--color-sky2)}
.border-sky3{border-color:var(--color-sky3)}
.border-bar-bg{border-color:var(--color-bar-bg)}
.border-bar-bg2{border-color:var(--color-bar-bg2)}
.border-violet{border-color:var(--color-violet)}
.border-orange-tag{border-color:var(--color-orange-tag)}
.border-green-tag{border-color:var(--color-green-tag)}
.border-blue-tag{border-color:var(--color-blue-tag)}
.border-star-yellow{border-color:var(--color-star-yellow)}
.border-star-orange{border-color:var(--color-star-orange)}
.border-ink{border-color:var(--color-ink)}
.border-ink2{border-color:var(--color-ink2)}
.border-card-bg{border-color:var(--color-card-bg)}
.border-line{border-color:var(--color-line)}
.border-gray-200{border-color:var(--color-gray-200)}
.border-gray-300{border-color:var(--color-gray-300)}

/* ── Background colors ──────────────────────────────────────────────────── */
.bg-transparent{background-color:transparent}
.bg-current{background-color:currentColor}
.bg-black{background-color:var(--color-black)}
.bg-white{background-color:var(--color-white)}
.bg-sky1{background-color:var(--color-sky1)}
.bg-sky2{background-color:var(--color-sky2)}
.bg-sky3{background-color:var(--color-sky3)}
.bg-bar-bg{background-color:var(--color-bar-bg)}
.bg-bar-bg2{background-color:var(--color-bar-bg2)}
.bg-violet{background-color:var(--color-violet)}
.bg-orange-tag{background-color:var(--color-orange-tag)}
.bg-green-tag{background-color:var(--color-green-tag)}
.bg-blue-tag{background-color:var(--color-blue-tag)}
.bg-star-yellow{background-color:var(--color-star-yellow)}
.bg-star-orange{background-color:var(--color-star-orange)}
.bg-ink{background-color:var(--color-ink)}
.bg-ink2{background-color:var(--color-ink2)}
.bg-card-bg{background-color:var(--color-card-bg)}
.bg-line{background-color:var(--color-line)}
.bg-gray-50{background-color:var(--color-gray-50)}
.bg-gray-100{background-color:var(--color-gray-100)}
.bg-gray-200{background-color:var(--color-gray-200)}
.bg-gray-300{background-color:var(--color-gray-300)}
.bg-gray-400{background-color:var(--color-gray-400)}
.bg-gray-500{background-color:var(--color-gray-500)}
.bg-gray-600{background-color:var(--color-gray-600)}
.bg-gray-700{background-color:var(--color-gray-700)}
.bg-gray-800{background-color:var(--color-gray-800)}
.bg-gray-900{background-color:var(--color-gray-900)}
.bg-red-500{background-color:var(--color-red-500)}
.bg-red-600{background-color:var(--color-red-600)}
.bg-green-500{background-color:var(--color-green-500)}
.bg-blue-500{background-color:var(--color-blue-500)}
.bg-yellow-400{background-color:var(--color-yellow-400)}

/* ── Text colors ────────────────────────────────────────────────────────── */
.text-transparent{color:transparent}
.text-current{color:currentColor}
.text-black{color:var(--color-black)}
.text-white{color:var(--color-white)}
.text-sky1{color:var(--color-sky1)}
.text-sky2{color:var(--color-sky2)}
.text-sky3{color:var(--color-sky3)}
.text-bar-bg{color:var(--color-bar-bg)}
.text-bar-bg2{color:var(--color-bar-bg2)}
.text-violet{color:var(--color-violet)}
.text-orange-tag{color:var(--color-orange-tag)}
.text-green-tag{color:var(--color-green-tag)}
.text-blue-tag{color:var(--color-blue-tag)}
.text-star-yellow{color:var(--color-star-yellow)}
.text-star-orange{color:var(--color-star-orange)}
.text-ink{color:var(--color-ink)}
.text-ink2{color:var(--color-ink2)}
.text-card-bg{color:var(--color-card-bg)}
.text-line{color:var(--color-line)}
.text-gray-50{color:var(--color-gray-50)}
.text-gray-100{color:var(--color-gray-100)}
.text-gray-200{color:var(--color-gray-200)}
.text-gray-300{color:var(--color-gray-300)}
.text-gray-400{color:var(--color-gray-400)}
.text-gray-500{color:var(--color-gray-500)}
.text-gray-600{color:var(--color-gray-600)}
.text-gray-700{color:var(--color-gray-700)}
.text-gray-800{color:var(--color-gray-800)}
.text-gray-900{color:var(--color-gray-900)}
.text-red-500{color:var(--color-red-500)}
.text-red-600{color:var(--color-red-600)}
.text-green-500{color:var(--color-green-500)}
.text-green-600{color:var(--color-green-600)}
.text-blue-500{color:var(--color-blue-500)}

/* ── Typography ─────────────────────────────────────────────────────────── */
.font-display{font-family:var(--font-display)}
.font-heading{font-family:var(--font-heading)}
.font-body{font-family:var(--font-body)}
.font-mono{font-family:var(--font-mono)}
.font-thin{font-weight:var(--font-weight-thin)}
.font-extralight{font-weight:var(--font-weight-extralight)}
.font-light{font-weight:var(--font-weight-light)}
.font-normal{font-weight:var(--font-weight-normal)}
.font-medium{font-weight:var(--font-weight-medium)}
.font-semibold{font-weight:var(--font-weight-semibold)}
.font-bold{font-weight:var(--font-weight-bold)}
.font-extrabold{font-weight:var(--font-weight-extrabold)}
.font-black{font-weight:var(--font-weight-black)}
.text-xs{font-size:var(--text-xs)}
.text-sm{font-size:var(--text-sm)}
.text-base{font-size:var(--text-base)}
.text-lg{font-size:var(--text-lg)}
.text-xl{font-size:var(--text-xl)}
.text-2xl{font-size:var(--text-2xl)}
.text-3xl{font-size:var(--text-3xl)}
.text-4xl{font-size:var(--text-4xl)}
.text-5xl{font-size:var(--text-5xl)}
.text-6xl{font-size:var(--text-6xl)}
.text-left{text-align:left}
.text-center{text-align:center}
.text-right{text-align:right}
.text-justify{text-align:justify}
.italic{font-style:italic}
.not-italic{font-style:normal}
.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}
.tracking-tighter{letter-spacing:-0.05em}
.tracking-tight{letter-spacing:-0.025em}
.tracking-normal{letter-spacing:0}
.tracking-wide{letter-spacing:0.025em}
.tracking-wider{letter-spacing:0.05em}
.tracking-widest{letter-spacing:0.1em}
.uppercase{text-transform:uppercase}
.lowercase{text-transform:lowercase}
.capitalize{text-transform:capitalize}
.normal-case{text-transform:none}
.underline{text-decoration-line:underline}
.no-underline{text-decoration-line:none}
.line-through{text-decoration-line:line-through}

/* ── Padding ────────────────────────────────────────────────────────────── */
.p-0{padding:0}
.p-1{padding:0.25rem}
.p-2{padding:0.5rem}
.p-3{padding:0.75rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.p-10{padding:2.5rem}
.p-12{padding:3rem}
.px-0{padding-left:0;padding-right:0}
.px-1{padding-left:0.25rem;padding-right:0.25rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-3{padding-left:0.75rem;padding-right:0.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}
.px-8{padding-left:2rem;padding-right:2rem}
.px-10{padding-left:2.5rem;padding-right:2.5rem}
.px-12{padding-left:3rem;padding-right:3rem}
.py-0{padding-top:0;padding-bottom:0}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-3{padding-top:0.75rem;padding-bottom:0.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}
.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-0{padding-top:0}
.pt-2{padding-top:0.5rem}
.pt-4{padding-top:1rem}
.pt-6{padding-top:1.5rem}
.pt-8{padding-top:2rem}
.pb-0{padding-bottom:0}
.pb-2{padding-bottom:0.5rem}
.pb-4{padding-bottom:1rem}
.pb-6{padding-bottom:1.5rem}
.pb-8{padding-bottom:2rem}
.pl-0{padding-left:0}
.pl-2{padding-left:0.5rem}
.pl-4{padding-left:1rem}
.pr-0{padding-right:0}
.pr-2{padding-right:0.5rem}
.pr-4{padding-right:1rem}

/* ── Spacing utilities using custom spacing tokens ──────────────────────── */
.p-xs{padding:var(--spacing-xs)}
.p-sm{padding:var(--spacing-sm)}
.p-md{padding:var(--spacing-md)}
.p-lg{padding:var(--spacing-lg)}
.p-xl{padding:var(--spacing-xl)}
.p-2xl{padding:var(--spacing-2xl)}
.p-3xl{padding:var(--spacing-3xl)}
.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}
.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}
.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}
.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}
.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}
.px-2xl{padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl)}
.px-3xl{padding-left:var(--spacing-3xl);padding-right:var(--spacing-3xl)}
.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}
.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}
.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}
.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}
.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}
.py-2xl{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}
.py-3xl{padding-top:var(--spacing-3xl);padding-bottom:var(--spacing-3xl)}
.gap-xs{gap:var(--spacing-xs)}
.gap-sm{gap:var(--spacing-sm)}
.gap-md{gap:var(--spacing-md)}
.gap-lg{gap:var(--spacing-lg)}
.gap-xl{gap:var(--spacing-xl)}
.gap-2xl{gap:var(--spacing-2xl)}
.gap-3xl{gap:var(--spacing-3xl)}

/* ── Shadow ─────────────────────────────────────────────────────────────── */
.shadow-none{box-shadow:none}
.shadow-sm{box-shadow:var(--shadow-sm)}
.shadow-md{box-shadow:var(--shadow-md)}
.shadow-lg{box-shadow:var(--shadow-lg)}
.shadow-xl{box-shadow:var(--shadow-xl)}
.shadow-2xl{box-shadow:var(--shadow-2xl)}

/* ── Opacity ────────────────────────────────────────────────────────────── */
.opacity-0{opacity:0}
.opacity-25{opacity:0.25}
.opacity-50{opacity:0.5}
.opacity-75{opacity:0.75}
.opacity-100{opacity:1}

/* ── Cursor ─────────────────────────────────────────────────────────────── */
.cursor-auto{cursor:auto}
.cursor-default{cursor:default}
.cursor-pointer{cursor:pointer}
.cursor-not-allowed{cursor:not-allowed}

/* ── Transition & Animation ─────────────────────────────────────────────── */
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.duration-75{transition-duration:75ms}
.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}
.duration-1000{transition-duration:1000ms}
.ease-linear{transition-timing-function:linear}
.ease-in{transition-timing-function:cubic-bezier(0.4,0,1,1)}
.ease-out{transition-timing-function:cubic-bezier(0,0,0.2,1)}
.ease-in-out{transition-timing-function:cubic-bezier(0.4,0,0.2,1)}

/* ── Transform ──────────────────────────────────────────────────────────── */
.scale-100{transform:scale(1)}
.scale-105{transform:scale(1.05)}
.scale-110{transform:scale(1.1)}
.scale-95{transform:scale(0.95)}
.rotate-0{transform:rotate(0deg)}
.rotate-45{transform:rotate(45deg)}
.rotate-90{transform:rotate(90deg)}
.rotate-180{transform:rotate(180deg)}
.translate-x-0{transform:translateX(0)}
.translate-y-0{transform:translateY(0)}
.-translate-y-1{transform:translateY(-0.25rem)}
.-translate-y-2{transform:translateY(-0.5rem)}

/* ── Hover / Focus state utilities ─────────────────────────────────────── */
.hover\:bg-sky1:hover{background-color:var(--color-sky1)}
.hover\:bg-sky2:hover{background-color:var(--color-sky2)}
.hover\:bg-bar-bg:hover{background-color:var(--color-bar-bg)}
.hover\:bg-bar-bg2:hover{background-color:var(--color-bar-bg2)}
.hover\:bg-violet:hover{background-color:var(--color-violet)}
.hover\:bg-card-bg:hover{background-color:var(--color-card-bg)}
.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}
.hover\:bg-white:hover{background-color:var(--color-white)}
.hover\:text-sky1:hover{color:var(--color-sky1)}
.hover\:text-sky2:hover{color:var(--color-sky2)}
.hover\:text-violet:hover{color:var(--color-violet)}
.hover\:text-ink:hover{color:var(--color-ink)}
.hover\:text-white:hover{color:var(--color-white)}
.hover\:text-gray-700:hover{color:var(--color-gray-700)}
.hover\:border-sky1:hover{border-color:var(--color-sky1)}
.hover\:border-violet:hover{border-color:var(--color-violet)}
.hover\:opacity-80:hover{opacity:0.8}
.hover\:opacity-90:hover{opacity:0.9}
.hover\:shadow-md:hover{box-shadow:var(--shadow-md)}
.hover\:shadow-lg:hover{box-shadow:var(--shadow-lg)}
.hover\:scale-105:hover{transform:scale(1.05)}
.hover\:-translate-y-1:hover{transform:translateY(-0.25rem)}
.hover\:-translate-y-2:hover{transform:translateY(-0.5rem)}
.hover\:underline:hover{text-decoration-line:underline}
.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}
.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--color-violet)}
.focus-visible\:outline-violet:focus-visible{outline:2px solid var(--color-violet)}
.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}

/* ── Responsive breakpoints ─────────────────────────────────────────────── */
@media(min-width:640px){
  .sm\:block{display:block}
  .sm\:flex{display:flex}
  .sm\:hidden{display:none}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:w-full{width:100%}
  .sm\:max-w-full{max-width:100%}
  .sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}
  .sm\:py-4{padding-top:1rem;padding-bottom:1rem}
  .sm\:text-xl{font-size:var(--text-xl)}
  .sm\:text-2xl{font-size:var(--text-2xl)}
  .sm\:text-3xl{font-size:var(--text-3xl)}
}
@media(min-width:768px){
  .md\:block{display:block}
  .md\:flex{display:flex}
  .md\:hidden{display:none}
  .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\:w-1\/2{width:50%}
  .md\:w-full{width:100%}
  .md\:max-w-screen-md{max-width:768px}
  .md\:px-8{padding-left:2rem;padding-right:2rem}
  .md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}
  .md\:text-2xl{font-size:var(--text-2xl)}
  .md\:text-3xl{font-size:var(--text-3xl)}
  .md\:text-4xl{font-size:var(--text-4xl)}
  .md\:flex-row{flex-direction:row}
}
@media(min-width:1024px){
  .lg\:block{display:block}
  .lg\:flex{display:flex}
  .lg\:hidden{display:none}
  .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\:w-1\/2{width:50%}
  .lg\:w-1\/3{width:33.333333%}
  .lg\:w-2\/3{width:66.666667%}
  .lg\:w-full{width:100%}
  .lg\:max-w-screen-lg{max-width:1024px}
  .lg\:max-w-7xl{max-width:80rem}
  .lg\:px-8{padding-left:2rem;padding-right:2rem}
  .lg\:px-12{padding-left:3rem;padding-right:3rem}
  .lg\:py-8{padding-top:2rem;padding-bottom:2rem}
  .lg\:text-3xl{font-size:var(--text-3xl)}
  .lg\:text-4xl{font-size:var(--text-4xl)}
  .lg\:text-5xl{font-size:var(--text-5xl)}
  .lg\:flex-row{flex-direction:row}
}
@media(min-width:1280px){
  .xl\:block{display:block}
  .xl\:flex{display:flex}
  .xl\:hidden{display:none}
  .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .xl\:w-full{width:100%}
  .xl\:max-w-7xl{max-width:80rem}
  .xl\:px-12{padding-left:3rem;padding-right:3rem}
  .xl\:text-5xl{font-size:var(--text-5xl)}
  .xl\:text-6xl{font-size:var(--text-6xl)}
}
@media(min-width:1536px){
  .\32xl\:block{display:block}
  .\32xl\:max-w-screen-2xl{max-width:1536px}
}

/* ── Custom component helpers (from resources/css/app.css) ──────────────── */
.card-hover{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.card-hover:hover{background:#fbf3e0;border-color:#d9c48a}
a:focus-visible,button:focus-visible{outline:2px solid #4a7ec8;outline-offset:2px}
