*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--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;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--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;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-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]){-webkit-text-decoration:underline dotted;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:-.25em}sup{top:-.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::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}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}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.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}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-right-0\.5{right:-.125rem}.-top-0\.5{top:-.125rem}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[9999\]{z-index:9999}.col-span-full{grid-column:1 / -1}.m-0{margin:0}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-4{margin-right:1rem}.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-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.list-item{display:list-item}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-36{height:9rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-\[150px\]{max-height:150px}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-140px\)\]{max-height:calc(90vh - 140px)}.max-h-\[calc\(90vh-180px\)\]{max-height:calc(90vh - 180px)}.min-h-\[24px\]{min-height:24px}.min-h-screen{min-height:100vh}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[18px\]{min-width:18px}.min-w-\[250px\]{min-width:250px}.min-w-\[80px\]{min-width:80px}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.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))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * 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-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * 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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-emerald-500\/30{border-color:#10b9814d}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-500\/10{border-color:#6366f11a}.border-indigo-500\/30{border-color:#6366f14d}.border-indigo-500\/40{border-color:#6366f166}.border-purple-100{--tw-border-opacity: 1;border-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/50{border-color:#e2e8f080}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-700\/50{border-color:#33415580}.border-violet-100{--tw-border-opacity: 1;border-color:rgb(237 233 254 / var(--tw-border-opacity, 1))}.border-violet-200{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.border-yellow-100{--tw-border-opacity: 1;border-color:rgb(254 249 195 / var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-amber-500{--tw-border-opacity: 1;border-left-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-l-emerald-500{--tw-border-opacity: 1;border-left-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-t-violet-600{--tw-border-opacity: 1;border-top-color:rgb(124 58 237 / var(--tw-border-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/5{background-color:#f59e0b0d}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-black\/70{background-color:#000000b3}.bg-black\/95{background-color:#000000f2}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-500\/20{background-color:#6366f133}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-red-500\/5{background-color:#ef44440d}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-200\/50{background-color:#e2e8f080}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-500\/20{background-color:#64748b33}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-700\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/50{background-color:#1e293b80}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900\/50{background-color:#0f172a80}.bg-transparent{background-color:transparent}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/80{background-color:#fffc}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from: #fffbeb var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from: #10b981 var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500\/10{--tw-gradient-from: rgb(99 102 241 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600\/20{--tw-gradient-from: rgb(79 70 229 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-50{--tw-gradient-from: #faf5ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-50{--tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-100{--tw-gradient-from: #ede9fe var(--tw-gradient-from-position);--tw-gradient-to: rgb(237 233 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50{--tw-gradient-from: #f5f3ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from: #7c3aed var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-yellow-400{--tw-gradient-from: #facc15 var(--tw-gradient-from-position);--tw-gradient-to: rgb(250 204 21 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-yellow-500{--tw-gradient-from: #eab308 var(--tw-gradient-from-position);--tw-gradient-to: rgb(234 179 8 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-purple-500\/10{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(168 85 247 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-blue-50{--tw-gradient-to: #eff6ff var(--tw-gradient-to-position)}.to-green-100{--tw-gradient-to: #dcfce7 var(--tw-gradient-to-position)}.to-green-500{--tw-gradient-to: #22c55e var(--tw-gradient-to-position)}.to-indigo-100{--tw-gradient-to: #e0e7ff var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to: #eef2ff var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500\/10{--tw-gradient-to: rgb(236 72 153 / .1) var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-purple-600\/20{--tw-gradient-to: rgb(147 51 234 / .2) var(--tw-gradient-to-position)}.to-rose-100{--tw-gradient-to: #ffe4e6 var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.to-yellow-100{--tw-gradient-to: #fef9c3 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.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-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.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-8{padding-top:2rem;padding-bottom:2rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.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-6xl{font-size:3.75rem;line-height:1}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);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 rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);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 rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);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 rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-emerald-500\/30{--tw-shadow-color: rgb(16 185 129 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-500\/20{--tw-shadow-color: rgb(99 102 241 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-500\/25{--tw-shadow-color: rgb(99 102 241 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/50{--tw-shadow-color: rgb(226 232 240 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-500\/30{--tw-shadow-color: rgb(139 92 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--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(3px + 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{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--bg-hover: #f1f5f9;--bg-active: #e2e8f0;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border-color: #e2e8f0;--border-light: #f1f5f9;--shadow-color: rgba(0, 0, 0, .1);--shadow-lg: rgba(0, 0, 0, .15);--input-bg: #ffffff;--input-border: #e2e8f0;--sidebar-bg: #ffffff;--sidebar-text: #64748b;--sidebar-hover: #f1f5f9;--sidebar-active: #667eea;--header-bg: #ffffff;--modal-overlay: rgba(0, 0, 0, .5);--modal-bg: #ffffff;--table-header-bg: #f8fafc;--table-row-hover: #f1f5f9;--scrollbar-track: #f1f5f9;--scrollbar-thumb: #cbd5e1;--accent-primary: #667eea;--accent-gradient: linear-gradient(135deg, #667eea, #764ba2);--accent-hover: #5a6fd6}*{margin:0;padding:0;box-sizing:border-box}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--accent-gradient);border-radius:10px;border:2px solid var(--scrollbar-track);-webkit-transition:all .3s;transition:all .3s}::-webkit-scrollbar-thumb:hover{box-shadow:0 0 10px #667eea80}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}*{scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--scrollbar-track)}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}#root{width:100vw;min-height:100vh;background:var(--bg-primary);transition:background-color .3s ease}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.last\:border-0:last-child{border-width:0px}.focus-within\:border-indigo-500:focus-within{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus-within\:shadow-\[0_0_0_4px_rgba\(99\,102\,241\,0\.1\)\]:focus-within{--tw-shadow: 0 0 0 4px rgba(99,102,241,.1);--tw-shadow-colored: 0 0 0 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-amber-500\/50:hover{border-color:#f59e0b80}.hover\:border-cyan-300:hover{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.hover\:border-emerald-300:hover{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.hover\:border-emerald-500\/50:hover{border-color:#10b98180}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:border-purple-300:hover{--tw-border-opacity: 1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.hover\:border-slate-600:hover{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.hover\:border-violet-300:hover{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-500\/20:hover{background-color:#f59e0b33}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-200:hover{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/20:hover{background-color:#10b98133}.hover\:bg-emerald-600:hover{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500\/20:hover{background-color:#6366f133}.hover\:bg-indigo-500\/30:hover{background-color:#6366f14d}.hover\:bg-indigo-600:hover{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-200:hover{--tw-bg-opacity: 1;background-color:rgb(233 213 255 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-600:hover{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-700:hover{--tw-bg-opacity: 1;background-color:rgb(126 34 206 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.hover\:from-indigo-600:hover{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-purple-600:hover{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.hover\:text-indigo-800:hover{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:opacity-100:hover{opacity:1}.hover\:shadow:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-emerald-500\/40:hover{--tw-shadow-color: rgb(16 185 129 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/20:hover{--tw-shadow-color: rgb(99 102 241 / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/30:hover{--tw-shadow-color: rgb(99 102 241 / .3);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/40:hover{--tw-shadow-color: rgb(99 102 241 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-violet-500\/40:hover{--tw-shadow-color: rgb(139 92 246 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-yellow-500\/30:hover{--tw-shadow-color: rgb(234 179 8 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:border-violet-400:focus{--tw-border-opacity: 1;border-color:rgb(167 139 250 / var(--tw-border-opacity, 1))}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--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(1px + 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)}.focus\:ring-2:focus{--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(2px + 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)}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-purple-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity, 1))}.focus\:ring-violet-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity, 1))}.focus\:ring-yellow-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--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(2px + 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)}.focus-visible\:ring-blue-400:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:translate-y-0:hover:disabled{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:bg-violet-600{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}@media(min-width:640px){.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:border-amber-700{--tw-border-opacity: 1;border-color:rgb(180 83 9 / var(--tw-border-opacity, 1))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:border-yellow-800{--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/20{background-color:#78350f33}.dark\:bg-amber-900\/30{background-color:#78350f4d}.dark\:bg-emerald-900\/30{background-color:#064e3b4d}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900\/30{background-color:#7f1d1d4d}.dark\:bg-slate-800\/50{background-color:#1e293b80}.dark\:bg-yellow-900\/20{background-color:#713f1233}.dark\:from-amber-900\/20{--tw-gradient-from: rgb(120 53 15 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(120 53 15 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-gray-800{--tw-gradient-to: #1f2937 var(--tw-gradient-to-position)}.dark\:text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\:placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\:hover\:bg-amber-900\/50:hover{background-color:#78350f80}.dark\:hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:hover\:text-indigo-300:hover{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}}.navbar{background:var(--header-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:0 2rem;height:70px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px var(--shadow-color);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1000;gap:2rem;transition:all .3s ease}.navbar:before{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--accent-gradient);opacity:.5;animation:shimmer 4s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:.6}}.navbar-brand{display:flex;align-items:center;flex-shrink:0}.navbar-logo{font-size:1.4rem;font-weight:800;color:var(--text-primary);text-decoration:none;display:flex;align-items:center;gap:.75rem;transition:all .3s ease;white-space:nowrap;text-shadow:0 2px 10px var(--shadow-color);position:relative}.navbar-logo:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:3px;background:var(--accent-gradient);border-radius:10px;transition:width .3s ease}.navbar-logo:hover{transform:translateY(-2px);color:var(--accent-primary)}.navbar-logo:hover:after{width:100%}.navbar-center{flex:1;display:flex;justify-content:center;align-items:center}.dashboard-name-display{display:flex;align-items:center;gap:1rem}.dashboard-name-display h1{font-size:1.35rem;font-weight:700;color:var(--text-primary);margin:0;text-shadow:0 2px 8px var(--shadow-color);letter-spacing:.5px;background:linear-gradient(180deg,#fff,#ffffffd9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-edit-name{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;padding:.6rem;border-radius:10px;transition:all .3s ease;display:flex;align-items:center;box-shadow:0 4px 15px #0000001a}.btn-edit-name:hover{background:#ffffff40;transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px #fff3;border-color:#ffffff80}.dashboard-name-edit{display:flex;gap:.5rem;align-items:center}.dashboard-name-input{padding:.5rem 1rem;font-size:1rem;font-weight:600;border:2px solid white;border-radius:6px;outline:none;min-width:250px;background:#fff;color:#2d3748}.btn-save-name,.btn-cancel-name{padding:.5rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:.9rem}.btn-save-name{background:#fff;color:#667eea}.btn-save-name:hover{background:#f7fafc}.btn-cancel-name{background:#fff3;color:#fff}.btn-cancel-name:hover{background:#ffffff4d}.navbar-menu{display:flex;gap:1rem;align-items:center;flex-shrink:0}.btn-save-dashboard{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:linear-gradient(135deg,#fff,#f0f4ff);color:#667eea;border:2px solid rgba(255,255,255,.5);border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #00000026,inset 0 1px #fff9;font-size:.9rem;position:relative;overflow:hidden}.btn-save-dashboard:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);transition:left .5s}.btn-save-dashboard:hover:before{left:100%}.btn-save-dashboard svg{width:16px;height:16px;transition:transform .3s}.btn-save-dashboard:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66,inset 0 1px #fffc;background:linear-gradient(135deg,#fff,#e8efff)}.btn-save-dashboard:hover svg{transform:rotate(15deg) scale(1.1)}.btn-save-dashboard:active{transform:translateY(0);box-shadow:0 2px 8px #667eea4d}.navbar-user{display:flex;align-items:center;gap:.75rem;position:relative}.theme-toggle-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--text-secondary)}.theme-toggle-btn:hover{background:var(--bg-hover);color:var(--accent-primary);transform:translateY(-2px) rotate(15deg);border-color:var(--accent-primary);box-shadow:0 4px 15px color-mix(in srgb,var(--accent-primary) 30%,transparent)}.user-avatar-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px var(--shadow-color);position:relative;overflow:hidden;color:var(--text-secondary)}.user-avatar-btn:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,color-mix(in srgb,var(--accent-primary) 30%,transparent) 0%,transparent 70%);transform:scale(0);transition:transform .5s}.user-avatar-btn:hover:before{transform:scale(1)}.user-avatar-btn:hover{background:var(--bg-hover);transform:translateY(-3px) scale(1.08);box-shadow:0 6px 25px var(--shadow-color);border-color:var(--accent-primary);color:var(--accent-primary)}.user-menu{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:var(--modal-bg);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 10px 40px var(--shadow-lg);overflow:hidden;z-index:1000;animation:slideDown .2s ease-out}.user-menu-header{display:flex;gap:12px;padding:20px;background:var(--accent-gradient);color:#fff}.user-menu-avatar{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-menu-info{display:flex;flex-direction:column;justify-content:center;gap:4px}.user-menu-name{font-size:16px;font-weight:600}.user-menu-role{font-size:13px;opacity:.9;text-transform:capitalize}.user-menu-divider{height:1px;background:var(--border-color);margin:8px 0}.user-menu-item{display:flex;align-items:center;gap:12px;padding:14px 20px;color:var(--text-secondary);text-decoration:none;background:none;border:none;width:100%;cursor:pointer;transition:all .2s ease;font-size:15px;font-weight:500}.user-menu-item:hover{background:var(--bg-hover);color:var(--accent-primary)}.user-menu-item svg{flex-shrink:0}.user-avatar{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;font-size:1.3rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px var(--shadow-color);position:relative;overflow:hidden;color:var(--text-secondary)}.user-avatar:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);transform:scale(0);transition:transform .5s}.user-avatar:hover:before{transform:scale(1)}.user-avatar:hover{background:linear-gradient(135deg,#fff6,#fff3);transform:translateY(-3px) scale(1.08);box-shadow:0 6px 25px #ffffff4d,inset 0 2px 4px #fff6;border-color:#fff9}@media(max-width:768px){.navbar{padding:0 1rem}.navbar-menu{gap:.5rem}.navbar-link{padding:.4rem .7rem;font-size:.85rem}.navbar-logo{font-size:1rem}}.notification-container{position:relative}.notification-btn{position:relative;background:transparent;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.notification-btn:hover{background:var(--hover-bg);transform:scale(1.05)}.notification-badge{position:absolute;top:0;right:0;background:#ef4444;color:#fff;font-size:.65rem;font-weight:600;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;animation:pulse 2s infinite}.notification-pending-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;background:#f59e0b;border-radius:50%;border:2px solid var(--header-bg)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.notification-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:340px;background:var(--card-bg);border-radius:12px;box-shadow:0 10px 40px #0003;border:1px solid var(--border-color);z-index:1001;overflow:hidden;animation:slideDown .2s ease}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--hover-bg)}.notification-header h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.notification-header .refresh-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:1rem;transition:all .2s}.notification-header .refresh-btn:hover{background:var(--border-color);color:var(--text-primary)}.notification-empty{padding:2rem;text-align:center;color:var(--text-secondary)}.notification-empty svg{opacity:.5;margin-bottom:.5rem}.notification-empty p{margin:0;font-size:.875rem}.notification-list{max-height:300px;overflow-y:auto}.notification-item{display:flex;gap:.75rem;padding:1rem;border-bottom:1px solid var(--border-color);transition:background .2s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--hover-bg)}.notification-item.notification-approved{background:#10b9810d}.notification-item.notification-rejected{background:#ef44440d}.notification-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--hover-bg);flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:.875rem;color:var(--text-primary);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-status{font-size:.75rem;font-weight:500;display:flex;align-items:center;gap:.5rem}.notification-status .access-granted{display:inline-flex;align-items:center;gap:.25rem;background:#10b9811a;color:#10b981;padding:.125rem .5rem;border-radius:10px;font-size:.7rem}.notification-comment{font-size:.75rem;color:var(--text-secondary);font-style:italic;margin-top:.25rem}.notification-date{font-size:.7rem;color:var(--text-tertiary);margin-top:.25rem}.notification-footer{padding:.75rem 1rem;border-top:1px solid var(--border-color);background:var(--hover-bg);text-align:center}.notification-footer a{color:var(--accent-primary);font-size:.8rem;text-decoration:none;font-weight:500}.notification-footer a:hover{text-decoration:underline}.app-sidebar{width:280px;background:var(--sidebar-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-color);height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:100}.sidebar-bg-effects{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.bg-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.15;animation:floatOrb 20s ease-in-out infinite}.bg-orb.orb-1{width:200px;height:200px;background:var(--accent-primary);top:-50px;left:-50px;animation-delay:0s}.bg-orb.orb-2{width:150px;height:150px;background:#764ba2;bottom:20%;right:-30px;animation-delay:-7s}.bg-orb.orb-3{width:100px;height:100px;background:#8b5cf6;bottom:-20px;left:20%;animation-delay:-14s}@keyframes floatOrb{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-20px) scale(1.1)}50%{transform:translate(-10px,20px) scale(.95)}75%{transform:translate(15px,10px) scale(1.05)}}.app-sidebar:after{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:var(--accent-gradient);opacity:.4;animation:borderPulse 3s ease-in-out infinite}@keyframes borderPulse{0%,to{opacity:.3}50%{opacity:.6}}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.5rem 0;position:relative;z-index:1}.menu-section{margin-bottom:.5rem}.section-title{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.5rem;margin-bottom:.25rem}.section-title span{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);white-space:nowrap}.section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border-color),transparent)}.section-divider{width:32px;height:2px;background:var(--accent-gradient);margin:.75rem auto;border-radius:2px;opacity:.5}.section-items{display:flex;flex-direction:column;gap:.25rem;padding:0 .75rem}.sidebar-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;text-decoration:none;color:var(--sidebar-text);font-weight:600;font-size:.9rem;border-radius:12px;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;border:1px solid transparent}.app-sidebar.collapsed .sidebar-item{justify-content:center;padding:.875rem}.item-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.item-icon-wrapper svg{transition:all .3s ease}.icon-glow{position:absolute;inset:-8px;background:radial-gradient(circle,color-mix(in srgb,var(--accent-primary) 30%,transparent),transparent 70%);border-radius:50%;animation:iconGlow 2s ease-in-out infinite}@keyframes iconGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .3s ease}.item-badge{padding:.2rem .5rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--accent-gradient);color:#fff;border-radius:6px;box-shadow:0 2px 8px color-mix(in srgb,var(--accent-primary) 40%,transparent)}.item-highlight{position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--accent-gradient);border-radius:0 3px 3px 0;transition:height .3s ease;box-shadow:0 0 10px var(--accent-primary)}.sidebar-item:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-color);transform:translate(4px)}.app-sidebar.collapsed .sidebar-item:hover{transform:translate(0) scale(1.05)}.sidebar-item:hover .item-highlight{height:60%}.sidebar-item:hover .item-icon-wrapper svg{transform:scale(1.1);color:var(--accent-primary)}.sidebar-item.active{background:color-mix(in srgb,var(--accent-primary) 15%,var(--bg-hover));color:var(--accent-primary);border-color:color-mix(in srgb,var(--accent-primary) 30%,transparent);box-shadow:0 4px 15px color-mix(in srgb,var(--accent-primary) 20%,transparent)}.sidebar-item.active .item-highlight{height:70%}.sidebar-item.active .item-icon-wrapper svg{color:var(--accent-primary)}.tooltip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:.5rem .875rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;box-shadow:0 4px 20px var(--shadow-lg);z-index:1000;display:flex;align-items:center;gap:.5rem;animation:tooltipFade .2s ease}.tooltip:before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%) rotate(45deg);width:10px;height:10px;background:var(--bg-card);border-left:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.tooltip-badge{padding:.15rem .4rem;font-size:.6rem;font-weight:700;background:var(--accent-gradient);color:#fff;border-radius:4px}@keyframes tooltipFade{0%{opacity:0;transform:translateY(-50%) translate(-5px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.sidebar-footer{padding:1rem .75rem 1.5rem;position:relative;z-index:1}.section-divider-glow{height:1px;background:linear-gradient(90deg,transparent,var(--accent-primary),transparent);margin:0 1rem 1rem;opacity:.5}.sidebar-item.ai-item{background:linear-gradient(135deg,color-mix(in srgb,#8b5cf6 20%,var(--bg-hover)),color-mix(in srgb,#6366f1 15%,var(--bg-hover)));border:1px solid color-mix(in srgb,#8b5cf6 40%,transparent);position:relative}.ai-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.ai-icon-wrapper svg:first-child{color:#a78bfa;filter:drop-shadow(0 0 6px rgba(167,139,250,.5))}.sparkle{position:absolute;color:#c4b5fd;animation:sparkleFloat 3s ease-in-out infinite}.sparkle-1{top:-6px;right:-4px;animation-delay:0s}.sparkle-2{bottom:-4px;left:-6px;animation-delay:-1s}.sparkle-3{top:-2px;left:-8px;animation-delay:-2s}@keyframes sparkleFloat{0%,to{opacity:.4;transform:scale(1) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}}.ai-zap{color:#fbbf24;animation:zapPulse 1.5s ease-in-out infinite}@keyframes zapPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.ai-glow-ring{position:absolute;inset:-2px;border-radius:14px;border:2px solid transparent;background:linear-gradient(135deg,#8b5cf6,#6366f1) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}.sidebar-item.ai-item:hover{background:linear-gradient(135deg,color-mix(in srgb,#8b5cf6 30%,var(--bg-hover)),color-mix(in srgb,#6366f1 25%,var(--bg-hover)));border-color:color-mix(in srgb,#8b5cf6 60%,transparent);box-shadow:0 4px 20px #8b5cf64d}.sidebar-item.ai-item:hover .ai-glow-ring{opacity:.6;animation:ringPulse 2s ease-in-out infinite}@keyframes ringPulse{0%,to{opacity:.4}50%{opacity:.8}}.sidebar-item.ai-item.active{background:linear-gradient(135deg,color-mix(in srgb,#8b5cf6 35%,var(--bg-hover)),color-mix(in srgb,#6366f1 30%,var(--bg-hover)));border-color:#8b5cf6;box-shadow:0 6px 25px #8b5cf666,0 0 30px #8b5cf633}.sidebar-item.ai-item.active .ai-glow-ring{opacity:.8;animation:ringPulse 2s ease-in-out infinite}.tooltip.ai-tooltip{background:linear-gradient(135deg,#1e1b4b,#312e81);border-color:#8b5cf6;color:#e0e7ff}.tooltip.ai-tooltip svg{color:#fbbf24}.tooltip.ai-tooltip:before{background:#1e1b4b;border-color:#8b5cf6}@media(max-width:768px){.app-sidebar{width:80px}.app-sidebar .logo-text,.app-sidebar .section-title,.app-sidebar .item-label,.app-sidebar .item-badge,.app-sidebar .section-divider-glow{display:none}.app-sidebar .sidebar-item{justify-content:center;padding:.875rem}.app-sidebar .collapse-btn{display:none}.app-sidebar .sidebar-header{justify-content:center}}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.app-layout{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--bg-primary)}.app-layout-body{display:flex;flex:1;overflow:hidden}.app-layout-content{flex:1;overflow-y:auto;background:var(--bg-secondary);transition:background-color .3s ease}.login-page{min-height:100vh;display:flex;position:relative;overflow:hidden;background:#0a1628}.map-background{position:absolute;inset:0;z-index:0}.map-iframe{width:100%;height:100%;border:none;filter:saturate(.3) brightness(.4);transform:scale(1.2)}.map-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#0a1628f2,#0f3250d9,#0a1628f2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.floating-markers{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.floating-marker{position:absolute;color:#3b82f699;animation:floatMarker 5s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(59,130,246,.5))}.floating-marker:nth-child(odd){color:#10b98199;filter:drop-shadow(0 0 10px rgba(16,185,129,.5))}@keyframes floatMarker{0%,to{transform:translateY(0) scale(1);opacity:.6}50%{transform:translateY(-20px) scale(1.1);opacity:1}}.data-lines{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.3}.data-svg{width:100%;height:100%}.data-path{fill:none;stroke-width:.3;stroke-dasharray:10 5;animation:flowData 8s linear infinite}.path-1{stroke:#3b82f6;animation-delay:0s}.path-2{stroke:#10b981;animation-delay:2s}.path-3{stroke:#8b5cf6;animation-delay:4s}@keyframes flowData{0%{stroke-dashoffset:0}to{stroke-dashoffset:-30}}.background-gradient{position:absolute;inset:0;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);opacity:.15;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(5deg)}}.particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.particle{position:absolute;width:4px;height:4px;background:#ffffff80;border-radius:50%;animation:float linear infinite}@keyframes float{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100px) scale(1);opacity:0}}.login-content{position:relative;z-index:2;display:flex;width:100%;max-width:1400px;margin:auto;padding:40px;gap:80px}.login-left{flex:1;display:flex;flex-direction:column;justify-content:center;gap:40px}.brand-section{animation:fadeInLeft .8s ease-out}.brand-logo-container{display:flex;align-items:center;gap:20px;margin-bottom:24px}.brand-icon-neo{width:70px;height:70px;background:linear-gradient(135deg,#3b82f6,#10b981);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 40px #3b82f666;animation:pulseNeo 3s ease-in-out infinite;position:relative;overflow:hidden}.brand-icon-neo:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:rotateGlow 4s linear infinite}@keyframes rotateGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseNeo{0%,to{transform:scale(1);box-shadow:0 10px 40px #3b82f666}50%{transform:scale(1.05);box-shadow:0 15px 50px #3b82f699}}.brand-text{display:flex;flex-direction:column}.brand-title-neo{font-size:42px;font-weight:800;color:#fff;margin:0;letter-spacing:-1px;line-height:1}.brand-title-neo span{background:linear-gradient(135deg,#3b82f6,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-tagline{font-size:14px;color:#ffffff80;margin:4px 0 0;font-weight:500;text-transform:uppercase;letter-spacing:2px}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.brand-icon{width:80px;height:80px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:24px;box-shadow:0 10px 40px #667eea66;animation:pulse 3s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 10px 40px #667eea66}50%{transform:scale(1.05);box-shadow:0 15px 50px #667eea99}}.brand-title{font-size:48px;font-weight:800;background:linear-gradient(135deg,#fff,#667eea);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 12px;letter-spacing:-1px}.brand-subtitle{font-size:16px;color:#fff9;margin:0;font-weight:300;line-height:1.6;max-width:450px}.features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;animation:fadeInLeft .8s ease-out .2s both}.feature-item{display:flex;gap:16px;align-items:flex-start;padding:20px;background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .3s ease}.feature-item:hover{background:#ffffff0f;transform:translateY(-4px);border-color:#3b82f64d;box-shadow:0 10px 30px #0003}.feature-icon{width:44px;height:44px;background:linear-gradient(135deg,#3b82f633,#10b98133);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#3b82f6;flex-shrink:0}.feature-item:nth-child(2n) .feature-icon{color:#10b981}.feature-text h3{font-size:15px;font-weight:600;color:#fff;margin:0 0 4px}.feature-text p{font-size:13px;color:#ffffff80;margin:0;line-height:1.4}.stats-bar{display:flex;gap:40px;padding:24px 0;border-top:1px solid rgba(255,255,255,.1);animation:fadeInLeft .8s ease-out .4s both}.stat-value{font-size:28px;font-weight:700;background:linear-gradient(135deg,#3b82f6,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:13px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px}.login-right{flex:0 0 420px;display:flex;align-items:center;animation:fadeInRight .8s ease-out}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.login-card{width:100%;background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;padding:40px;box-shadow:0 25px 80px #0006,0 0 0 1px #ffffff1a}.card-header{margin-bottom:32px}.card-header h2{font-size:32px;font-weight:700;color:#1a1a2e;margin:0 0 8px}.card-header p{font-size:15px;color:#666;margin:0}.login-form{display:flex;flex-direction:column;gap:24px}.error-message{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;color:#dc2626;font-size:14px;animation:shake .5s ease}.error-message.locked{background:#f59e0b1a;border-color:#f59e0b4d;color:#d97706}.error-content{display:flex;flex-direction:column;gap:6px}.lockout-info{display:flex;align-items:center;gap:6px;font-size:12px;color:#d97706;margin-top:4px}.attempts-warning{font-size:12px;color:#f59e0b;margin-top:2px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-message svg{flex-shrink:0;margin-top:2px}.form-group label{display:flex;align-items:center;gap:8px;font-weight:500;color:#555;font-size:14px}.form-group label svg{color:#3b82f6}.form-group input,.form-group select{padding:14px 18px;border:2px solid #e8e8e8;border-radius:12px;font-size:15px;transition:all .3s ease;outline:none;background:#fff}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a;transform:translateY(-2px)}.form-group input::-moz-placeholder{color:#aaa}.form-group input::placeholder{color:#aaa}.btn-login{padding:16px;background:linear-gradient(135deg,#3b82f6,#10b981);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;position:relative;overflow:hidden;box-shadow:0 4px 15px #3b82f666}.btn-login:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 25px #3b82f680}.btn-login:active:not(:disabled){transform:translateY(-1px)}.btn-login:disabled{opacity:.7;cursor:not-allowed}.btn-back{display:block;width:100%;padding:12px;margin-top:12px;background:transparent;border:1px solid #e0e0e0;border-radius:12px;color:#666;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-back:hover{background:#f5f5f5;border-color:#ccc}.totp-group{text-align:center}.totp-input{text-align:center;font-size:28px!important;font-family:Monaco,Courier New,monospace;letter-spacing:8px;padding:16px!important}.totp-hint{font-size:13px;color:#888;margin-top:8px}.btn-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shine 3s infinite}@keyframes shine{0%{left:-100%}50%,to{left:100%}}.login-footer{text-align:center;margin-top:32px;padding-top:24px;border-top:1px solid #e8e8e8}.demo-credentials{background:#f8f9fa;padding:16px;border-radius:10px;margin-bottom:16px;text-align:left}.demo-title{font-size:13px;font-weight:600;color:#666;margin:0 0 10px}.demo-account{font-size:13px;color:#555;margin:6px 0;padding:6px 10px;background:#fff;border-radius:6px;font-family:Courier New,monospace}.demo-account strong{color:#667eea;font-weight:600}.copyright{color:#999;font-size:13px;margin:0}@media(max-width:1200px){.login-content{flex-direction:column;align-items:center;gap:40px}.login-left{max-width:600px;text-align:center}.brand-section{display:flex;flex-direction:column;align-items:center}.brand-logo-container{flex-direction:column;text-align:center}.brand-subtitle{text-align:center;margin:0 auto}.features{grid-template-columns:1fr;max-width:400px;margin:0 auto}.feature-item{flex-direction:column;align-items:center;text-align:center}.stats-bar{justify-content:center}.login-right{flex:none;width:100%;max-width:420px}}@media(max-width:600px){.login-content{padding:20px}.login-card{padding:32px 24px}.brand-title-neo{font-size:32px}.card-header h2{font-size:24px}.stats-bar{gap:24px}.stat-value{font-size:24px}}.data-warehouse-v2{background:transparent;min-height:calc(100vh - 60px);padding:1.5rem;padding-bottom:100px;position:relative;overflow-x:hidden}.view-title-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:0 .25rem}.view-title-bar h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.view-title-bar .count-badge{background:#6366f126;color:#6366f1;font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:99px}.btn-toggle-view{display:flex;align-items:center;gap:6px;margin-left:auto;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-toggle-view:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.btn-toggle-view.active{background:linear-gradient(135deg,#6366f126,#8b5cf626);border-color:var(--accent-primary);color:var(--accent-primary)}.datasets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem;padding:0}.dataset-card{background:linear-gradient(145deg,#1a2332,#141c2b);border:1px solid rgba(99,102,241,.15);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.dataset-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(99,102,241,.05) 0%,transparent 50%);opacity:0;transition:opacity .3s}.dataset-card:hover{transform:translateY(-4px);border-color:#6366f166;box-shadow:0 8px 32px #6366f133}.dataset-card:hover:before{opacity:1}.dataset-card.processing{opacity:.7;pointer-events:none}.dataset-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;position:relative}.icon-wrapper{position:relative;display:flex;flex-direction:column;align-items:center}.icon-db{color:#64748b;margin-bottom:-8px}.icon-stack{display:flex;flex-direction:column;gap:3px;margin-top:4px}.stack-bar{width:32px;height:6px;background:currentColor;border-radius:2px;opacity:.9}.stack-bar:nth-child(2){opacity:.7}.stack-bar:nth-child(3){opacity:.5}.icon-spatial{position:absolute;bottom:-4px;right:-8px;background:#3b82f6;color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #0a0f1a}.dataset-name-v2{color:#fff;font-size:.875rem;font-weight:600;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:6px}.published-badge{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8b5cf6,#a855f7);padding:2px 4px;border-radius:4px;color:#fff;flex-shrink:0}.dataset-meta{display:flex;align-items:center;gap:.5rem}.meta-item{display:flex;align-items:center;gap:4px;color:#64748b;font-size:.75rem}.dataset-size{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600}.card-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transform:translateY(-8px);transition:all .2s ease}.dataset-card:hover .card-actions{opacity:1;transform:translateY(0)}.action-btn{width:36px;height:36px;border-radius:8px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.action-btn.map{background:#3b82f633;color:#3b82f6}.action-btn.map:hover{background:#3b82f6;color:#fff}.action-btn.preview{background:#6366f133;color:#6366f1}.action-btn.preview:hover{background:#6366f1;color:#fff}.action-btn.delete{background:#ef444433;color:#ef4444}.action-btn.delete:hover{background:#ef4444;color:#fff}.action-btn.stop{background:#f9731633;color:#f97316}.action-btn.stop:hover{background:#f97316;color:#fff}.processing-overlay{position:absolute;inset:0;background:#0a0f1ae6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:#6366f1;font-size:.75rem;border-radius:12px}.empty-state-v2{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:#64748b}.empty-icon{width:80px;height:80px;background:#6366f11a;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#6366f1}.empty-state-v2 h3{color:#fff;margin:0}.empty-state-v2 p{margin:0}.btn-upload-first{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.btn-upload-first:hover{transform:translateY(-2px);box-shadow:0 4px 16px #6366f166}.bottom-action-bar{position:fixed;bottom:24px;left:260px;right:0;height:auto;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;z-index:100;pointer-events:none}.action-buttons-center{pointer-events:auto}.back-btn{display:none}.action-buttons-center{display:flex;align-items:center;gap:.5rem;background:#141c2bf2;padding:.5rem;border-radius:12px;border:1px solid rgba(99,102,241,.2)}.action-btn-main{width:48px;height:48px;border-radius:10px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-weight:600}.action-btn-main.upload,.action-btn-main.cloud,.action-btn-main.api,.action-btn-main.realtime,.action-btn-main.ogc{background:#47556966;color:#94a3b8}.action-btn-main.upload:hover,.action-btn-main.cloud:hover,.action-btn-main.api:hover,.action-btn-main.realtime:hover,.action-btn-main.ogc:hover{background:#47556999;color:#e2e8f0}.action-btn-main.upload.active,.action-btn-main.cloud.active,.action-btn-main.api.active,.action-btn-main.realtime.active,.action-btn-main.ogc.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 16px #10b98166;transform:scale(1.05)}.api-text{font-size:.75rem;font-weight:700}.fab-add{width:56px;height:56px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px #10b98166;transition:all .3s;position:fixed;bottom:24px;right:24px;pointer-events:auto}.fab-add:hover{transform:scale(1.1);box-shadow:0 6px 24px #10b98180}.jobs-floating{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000}.job-pill{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#1e293bf2;border:1px solid rgba(59,130,246,.3);border-radius:999px;color:#fff;font-size:.75rem;box-shadow:0 4px 16px #0000004d}.job-progress{color:#3b82f6;font-weight:600}.upload-modal{background:linear-gradient(145deg,#1a2332,#0f1520);border:1px solid rgba(99,102,241,.2);border-radius:16px;width:95%;max-width:55%!important;max-height:92vh;height:92vh;overflow:hidden;display:flex;flex-direction:column}.upload-modal .modal-header{padding:1.5rem 2rem;border-bottom:1px solid rgba(99,102,241,.1);display:flex;align-items:center;justify-content:space-between}.upload-modal .modal-header h2{display:flex;align-items:center;gap:.5rem;color:#fff;font-size:1.25rem;margin:0}.source-tabs{display:flex;padding:0 1.5rem;background:#0f172a80}.source-tabs .tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:transparent;border:none;border-bottom:3px solid transparent;color:#64748b;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.source-tabs .tab:hover{color:#94a3b8}.source-tabs .tab.active{color:#6366f1;border-bottom-color:#6366f1}.upload-form-v2{display:flex;flex-direction:column;gap:1.25rem}.upload-form-v2.db-form{gap:.75rem}.form-section{background:#0f172a66;border:1px solid rgba(99,102,241,.1);border-radius:12px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;align-items:center;gap:.5rem;color:#a5b4fc;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding-bottom:.625rem;border-bottom:1px solid rgba(99,102,241,.15);margin-bottom:.25rem}.section-header svg{opacity:.8}.form-row.three-col{display:flex;gap:.75rem}.form-row.three-col .flex-1{flex:1}.form-row.three-col .flex-2{flex:2}.dropzone{border:2px dashed rgba(99,102,241,.3);border-radius:14px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.875rem;cursor:pointer;transition:all .2s;color:#64748b;min-height:140px}.dropzone:hover{border-color:#6366f180;background:#6366f10d}.dropzone span{color:#94a3b8;font-size:.95rem}.dropzone small{color:#475569;font-size:.8rem}.file-selected{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#10b981}.file-selected span{color:#fff}.upload-modal .form-group{display:flex;flex-direction:column;gap:.5rem}.upload-modal .form-group label{color:#94a3b8;font-size:.8125rem;font-weight:500}.upload-modal .form-group input,.upload-modal .form-group select,.upload-modal .form-group textarea{width:100%;background:#0f172a99;border:1px solid rgba(99,102,241,.2);border-radius:10px;padding:.875rem 1rem;color:#fff;font-size:.9rem;transition:all .2s}.upload-modal .form-group input:focus,.upload-modal .form-group select:focus,.upload-modal .form-group textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.upload-modal .form-group input::-moz-placeholder,.upload-modal .form-group textarea::-moz-placeholder{color:#475569}.upload-modal .form-group input::placeholder,.upload-modal .form-group textarea::placeholder{color:#475569}.upload-modal .form-group .form-hint{display:block;font-size:.75rem;color:#64748b;margin-top:.25rem;font-style:italic}.upload-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.upload-modal .form-row.three-col{grid-template-columns:2fr 1fr}.upload-modal .modal-body{padding:2rem;overflow-y:auto}.btn-submit{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s;margin-top:1rem}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #6366f166}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.upload-progress-v2{margin-top:.5rem}.upload-progress-v2 .progress-bar{height:6px;background:#6366f133;border-radius:999px;overflow:hidden}.upload-progress-v2 .progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:999px;transition:width .3s}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.btn-close{background:#6366f11a;border:none;color:#94a3b8;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-close:hover{background:#ef444433;color:#ef4444}.preview-modal{background:linear-gradient(145deg,#1a2332,#0f1520);border:1px solid rgba(99,102,241,.2);border-radius:16px;width:98%!important;max-width:1600px!important;height:92vh!important;max-height:92vh!important;overflow:hidden;display:flex;flex-direction:column}.preview-modal .modal-header{padding:1rem 1.5rem;border-bottom:1px solid rgba(99,102,241,.1);display:flex;align-items:center;justify-content:space-between}.preview-modal .modal-header h2{display:flex;align-items:center;gap:.75rem;color:#fff;font-size:1.125rem;margin:0}.preview-modal .modal-body{padding:1rem;overflow:auto;flex:1}.preview-info{color:#64748b;font-size:.8125rem;margin-bottom:1rem}.preview-table{background:#0f172a66;border-radius:8px;overflow:hidden}.spatial-indicator{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#3b82f626;color:#60a5fa;border-radius:999px;font-size:.75rem;font-weight:500}.query-engine-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#6366f126;color:#a5b4fc;border-radius:999px;font-size:.75rem;font-weight:500}.map-viewer-overlay{padding:0}.map-viewer-modal{background:linear-gradient(145deg,#1a2332,#0f1520);border:none;border-radius:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;overflow:hidden}.map-viewer-header{padding:1rem 1.5rem;background:#0f172af2;border-bottom:1px solid rgba(99,102,241,.2);display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:1rem}.header-icon{color:#6366f1}.header-title h2{color:#fff;font-size:1.125rem;margin:0}.header-stats{display:flex;gap:.75rem;margin-top:.25rem}.stat-badge{display:inline-flex;align-items:center;gap:4px;color:#64748b;font-size:.75rem}.map-viewer-body{padding:0;flex:1;display:flex;overflow:hidden;height:calc(100vh - 70px)}.split-view-container{display:flex;flex:1;height:100%;overflow:hidden}.map-panel{flex:1;display:flex;flex-direction:column}.map-container{flex:1;position:relative}.data-panel{width:400px;background:#0f172a99;border-left:1px solid rgba(99,102,241,.2);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:1rem;border-bottom:1px solid rgba(99,102,241,.15);display:flex;align-items:center;justify-content:space-between}.panel-header h3{display:flex;align-items:center;gap:.5rem;color:#fff;font-size:.9375rem;margin:0}.feature-count{color:#6366f1;font-size:.875rem;font-weight:600}.data-table-container{flex:1;overflow:auto}.toast-container{position:fixed;bottom:90px;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1001}.toast{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:#1e293bf2;border-radius:8px;color:#fff;font-size:.875rem;box-shadow:0 4px 16px #0000004d;animation:slideIn .3s ease}.toast button{background:transparent;border:none;color:#64748b;font-size:1.25rem;cursor:pointer;padding:0;line-height:1}.toast button:hover{color:#fff}.toast-success{border-left:3px solid #10b981}.toast-error{border-left:3px solid #ef4444}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.datasets-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.dataset-card{padding:1rem}.dataset-icon{width:56px;height:56px}.data-panel{display:none}.upload-modal .form-row{grid-template-columns:1fr}}.api-wizard{max-width:100%}.wizard-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem;padding:.75rem;background:#6366f10d;border-radius:12px}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:.35rem;opacity:.4;transition:all .3s}.wizard-step.active{opacity:1}.wizard-step.completed{opacity:.7}.wizard-step .step-number{width:32px;height:32px;border-radius:50%;background:#334155;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;transition:all .3s}.wizard-step.active .step-number{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 12px #6366f166}.wizard-step.completed .step-number{background:#10b981;color:#fff}.wizard-step span{font-size:.7rem;color:#64748b;font-weight:500}.wizard-step.active span{color:#6366f1}.wizard-step-line{flex:1;max-width:60px;height:2px;background:linear-gradient(90deg,#334155,#475569);border-radius:2px}.field-selection{background:#1e293b80;border:1px solid rgba(99,102,241,.15);border-radius:12px;padding:1rem;margin-bottom:1rem}.field-selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(99,102,241,.1)}.field-count{font-size:.8rem;color:#94a3b8;font-weight:500}.btn-toggle-all{background:transparent;border:1px solid rgba(99,102,241,.3);color:#6366f1;padding:.35rem .75rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-toggle-all:hover{background:#6366f11a}.field-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;max-height:200px;overflow-y:auto}.field-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#33415566;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.field-item:hover{background:#6366f11a;border-color:#6366f133}.field-item.selected{background:#6366f126;border-color:#6366f14d}.field-item input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.field-name{font-size:.8rem;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.api-preview-table{background:#1e293b80;border:1px solid rgba(99,102,241,.15);border-radius:12px;margin-bottom:1rem;overflow:hidden}.api-preview-table .preview-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#6366f11a;border-bottom:1px solid rgba(99,102,241,.15);color:#94a3b8;font-size:.8rem;font-weight:500}.preview-table-wrapper{overflow-x:auto;max-height:180px}.api-preview-table table{width:100%;border-collapse:collapse;font-size:.75rem}.api-preview-table th{background:#33415580;color:#94a3b8;font-weight:600;text-align:left;padding:.5rem .75rem;white-space:nowrap;position:sticky;top:0}.api-preview-table td{padding:.5rem .75rem;color:#e2e8f0;border-bottom:1px solid rgba(99,102,241,.08);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.api-preview-table tr:hover td{background:#6366f10d}.wizard-buttons{display:flex;gap:.75rem;margin-top:1rem}.btn-back{flex:0 0 auto;display:flex;align-items:center;gap:.35rem;padding:.75rem 1.25rem;background:transparent;border:1px solid rgba(99,102,241,.3);color:#94a3b8;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-back:hover{background:#6366f11a;border-color:#6366f1;color:#e2e8f0}.wizard-buttons .btn-submit{flex:1}.realtime-form .stream-type-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.5rem}.stream-type-btn{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .75rem;background:#1e293b80;border:2px solid rgba(99,102,241,.2);border-radius:10px;color:#94a3b8;cursor:pointer;transition:all .2s ease}.stream-type-btn span{font-weight:600;font-size:.9rem;color:#e2e8f0}.stream-type-btn small{font-size:.7rem;opacity:.7}.stream-type-btn:hover{border-color:#6366f180;background:#6366f114}.stream-type-btn.active{border-color:#6366f1;background:#6366f126;color:#6366f1}.stream-type-btn.active span{color:#6366f1}.realtime-form textarea{width:100%;background:#1e293b80;border:1px solid rgba(99,102,241,.2);border-radius:8px;color:#e2e8f0;padding:.75rem;font-family:Monaco,Menlo,monospace;font-size:.85rem;resize:vertical}.realtime-form textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.realtime-form .hint{display:block;margin-top:.35rem;font-size:.7rem;color:#64748b}.stream-status{display:flex;align-items:center;gap:.35rem;font-size:.7rem;padding:.2rem .5rem;border-radius:99px;position:absolute;top:.5rem;right:.5rem}.stream-status.active{background:#22c55e33;color:#22c55e}.stream-status.stopped{background:#ef444433;color:#ef4444}.stream-status .pulse{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.dataset-card .realtime-badge{position:absolute;top:.5rem;left:.5rem;display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:6px;font-size:.65rem;font-weight:600;text-transform:uppercase}.realtime-badge.mqtt{background:#ef444433;color:#ef4444}.realtime-badge.kafka{background:#f9731633;color:#f97316}.realtime-badge.websocket{background:#a855f733;color:#a855f7}.dataset-card .ogc-badge{position:absolute;top:.5rem;left:.5rem;display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:6px;font-size:.65rem;font-weight:600;text-transform:uppercase}.ogc-badge.wms{background:#0ea5e933;color:#0ea5e9}.ogc-badge.wfs{background:#14b8a633;color:#14b8a6}.ogc-badge.wmts{background:#6366f133;color:#6366f1}.ogc-badge.arcgis{background:#f9731633;color:#f97316}.ogc-form .stream-type-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.service-info-display{padding:1rem}.service-info-grid{display:flex;flex-direction:column;gap:.75rem}.service-info-row{display:flex;padding:.875rem 1rem;background:#0f172a66;border:1px solid rgba(99,102,241,.1);border-radius:10px;gap:1rem}.service-info-row .info-label{flex:0 0 150px;color:#94a3b8;font-weight:600;font-size:.85rem}.service-info-row .info-value{flex:1;color:#e2e8f0;font-size:.9rem;word-break:break-all}.service-info-row .info-value a{color:#6366f1;text-decoration:none}.service-info-row .info-value a:hover{text-decoration:underline}.service-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(99,102,241,.15)}.btn-service-action{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.875rem;text-decoration:none;cursor:pointer;transition:all .2s}.btn-service-action:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.split-view-container.full-map{grid-template-columns:1fr}.split-view-container.full-map .map-panel{height:100%}.classification-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:linear-gradient(135deg,color-mix(in srgb,var(--badge-color) 20%,transparent),color-mix(in srgb,var(--badge-color) 30%,transparent));border:1px solid var(--badge-color);border-radius:6px;font-size:.7rem;font-weight:600;color:var(--badge-color);margin-top:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.classification-badge:hover{transform:scale(1.08);background:linear-gradient(135deg,color-mix(in srgb,var(--badge-color) 30%,transparent),color-mix(in srgb,var(--badge-color) 40%,transparent));box-shadow:0 3px 12px color-mix(in srgb,var(--badge-color) 40%,transparent)}.classification-badge svg{opacity:1}.owner-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:5px;font-size:.65rem;font-weight:500;color:var(--text-secondary);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.owner-badge svg{flex-shrink:0;opacity:.7}.owner-badge span{overflow:hidden;text-overflow:ellipsis}.action-btn.classify{background:linear-gradient(135deg,#6366f133,#8b5cf633)!important;border:1px solid rgba(99,102,241,.4)!important}.action-btn.classify:hover{background:linear-gradient(135deg,#6366f166,#8b5cf666)!important;color:#a5b4fc!important}.classification-modal{max-width:480px;width:90%;background:var(--bg-card)}.classification-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.classification-modal .modal-header h3{display:flex;align-items:center;gap:10px;margin:0;font-size:1.1rem;color:var(--text-primary)}.classification-modal .modal-body{padding:20px}.dataset-name-info{background:var(--bg-hover);padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem;color:var(--text-primary)}.classification-options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.classification-option{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;cursor:pointer;transition:all .2s ease}.classification-option:hover{border-color:var(--level-color);background:var(--bg-hover)}.classification-option.selected{border-color:var(--level-color);background:linear-gradient(135deg,color-mix(in srgb,var(--level-color) 10%,transparent),color-mix(in srgb,var(--level-color) 20%,transparent))}.classification-option input[type=radio]{display:none}.classification-option .option-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--level-color) 20%,transparent);border-radius:10px;color:var(--level-color)}.classification-option .option-info{display:flex;flex-direction:column;gap:2px}.classification-option .option-label{font-size:.95rem;font-weight:600;color:var(--text-primary)}.classification-option .option-desc{font-size:.75rem;color:var(--text-secondary)}.retention-field{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.retention-field label{display:block;font-size:.85rem;font-weight:500;color:var(--text-primary);margin-bottom:8px}.retention-field input{width:100%;padding:10px 14px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:.9rem}.retention-field input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #667eea33}.retention-field small{display:block;margin-top:6px;font-size:.75rem;color:var(--text-muted)}.classification-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.classification-modal .btn-cancel{padding:10px 18px;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s}.classification-modal .btn-cancel:hover{background:var(--bg-active);color:var(--text-primary)}.classification-modal .btn-save{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--accent-gradient);border:none;border-radius:8px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.classification-modal .btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.ai-assistant{display:flex;height:100%;background:var(--bg-primary, #0f172a);color:var(--text-primary, #e2e8f0);overflow:hidden;position:relative}.ai-assistant:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 10% 20%,rgba(102,126,234,.1) 0%,transparent 50%),radial-gradient(ellipse at 90% 80%,rgba(139,92,246,.08) 0%,transparent 50%);pointer-events:none;z-index:0}.ai-assistant>*{position:relative;z-index:1}.ai-sidebar{width:320px;background:var(--sidebar-bg, rgba(15, 23, 42, .9));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-color, rgba(99, 102, 241, .25));display:flex;flex-direction:column;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 30px #0000004d;position:relative;overflow:hidden}.ai-sidebar:after{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,var(--accent-primary, #667eea),#8b5cf6,var(--accent-primary, #667eea));opacity:.5;animation:borderGlow 3s ease-in-out infinite}@keyframes borderGlow{0%,to{opacity:.3}50%{opacity:.7}}.ai-sidebar.collapsed{width:60px}.sidebar-header{padding:1.25rem;border-bottom:1px solid rgba(99,102,241,.2)}.sidebar-header .logo{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.sidebar-header .logo svg{color:#a78bfa}.sidebar-header .logo span{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.btn-new-chat{width:100%;padding:.875rem;background:var(--accent-gradient, linear-gradient(135deg, #667eea, #764ba2));background-size:200% 200%;animation:gradientShift 3s ease infinite;border:none;border-radius:12px;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px color-mix(in srgb,var(--accent-primary, #667eea) 40%,transparent);position:relative;overflow:hidden}.btn-new-chat:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-new-chat:hover:before{width:300px;height:300px}.btn-new-chat:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 30px color-mix(in srgb,var(--accent-primary, #667eea) 50%,transparent),0 0 40px color-mix(in srgb,#8b5cf6 30%,transparent)}.btn-new-chat:active{transform:translateY(-1px) scale(.98)}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.sidebar-tabs{display:flex;border-bottom:1px solid rgba(99,102,241,.2)}.tab-btn{flex:1;padding:.875rem;background:transparent;border:none;color:#94a3b8;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;font-size:.8125rem;font-weight:500;position:relative}.tab-btn:hover{color:#e2e8f0;background:#6366f11a}.tab-btn.active{color:#a78bfa}.tab-btn.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#6366f1,#a78bfa)}.sidebar-content{flex:1;overflow-y:auto;padding:1rem}.section-title{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.section-title .btn-add-small{margin-left:auto;width:22px;height:22px;padding:0;background:#6366f133;border:none;border-radius:6px;color:#a78bfa;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.section-title .btn-add-small:hover{background:#6366f166}.chat-history .empty-state{text-align:center;padding:2rem;color:#64748b}.chat-history .empty-state svg{margin-bottom:.5rem;opacity:.5}.history-list{display:flex;flex-direction:column;gap:.375rem}.history-item{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:#6366f10d;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.history-item:hover{background:#6366f126;border-color:#6366f133}.history-item.active{background:#6366f133;border-color:#6366f14d}.history-item svg{flex-shrink:0;color:#a78bfa}.history-title{flex:1;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-delete-small{width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:6px;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .2s}.history-item:hover .btn-delete-small,.collection-item:hover .btn-delete-small{opacity:1}.btn-delete-small:hover{background:#ef444433;color:#ef4444}.collections-list{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.collection-item{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:#6366f10d;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.collection-item:hover{background:#6366f126;border-color:#6366f133}.collection-item.active{background:#6366f133;border-color:#6366f14d}.collection-item svg:first-child{color:#f59e0b}.collection-item span:first-of-type{flex:1;font-size:.875rem}.doc-count{font-size:.75rem;color:#64748b;background:#6366f11a;padding:.125rem .5rem;border-radius:99px}.btn-upload-docs{width:100%;padding:.75rem;background:#10b98133;border:1px dashed rgba(16,185,129,.4);border-radius:10px;color:#10b981;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s}.btn-upload-docs:hover{background:#10b9814d;border-color:#10b981}.datasets-list{display:flex;flex-direction:column;gap:.25rem;max-height:250px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.3) transparent}.datasets-list::-webkit-scrollbar{width:6px}.datasets-list::-webkit-scrollbar-track{background:#6366f11a;border-radius:3px}.datasets-list::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:3px}.datasets-list::-webkit-scrollbar-thumb:hover{background:#6366f180}.dataset-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#6366f10d;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.8125rem}.dataset-item:hover{background:#6366f126}.dataset-item.active{background:#6366f133}.dataset-item input[type=checkbox]{accent-color:#6366f1}.dataset-item span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spatial-icon{color:#10b981}.settings-panel{display:flex;flex-direction:column;gap:1.25rem}.setting-group{display:flex;flex-direction:column;gap:.5rem}.setting-group label{font-size:.8125rem;font-weight:600;color:var(--text-secondary, #94a3b8)}.setting-group input,.setting-group select{width:100%;padding:.75rem;background:var(--input-bg, #ffffff);border:1px solid var(--input-border, rgba(99, 102, 241, .3));border-radius:8px;color:var(--text-primary, #1e293b);font-size:.875rem;transition:all .2s ease}.setting-group input::-moz-placeholder{color:var(--text-muted, #94a3b8)}.setting-group input::placeholder{color:var(--text-muted, #94a3b8)}.setting-group input:focus,.setting-group select:focus{outline:none;border-color:var(--accent-primary, #667eea);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary, #667eea) 20%,transparent)}.setting-group select option{background:var(--bg-card, #ffffff);color:var(--text-primary, #1e293b)}.setting-group input[type=range]{padding:0;background:transparent;border:none}.input-with-btn{display:flex;gap:.5rem}.input-with-btn input{flex:1}.input-with-btn button{padding:.75rem 1rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s}.input-with-btn button:hover{transform:translateY(-1px)}.btn-save-settings{width:100%;padding:.875rem 1rem;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s;margin-top:.5rem}.btn-save-settings:hover{transform:translateY(-1px);box-shadow:0 4px 15px #10b9814d}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.75rem;scroll-behavior:smooth;position:relative;z-index:1}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--accent-gradient, linear-gradient(180deg, #667eea, #764ba2));border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--accent-primary, #667eea)}.message{display:flex;gap:1rem;max-width:95%;animation:messageSlideIn .4s cubic-bezier(.4,0,.2,1)}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;flex-direction:row-reverse;animation:messageSlideInRight .4s cubic-bezier(.4,0,.2,1)}@keyframes messageSlideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.message-avatar{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem;transition:all .3s ease}.message.assistant .message-avatar{background:linear-gradient(135deg,#6366f1,#8b5cf6,#a78bfa);color:#fff;box-shadow:0 4px 15px #6366f166,0 0 20px #8b5cf633;animation:avatarPulse 2s ease-in-out infinite}@keyframes avatarPulse{0%,to{box-shadow:0 4px 15px #6366f166,0 0 20px #8b5cf633}50%{box-shadow:0 4px 20px #6366f199,0 0 30px #8b5cf666}}.message.user .message-avatar{background:linear-gradient(135deg,#6366f14d,#8b5cf64d);border:2px solid rgba(99,102,241,.4)}.message-content{background:var(--bg-card, rgba(30, 27, 75, .6));backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid var(--border-color, rgba(99, 102, 241, .2));border-radius:6px 20px 20px;padding:1.25rem 1.5rem;box-shadow:0 4px 20px #0003;transition:all .3s ease;position:relative;overflow:hidden}.message-content:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.message-content:hover{border-color:color-mix(in srgb,var(--accent-primary, #667eea) 40%,transparent);box-shadow:0 6px 25px #00000040,0 0 20px color-mix(in srgb,var(--accent-primary, #667eea) 10%,transparent)}.message.user .message-content{background:var(--accent-gradient, linear-gradient(135deg, #667eea, #764ba2));border:none;border-radius:20px 6px 20px 20px;box-shadow:0 4px 20px color-mix(in srgb,var(--accent-primary, #667eea) 40%,transparent)}.message.user .message-content:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.message.user .message-content:hover{box-shadow:0 6px 30px color-mix(in srgb,var(--accent-primary, #667eea) 50%,transparent),0 0 40px color-mix(in srgb,var(--accent-primary, #667eea) 20%,transparent);transform:translateY(-2px)}.message-text{font-size:.9375rem;line-height:1.6;color:#000!important}.message.assistant .message-text,.message.assistant .message-text p,.message.assistant .message-text ul,.message.assistant .message-text ol,.message.assistant .message-text li,.message.assistant .message-text span,.message.assistant .message-text h1,.message.assistant .message-text h2,.message.assistant .message-text h3{color:#000!important}.message.assistant .message-text pre,.message.assistant .message-text code{color:#e2e8f0!important}.message.user .message-text,.message.user .message-text *{color:#fff!important}.message-text strong{color:#a78bfa}.message.user .message-text strong{color:#fff}.streaming-cursor{display:inline-block;margin-left:2px;color:#6366f1;animation:blink 1s infinite;font-weight:300}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.message-text pre{background:#0000004d;padding:1rem;border-radius:8px;overflow-x:auto;margin:.75rem 0}.message-text code{font-family:Fira Code,monospace;font-size:.8125rem}.sql-block{margin-top:1rem;background:#0000004d;border-radius:10px;overflow:hidden}.sql-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#6366f133;font-size:.75rem;font-weight:600;color:#a78bfa}.sql-header button{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:.25rem;display:flex;align-items:center}.sql-header button:hover{color:#fff}.sql-block pre{margin:0;padding:1rem;background:transparent}.data-preview{margin-top:1rem;background:#0003;border-radius:10px;overflow:hidden}.data-header{padding:.5rem 1rem;background:#10b98133;font-size:.75rem;font-weight:600;color:#10b981}.data-table{overflow-x:auto;max-height:300px}.data-table table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table th{background:#6366f126;padding:.625rem .75rem;text-align:left;font-weight:600;color:#a78bfa;white-space:nowrap}.data-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(99,102,241,.1);white-space:nowrap}.sources{margin-top:1rem;background:#f59e0b1a;border-radius:10px;padding:.75rem 1rem}.sources-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;color:#f59e0b;margin-bottom:.5rem}.sources-list{display:flex;flex-wrap:wrap;gap:.5rem}.source-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;background:#f59e0b26;padding:.25rem .625rem;border-radius:6px}.source-item svg{color:#f59e0b}.source-chunk{color:#94a3b8;font-size:.6875rem}.message-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding-top:.5rem;border-top:1px solid rgba(99,102,241,.1)}.timestamp{font-size:.6875rem;color:#fff}.btn-copy{background:transparent;border:none;color:#fff;cursor:pointer;padding:.25rem;display:flex;align-items:center;transition:all .2s}.btn-copy:hover{color:#a78bfa}.typing-indicator{display:flex;gap:.5rem;padding:.75rem 0;align-items:center}.typing-indicator span{width:10px;height:10px;background:linear-gradient(135deg,#6366f1,#a78bfa);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out;box-shadow:0 0 10px #6366f180}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.5;box-shadow:0 0 10px #6366f14d}30%{transform:translateY(-12px) scale(1.2);opacity:1;box-shadow:0 0 20px #6366f1b3}}.quick-prompts{display:flex;gap:.75rem;padding:.75rem 1.5rem;overflow-x:auto}.quick-prompt{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#6366f11a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(99,102,241,.25);border-radius:99px;color:#a78bfa;font-size:.8125rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.quick-prompt:hover{background:linear-gradient(135deg,#6366f133,#8b5cf633);border-color:#6366f180;transform:translateY(-3px);box-shadow:0 8px 20px #6366f140}.quick-prompt:active{transform:translateY(-1px)}.btn-send{width:48px;height:48px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:14px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #6366f14d;flex-shrink:0}.btn-send:hover:not(:disabled){transform:scale(1.08);box-shadow:0 6px 25px #6366f180}.btn-send:active:not(:disabled){transform:scale(.95)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.btn-voice{width:48px;height:48px;background:#f1f5f9;border:2px solid #e2e8f0;border-radius:14px;color:#6366f1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.btn-voice:hover{background:#e2e8f0;border-color:#6366f1;transform:scale(1.05)}.btn-voice.listening{background:linear-gradient(135deg,#ef4444,#f87171);border-color:#ef4444;color:#fff;animation:voicePulse 1.5s ease-in-out infinite;box-shadow:0 0 20px #ef444480}@keyframes voicePulse{0%,to{transform:scale(1);box-shadow:0 0 20px #ef444480}50%{transform:scale(1.1);box-shadow:0 0 30px #ef4444b3}}.btn-image-upload{width:48px;height:48px;background:#faf5ff;border:2px solid #e9d5ff;border-radius:14px;color:#8b5cf6;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.btn-image-upload:hover{background:#ede9fe;border-color:#8b5cf6;transform:scale(1.05);box-shadow:0 4px 15px #8b5cf633}.btn-audio-upload{width:48px;height:48px;background:#f0fdf4;border:2px solid #bbf7d0;border-radius:14px;color:#22c55e;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.btn-audio-upload:hover{background:#dcfce7;border-color:#22c55e;transform:scale(1.05);box-shadow:0 4px 15px #22c55e33}.audio-preview-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;margin-bottom:.75rem}.audio-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.875rem;color:#22c55e;font-weight:500}.btn-clear-audio{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;padding:.25rem .5rem;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.btn-clear-audio:hover{background:#ef444440;transform:scale(1.05)}.audio-preview-actions{display:flex;flex-direction:column;gap:.75rem}.btn-transcribe{background:linear-gradient(135deg,#22c55e,#10b981);border:none;border-radius:12px;color:#fff;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s;box-shadow:0 4px 15px #22c55e4d}.btn-transcribe:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px #22c55e80}.btn-transcribe:disabled{opacity:.6;cursor:not-allowed}.audio-hint{font-size:.75rem;color:#64748b;margin:0;text-align:center}.image-preview-container{background:#0f172a99;border:1px solid rgba(139,92,246,.3);border-radius:12px;padding:.75rem;margin-bottom:.75rem}.image-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.875rem;color:#a78bfa}.btn-clear-images{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;padding:.25rem .5rem;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.btn-clear-images:hover{background:#ef444440;transform:scale(1.05)}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}.image-preview-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:2px solid rgba(139,92,246,.3);transition:all .2s}.image-preview-item:hover{border-color:#8b5cf699;transform:scale(1.05)}.image-preview-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.btn-remove-image{position:absolute;top:4px;right:4px;background:#ef4444e6;border:none;border-radius:50%;color:#fff;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .2s}.image-preview-item:hover .btn-remove-image{opacity:1}.btn-remove-image:hover{transform:scale(1.1);background:#ef4444}.message-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:.75rem}.message-image{width:100%;border-radius:8px;border:2px solid rgba(139,92,246,.3);cursor:pointer;transition:all .3s}.message-image:hover{transform:scale(1.05);border-color:#8b5cf699;box-shadow:0 4px 20px #8b5cf666}.upload-modal{max-width:500px}.upload-modal .modal-header{background:#0f172acc;border-bottom:1px solid rgba(99,102,241,.2);padding:1.25rem 1.5rem}.upload-modal .modal-header h2{display:flex;align-items:center;gap:.75rem;font-size:1.125rem;color:#10b981}.upload-modal .modal-body{padding:1.5rem}.upload-zone{position:relative;margin-bottom:1.5rem}.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-zone label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;background:#6366f10d;border:2px dashed rgba(99,102,241,.3);border-radius:16px;cursor:pointer;transition:all .2s}.upload-zone label:hover{background:#6366f11a;border-color:#6366f1}.upload-zone label.disabled{pointer-events:none;opacity:.5}.upload-zone label svg{color:#6366f1;margin-bottom:1rem}.upload-zone label p{font-weight:600;margin-bottom:.5rem}.upload-zone label span{font-size:.8125rem;color:#64748b}.upload-progress{text-align:center;margin-bottom:1.5rem}.progress-bar{height:6px;background:#6366f133;border-radius:99px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#10b981);border-radius:99px;transition:width .3s}.upload-progress span{font-size:.8125rem;color:#10b981}.collection-select{display:flex;flex-direction:column;gap:.5rem}.collection-select label{font-size:.8125rem;font-weight:600;color:#94a3b8}.collection-select select{width:100%;padding:.75rem;background:#0f172a99;border:1px solid rgba(99,102,241,.2);border-radius:8px;color:#e2e8f0;font-size:.875rem}.ai-assistant .modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.ai-assistant .modal-content{background:linear-gradient(135deg,#1e1b4bf2,#0f172af2);border:1px solid rgba(99,102,241,.3);border-radius:20px;width:90%;max-width:600px;max-height:90vh;overflow:hidden}.ai-assistant .btn-close{width:36px;height:36px;background:#ef44441a;border:none;border-radius:10px;color:#f87171;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.ai-assistant .btn-close:hover{background:#ef444433}.ai-assistant ::-webkit-scrollbar{width:6px;height:6px}.ai-assistant ::-webkit-scrollbar-track{background:transparent}.ai-assistant ::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:99px}.ai-assistant ::-webkit-scrollbar-thumb:hover{background:#6366f180}.ai-table-wrapper{overflow-x:auto;margin:1rem 0;border-radius:12px;background:#0f172a99;border:1px solid rgba(99,102,241,.2)}.ai-table{width:100%;border-collapse:collapse;font-size:.875rem}.ai-table th{background:linear-gradient(135deg,#6366f133,#8b5cf633);padding:.75rem 1rem;text-align:left;font-weight:600;color:#a78bfa;border-bottom:2px solid rgba(99,102,241,.3);white-space:nowrap}.ai-table td{padding:.625rem 1rem;border-bottom:1px solid rgba(99,102,241,.1);color:#e2e8f0}.ai-table tr:hover td{background:#6366f11a}.ai-table tr:last-child td{border-bottom:none}.message-text pre{background:#0f172acc;border:1px solid rgba(99,102,241,.2);border-radius:10px;padding:1rem;overflow-x:auto;margin:.75rem 0}.message-text code{font-family:Fira Code,Monaco,monospace;font-size:.8125rem;color:#a5b4fc}.message-text code:not(pre code){background:#6366f126;padding:.125rem .375rem;border-radius:4px}.message-text h1,.message-text h2,.message-text h3{color:#a78bfa;margin:1rem 0 .5rem}.message-text h1{font-size:1.5rem}.message-text h2{font-size:1.25rem;padding:.5rem 0;border-bottom:1px solid rgba(167,139,250,.3)}.message-text h2:has(+p),.message-text h2:first-of-type{background:linear-gradient(135deg,#22c55e26,#10b9811a);padding:.75rem 1rem;border-radius:8px;border:1px solid rgba(34,197,94,.3);color:#4ade80;margin-top:1rem}.message-text h3{font-size:1.125rem}.message-text ul,.message-text ol{margin:.5rem 0;padding-left:1.5rem}.message-text li{margin:.25rem 0;color:#e2e8f0}.message-text p strong{color:#60a5fa}.message-text p:has(strong){background:#1e293b80;padding:.5rem .75rem;border-radius:6px;border-left:3px solid #60a5fa;margin:.5rem 0}.message-text p em,.message-text small{color:#94a3b8;font-size:.8rem}.message-text mark,.message.assistant .message-text mark{background:linear-gradient(135deg,#c4b5fd,#ddd6fe)!important;color:#1e1b4b!important;padding:.125rem .375rem;border-radius:4px;font-weight:500}.message-text .highlight,.message.assistant .message-text .highlight,.message-text span[style*=background],.message.assistant .message-text span[style*=background]{color:#1e1b4b!important}.message-text ::-moz-selection{background:#8b5cf6;color:#fff}.message-text ::selection{background:#8b5cf6;color:#fff}.ai-chart-container{background:linear-gradient(135deg,#0f172acc,#1e1b4b99);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(99,102,241,.3);border-radius:16px;padding:1.5rem;margin:1rem 0;min-width:500px;width:100%;max-width:800px;box-shadow:0 8px 32px #0000004d,inset 0 1px #ffffff0d;animation:chartFadeIn .5s ease-out}@keyframes chartFadeIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.ai-chart-title{color:#a78bfa;font-size:1.125rem;font-weight:600;margin:0 0 1rem;text-align:center;text-shadow:0 2px 10px rgba(167,139,250,.3)}.message-charts{margin-top:1rem}.quick-charts{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:linear-gradient(180deg,#6366f114,#6366f126);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(99,102,241,.2);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quick-charts-label{font-size:.875rem;color:#94a3b8;font-weight:600;display:flex;align-items:center;gap:.5rem}.quick-charts-label:before{content:"📊"}.quick-chart-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:linear-gradient(135deg,#6366f126,#8b5cf626);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(99,102,241,.3);border-radius:10px;color:#a78bfa;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.quick-chart-btn:hover{background:linear-gradient(135deg,#6366f140,#8b5cf640);border-color:#6366f180;transform:translateY(-3px);box-shadow:0 8px 20px #6366f14d,0 0 15px #8b5cf633}.quick-chart-btn:active{transform:translateY(-1px)}.message-charts{margin:1rem 0;width:100%}.ai-chart-container{background:#0f172a99;border:1px solid rgba(99,102,241,.2);border-radius:12px;padding:1rem;margin:.75rem 0;min-height:450px;width:100%}.ai-chart-container>div{width:100%;height:400px}.ai-chart-title{color:#a78bfa;font-size:1rem;font-weight:600;margin:0 0 1rem;text-align:center}.ai-chart-container .recharts-wrapper{margin:0 auto}.ai-chart-container .recharts-cartesian-grid-horizontal line,.ai-chart-container .recharts-cartesian-grid-vertical line{stroke:#6366f11a}.ai-chart-container .recharts-legend-item-text{color:#e2e8f0!important}.ai-chart-container .recharts-text{fill:#94a3b8}.ai-chart-container .recharts-tooltip-wrapper{z-index:100}.message-code-blocks{margin:1rem 0}.runnable-code-block{background:#0f172ae6;border:1px solid rgba(99,102,241,.3);border-radius:12px;overflow:hidden;margin:.75rem 0;transition:all .3s ease}.runnable-code-block:hover{border-color:#6366f180;box-shadow:0 4px 20px #6366f126}.runnable-code-block.code-hidden{background:#0f172a99}.code-header-compact{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:linear-gradient(135deg,#6366f11a,#8b5cf60d)}.btn-toggle-code{display:flex;align-items:center;gap:.375rem;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:6px;padding:.375rem .625rem;color:#94a3b8;font-size:.75rem;cursor:pointer;transition:all .2s ease}.btn-toggle-code:hover{background:#6366f133;color:#a78bfa;border-color:#6366f166}.code-actions-compact{display:flex;align-items:center;gap:.5rem}.retry-badge-compact{font-size:.625rem;color:#60a5fa;animation:pulse-badge 1s ease-in-out infinite}.btn-run-code-compact{display:flex;align-items:center;gap:.375rem;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;padding:.375rem .75rem;color:#fff;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-run-code-compact:hover{transform:scale(1.02);box-shadow:0 2px 10px #10b9814d}.btn-run-code-compact.running{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.btn-run-code-compact:disabled{cursor:not-allowed;opacity:.8}.fixing-status-badge{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#fbbf24;background:#fbbf2426;padding:.25rem .625rem;border-radius:6px;border:1px solid rgba(251,191,36,.3);animation:pulse 1.5s ease-in-out infinite}.auto-fix-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#fbbf2426,#f59e0b1a);border:1px solid rgba(251,191,36,.3);border-radius:8px;margin:.5rem 0;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fix-status-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fbbf2433;border-radius:50%;color:#fbbf24}.fix-status-text{flex:1;display:flex;flex-direction:column;gap:.125rem}.fix-status-text strong{font-size:.8125rem;color:#fbbf24}.fix-status-text span{font-size:.75rem;color:#94a3b8}.fix-progress{width:60px;height:4px;background:#6366f133;border-radius:2px;overflow:hidden}.fix-progress-bar{height:100%;background:linear-gradient(90deg,#fbbf24,#f59e0b);border-radius:2px;transition:width .3s ease}.retry-badge-compact{font-size:.6875rem;color:#fbbf24;background:#fbbf2426;padding:.25rem .5rem;border-radius:4px;font-weight:600}.code-section-expanded{border-top:1px solid rgba(99,102,241,.2);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.code-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(135deg,#6366f126,#8b5cf61a);border-bottom:1px solid rgba(99,102,241,.2)}.code-language{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;color:#a78bfa;text-transform:uppercase}.auto-run-badge{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;font-size:.625rem;padding:.125rem .5rem;border-radius:8px;text-transform:uppercase;font-weight:700;letter-spacing:.5px;animation:pulse-badge 2s ease-in-out infinite;box-shadow:0 2px 8px #f9731666}.retry-badge{background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-size:.625rem;padding:.125rem .5rem;border-radius:8px;text-transform:uppercase;font-weight:700;letter-spacing:.5px;animation:pulse-badge 1s ease-in-out infinite;box-shadow:0 2px 8px #6366f166}.code-diff-notice{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:6px;margin:.5rem 0;font-size:.75rem;color:#22c55e}.code-diff-notice svg{flex-shrink:0}@keyframes pulse-badge{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.code-actions{display:flex;align-items:center;gap:.5rem}.btn-copy-code,.btn-run-code{display:flex;align-items:center;gap:.4rem;padding:.5rem .875rem;border:1px solid rgba(99,102,241,.3);border-radius:8px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-copy-code{background:#4755694d;color:#94a3b8}.btn-copy-code:hover{background:#47556980;color:#e2e8f0;border-color:#94a3b880}.btn-run-code{background:linear-gradient(135deg,#22c55e33,#10b98133);color:#4ade80;border-color:#22c55e66}.btn-run-code:hover:not(:disabled){background:linear-gradient(135deg,#22c55e66,#10b9814d);transform:translateY(-2px);box-shadow:0 4px 15px #22c55e4d}.btn-run-code:disabled{opacity:.7;cursor:not-allowed}.btn-run-code.running{background:linear-gradient(135deg,#6366f14d,#8b5cf633);color:#a78bfa;border-color:#6366f180}.btn-run-code .spin{animation:spin 1s linear infinite}.code-content{margin:0;padding:1rem;background:#0000004d;overflow-x:auto;max-height:400px;overflow-y:auto}.code-content code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;color:#e2e8f0;white-space:pre}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background:#0f172a80}.code-content::-webkit-scrollbar-thumb{background:#6366f166;border-radius:4px}.code-content::-webkit-scrollbar-thumb:hover{background:#6366f199}.code-output{border-top:1px solid rgba(99,102,241,.2);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.output-header{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.8125rem;font-weight:600;text-transform:uppercase}.code-output.success .output-header{background:linear-gradient(135deg,#22c55e26,#10b9811a);color:#4ade80}.code-output.error .output-header{background:linear-gradient(135deg,#ef444426,#dc26261a);color:#f87171}.output-content{margin:0;padding:1rem;background:#0003;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.code-output.success .output-content{color:#86efac}.code-output.error .output-content{color:#fca5a5}.btn-manual-retry{display:flex;align-items:center;gap:.375rem;margin-left:auto;padding:.375rem .75rem;background:#fbbf2433;border:1px solid rgba(251,191,36,.4);border-radius:6px;color:#fbbf24;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-manual-retry:hover{background:#fbbf244d;transform:translateY(-1px)}.btn-manual-retry:disabled{opacity:.5;cursor:not-allowed}.retry-history{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(99,102,241,.2)}.retry-history summary{cursor:pointer;font-size:.75rem;color:#94a3b8;padding:.375rem;border-radius:4px;transition:background .2s}.retry-history summary:hover{background:#6366f11a}.retry-history-content{margin-top:.5rem;display:flex;flex-direction:column;gap:.375rem}.retry-attempt{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;background:#0003;border-radius:6px;border-left:3px solid rgba(239,68,68,.5)}.attempt-num{font-size:.6875rem;font-weight:600;color:#f87171;text-transform:uppercase}.attempt-error{font-size:.6875rem;color:#94a3b8;word-break:break-all;font-family:JetBrains Mono,monospace}.btn-run-code.loading-python{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.code-charts{border-top:1px solid rgba(99,102,241,.2);padding:1rem;background:#00000026}.charts-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem;font-weight:600;color:#a78bfa}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.chart-item{background:#0f172acc;border:1px solid rgba(99,102,241,.2);border-radius:12px;overflow:hidden;transition:all .3s ease}.chart-item:hover{border-color:#6366f180;box-shadow:0 4px 20px #6366f133;transform:translateY(-2px)}.chart-item img{width:100%;height:auto;display:block;cursor:pointer;transition:transform .3s ease}.chart-item img:hover{transform:scale(1.02)}.btn-download-chart{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;background:linear-gradient(135deg,#6366f133,#8b5cf626);border:none;border-top:1px solid rgba(99,102,241,.2);color:#a78bfa;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-download-chart:hover{background:linear-gradient(135deg,#6366f14d,#8b5cf640);color:#c4b5fd}.btn-download-chart svg{transition:transform .3s ease}.btn-download-chart:hover svg{transform:translateY(2px)}.code-maps{border-top:1px solid rgba(99,102,241,.2);padding:1rem;background:#00000026}.maps-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem;font-weight:600;color:#22c55e}.maps-grid{display:grid;grid-template-columns:1fr;gap:1rem}.map-item{background:#0f172acc;border:1px solid rgba(34,197,94,.3);border-radius:12px;overflow:hidden;transition:all .3s ease}.map-item:hover{border-color:#22c55e80;box-shadow:0 4px 20px #22c55e33}.map-item iframe{width:100%;height:400px;display:block;background:#1e293b}.map-actions{display:flex;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#22c55e1a,#16a34a0d);border-top:1px solid rgba(34,197,94,.2)}.btn-open-map{display:flex;align-items:center;justify-content:center;gap:.5rem;flex:1;padding:.625rem 1rem;background:linear-gradient(135deg,#22c55e33,#16a34a26);border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#4ade80;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-open-map:hover{background:linear-gradient(135deg,#22c55e4d,#16a34a40);border-color:#22c55e80;color:#86efac;transform:translateY(-1px)}.code-tables{border-top:1px solid rgba(99,102,241,.2);padding:1rem;background:#00000026}.tables-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem;font-weight:600;color:#3b82f6}.tables-grid{display:grid;grid-template-columns:1fr;gap:1rem}.table-item{background:#0f172acc;border:1px solid rgba(59,130,246,.3);border-radius:12px;overflow:hidden;transition:all .3s ease}.table-item:hover{border-color:#3b82f680;box-shadow:0 4px 20px #3b82f633}.table-toolbar{display:flex;gap:8px;padding:8px 12px;background:#1e293bcc;border-bottom:1px solid rgba(59,130,246,.2);border-radius:8px 8px 0 0}.table-export-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#3b82f633;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#94a3b8;font-size:.7rem;cursor:pointer;transition:all .2s ease}.table-export-btn:hover{background:#3b82f666;color:#e2e8f0;border-color:#3b82f680}.table-export-btn svg{width:12px;height:12px}.table-export-btn-excel{background:#22c55e33;border-color:#22c55e4d;color:#86efac}.table-export-btn-excel:hover{background:#22c55e66;border-color:#22c55e80;color:#bbf7d0}.table-export-btn-pdf{background:#ef444433;border-color:#ef44444d;color:#fca5a5}.table-export-btn-pdf:hover{background:#ef444466;border-color:#ef444480;color:#fecaca}.table-export-btn-warehouse{background:#8b5cf633;border-color:#8b5cf64d;color:#c4b5fd}.table-export-btn-warehouse:hover{background:#8b5cf666;border-color:#8b5cf680;color:#ddd6fe}.table-container{max-height:400px;overflow:auto}.rendered-data-table{width:100%;border-collapse:collapse;font-size:.8rem;font-family:JetBrains Mono,Fira Code,monospace}.rendered-data-table thead{position:sticky;top:0;z-index:10}.rendered-data-table th{background:linear-gradient(135deg,#1e3a5f,#1e293b);color:#60a5fa;padding:.75rem 1rem;text-align:left;font-weight:600;border-bottom:2px solid rgba(59,130,246,.4);white-space:nowrap}.rendered-data-table td{padding:.625rem 1rem;color:#e2e8f0;border-bottom:1px solid rgba(59,130,246,.15);white-space:nowrap}.rendered-data-table tbody tr{transition:background .2s ease}.rendered-data-table tbody tr:hover{background:#3b82f61a}.rendered-data-table tbody tr:nth-child(2n){background:#1e293b80}.rendered-data-table tbody tr:nth-child(2n):hover{background:#3b82f626}.table-container::-webkit-scrollbar{width:8px;height:8px}.table-container::-webkit-scrollbar-track{background:#1e293b80}.table-container::-webkit-scrollbar-thumb{background:#3b82f666;border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:#3b82f699}.table-container::-webkit-scrollbar-corner{background:#1e293b80}.agent-mode-toggle{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(99,102,241,.2)}.toggle-switch-container{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.toggle-switch{position:relative;width:50px;height:26px}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#6366f133;border:1px solid rgba(99,102,241,.3);border-radius:26px;transition:all .3s ease}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background:#64748b;border-radius:50%;transition:all .3s ease}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,#7c3aed,#a855f7);border-color:#a855f7;box-shadow:0 0 15px #a855f766}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px);background:#fff;box-shadow:0 0 8px #ffffff80}.toggle-label{font-size:.75rem;font-weight:600;color:#64748b;transition:color .3s ease}.toggle-label.active{color:#a855f7;text-shadow:0 0 10px rgba(168,85,247,.5)}.setting-hint{font-size:.7rem;color:#64748b;margin-top:.5rem;line-height:1.4}.agent-tools-info{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#7c3aed1a,#a855f70d);border:1px solid rgba(168,85,247,.2);border-radius:10px}.agent-tools-info .tools-header{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:#c4b5fd;margin-bottom:.75rem}.agent-tools-info .tools-header svg{color:#a855f7}.agent-tools-info .tools-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.agent-tools-info .tool-item{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;background:#0f172a66;border-radius:6px;border-left:2px solid #a855f7}.agent-tools-info .tool-name{font-size:.7rem;font-weight:600;color:#22c55e;font-family:JetBrains Mono,monospace}.agent-tools-info .tool-desc{font-size:.65rem;color:#94a3b8;line-height:1.3}.agent-thinking-panel{background:linear-gradient(135deg,#7c3aed26,#a855f71a);border:1px solid rgba(168,85,247,.3);border-radius:12px;padding:1rem;margin-bottom:1rem;animation:agentPulse 2s ease-in-out infinite}@keyframes agentPulse{0%,to{box-shadow:0 0 20px #a855f733}50%{box-shadow:0 0 30px #a855f766}}.agent-thinking-header{display:flex;align-items:center;gap:.5rem;color:#c4b5fd;font-weight:600;margin-bottom:.75rem}.agent-thinking-header svg{color:#a855f7}.agent-steps{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;max-height:200px;overflow-y:auto}.agent-step{display:flex;gap:.75rem;padding:.5rem;background:#0f172a80;border-radius:8px;border-left:3px solid #a855f7}.step-number{width:24px;height:24px;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}.step-content{flex:1;min-width:0}.step-thought{font-size:.75rem;color:#94a3b8;line-height:1.4}.step-tools{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.tool-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#22c55e33;border:1px solid rgba(34,197,94,.3);border-radius:4px;font-size:.65rem;color:#4ade80;font-weight:500}.agent-summary{display:inline-flex;align-items:center;background:linear-gradient(135deg,#7c3aed1a,#a855f70d);border:1px solid rgba(168,85,247,.2);border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem}.agent-summary-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#c4b5fd}.agent-summary-header svg{color:#a855f7}@keyframes thinkingDots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.agent-thinking-header span:after{animation:thinkingDots 1.5s infinite}.external-db-list{display:flex;flex-direction:column;gap:.25rem}.external-db-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#1e293b80;border:1px solid rgba(99,102,241,.2);border-radius:8px;cursor:pointer;transition:all .2s ease}.external-db-item:hover{background:#6366f11a;border-color:#6366f166}.external-db-item.active{background:#6366f126;border-color:#6366f180}.external-db-item svg:first-child{color:#f59e0b}.btn-delete-db{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer;opacity:0;transition:all .2s ease}.external-db-item:hover .btn-delete-db{opacity:1}.btn-delete-db:hover{background:#ef444433;border-color:#ef444480;transform:scale(1.1)}.sql-query-result{margin-top:1rem;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid rgba(99,102,241,.3)}.sql-error{padding:1rem;color:#ef4444;display:flex;align-items:center;gap:.5rem;background:#ef44441a}.sql-result-container{display:flex;flex-direction:column}.sql-result-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#6366f126;border-bottom:1px solid rgba(99,102,241,.2);color:#a78bfa;font-weight:500;font-size:.875rem}.sql-result-actions{margin-left:auto;display:flex;gap:.5rem}.sql-result-actions button{padding:.25rem .5rem;background:#6366f133;border:1px solid rgba(99,102,241,.3);border-radius:6px;color:#c4b5fd;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.sql-result-actions button:hover{background:#6366f14d;border-color:#6366f180}.sql-result-table-wrapper{overflow-x:auto;max-height:400px;overflow-y:auto}.sql-result-table{width:100%;border-collapse:collapse;font-size:.8125rem}.sql-result-table th{position:sticky;top:0;background:#1e293b;color:#a78bfa;font-weight:600;text-align:left;padding:.625rem .75rem;border-bottom:2px solid rgba(99,102,241,.3);white-space:nowrap}.sql-result-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);color:#e2e8f0;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sql-result-table tr:hover td{background:#6366f11a}.sql-result-table tr:nth-child(2n) td{background:#00000026}.sql-result-table tr:nth-child(2n):hover td{background:#6366f126}.sql-result-table .null-value{color:#64748b;font-style:italic;font-size:.75rem}.sql-result-truncated{padding:.75rem 1rem;text-align:center;color:#94a3b8;font-size:.75rem;background:#0003;border-top:1px solid rgba(99,102,241,.1)}.external-tables-list{display:flex;flex-direction:column;gap:.125rem;padding-left:.5rem;border-left:2px solid rgba(99,102,241,.2)}.external-tables-list>div::-webkit-scrollbar{width:4px}.external-tables-list>div::-webkit-scrollbar-track{background:#0f172a80;border-radius:2px}.external-tables-list>div::-webkit-scrollbar-thumb{background:#6366f166;border-radius:2px}.external-tables-list>div::-webkit-scrollbar-thumb:hover{background:#6366f199}.external-table-item{display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#1e293b4d;border-radius:4px;cursor:pointer;transition:all .2s ease}.external-table-item:hover{background:#6366f11a}.external-table-item.active{background:#10b98126;border:1px solid rgba(16,185,129,.3)}.external-table-item svg{color:#94a3b8}.db-connect-modal{max-width:450px}.db-connect-modal .modal-body{padding:1.5rem}.db-connect-modal .form-group{margin-bottom:1rem}.db-connect-modal .form-group label{display:block;font-size:.8125rem;font-weight:600;color:#94a3b8;margin-bottom:.375rem}.db-connect-modal .form-group input,.db-connect-modal .form-group select{width:100%;padding:.625rem .875rem;background:#0f172acc;border:1px solid rgba(99,102,241,.3);border-radius:8px;color:#e2e8f0;font-size:.875rem;transition:all .2s ease}.db-connect-modal .form-group input:focus,.db-connect-modal .form-group select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.db-connect-modal .form-group input::-moz-placeholder{color:#64748b}.db-connect-modal .form-group input::placeholder{color:#64748b}.db-connect-modal .form-row{display:flex;gap:.75rem}.db-connect-modal .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(99,102,241,.2)}.db-connect-modal .btn-secondary{padding:.625rem 1.25rem;background:#64748b33;border:1px solid rgba(100,116,139,.3);border-radius:8px;color:#94a3b8;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.db-connect-modal .btn-secondary:hover{background:#64748b4d}.db-connect-modal .btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.db-connect-modal .btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 15px #6366f166}.db-connect-modal .btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-add-small{background:#6366f133;border:1px solid rgba(99,102,241,.3);border-radius:4px;color:#a78bfa;cursor:pointer;transition:all .2s ease}.btn-add-small:hover{background:#6366f14d}.user-management{padding:32px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #e8e8e8}.header-left svg{color:#667eea}.page-header h1{font-size:28px;font-weight:700;color:#1a1a2e;margin:0 0 4px}.page-header p{font-size:14px;color:#666;margin:0}.btn-primary{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-secondary{padding:12px 24px;background:#f8f9fa;color:#555;border:1px solid #e8e8e8;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{background:#e8e8e8}.alert{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:10px;margin-bottom:24px;font-size:14px;font-weight:500}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#dc2626}.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#16a34a}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.user-card{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:24px;transition:all .3s ease}.user-card:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea26;transform:translateY(-4px)}.user-card-header{display:flex;gap:16px;margin-bottom:20px}.user-avatar{width:56px;height:56px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.user-info h3{font-size:18px;font-weight:600;color:#1a1a2e;margin:0 0 4px}.username{font-size:14px;color:#666;margin:0}.user-details{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.detail-item{display:flex;align-items:center;gap:10px;font-size:14px;color:#555}.detail-item svg{color:#667eea;flex-shrink:0}.role-badge{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-superadmin{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.role-admin{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.role-data_owner{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.role-data_steward{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.role-analyst{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.role-viewer{background:#e8e8e8;color:#555}.user-actions{display:flex;gap:8px;padding-top:16px;border-top:1px solid #f0f0f0}.user-management .btn-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e8e8e8);border-radius:10px;cursor:pointer;transition:all .3s ease;color:var(--text-secondary, #555)}.user-management .btn-icon:hover{background:#667eea;color:#fff;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.user-management .btn-danger{background:#ef44441a;border-color:#ef444433;color:#dc2626}.user-management .btn-danger:hover{background:#dc2626;color:#fff;border-color:#dc2626}.permission-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:20px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e8e8e8}.modal-header h2{font-size:24px;font-weight:700;color:#1a1a2e;margin:0}.btn-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;border:none;border-radius:10px;cursor:pointer;color:#555;transition:all .3s ease}.btn-close:hover{background:#e8e8e8;color:#1a1a2e}.modal-form{padding:24px;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#555;font-size:14px}.form-group label svg{color:#667eea}.form-group input,.form-group select{padding:12px 16px;border:2px solid #e8e8e8;border-radius:10px;font-size:15px;transition:all .3s ease;outline:none}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.form-group input:disabled{background:#f8f9fa;cursor:not-allowed}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e8e8e8}@media(max-width:768px){.user-management{padding:20px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.users-grid{grid-template-columns:1fr}}.role-management{padding:32px;max-width:1400px;margin:0 auto}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.role-card{background:#fff;border:2px solid #e8e8e8;border-radius:16px;padding:24px;transition:all .3s ease}.role-card.system-role{border-color:#667eea;background:linear-gradient(135deg,#667eea0d,#764ba20d)}.role-card.custom-role:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea26;transform:translateY(-4px)}.role-header{display:flex;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.role-icon{width:56px;height:56px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.role-info{flex:1}.role-info h3{font-size:18px;font-weight:600;color:#1a1a2e;margin:0 0 4px}.role-key{font-size:12px;color:#666;font-family:Courier New,monospace;background:#f8f9fa;padding:2px 8px;border-radius:4px;display:inline-block}.system-badge{display:inline-block;margin-left:8px;padding:2px 8px;background:#667eea;color:#fff;font-size:10px;font-weight:600;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.role-permissions-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;max-height:300px;overflow-y:auto;padding-right:8px}.role-permissions-list::-webkit-scrollbar{width:6px}.role-permissions-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.permission-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;transition:all .2s ease}.permission-item.enabled{background:#22c55e1a;color:#16a34a}.permission-item.disabled{background:#ef44441a;color:#dc2626}.check-icon{flex-shrink:0;color:#16a34a}.x-icon{flex-shrink:0;color:#dc2626}.role-actions{display:flex;gap:8px;padding-top:16px;border-top:1px solid #f0f0f0}.large-modal{max-width:800px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.permissions-section{margin-top:24px}.permissions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e8e8e8}.permissions-header h3{font-size:18px;font-weight:600;color:#1a1a2e;margin:0}.bulk-actions{display:flex;gap:12px}.btn-text{background:none;border:none;color:#667eea;font-size:14px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease}.btn-text:hover{background:#667eea1a}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;max-height:400px;overflow-y:auto;padding:16px;background:#f8f9fa;border-radius:12px}.permissions-grid::-webkit-scrollbar{width:8px}.permissions-grid::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px}.permission-checkbox{background:#fff;border:2px solid #e8e8e8;border-radius:10px;padding:16px;transition:all .3s ease}.permission-checkbox:has(input:checked){border-color:#667eea;background:#667eea0d}.permission-checkbox:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.permission-checkbox label{display:flex;gap:12px;cursor:pointer;align-items:flex-start}.permission-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;flex-shrink:0;margin-top:2px;accent-color:#667eea}.permission-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.checkbox-content{display:flex;flex-direction:column;gap:4px}.permission-name{font-size:14px;font-weight:600;color:#1a1a2e}.permission-desc{font-size:12px;color:#666;line-height:1.4}.alert-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#2563eb}@media(max-width:768px){.role-management{padding:20px}.roles-grid,.form-row,.permissions-grid{grid-template-columns:1fr}.large-modal{max-width:95%}}.audit-log{padding:24px 32px;height:100%;display:flex;flex-direction:column}.audit-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.audit-header .header-left{display:flex;gap:16px;align-items:center}.audit-header .header-left svg{color:#667eea}.audit-header h2{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 4px}.audit-header p{font-size:14px;color:#666;margin:0}.btn-refresh{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;cursor:pointer;color:#555;transition:all .3s ease}.btn-refresh:hover{background:#f8f9fa;color:#667eea;border-color:#667eea}.btn-export{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-export:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.btn-clear{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;color:#dc2626;border:1px solid #dc2626;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-clear:hover{background:#dc2626;color:#fff}.audit-filters{background:#fff;padding:20px;border-radius:12px;margin-bottom:20px;box-shadow:0 2px 10px #0000000d}.filter-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.search-box{display:flex;align-items:center;gap:10px;background:#f8f9fa;padding:10px 16px;border-radius:10px;flex:1;min-width:200px;border:1px solid transparent;transition:all .3s ease}.search-box:focus-within{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.search-box svg{color:#999}.search-box input{flex:1;border:none;background:transparent;font-size:14px;outline:none}.filter-select{display:flex;align-items:center;gap:10px;background:#f8f9fa;padding:10px 16px;border-radius:10px;border:1px solid transparent;transition:all .3s ease}.filter-select:focus-within{background:#fff;border-color:#667eea}.filter-select svg{color:#999}.filter-select select{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer;min-width:120px}.date-range{display:flex;align-items:center;gap:10px;background:#f8f9fa;padding:10px 16px;border-radius:10px}.date-range svg{color:#999}.date-range input{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer}.date-range span{color:#999;font-size:13px}.filter-summary{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0;font-size:13px;color:#666}.audit-table-container{flex:1;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000000d}.audit-table{width:100%;border-collapse:collapse}.audit-table th{background:#f8f9fa;padding:14px 16px;text-align:left;font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e8e8e8;position:sticky;top:0}.audit-table td{padding:14px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#333;vertical-align:middle}.audit-table tr:hover{background:#f8f9fa}.timestamp-cell{color:#666;font-size:13px;white-space:nowrap}.user-cell .user-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#e8f4fd;color:#1e88e5;border-radius:20px;font-size:13px;font-weight:500}.role-cell .role-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#f3e8ff;color:#9333ea;border-radius:20px;font-size:12px;font-weight:500;text-transform:capitalize}.action-cell .action-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500}.action-icon{font-size:14px}.details-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;font-size:13px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:#666}.loading-state svg,.empty-state svg{color:#ccc;margin-bottom:16px}.loading-state .spin{animation:spin 1s linear infinite}.empty-state h3{font-size:18px;font-weight:600;color:#333;margin:0 0 8px}.empty-state p{font-size:14px;color:#999;margin:0}@media(max-width:968px){.audit-log{padding:16px}.audit-header{flex-direction:column;gap:16px}.header-actions{width:100%;justify-content:flex-start}.filter-row{flex-direction:column}.search-box,.filter-select,.date-range{width:100%}.audit-table-container{overflow-x:auto}.audit-table{min-width:800px}}.security-settings{padding:24px 32px;height:100%;display:flex;flex-direction:column;overflow-y:auto}.security-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.security-header .header-left{display:flex;gap:16px;align-items:center}.security-header .header-left svg{color:#667eea}.security-header h2{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 4px}.security-header p{font-size:14px;color:#666;margin:0}.header-actions{display:flex;gap:12px}.btn-reset{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;color:#666;border:1px solid #e0e0e0;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-reset:hover{background:#f8f9fa;border-color:#667eea;color:#667eea}.btn-save{display:flex;align-items:center;gap:8px;padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-save:disabled{opacity:.7;cursor:not-allowed}.btn-save .spin{animation:spin 1s linear infinite}.security-nav{display:flex;gap:8px;margin-bottom:24px;padding:8px;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d}.nav-item{display:flex;align-items:center;gap:8px;padding:12px 20px;background:transparent;border:none;border-radius:8px;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .3s ease}.nav-item:hover{background:#f8f9fa;color:#1a1a2e}.nav-item.active{background:linear-gradient(135deg,#667eea1a,#764ba21a);color:#667eea}.security-content{flex:1}.settings-section{background:#fff;border-radius:16px;padding:28px;box-shadow:0 2px 10px #0000000d}.section-header{display:flex;gap:16px;align-items:center;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}.section-header svg{color:#667eea}.section-header h3{font-size:18px;font-weight:600;color:#1a1a2e;margin:0 0 4px}.section-header p{font-size:14px;color:#666;margin:0}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:24px}.setting-item{display:flex;flex-direction:column;gap:8px}.setting-item label{font-size:14px;font-weight:600;color:#1a1a2e}.input-group{display:flex;align-items:center;gap:12px}.input-group input[type=number]{width:100px;padding:10px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .3s ease}.input-group input[type=number]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-suffix{font-size:13px;color:#888}.setting-hint{font-size:12px;color:#999}.checkbox-group{margin-bottom:24px}.checkbox-group h4{font-size:14px;font-weight:600;color:#1a1a2e;margin:0 0 16px}.checkbox-item{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;border-bottom:1px solid #f5f5f5}.checkbox-item:last-child{border-bottom:none}.checkbox-item input[type=checkbox]{display:none}.checkbox-item .checkmark{width:22px;height:22px;border:2px solid #ddd;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.checkbox-item input:checked+.checkmark{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.checkbox-item input:checked+.checkmark:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.checkbox-item span:last-child{font-size:14px;color:#444}.password-preview{background:#f8f9fa;padding:20px;border-radius:12px}.password-preview h4{font-size:14px;font-weight:600;color:#1a1a2e;margin:0 0 12px}.strength-meter{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:8px}.strength-bar{height:100%;background:linear-gradient(90deg,#ef4444,#f59e0b,#10b981);border-radius:4px;transition:width .3s ease}.strength-label{font-size:13px;font-weight:500;color:#666}.toggle-card{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#f8f9fa;border-radius:12px;margin-bottom:20px}.toggle-info h4{font-size:15px;font-weight:600;color:#1a1a2e;margin:0 0 4px}.toggle-info p{font-size:13px;color:#666;margin:0}.toggle-switch{position:relative;width:56px;height:30px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:#ddd;border-radius:30px;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;width:24px;height:24px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 2px 5px #0003}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,#667eea,#764ba2)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(26px)}.methods-section{margin-top:24px}.methods-section h4{font-size:14px;font-weight:600;color:#1a1a2e;margin:0 0 16px}.methods-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.method-card{display:flex;flex-direction:column;align-items:center;padding:24px 16px;background:#f8f9fa;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:center}.method-card input{display:none}.method-card:hover{background:#f0f0f0}.method-card.active{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.method-card svg{color:#667eea;margin-bottom:12px}.method-name{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:4px}.method-desc{font-size:12px;color:#888}.lockout-info{display:flex;gap:16px;padding:20px;background:linear-gradient(135deg,#f59e0b1a,#ef44440d);border-radius:12px;border-left:4px solid #f59e0b;margin-top:24px}.lockout-info svg{color:#f59e0b;flex-shrink:0}.lockout-info strong{display:block;font-size:14px;color:#1a1a2e;margin-bottom:4px}.lockout-info p{font-size:13px;color:#666;margin:0;line-height:1.5}@media(max-width:768px){.security-settings{padding:16px}.security-header{flex-direction:column}.header-actions{width:100%}.btn-reset,.btn-save{flex:1}.security-nav{flex-wrap:wrap}.nav-item{flex:1;min-width:120px;justify-content:center}.settings-grid{grid-template-columns:1fr}.toggle-card{flex-direction:column;gap:16px;text-align:center}.methods-grid{grid-template-columns:1fr}}.twofa-setup{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.twofa-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #e8e8e8}.header-icon{width:56px;height:56px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff}.header-text{flex:1}.header-text h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#1a1a2e}.header-text p{margin:0;font-size:14px;color:#666}.status-badge{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:600}.status-badge.enabled{background:#e8f5e9;color:#2e7d32}.status-badge.disabled{background:#fff3e0;color:#e65100}.alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;margin-bottom:20px;font-size:14px}.alert-error{background:#ffebee;color:#c62828}.alert-success{background:#e8f5e9;color:#2e7d32}.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:#666}.twofa-content{padding:20px 0}.enabled-state,.disabled-state{text-align:center}.enabled-info,.setup-info{margin-bottom:24px}.shield-icon,.qr-icon{color:#667eea;margin-bottom:16px}.enabled-info h4,.setup-info h4{font-size:18px;font-weight:600;margin:0 0 8px;color:#1a1a2e}.enabled-info p,.setup-info p{color:#666;max-width:400px;margin:0 auto;line-height:1.6}.setup-steps{display:flex;flex-direction:column;gap:12px;max-width:400px;margin:24px auto;text-align:left}.step{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8f9fa;border-radius:10px}.step-number{width:28px;height:28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-danger{background:#ffebee;color:#c62828}.btn-danger:hover{background:#ffcdd2}.btn-primary:disabled,.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.setup-modal,.disable-modal{background:#f8f9fa;border-radius:16px;padding:32px;text-align:center}.setup-content h4,.disable-content h4{font-size:20px;font-weight:600;margin:0 0 24px;color:#1a1a2e}.qr-section{margin-bottom:24px}.qr-section p,.manual-section p,.verify-section p{color:#666;margin-bottom:12px;font-size:14px}.qr-code{display:inline-block;padding:16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.qr-code img{width:200px;height:200px;display:block}.manual-section{margin-bottom:24px}.secret-key{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;background:#fff;border-radius:8px;border:1px dashed #ccc}.secret-key code{font-family:Monaco,Courier New,monospace;font-size:16px;letter-spacing:2px;color:#333}.verify-section{margin-bottom:24px}.code-input{width:200px;padding:16px;font-size:24px;font-family:Monaco,Courier New,monospace;text-align:center;letter-spacing:8px;border:2px solid #e0e0e0;border-radius:12px;outline:none;transition:border-color .2s}.code-input:focus{border-color:#667eea}.setup-actions,.disable-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.disable-content{max-width:400px;margin:0 auto}.warning-icon{color:#e65100;margin-bottom:16px}.disable-content p{color:#666;line-height:1.6;margin-bottom:20px}@media(max-width:600px){.twofa-header{flex-direction:column;text-align:center}.status-badge{align-self:center}.qr-code img{width:160px;height:160px}.code-input{width:100%;max-width:200px}.setup-actions,.disable-actions{flex-direction:column}.btn-primary,.btn-secondary,.btn-danger{width:100%;justify-content:center}}.theme-settings{display:flex;flex-direction:column;gap:32px}.theme-section{background:var(--bg-card, #fff);border-radius:16px;padding:24px;border:1px solid var(--border-color, #e2e8f0)}.section-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.section-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.section-icon.accent{background:var(--accent-gradient, linear-gradient(135deg, #667eea, #764ba2))}.section-icon.special{background:linear-gradient(135deg,#ec4899,#8b5cf6)}.section-icon.system{background:linear-gradient(135deg,#6366f1,#3b82f6)}.section-info h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary, #1e293b)}.section-info p{margin:0;font-size:14px;color:var(--text-secondary, #64748b)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.theme-card{border:2px solid var(--border-color, #e2e8f0);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;background:var(--bg-secondary, #f8fafc)}.theme-card:hover{border-color:var(--accent-primary, #667eea);transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow-color, rgba(0,0,0,.1))}.theme-card.active{border-color:var(--accent-primary, #667eea);box-shadow:0 0 0 3px #667eea33}.theme-preview{height:100px;padding:8px;display:flex;gap:6px;border-bottom:1px solid var(--border-color, #e2e8f0)}.preview-sidebar{width:30px;border-radius:4px;padding:4px;display:flex;flex-direction:column;gap:4px}.preview-sidebar-item{height:8px;border-radius:2px}.preview-content{flex:1;display:flex;flex-direction:column;gap:6px}.preview-header{height:12px;border-radius:3px}.preview-cards{flex:1;display:flex;gap:4px}.preview-card{flex:1;border-radius:4px}.theme-info{padding:12px;display:flex;align-items:center;gap:8px}.theme-icon{font-size:18px}.theme-name{font-size:14px;font-weight:500;color:var(--text-primary, #1e293b);flex:1}.theme-active{width:20px;height:20px;border-radius:50%;background:var(--accent-primary, #667eea);color:#fff;display:flex;align-items:center;justify-content:center}.accent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.accent-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--bg-secondary, #f8fafc);cursor:pointer;transition:all .3s ease}.accent-option:hover{border-color:var(--accent-preview);transform:translateY(-2px)}.accent-option.active{border-color:var(--accent-preview);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-preview) 20%,transparent)}.accent-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .3s ease}.accent-option:hover .accent-circle{transform:scale(1.1)}.accent-name{font-size:13px;font-weight:500;color:var(--text-primary, #1e293b)}.live-preview{background:var(--bg-secondary, #f8fafc);border-radius:12px;padding:16px;border:1px solid var(--border-color, #e2e8f0)}.preview-demo{background:var(--bg-primary, #fff);border-radius:12px;overflow:hidden;border:1px solid var(--border-color, #e2e8f0)}.preview-demo-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--header-bg, #fff)}.preview-demo-title{font-weight:600;color:var(--text-primary, #1e293b)}.preview-demo-actions{display:flex;gap:8px}.preview-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.preview-btn.primary{background:var(--accent-gradient, linear-gradient(135deg, #667eea, #764ba2));color:#fff}.preview-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.preview-btn.secondary{background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #64748b);border:1px solid var(--border-color, #e2e8f0)}.preview-btn.secondary:hover{background:var(--bg-hover, #e2e8f0)}.preview-demo-content{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.preview-demo-card{background:var(--bg-card, #fff);border-radius:12px;padding:16px;border:1px solid var(--border-color, #e2e8f0)}.preview-demo-card-title{font-size:14px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:16px}.preview-demo-chart{display:flex;align-items:flex-end;gap:8px;height:80px}.chart-bar{flex:1;background:var(--accent-gradient, linear-gradient(135deg, #667eea, #764ba2));border-radius:4px 4px 0 0;min-height:10px}.preview-demo-stats{display:flex;gap:24px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:24px;font-weight:700;color:var(--accent-primary, #667eea)}.stat-label{font-size:12px;color:var(--text-secondary, #64748b)}.system-theme-btn{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--bg-secondary, #f8fafc);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;color:var(--text-primary, #1e293b);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;width:100%;justify-content:center}.system-theme-btn:hover{border-color:var(--accent-primary, #667eea);background:var(--bg-hover, #f1f5f9)}.system-theme-btn svg{color:var(--accent-primary, #667eea)}@media(max-width:768px){.theme-grid{grid-template-columns:repeat(2,1fr)}.accent-grid{grid-template-columns:repeat(4,1fr)}.preview-demo-content{grid-template-columns:1fr}}@media(max-width:480px){.theme-grid{grid-template-columns:1fr}.accent-grid{grid-template-columns:repeat(3,1fr)}}.data-management-settings{display:flex;flex-direction:column;gap:24px}.data-management-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px;color:var(--text-secondary)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;color:#dc2626;font-size:14px}.error-banner button{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;padding:4px;border-radius:4px}.error-banner button:hover{background:#ef444433}.dm-tabs{display:flex;gap:8px;background:var(--bg-card);padding:8px;border-radius:12px;border:1px solid var(--border-color)}.dm-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:none;border:none;border-radius:8px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.dm-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.dm-tab.active{background:var(--accent-gradient);color:#fff}.dm-content{background:var(--bg-card);border-radius:16px;padding:24px;border:1px solid var(--border-color)}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.section-info h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.section-info p{font-size:14px;color:var(--text-secondary);margin:0}.data-management-settings .btn-add{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--accent-gradient);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.data-management-settings .btn-add:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.classification-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.classification-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px;transition:all .2s ease;position:relative}.classification-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--level-color);border-radius:12px 12px 0 0}.classification-card.default{border-color:var(--accent-primary)}.classification-card:hover{box-shadow:0 4px 20px var(--shadow-color)}.card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.level-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.level-info{flex:1;display:flex;flex-direction:column;gap:4px}.level-info h4{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.default-badge,.system-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.default-badge{background:#10b9811a;color:#10b981}.system-badge{background:#3b82f61a;color:#3b82f6;margin-left:6px}.card-actions{display:flex;gap:4px}.card-actions button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.card-actions button:hover{background:var(--bg-active);color:var(--accent-primary)}.card-actions button.delete:hover{background:#ef44441a;color:#ef4444}.level-description{font-size:13px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.level-settings{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:12px;background:var(--bg-card);border-radius:8px;margin-bottom:12px}.setting-item{display:flex;flex-direction:column;gap:2px}.setting-label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.setting-value{font-size:13px;font-weight:500;color:var(--text-primary)}.setting-value.enabled{color:#10b981}.btn-set-default{width:100%;padding:10px;background:none;border:1px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s ease}.btn-set-default:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#667eea0d}.retention-list{display:flex;flex-direction:column;gap:16px}.retention-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px;transition:all .2s ease}.retention-card.disabled{opacity:.7}.retention-card:hover{box-shadow:0 4px 20px var(--shadow-color)}.policy-header{display:flex;align-items:center;gap:16px;margin-bottom:12px}.policy-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.policy-info{flex:1}.policy-info h4{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary)}.policy-type{font-size:12px;color:var(--text-muted);background:var(--bg-hover);padding:2px 8px;border-radius:4px}.policy-toggle .toggle-btn{background:none;border:none;cursor:pointer;transition:all .2s ease}.toggle-btn{color:var(--text-muted)}.toggle-btn.on{color:#10b981}.toggle-btn.off{color:var(--text-muted)}.policy-description{font-size:14px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.policy-details{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px;background:var(--bg-card);border-radius:8px;margin-bottom:16px}.detail-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.detail-item strong{color:var(--text-primary)}.policy-actions{display:flex;gap:8px}.policy-actions button{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-hover);border:none;border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s ease}.policy-actions button:hover{background:var(--bg-active);color:var(--text-primary)}.policy-actions button.delete:hover{background:#ef44441a;color:#ef4444}.general-section{display:flex;flex-direction:column;gap:20px}.settings-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.settings-card.danger{border-color:#ef44444d}.settings-card-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.settings-card-header svg{color:var(--accent-primary)}.settings-card.danger .settings-card-header svg{color:#ef4444}.settings-card-header h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.settings-card-body{padding:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border-light)}.setting-row:last-child{border-bottom:none}.setting-info{display:flex;flex-direction:column;gap:4px}.setting-name{font-size:14px;font-weight:500;color:var(--text-primary)}.setting-desc{font-size:12px;color:var(--text-secondary)}.setting-row select{padding:8px 12px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:13px;cursor:pointer}.settings-card-body>p{font-size:14px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.btn-danger{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#ef444433}.modal-overlay{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--modal-bg);border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.modal-header button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.modal-header button:hover{background:var(--bg-active);color:var(--text-primary)}.edit-form{padding:24px}.classification-card .edit-form,.retention-card .edit-form{padding:0;margin-top:12px}.form-row{margin-bottom:16px}.form-row label{display:block;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.form-row input[type=text],.form-row input[type=number],.form-row select,.form-row textarea{width:100%;padding:10px 14px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:14px;transition:all .2s ease}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #667eea1a}.form-row textarea{resize:vertical;min-height:60px}.color-picker-dropdown{position:relative}.color-picker-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.color-picker-trigger:hover{border-color:var(--accent-primary)}.color-picker-trigger .color-preview{width:24px;height:24px;border-radius:6px;flex-shrink:0;border:2px solid rgba(255,255,255,.2)}.color-picker-trigger .color-label{font-size:14px;color:var(--text-primary);text-transform:uppercase}.color-picker-popover{position:absolute;top:100%;left:0;right:0;margin-top:8px;padding:12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 10px 40px #0000004d;z-index:100;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.color-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.color-option{width:100%;aspect-ratio:1;border-radius:8px;border:3px solid transparent;cursor:pointer;transition:all .2s ease}.color-option:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-card),0 2px 8px #0000004d;transform:scale(1.1)}.form-row-group{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-group .form-row{margin-bottom:0}.checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.form-row.checkbox{margin-bottom:0}.form-row.checkbox label{display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;transition:all .2s ease}.form-row.checkbox label:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.form-row.checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary);flex-shrink:0}.form-row.checkbox span{font-size:13px;color:var(--text-primary)}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-color)}.btn-cancel,.btn-save{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-secondary)}.btn-cancel:hover{background:var(--bg-active);color:var(--text-primary)}.btn-save{background:var(--accent-gradient);border:none;color:#fff}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.btn-save:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.dm-tabs{flex-direction:column}.classification-grid{grid-template-columns:1fr}.form-row-group{flex-direction:column;gap:0}.policy-details{flex-direction:column;gap:8px}}.settings-page{height:100%;display:flex;flex-direction:column;background:var(--bg-secondary);transition:background-color .3s ease}.settings-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:24px 32px;transition:background-color .3s ease,border-color .3s ease}.header-left{display:flex;gap:16px;align-items:center}.header-left svg{color:var(--accent-primary)}.settings-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.settings-header p{font-size:14px;color:var(--text-secondary);margin:0}.settings-container{display:flex;flex:1;overflow:hidden}.settings-nav{width:280px;background:var(--bg-card);border-right:1px solid var(--border-color);padding:24px 0;overflow-y:auto;transition:background-color .3s ease,border-color .3s ease}.settings-tabs{display:flex;flex-direction:column;gap:4px;padding:0 16px}.settings-tab{display:flex;align-items:center;gap:12px;padding:14px 16px;background:none;border:none;border-radius:10px;cursor:pointer;transition:all .3s ease;text-align:left;font-size:15px;font-weight:500;color:var(--text-secondary)}.settings-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-tab.active{background:color-mix(in srgb,var(--accent-primary) 15%,transparent);color:var(--accent-primary)}.settings-tab svg{flex-shrink:0}.settings-content{flex:1;overflow-y:auto;background:var(--bg-secondary);padding:24px;transition:background-color .3s ease}.settings-content .user-management,.settings-content .role-management{background:transparent;height:100%}.settings-content .page-header{background:#fff;margin:0;padding:24px 32px;border-bottom:1px solid #e8e8e8;border-radius:0}.permission-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:80px 20px;text-align:center}.permission-denied svg{color:#dc2626;margin-bottom:20px}.permission-denied h2{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 8px}.permission-denied p{font-size:16px;color:#666;margin:0}@media(max-width:968px){.settings-container{flex-direction:column}.settings-nav{width:100%;border-right:none;border-bottom:1px solid #e8e8e8;padding:16px 0}.settings-tabs{flex-direction:row;overflow-x:auto;padding:0 16px}.settings-tab{white-space:nowrap;flex-shrink:0}}.app{width:100vw;min-height:100vh;background:#0f172a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#0f172a;margin:0;padding:0;overflow-x:hidden}html{background:#0f172a;margin:0;padding:0}
