/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,::after,::before{box-sizing:border-box}
html{-moz-tab-size:4;tab-size:4}
html{line-height:1.15;-webkit-text-size-adjust:100%}
body{margin:0}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}
hr{height:0;color:inherit}
abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
b,strong{font-weight:bolder}
code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-.25em}
sup{top:-.5em}
table{text-indent:0;border-color:inherit}
button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
button,select{text-transform:none}
[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}
::-moz-focus-inner{border-style:none;padding:0}
:-moz-focusring{outline:1px dotted ButtonText}
:-moz-ui-invalid{box-shadow:none}
legend{padding:0}
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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}
button{background-color:transparent;background-image:none}
fieldset{margin:0;padding:0}
ol,ul{list-style:none;margin:0;padding:0}
html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}
body{font-family:inherit;line-height:inherit}
*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}
hr{border-top-width:1px}
img{border-style:solid}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}
[role=button],button{cursor:pointer}
:-moz-focusring{outline:auto}
table{border-collapse:collapse}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}
code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}
img,video{max-width:100%;height:auto}
[hidden]{display:none}
*,::after,::before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}
.container{width:100%}
.fixed{position:fixed}
.absolute{position:absolute}
.relative{position:relative}
.sticky{position:sticky}
.inset-0{top:0;right:0;bottom:0;left:0}
.inset-y-0{top:0;bottom:0}
.top-6{top:1.5rem}
.top-1\/2{top:50%}
.-right-10{right:-2.5rem}
.-bottom-10{bottom:-2.5rem}
.left-0{left:0}
.z-10{z-index:10}
.z-20{z-index:20}
.z-50{z-index:50}
.mx-auto{margin-left:auto;margin-right:auto}
.my-6{margin-top:1.5rem;margin-bottom:1.5rem}
.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-12{margin-top:3rem}
.mt-1\.5{margin-top:.375rem}
.mt-2\.5{margin-top:.625rem}
.mr-1{margin-right:.25rem}
.mr-4{margin-right:1rem}
.mr-1\.5{margin-right:.375rem}
.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}
.mb-1\.5{margin-bottom:.375rem}
.mb-2\.5{margin-bottom:.625rem}
.block{display:block}
.inline-block{display:inline-block}
.inline{display:inline}
.flex{display:flex}
.inline-flex{display:inline-flex}
.table{display:table}
.grid{display:grid}
.hidden{display:none}
.h-2{height:.5rem}
.h-3{height:.75rem}
.h-8{height:2rem}
.h-10{height:2.5rem}
.h-16{height:4rem}
.h-20{height:5rem}
.h-44{height:11rem}
.h-48{height:12rem}
.h-72{height:18rem}
.h-full{height:100%}
.h-screen{height:100vh}
.w-2{width:.5rem}
.w-3{width:.75rem}
.w-4{width:1rem}
.w-5{width:1.25rem}
.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-36{width:9rem}
.w-44{width:11rem}
.w-48{width:12rem}
.w-64{width:16rem}
.w-full{width:100%}
.min-w-0{min-width:0}
.max-w-xs{max-width:20rem}
.max-w-md{max-width:28rem}
.max-w-lg{max-width:32rem}
.max-w-xl{max-width:36rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.flex-1{flex:1 1 0%}
.flex-shrink-0{flex-shrink:0}
.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.-translate-y-1\/2{--tw-translate-y:-50%}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.animate-fade-in{animation:fadeIn 0.3s ease-out}
.cursor-pointer{cursor:pointer}
.cursor-not-allowed{cursor:not-allowed}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-start{align-items:flex-start}
.items-end{align-items:flex-end}
.items-center{align-items:center}
.justify-end{justify-content:flex-end}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.gap-1{gap:.25rem}
.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-1\.5{gap:.375rem}
.gap-2\.5{gap:.625rem}
.gap-3\.5{gap:.875rem}
.gap-x-4{column-gap:1rem}
.gap-y-1{row-gap:.25rem}
.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}
.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}
.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}
.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}
.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}
.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}
.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}
.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}
.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}
.self-start{align-self:flex-start}
.overflow-hidden{overflow:hidden}
.overflow-x-auto{overflow-x:auto}
.overflow-y-auto{overflow-y:auto}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whitespace-nowrap{white-space:nowrap}
.whitespace-pre-line{white-space:pre-line}
.rounded{border-radius:.25rem}
.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}
.border-2{border-width:2px}
.border{border-width:1px}
.border-t{border-top-width:1px}
.border-r{border-right-width:1px}
.border-b{border-bottom-width:1px}
.border-dashed{border-style:dashed}
.border-blue-100{--tw-border-opacity:1;border-color:rgba(219,234,254,var(--tw-border-opacity))}
.border-blue-200{--tw-border-opacity:1;border-color:rgba(191,219,254,var(--tw-border-opacity))}
.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}
.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239,246,255,var(--tw-bg-opacity))}
.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219,234,254,var(--tw-bg-opacity))}
.bg-blue-500{--tw-bg-opacity:1;background-color:rgba(59,130,246,var(--tw-bg-opacity))}
.bg-blue-600{--tw-bg-opacity:1;background-color:rgba(37,99,235,var(--tw-bg-opacity))}
.bg-indigo-50{--tw-bg-opacity:1;background-color:rgba(238,242,255,var(--tw-bg-opacity))}
.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}
.from-blue-600{--tw-gradient-from:#2563eb;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to, rgba(37, 99, 235, 0))}
.from-blue-700{--tw-gradient-from:#1d4ed8;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to, rgba(29, 78, 216, 0))}
.from-blue-900{--tw-gradient-from:#1e3a8a;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to, rgba(30, 58, 138, 0))}
.via-indigo-700{--tw-gradient-stops:var(--tw-gradient-from),#4338ca,var(--tw-gradient-to, rgba(67, 56, 202, 0))}
.to-indigo-500{--tw-gradient-to:#6366f1}
.to-indigo-600{--tw-gradient-to:#4f46e5}
.to-indigo-900{--tw-gradient-to:#312e81}
.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}
.p-1\.5{padding:.375rem}
.p-2\.5{padding:.625rem}
.p-3\.5{padding:.875rem}
.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}
.px-2\.5{padding-left:.625rem;padding-right:.625rem}
.px-3\.5{padding-left:.875rem;padding-right:.875rem}
.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-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}
.pt-1{padding-top:.25rem}
.pt-2{padding-top:.5rem}
.pt-3{padding-top:.75rem}
.pt-4{padding-top:1rem}
.pt-5{padding-top:1.25rem}
.pt-6{padding-top:1.5rem}
.pt-2\.5{padding-top:.625rem}
.pr-3{padding-right:.75rem}
.pr-4{padding-right:1rem}
.pr-3\.5{padding-right:.875rem}
.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}
.pb-1\.5{padding-bottom:.375rem}
.pb-2\.5{padding-bottom:.625rem}
.pb-3\.5{padding-bottom:.875rem}
.pl-2{padding-left:.5rem}
.pl-6{padding-left:1.5rem}
.pl-7{padding-left:1.75rem}
.pl-9{padding-left:2.25rem}
.pl-10{padding-left:2.5rem}
.text-left{text-align:left}
.text-center{text-align:center}
.text-right{text-align:right}
.align-top{vertical-align:top}
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",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}
.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}
.uppercase{text-transform:uppercase}
.italic{font-style:italic}
.leading-none{line-height:1}
.leading-tight{line-height:1.25}
.leading-relaxed{line-height:1.625}
.tracking-tight{letter-spacing:-.025em}
.tracking-wider{letter-spacing:.05em}
.tracking-widest{letter-spacing:.1em}
.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}
.text-blue-200{--tw-text-opacity:1;color:rgba(191,219,254,var(--tw-text-opacity))}
.text-blue-300{--tw-text-opacity:1;color:rgba(147,197,253,var(--tw-text-opacity))}
.text-blue-400{--tw-text-opacity:1;color:rgba(96,165,250,var(--tw-text-opacity))}
.text-blue-500{--tw-text-opacity:1;color:rgba(59,130,246,var(--tw-text-opacity))}
.text-blue-600{--tw-text-opacity:1;color:rgba(37,99,235,var(--tw-text-opacity))}
.text-blue-700{--tw-text-opacity:1;color:rgba(29,78,216,var(--tw-text-opacity))}
.text-blue-800{--tw-text-opacity:1;color:rgba(30,64,175,var(--tw-text-opacity))}
.text-blue-900{--tw-text-opacity:1;color:rgba(30,58,138,var(--tw-text-opacity))}
.text-blue-950{color:#172554}
.text-indigo-600{--tw-text-opacity:1;color:rgba(79,70,229,var(--tw-text-opacity))}
.text-indigo-700{--tw-text-opacity:1;color:rgba(67,56,202,var(--tw-text-opacity))}
.text-indigo-800{--tw-text-opacity:1;color:rgba(55,48,163,var(--tw-text-opacity))}
.underline{text-decoration:underline}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.opacity-75{opacity:.75}
*,::after,::before{--tw-shadow:0 0 #0000}
.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow{--tw-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.25);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
*,::after,::before{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}
.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
.blur-2xl{--tw-blur:blur(40px)}
.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.duration-300{transition-duration:.3s}
.sm\:block{display:block}
.sm\:inline{display:inline}
.sm\:w-72{width:18rem}
.sm\:w-auto{width:auto}
.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\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sm\:flex-row{flex-direction:row}
.sm\:items-center{align-items:center}
.sm\:self-auto{align-self:auto}
.sm\:p-8{padding:2rem}
.sm\:text-right{text-align:right}
.sm\:text-base{font-size:1rem;line-height:1.5rem}
.sm\:text-2xl{font-size:1.5rem;line-height:2rem}
.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.md\:flex-row{flex-direction:row}
.md\:items-center{align-items:center}
.md\:p-8{padding:2rem}
.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}
.lg\:col-span-2{grid-column:span 2/span 2}
.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ===================================================
   CUSTOM DESIGN SYSTEM - MODERNIZED UI v2.0
   =================================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

:root {
    --brand-600: #2563eb;
    --brand-700: #1d4ed8;
    --surface: #ffffff;
    --border: #e2e8f0;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --text-muted: #94a3b8;
    --radius-card: 1.25rem;
    --shadow-card: 0 1px 3px 0 rgba(0,0,0,.06), 0 1px 2px -1px rgba(0,0,0,.04);
    --shadow-hover: 0 8px 24px -4px rgba(0,0,0,.10);
}

body, html {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    -webkit-font-smoothing: antialiased;
    background-color: #f1f5f9;
}

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* ── Brand Colors ── */
.bg-brand-50  { background-color: #eff6ff !important; }
.bg-brand-100 { background-color: #dbeafe !important; }
.bg-brand-600 { background-color: #2563eb !important; }
.text-brand-600 { color: #2563eb !important; }
.text-brand-700 { color: #1d4ed8 !important; }
.border-brand-200 { border-color: #bfdbfe !important; }

/* ── Slate ── */
.bg-slate-50  { background-color: #f8fafc; }
.bg-slate-100 { background-color: #f1f5f9; }
.bg-slate-200 { background-color: #e2e8f0; }
.bg-slate-800 { background-color: #1e293b; }
.bg-slate-900 { background-color: #0f172a; }
.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; }
.border-slate-100 { border-color: #f1f5f9; }
.border-slate-200 { border-color: #e2e8f0; }

/* ── Emerald ── */
.bg-emerald-50  { background-color: #ecfdf5; }
.bg-emerald-100 { background-color: #d1fae5; }
.text-emerald-600 { color: #059669; }
.text-emerald-700 { color: #047857; }
.text-emerald-800 { color: #065f46; }
.border-emerald-200 { border-color: #a7f3d0; }

/* ── Rose ── */
.bg-rose-50  { background-color: #fff1f2; }
.bg-rose-100 { background-color: #ffe4e6; }
.text-rose-600  { color: #e11d48; }
.text-rose-700  { color: #be123c; }
.border-rose-200 { border-color: #fecdd3; }

/* ── Amber ── */
.bg-amber-50  { background-color: #fffbeb; }
.bg-amber-100 { background-color: #fef3c7; }
.text-amber-600 { color: #d97706; }
.text-amber-700 { color: #b45309; }
.border-amber-200 { border-color: #fde68a; }
.text-amber-700 { color: #b45309; }

/* ── Indigo extras ── */
.bg-indigo-100 { background-color: #e0e7ff; }
.border-indigo-200 { border-color: #c7d2fe; }
.text-indigo-500 { color: #6366f1; }

/* ── Rounded ── */
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }

/* Shadow colored */
.shadow-blue-500\/20  { box-shadow: 0 4px 12px rgba(59,130,246,.2); }
.shadow-blue-500\/25  { box-shadow: 0 6px 16px rgba(59,130,246,.25); }
.shadow-blue-600\/20  { box-shadow: 0 4px 12px rgba(37,99,235,.2); }

/* ───────────────────────────────────────────────
   SIDEBAR - Dark Navy Gradient
   ─────────────────────────────────────────────── */
#mainSidebar {
    background: linear-gradient(165deg, #0c1629 0%, #0f1e3d 50%, #0a1628 100%) !important;
    border-right: none !important;
    box-shadow: 4px 0 30px rgba(0,0,0,.25), 1px 0 0 rgba(255,255,255,.05) !important;
    width: 16rem !important;
}

/* Sidebar brand header */
#mainSidebar > div:first-child {
    background: rgba(255,255,255,.04) !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    padding: 1.25rem 1.25rem !important;
}

/* Brand logo icon */
#mainSidebar .w-10.h-10 {
    background: linear-gradient(135deg, #2563eb, #4f46e5) !important;
    box-shadow: 0 4px 14px rgba(37,99,235,.45) !important;
}
#mainSidebar h1 { color: #f1f5f9 !important; }
#mainSidebar h1 + span {
    background: rgba(16,185,129,.15) !important;
    color: #34d399 !important;
    border-color: rgba(52,211,153,.25) !important;
}

/* Sidebar nav section labels */
#mainSidebar .pt-3.pb-1.px-3 {
    color: rgba(148,163,184,.5) !important;
    font-size: .62rem !important;
    letter-spacing: .1em !important;
}

/* Sidebar nav links */
#mainSidebar nav a {
    color: rgba(203,213,225,.8) !important;
    border-radius: .625rem !important;
    transition: all .18s ease !important;
    font-size: .78rem !important;
    margin-bottom: .125rem;
}
#mainSidebar nav a:hover {
    background: rgba(255,255,255,.07) !important;
    color: #f1f5f9 !important;
    transform: translateX(2px);
}
#mainSidebar nav a.bg-blue-600 {
    background: linear-gradient(90deg, rgba(37,99,235,.9), rgba(79,70,229,.7)) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 12px rgba(37,99,235,.35) !important;
    transform: none !important;
}

/* Sub-labels AHU / Pajak */
#mainSidebar .text-blue-700 { color: #60a5fa !important; }
#mainSidebar .text-amber-700 { color: #fbbf24 !important; }

/* Sidebar sub-links */
#mainSidebar nav a.pl-7 {
    color: rgba(148,163,184,.75) !important;
    font-size: .73rem !important;
}
#mainSidebar nav a.pl-7:hover { color: #cbd5e1 !important; }
#mainSidebar nav a.pl-7.bg-blue-600 { color: #fff !important; }

/* Sidebar footer */
#mainSidebar > div:last-child {
    background: rgba(0,0,0,.3) !important;
    border-top: 1px solid rgba(255,255,255,.06) !important;
}
#mainSidebar .text-slate-800 { color: #e2e8f0 !important; }
#mainSidebar .text-\[10px\].text-slate-500 { color: #64748b !important; }
#mainSidebar .w-8.h-8.rounded-full { background: rgba(37,99,235,.25) !important; color: #93c5fd !important; }
#mainSidebar a[title="Keluar"]:hover { color: #f87171 !important; background: rgba(239,68,68,.12) !important; }

/* Sidebar close btn (mobile) */
#sidebarCloseBtn { color: rgba(203,213,225,.6) !important; }
#sidebarCloseBtn:hover { color: #f1f5f9 !important; }

/* ───────────────────────────────────────────────
   TOP HEADER
   ─────────────────────────────────────────────── */
#mainContent > header {
    background: rgba(255,255,255,.97) !important;
    backdrop-filter: blur(10px) !important;
    border-bottom: 1px solid #e8eef6 !important;
    box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 2px 12px rgba(0,0,0,.04) !important;
    height: 4rem !important;
}

/* ───────────────────────────────────────────────
   FORMS - Refined Inputs
   ─────────────────────────────────────────────── */
input[type="text"],
input[type="number"],
input[type="date"],
input[type="email"],
input[type="password"],
select,
textarea {
    background-color: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: .625rem !important;
    font-family: inherit !important;
    font-size: .775rem !important;
    color: #0f172a !important;
    transition: border-color .18s, box-shadow .18s, background .18s !important;
}
input:focus,
select:focus,
textarea:focus {
    background-color: #ffffff !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.14) !important;
    outline: none !important;
}
input[type="radio"] { accent-color: #2563eb; }

/* ── Transaction Type Radio Cards ── */
.tx-type-label {
    display: flex;
    align-items: center;
    gap: .625rem;
    padding: .75rem 1rem;
    background: #f8fafc;
    border: 2px solid #e2e8f0;
    border-radius: 1rem;
    cursor: pointer;
    transition: all .2s;
}
.tx-type-label:hover {
    background: #eff6ff;
    border-color: #93c5fd;
}
.tx-type-label:has(input:checked) {
    border-color: #2563eb;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}

/* ───────────────────────────────────────────────
   CARDS
   ─────────────────────────────────────────────── */
/* Form section card override */
.bg-white.p-6.rounded-3xl,
.bg-white.p-6.rounded-2xl {
    border-radius: 1.25rem !important;
    border: 1px solid #eaeff7 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.05) !important;
}

/* Card header separator */
.bg-white.p-6.rounded-3xl h3.border-b,
.bg-white.p-6.rounded-2xl h3.border-b {
    padding-bottom: .875rem !important;
    margin-bottom: .25rem;
}

/* Sticky payment card */
.sticky.top-6 {
    border-radius: 1.25rem !important;
    border: 1px solid #eaeff7 !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.07) !important;
}

/* KPI Mini Cards */
.bg-white.p-4.rounded-2xl {
    border: 1px solid #eaeff7 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.05) !important;
    transition: box-shadow .2s, transform .2s !important;
}
.bg-white.p-4.rounded-2xl:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.09) !important;
    transform: translateY(-2px);
}

/* ───────────────────────────────────────────────
   PAYMENT SUMMARY BOX
   ─────────────────────────────────────────────── */
.p-4.rounded-2xl.bg-blue-50\/60,
div[class*="bg-blue-50"][class*="rounded-2xl"] {
    background: linear-gradient(135deg, #eff6ff, #f0f4ff) !important;
    border: 1.5px solid #bfdbfe !important;
    border-radius: 1rem !important;
}

#boxGrandTotal {
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    color: #1d4ed8 !important;
}

/* ───────────────────────────────────────────────
   BUTTONS
   ─────────────────────────────────────────────── */
button[type="submit"],
a.bg-blue-600,
button.bg-blue-600 {
    transition: all .2s ease !important;
}

/* Submit button gradient */
button[type="submit"].bg-gradient-to-r {
    box-shadow: 0 4px 14px rgba(37,99,235,.35) !important;
}
button[type="submit"].bg-gradient-to-r:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 20px rgba(37,99,235,.45) !important;
}

/* Action icon buttons */
a.p-2.rounded-xl,
button.p-2.rounded-xl {
    border-radius: .5rem !important;
    transition: all .18s !important;
}

/* ───────────────────────────────────────────────
   TABLE
   ─────────────────────────────────────────────── */
table thead th {
    font-size: .65rem !important;
    letter-spacing: .06em !important;
    color: #64748b !important;
    background: #f8fafc !important;
    border-bottom: 2px solid #e2e8f0 !important;
}
table tbody tr {
    border-bottom: 1px solid #f1f5f9;
    transition: background .12s;
}
table tbody tr:hover { background: #fafcff !important; }
.item-row { animation: fadeIn .2s ease; }

/* ───────────────────────────────────────────────
   ITEM TABLE ROWS (invoice form)
   ─────────────────────────────────────────────── */
#itemsBody tr:hover td { background: #fafcff !important; }

/* ───────────────────────────────────────────────
   TEMPLATE QUICK PILL BUTTONS
   ─────────────────────────────────────────────── */
.mb-4.p-3.bg-slate-50 button,
div.flex.flex-wrap.gap-2 button {
    border-radius: 9999px !important;
    transition: all .18s !important;
    font-size: .7rem !important;
}
div.flex.flex-wrap.gap-2 button:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

/* ───────────────────────────────────────────────
   BADGES / STATUS
   ─────────────────────────────────────────────── */
span.bg-emerald-100 { 
    background: #dcfce7 !important; 
    color: #15803d !important;
    border: 1px solid #bbf7d0 !important;
}
span.bg-rose-100 { 
    background: #ffe4e6 !important; 
    color: #be123c !important;
    border: 1px solid #fecdd3 !important;
}
span.bg-amber-100 { 
    background: #fef3c7 !important; 
    color: #92400e !important;
    border: 1px solid #fde68a !important;
}
span.bg-slate-100 { 
    background: #f1f5f9 !important; 
    color: #475569 !important; 
}

/* ───────────────────────────────────────────────
   PAGE TITLE AREA
   ─────────────────────────────────────────────── */
h1.text-xl.font-extrabold {
    font-size: 1.2rem !important;
    letter-spacing: -.025em;
    color: #0f172a !important;
}

/* Back link button */
a.text-xs.font-semibold.text-slate-500.bg-white {
    border-radius: .75rem !important;
    transition: all .18s !important;
    border-color: #e2e8f0 !important;
}
a.text-xs.font-semibold.text-slate-500.bg-white:hover {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
    transform: translateX(-2px);
}

/* ───────────────────────────────────────────────
   WELCOME HERO BANNER (dashboard)
   ─────────────────────────────────────────────── */
.bg-gradient-to-r.from-blue-700.rounded-3xl {
    background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 40%, #312e81 100%) !important;
    box-shadow: 0 12px 40px rgba(30,58,138,.3) !important;
    border-radius: 1.5rem !important;
}

/* Highlight Otomatis badge */
span.text-\[10px\].font-semibold.text-blue-600.bg-blue-50 {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
    border: 1px solid #bfdbfe !important;
    border-radius: .375rem !important;
    padding: .15rem .5rem !important;
}

/* Tom Select overrides */
.ts-wrapper.single .ts-control {
    border-radius: .625rem !important;
    border: 1.5px solid #e2e8f0 !important;
    background-color: #f8fafc !important;
    font-size: .775rem !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    min-height: 40px !important;
}
.ts-wrapper.single.focus .ts-control {
    background-color: #ffffff !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.14) !important;
}
.ts-dropdown {
    border-radius: .875rem !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.12) !important;
    font-size: .775rem !important;
    z-index: 99999 !important;
}
.ts-dropdown .option {
    padding: .5rem .875rem !important;
    border-radius: .5rem !important;
    color: #334155 !important;
    font-weight: 500 !important;
}
.ts-dropdown .option.active,
.ts-dropdown .option:hover {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    font-weight: 700 !important;
}
/* Highlight teks yang cocok dengan pencarian */
.ts-dropdown .option mark,
.ts-dropdown mark {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
    font-weight: 800 !important;
    border-radius: 3px !important;
    padding: 0 2px !important;
}
.ts-dropdown .option.active mark,
.ts-dropdown .option:hover mark {
    background: #bfdbfe !important;
    color: #1e40af !important;
}
/* Pastikan dropdown background putih bersih */
.ts-dropdown-content { background: #fff !important; }
.ts-dropdown { background: #fff !important; padding: 6px !important; margin-top: 4px !important; }
/* Wrapper full width */
.ts-wrapper.single { width: 100% !important; }

/* Dedicated Dropdown Search Box (Select2 style) */
.ts-dropdown .dropdown-input-wrap {
    padding: 6px 6px 8px 6px !important;
    background: #ffffff !important;
    border-bottom: 1px solid #e2e8f0 !important;
    margin-bottom: 4px !important;
}
.ts-dropdown .dropdown-input {
    width: 100% !important;
    padding: 8px 12px 8px 34px !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 0.5rem !important;
    font-size: 0.775rem !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    background: #f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 10px center !important;
    outline: none !important;
    box-shadow: none !important;
}
.ts-dropdown .dropdown-input:focus {
    background-color: #ffffff !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.15) !important;
}

/* Mobile sidebar */
@media (max-width: 1023px) {
    #mainSidebar {
        position: fixed !important;
        top: 0; bottom: 0; left: 0;
        z-index: 50;
        transform: translateX(-100%);
        transition: transform .3s ease-in-out;
    }
    #mainSidebar.sidebar-open { transform: translateX(0) !important; }
    #mobileBackdrop {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(10,20,40,.65);
        backdrop-filter: blur(4px);
        z-index: 40;
    }
    #mobileBackdrop.backdrop-open { display: block !important; }
}
@media (min-width: 1024px) {
    #mainSidebar {
        position: relative !important;
        transform: none !important;
        box-shadow: none !important;
    }
    #mobileMenuBtn, #mobileBackdrop, #sidebarCloseBtn { display: none !important; }
}

@media (max-width: 639px) {
    .bg-white.p-6.rounded-3xl { padding: 1.125rem !important; border-radius: 1rem !important; }
}

@media print {
    .no-print { display: none !important; }
    .print-only { display: block !important; }
    body { background: white !important; }
}
