body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*,: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%;tab-size:4;font-family:var(--app-font-family);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:var(--app-font-family-mono);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::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}}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{inset:0}.\!left-2{left:.5rem!important}.\!top-2{top:.5rem!important}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.z-10{z-index:10}.z-\[1000\]{z-index:1000}.col-span-2{grid-column:span 2 / span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-\[40px\]{height:40px}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.min-h-\[120px\]{min-height:120px}.min-h-\[140px\]{min-height:140px}.min-h-\[24px\]{min-height:24px}.min-h-\[28px\]{min-height:28px}.min-h-\[56px\]{min-height:56px}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[18px\]{width:18px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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))}.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 spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-px{gap:1px}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * 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-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}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / 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-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:var(--app-color-border)}.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-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-yellow-600{--tw-border-opacity: 1;border-color:rgb(202 138 4 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-black\/50{background-color:#00000080}.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-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / 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-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-orange-200{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / 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-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-surface-elevated{background-color:var(--app-color-surface-elevated)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.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))}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-2{padding-top:.5rem;padding-bottom:.5rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:var(--app-font-family-mono)}.font-sans{font-family:var(--app-font-family)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.italic{font-style:italic}.leading-tight{line-height:1.25}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / 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-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-green-900{--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity, 1))}.text-primary{color:var(--app-color-primary)}.text-primary-text{color:var(--app-color-primary-text)}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-text-muted{color:var(--app-color-text-muted)}.text-text-secondary{color:var(--app-color-text-secondary)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.overline{-webkit-text-decoration-line:overline;text-decoration-line:overline}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.shadow{--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)}.shadow-md{--tw-shadow: var(--app-shadow-md);--tw-shadow-colored: var(--app-shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: var(--app-shadow-sm);--tw-shadow-colored: var(--app-shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.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)}.invert{--tw-invert: invert(100%);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)!important}.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)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-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,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / 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-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / 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-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / 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-surface-hover:hover{background-color:var(--app-color-surface-hover)}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / 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-text:hover{color:var(--app-color-text)}.hover\:shadow-md:hover{--tw-shadow: var(--app-shadow-md);--tw-shadow-colored: var(--app-shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-300:disabled{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-110{--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))}.group:hover .group-hover\:border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.enhanced-ribbon-container button:focus,.enhanced-ribbon-container button:focus-visible{outline:none!important;box-shadow:none!important}.ribbon-draggable-widget{width:100%;height:100%;cursor:grab;transition:all .2s ease;border-radius:4px}.ribbon-draggable-widget:hover{background-color:#00000005}.ribbon-draggable-widget.dragging{cursor:grabbing;transform:rotate(5deg) scale(.95);box-shadow:0 4px 16px #0003;border:2px solid var(--android-primary, #1976d2);background:#fffffff2}.enhanced-ribbon-container{position:relative;-webkit-user-select:none;user-select:none;font-family:var(--app-font-family);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);overflow:visible!important;width:100%;z-index:10;--ribbon-bg: #F5F5F5;--tab-active: #FFFFFF;--tab-inactive: #E0E0E0;--accent-primary: #1976D2;--accent-secondary: #388E3C;--text-primary: #212121;--text-secondary: #757575;--border: #E0E0E0;--shadow: rgba(0,0,0,.12);--android-primary: #1976d2;--android-primary-variant: #0d47a1;--android-secondary: #03dac6;--android-surface: #ffffff;--android-surface-variant: #f5f5f5;--android-outline: #79747e;--android-outline-variant: #cac4d0;--android-on-surface: #1c1b1f;--android-on-surface-variant: #49454f;--elevation-1: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--elevation-2: 0 3px 6px rgba(0,0,0,.16), 0 3px 6px rgba(0,0,0,.23);--elevation-3: 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23);--corner-small: 0px;--corner-medium: 8px;--corner-large: 12px;--corner-extra-large: 16px}.enhanced-ribbon-container.edit-mode{background:linear-gradient(135deg,#ffc1071a,#ff57221a);border:2px dashed var(--android-outline)}.enhanced-section{position:relative;padding:2px;margin:0 4px;border-radius:2px;transition:none;flex-shrink:0;border:1px solid transparent}.enhanced-section.default,.enhanced-section.outlined,.enhanced-section.filled{background:transparent;border:1px solid var(--border, #E0E0E0)}.ribbon-content,.enhanced-ribbon-content{overflow:visible!important;position:relative}.tab-based-ribbon-container{width:100%;padding:4px;position:relative;overflow:visible}.tab-grid-container{position:relative;width:100%;overflow:visible}.section-overlays{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--tab-grid-columns, 12),48px);grid-template-rows:repeat(var(--tab-grid-rows, 1),48px);gap:2px;padding:4px;pointer-events:none;z-index:1}.tab-grid{position:relative;z-index:2;overflow:visible}.tab-grid-slot{position:relative;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease;overflow:visible}.tab-grid-slot.empty.edit-mode{border:1px dashed var(--android-outline-variant, #cac4d0);background:#ffffff1a}.tab-drop-zone{width:100%;height:100%;min-height:44px;border:2px dashed var(--android-outline, #79747e);border-radius:4px;display:flex;align-items:center;justify-content:center;background:#1976d20d;transition:all .15s ease;position:relative}.tab-drop-zone:hover{border-color:var(--android-primary, #1976d2);background:#1976d21a}.tab-drop-zone:before{content:"+";color:#1976d299;font-size:18px;font-weight:300;line-height:1;opacity:0;transition:opacity .15s ease}.tab-drop-zone:hover:before,.tab-drop-zone.drop-zone-available:before{opacity:1}.tab-drop-zone.drop-zone-active{border-color:var(--android-primary, #1976d2);background:#1976d226}.tab-drop-zone.drop-zone-active:before{color:var(--android-primary, #1976d2);font-size:22px;font-weight:400;opacity:1}.section-widgets.edit-mode{border:1px dashed var(--android-outline-variant);border-radius:var(--corner-small);background:#1976d205;min-height:56px}.global-grid-slot{width:48px;height:48px;display:flex;align-items:center;justify-content:center;position:relative}.group-overlay-layer{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--grid-columns, 12),48px);grid-template-rows:repeat(var(--total-rows, 3),48px);gap:2px;padding:4px;pointer-events:none}.group-overlay{border:1px dashed var(--border, #E0E0E0);border-radius:4px;background:#1976d208;position:relative;display:flex;align-items:flex-start;justify-content:flex-start}.group-label{position:absolute;top:-12px;left:4px;font-size:9px;color:var(--text-secondary, #757575);font-weight:500;text-transform:uppercase;letter-spacing:.5px;background:var(--ribbon-bg, #F5F5F5);padding:0 4px;opacity:.8}.grid-controls{display:flex;align-items:flex-start;gap:20px;padding:12px 16px;background:#1976d20d;border-top:1px solid var(--border, #E0E0E0);font-size:12px;flex-wrap:wrap}.row-controls{display:flex;align-items:center;gap:8px}.control-label{font-weight:500;color:var(--text-secondary, #757575)}.nav-button{width:24px;height:24px;border:1px solid var(--border, #E0E0E0);border-radius:4px;background:#fff;color:var(--text-primary, #212121);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s ease}.nav-button:hover:not(:disabled){background:var(--accent-primary, #1976D2);color:#fff;border-color:var(--accent-primary, #1976D2)}.nav-button:disabled{opacity:.4;cursor:not-allowed}.row-info{font-size:11px;color:var(--text-secondary, #757575);font-weight:500;min-width:60px;text-align:center}.grid-settings{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.grid-settings label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:500;color:var(--text-secondary, #757575);min-width:90px}.grid-settings select,.grid-settings input[type=number]{padding:4px 8px;border:1px solid var(--border, #E0E0E0);border-radius:4px;font-size:11px;background:#fff;min-height:24px}.grid-settings input[type=number]{max-width:60px}.grid-settings input[type=number]:disabled{opacity:.5;background:#f5f5f5;cursor:not-allowed}.grid-settings small{font-size:9px;color:var(--text-secondary, #757575);font-style:italic;margin-top:2px;display:block}.grid-settings-layout{display:flex;flex-direction:column;gap:12px;width:100%}.direction-row{display:flex;align-items:center;gap:16px;padding:8px;border:1px solid var(--border, #E0E0E0);border-radius:6px;background:#ffffff80}.direction-label{min-width:100px;display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:11px;font-weight:500;color:var(--text-secondary, #757575)}.direction-label input[type=radio]{margin:0}.direction-controls{display:flex;align-items:center;gap:12px;flex:1}.direction-controls label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:500;color:var(--text-secondary, #757575);white-space:nowrap}.direction-controls input[type=radio]{margin:0}.direction-controls input[type=number]{max-width:50px;padding:2px 4px;font-size:10px}.direction-controls select{padding:2px 4px;font-size:10px;max-width:60px}.ribbon-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border-radius:6px;transition:none;position:relative;overflow:hidden;padding:2px;box-sizing:border-box}.enhanced-button,.enhanced-toggle-button{border:none;border-radius:0;font-family:inherit;font-weight:500;font-size:9px;line-height:1.1;cursor:pointer;transition:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px;width:100%;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.enhanced-button:hover,.enhanced-toggle-button:hover{background-color:var(--surface-hover, rgba(0,0,0,.04))}.enhanced-button:active,.enhanced-toggle-button:active{background-color:var(--surface-active, rgba(0,0,0,.08))}.enhanced-button.primary,.enhanced-toggle-button.primary{background:var(--android-primary);color:#fff}.enhanced-button.secondary,.enhanced-toggle-button.secondary{background:var(--android-secondary);color:#000}.enhanced-button.outlined,.enhanced-toggle-button.outlined{background:transparent;color:var(--android-primary);border:1px solid var(--android-outline)}.enhanced-button.ghost,.enhanced-toggle-button.ghost{background:transparent;color:var(--android-on-surface);border:none}.enhanced-button.active,.enhanced-toggle-button.active{background:var(--android-primary);color:#fff;box-shadow:var(--elevation-2)}.enhanced-dropdown{position:relative;width:100%;height:100%;flex-shrink:0;overflow:visible}.dropdown-button{width:100%;min-height:40px;padding:8px 12px;border-radius:var(--corner-medium);border:1px solid var(--android-outline);background:var(--android-surface);color:var(--android-on-surface);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .15s ease;font-size:14px}.dropdown-button:hover{background-color:#00000005}.dropdown-button.open{background-color:#0000000d}.dropdown-chevron{transition:transform .15s ease;opacity:.7}.dropdown-chevron.rotated{transform:rotate(180deg)}.dropdown-container{position:relative;width:100%;height:100%;overflow:visible!important}.ribbon-widget.ribbon-dropdown{position:relative;z-index:100;overflow:visible!important}.ribbon-widget.ribbon-dropdown.enhanced-dropdown{z-index:200}.ribbon-widget.ribbon-dropdown.dropdown-open{z-index:1000!important;overflow:visible!important}.dropdown-menu{position:absolute;top:100%;left:0;min-width:calc(48px * var(--widget-width, 2) + 2px);width:-webkit-max-content;width:max-content;max-width:300px;background:#fff;border:1px solid #CAC4D0;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:50000!important;max-height:240px;overflow-y:auto;margin-top:4px}.dropdown-open,.dropdown-open *{overflow:visible!important}.ribbon-content:has(.dropdown-open),.enhanced-ribbon-content:has(.dropdown-open),.tab-based-ribbon-container:has(.dropdown-open),.tab-grid-container:has(.dropdown-open),.tab-grid:has(.dropdown-open),.tab-grid-slot:has(.dropdown-open){overflow:visible!important;z-index:999}.dropdown-search{padding:8px;border-bottom:1px solid var(--android-outline-variant)}.search-input{width:100%;padding:8px;border:1px solid var(--android-outline-variant);border-radius:var(--corner-small);background:var(--android-surface);font-size:14px}.dropdown-options{max-height:200px;overflow-y:auto}.dropdown-option{width:100%;padding:8px 12px;border:none;background:transparent;color:var(--android-on-surface);text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .15s ease}.dropdown-option:hover{background:#1976d214}.dropdown-option.selected{background:#1976d21f;color:var(--android-primary)}.checkbox{width:16px;height:16px;border:2px solid var(--android-outline);border-radius:2px;display:flex;align-items:center;justify-content:center}.checkbox.checked{background:var(--android-primary);border-color:var(--android-primary);color:#fff}.enhanced-toggle{display:flex;flex-direction:column;gap:4px}.toggle-container{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer}.toggle-label{font-size:12px;color:var(--android-on-surface-variant);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.toggle-wrapper{position:relative}.toggle-input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:48px;height:24px;border-radius:12px;background:var(--android-outline-variant);position:relative;transition:all .15s ease;cursor:pointer}.toggle-track.checked{background:var(--android-primary)}.toggle-thumb{width:20px;height:20px;border-radius:10px;background:#fff;position:absolute;top:2px;left:2px;transition:transform .15s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0003}.toggle-track.checked .toggle-thumb{transform:translate(24px)}.toggle-icons{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 6px;pointer-events:none}.toggle-icon{font-size:10px;opacity:0;transition:opacity .15s ease;color:#fff;font-weight:700}.toggle-icon.visible{opacity:1}.enhanced-slider{padding:8px}.slider-container{width:100%;position:relative}.slider-track{width:100%;height:4px;background:var(--android-outline-variant);border-radius:0;position:relative;margin:16px 0}.slider-progress{height:100%;background:var(--android-primary);border-radius:0;transition:width .15s ease}.slider-input{position:absolute;top:0;left:0;width:100%;height:4px;opacity:0;cursor:pointer}.slider-thumb{width:16px;height:16px;background:var(--android-primary);border-radius:50%;position:absolute;top:-6px;transform:translate(-50%);box-shadow:var(--elevation-2);transition:all .15s ease}.slider-thumb:hover,.enhanced-slider.dragging .slider-thumb{width:20px;height:20px;top:-8px;box-shadow:var(--elevation-3)}.slider-value-display{font-size:10px;color:var(--android-primary);font-weight:600;margin-left:8px}.slider-range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--android-on-surface-variant);margin-top:4px}.button-group{display:flex;flex-direction:column;gap:4px}.button-group-container{display:flex;border:1px solid var(--android-outline);border-radius:var(--corner-medium);overflow:hidden}.group-button{flex:1;padding:8px 12px;border:none;background:var(--android-surface);color:var(--android-on-surface);cursor:pointer;transition:all .15s ease;border-right:1px solid var(--android-outline-variant);display:flex;flex-direction:column;align-items:center;gap:2px}.group-button:last-child{border-right:none}.group-button:hover{background:#1976d214}.group-button.selected{background:var(--android-primary);color:#fff}.button-icon{font-size:14px}.button-label{font-size:10px;font-weight:500}.ribbon-draggable-widget{width:100%;height:100%}.ribbon-draggable-widget.dragging{opacity:.5;transform:rotate(2deg);z-index:1000}.ribbon-drop-zone{width:48px;height:48px;position:relative;transition:all .15s ease;flex-shrink:0;border:2px dashed transparent;border-radius:6px;display:flex;align-items:center;justify-content:center}.drop-zone-available{background:#1976d20d;border:2px dashed rgba(25,118,210,.3)}.drop-zone-available:before{content:"+";color:#1976d299;font-size:20px;font-weight:300;line-height:1}.drop-zone-active{background:#1976d226;border:2px dashed var(--accent-primary, #1976D2)}.drop-zone-active:before{content:"+";color:var(--accent-primary, #1976D2);font-size:24px;font-weight:400;line-height:1}.drop-indicator{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.drop-indicator-line{width:100%;height:2px;background:var(--android-primary);border-radius:1px;animation:pulse 1s infinite}.section-label{font-size:10px;color:var(--text-secondary, #757575);font-weight:500;text-transform:uppercase;letter-spacing:.5px;text-align:center;margin-bottom:2px;padding:0 4px;opacity:.7}.widget-label{font-size:8px;color:var(--text-secondary, var(--android-on-surface-variant));font-weight:400;text-align:center;margin:0;line-height:1;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ribbon-tool-icon{font-size:14px;line-height:1;flex-shrink:0}.ribbon-tool-text{font-size:8px;line-height:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.enhanced-number-input,.enhanced-text-input,.enhanced-color-picker{display:flex;flex-direction:column;gap:2px;padding:2px;width:100%;height:100%;flex-shrink:0}.number-input-container,.text-input-container,.color-picker-container{display:flex;align-items:center;gap:4px}.number-input,.text-input{flex:1;padding:6px 8px;border:1px solid var(--android-outline-variant);border-radius:var(--corner-small);background:var(--android-surface);font-size:12px;transition:border-color .15s ease}.number-input:focus,.text-input:focus{outline:none;border-color:var(--android-primary);box-shadow:0 0 0 2px #1976d233}.input-prefix,.input-suffix{font-size:10px;color:var(--android-on-surface-variant);font-weight:500}.color-input{width:32px;height:32px;border:none;border-radius:var(--corner-small);cursor:pointer;overflow:hidden}@media (max-width: 1200px) and (min-width: 768px){.section-widgets{gap:2px 6px}}@media (max-width: 768px){.section-widgets{grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:2px 4px;height:44px;padding:2px 4px}.ribbon-widget,.enhanced-button,.enhanced-toggle-button{height:36px;font-size:10px;padding:4px}.widget-label{font-size:10px}}@keyframes pulse{0%,to{opacity:.8}50%{opacity:.4}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@media (prefers-contrast: high){.enhanced-ribbon-container{--android-outline: #000000;--android-outline-variant: #666666}.enhanced-button,.enhanced-toggle-button{border:2px solid currentColor}}.container-widget{position:relative;z-index:1}.container-button{width:100%;height:100%;border:none;border-radius:var(--corner-medium);background:var(--android-surface);color:var(--android-on-surface);cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;position:relative;overflow:visible}.container-button.outlined{border:1px solid var(--android-outline)}.container-button:hover{background:#1976d214}.container-button.active,.container-button.open{background:var(--android-primary);color:#fff;box-shadow:var(--elevation-2);transform:translateY(-1px)}.container-icon-stack{position:relative;display:flex;align-items:center;justify-content:center}.container-main-icon{font-size:20px;z-index:2}.container-folder-indicator{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.mini-icon{position:absolute;font-size:8px;opacity:.7;color:var(--android-primary);z-index:1;transform-origin:center;animation:float 2s ease-in-out infinite}.mini-icon-0{top:-2px;left:-2px;animation-delay:0s}.mini-icon-1{top:-2px;right:-2px;animation-delay:.5s}.mini-icon-2{bottom:-2px;left:-2px;animation-delay:1s}.mini-icon-3{bottom:-2px;right:-2px;animation-delay:1.5s}.overflow-indicator{position:absolute;bottom:-6px;right:-6px;font-size:8px;background:var(--android-secondary);color:#000;border-radius:50%;width:12px;height:12px;display:flex;align-items:center;justify-content:center;font-weight:700;z-index:3}.container-label{font-size:10px;font-weight:500;margin-top:4px;text-align:center;line-height:1.2}.count-badge{position:absolute;top:-4px;right:-4px;background:var(--android-secondary);color:#000;border-radius:50%;min-width:16px;height:16px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:4;box-shadow:0 1px 3px #0000004d}.container-popup{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;background:var(--android-surface);border:1px solid var(--android-outline-variant);border-radius:var(--corner-large);box-shadow:var(--elevation-3);z-index:50000;min-width:200px;max-width:400px;animation:popupSlideIn .2s cubic-bezier(.4,0,.2,1)}.popup-header{padding:16px 16px 8px;border-bottom:1px solid var(--android-outline-variant);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.popup-title{font-size:16px;font-weight:600;color:var(--android-on-surface);margin:0;flex:1}.popup-description{font-size:12px;color:var(--android-on-surface-variant);margin:4px 0 0;line-height:1.4}.popup-close{background:none;border:none;color:var(--android-on-surface-variant);cursor:pointer;padding:4px;border-radius:var(--corner-small);transition:background-color .15s ease;flex-shrink:0}.popup-close:hover{background:#1976d214}.popup-content{padding:12px}.popup-grid{display:grid;grid-template-columns:repeat(var(--popup-columns, 3),var(--cell-size, 64px));gap:8px;align-items:center;justify-content:center}.popup-child-wrapper{display:contents}.popup-child-widget{width:var(--cell-size, 64px);height:var(--cell-size, 64px);border:1px solid var(--android-outline-variant);border-radius:var(--corner-medium);background:var(--android-surface);color:var(--android-on-surface);cursor:pointer;transition:all .15s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px}.popup-child-widget:hover{background:#1976d214;border-color:var(--android-primary);transform:translateY(-1px);box-shadow:var(--elevation-1)}.popup-child-widget.active{background:var(--android-primary);color:#fff;border-color:var(--android-primary)}.popup-child-widget.disabled{opacity:.4;cursor:not-allowed}.child-icon{font-size:18px}.child-label{font-size:10px;font-weight:500;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popup-footer{padding:8px 16px 16px;display:flex;justify-content:flex-end;gap:8px}.popup-action-button{padding:8px 16px;border:none;border-radius:var(--corner-medium);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.popup-action-button.secondary{background:transparent;color:var(--android-primary);border:1px solid var(--android-outline)}.popup-action-button.secondary:hover{background:#1976d214}.container-backdrop{position:fixed;inset:0;background:#0000001a;z-index:1000;animation:backdropFadeIn .2s ease}@keyframes popupSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes widgetLibraryEnter{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(5deg)}}@media (max-width: 768px){.container-popup{left:8px;right:8px;transform:none;max-width:none}.popup-grid{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}.popup-child-widget{width:56px;height:56px}}@media (prefers-color-scheme: dark){.enhanced-ribbon-container{--android-surface: #121212;--android-surface-variant: #1e1e1e;--android-on-surface: #ffffff;--android-on-surface-variant: #b3b3b3;--android-outline: #79747e;--android-outline-variant: #49454f}}.widget-library-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:5000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.widget-library-modal{background:var(--android-surface, #ffffff);width:90%;max-width:800px;height:80vh;border-radius:16px;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003;overflow:hidden;animation:widgetLibraryEnter .3s cubic-bezier(.16,1,.3,1)}.widget-library-header{padding:16px 24px;border-bottom:1px solid var(--border, #e0e0e0);display:flex;justify-content:space-between;align-items:center;background:var(--android-surface-variant, #f5f5f5)}.widget-library-header h3{margin:0;font-size:18px;color:var(--text-primary, #212121)}.close-button{background:transparent;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #757575)}.widget-library-content{padding:24px;overflow-y:auto;flex:1}.library-tab-group{margin-bottom:24px}.library-tab-title{font-size:16px;font-weight:600;color:var(--android-primary, #1976d2);margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--android-primary, #1976d2);display:inline-block}.library-section-group{margin-bottom:20px;padding-left:16px}.library-section-title{font-size:14px;font-weight:500;color:var(--text-secondary, #757575);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.library-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.library-widget-item{border:1px solid var(--border, #e0e0e0);border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--android-surface, #ffffff);cursor:pointer;transition:all .2s ease;position:relative;height:80px}.library-widget-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a;border-color:var(--android-primary, #1976d2)}.widget-preview{display:flex;flex-direction:column;align-items:center;gap:8px}.widget-add-icon{position:absolute;top:4px;right:4px;background:var(--android-secondary, #03dac6);color:#000;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;transition:opacity .2s ease}.library-widget-item:hover .widget-add-icon{opacity:1}.empty-library-message{text-align:center;padding:48px;color:var(--text-secondary, #757575);font-size:16px}.edit-toolbar{box-shadow:0 2px 4px #0000000d}.edit-tool-btn{background:transparent;border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;color:#e65100;display:flex;align-items:center;gap:4px;transition:background-color .15s ease}.edit-tool-btn:hover{background:#ff98001a}.widget-edit-wrapper{position:relative;width:100%;height:100%}.remove-widget-btn{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#f44336;color:#fff;border:2px solid white;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;cursor:pointer;z-index:100;box-shadow:0 2px 4px #0003;opacity:0;transition:opacity .15s ease,transform .15s ease}.widget-edit-wrapper:hover .remove-widget-btn{opacity:1;transform:scale(1.1)}.remove-widget-btn:hover{background:#d32f2f;transform:scale(1.2)!important}:root{--grid-cell-size: 56px;--grid-columns: 6;--grid-rows: 1;--grid-icon-size: 24px;--grid-text-size: 11px;--grid-padding: 8px;--ribbon-button-size: var(--grid-cell-size);--ribbon-icon-size: var(--grid-icon-size);--ribbon-font-size: var(--grid-text-size);--ribbon-spacing: 6px;--ribbon-border-radius: 0px;--current-button-size: var(--grid-cell-size);--current-spacing: var(--ribbon-spacing);--current-padding: var(--grid-padding)}.ribbon-container{position:fixed;top:0;left:0;right:0;z-index:1000;-webkit-user-select:none;user-select:none;border-width:1px;border-bottom-width:1px;background-color:var(--app-color-surface-elevated);font-family:var(--app-font-family);--tw-shadow: var(--app-shadow-sm);--tw-shadow-colored: var(--app-shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--app-duration-normal);transition-timing-function:cubic-bezier(0,0,.2,1)}.ribbon-container.collapsed{transform:translateY(-100%)}.ribbon-tabs{display:flex;align-items:center;justify-content:space-between;background:var(--app-color-surface);border-bottom:1px solid var(--app-color-border);padding:8px 16px;min-height:40px;gap:16px}.ribbon-tabs-left{display:flex;align-items:center;gap:20px;flex:1}.ribbon-tabs-right{display:flex;align-items:center;gap:12px}.app-title{font-size:16px;font-weight:var(--app-font-weight-semibold);color:var(--app-color-primary);margin:0;white-space:nowrap;flex-shrink:0}.ribbon-tab-group{display:flex;align-items:center;background:var(--app-color-surface-elevated);border:1px solid var(--app-color-border);border-radius:8px;padding:2px;gap:1px}.ribbon-tab{background:none;border:none;color:var(--app-color-text-secondary);font-size:13px;font-weight:var(--app-font-weight-medium);font-family:var(--app-font-family);padding:6px 12px;cursor:pointer;transition:all .15s ease;border-radius:6px;position:relative;white-space:nowrap;min-height:28px;display:flex;align-items:center}.ribbon-tab:hover{background:var(--app-color-surface-hover);color:var(--app-color-text)}.ribbon-tab.active{background:var(--app-color-primary);color:var(--app-color-primary-text);font-weight:var(--app-font-weight-semibold)}.ribbon-tab:focus{outline:none}.ribbon-stats{font-size:12px;color:var(--app-color-text-muted);padding:4px 8px;background:var(--app-color-surface);border:1px solid var(--app-color-border);border-radius:4px}.ribbon-controls{display:flex;align-items:center;gap:4px}.pin-dropdown-container{position:relative}.ribbon-pin-btn{background:var(--app-color-surface);border:1px solid var(--app-color-border);color:var(--app-color-text-muted);font-size:14px;padding:4px 6px;border-radius:4px;cursor:pointer;transition:all .15s ease;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.ribbon-pin-btn:hover{background:var(--app-color-surface-hover);border-color:var(--app-color-border-hover)}.ribbon-pin-btn.pinned{background:var(--app-color-selected);border-color:var(--app-color-primary)}.ribbon-pin-btn:focus{outline:2px solid var(--app-color-border-focus);outline-offset:2px}.pin-dropdown-menu{position:absolute;top:100%;right:0;background:var(--app-color-surface-elevated);border:1px solid var(--app-color-border);border-radius:6px;box-shadow:var(--app-shadow-lg);z-index:1050;min-width:140px;margin-top:4px;padding:4px;animation:dropdownSlideIn .15s ease}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pin-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:none;border:none;border-radius:4px;color:var(--app-color-text);font-family:var(--app-font-family);font-size:12px;cursor:pointer;transition:all .15s ease;text-align:left}.pin-option:hover{background:var(--app-color-surface-hover)}.pin-option.active{background:var(--app-color-selected);color:var(--app-color-primary);font-weight:var(--app-font-weight-medium)}.pin-option .pin-icon{font-size:12px;flex-shrink:0}.pin-option span:last-child{flex:1}.ribbon-content{background:var(--app-color-surface-elevated);padding:12px 16px;min-height:80px;overflow-x:auto;overflow-y:hidden}.ribbon-group{display:flex;align-items:flex-start;gap:20px}.ribbon-section{display:flex;flex-direction:column;align-items:center;min-width:80px;flex-shrink:0}.section-label{font-size:10px;font-weight:var(--app-font-weight-medium);color:var(--app-color-text-muted);margin-bottom:8px;text-align:center;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--app-color-border);padding-bottom:4px;width:100%}.section-widgets{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;align-items:flex-start}.ribbon-tool{background:var(--app-color-surface);border:1px solid var(--app-color-border);color:var(--app-color-text);font-family:var(--app-font-family);font-size:var(--ribbon-font-size);font-weight:var(--app-font-weight-normal);cursor:pointer;transition:all .2s ease;border-radius:var(--ribbon-border-radius);padding:var(--current-padding);width:var(--current-button-size);height:var(--current-button-size);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;text-align:center;line-height:1.1;box-sizing:border-box;flex-shrink:0;user-select:none;-webkit-user-select:none}.ribbon-tool:hover{background:var(--app-color-surface-hover);border-color:var(--app-color-border-hover);color:var(--app-color-text);box-shadow:var(--app-shadow-sm);transform:translateY(-1px)}.ribbon-tool:active{background:var(--app-color-surface-active);transform:translateY(0)}.ribbon-tool.active{background:var(--app-color-selected);border-color:var(--app-color-primary);color:var(--app-color-primary);font-weight:var(--app-font-weight-medium)}.ribbon-tool.active:hover{background:var(--app-color-selected-hover)}.ribbon-tool:disabled{opacity:.5;cursor:not-allowed;color:var(--app-color-disabled);pointer-events:none}.ribbon-tool:focus{outline:2px solid var(--app-color-border-focus);outline-offset:2px}.ribbon-tool-icon{font-size:var(--ribbon-icon-size);line-height:1;color:inherit;flex-shrink:0}.ribbon-tool-text{font-size:var(--ribbon-font-size);line-height:1.1;color:inherit;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:inherit}.ribbon-tool.dropdown:after{content:"▼";position:absolute;bottom:2px;right:2px;font-size:8px;color:var(--app-color-text-muted);pointer-events:none}.ribbon-tool.dropdown.active:after{color:var(--app-color-primary)}.ribbon-widget{background:var(--app-color-surface);border:1px solid var(--app-color-border);color:var(--app-color-text);font-family:var(--app-font-family);border-radius:var(--ribbon-border-radius);padding:6px;width:var(--current-button-size);min-height:var(--current-button-size);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .2s ease;box-sizing:border-box;flex-shrink:0}.ribbon-widget:hover{border-color:var(--app-color-border-hover);box-shadow:var(--app-shadow-sm)}.widget-label{font-size:9px;font-weight:var(--app-font-weight-medium);color:var(--app-color-text-secondary);text-align:center;line-height:1.1;margin-bottom:2px}.ribbon-widget input,.ribbon-widget select{background:var(--app-color-surface-elevated);border:1px solid var(--app-color-border);border-radius:3px;color:var(--app-color-text);font-family:var(--app-font-family);font-size:11px;padding:2px 4px;transition:all .15s ease;box-sizing:border-box}.ribbon-widget input:focus,.ribbon-widget select:focus{outline:none;border-color:var(--app-color-border-focus);box-shadow:0 0 0 1px var(--app-color-border-focus)}.ribbon-widget.ribbon-color-picker input[type=color]{width:32px;height:20px;padding:0;border-radius:3px;cursor:pointer}.ribbon-widget.ribbon-slider input[type=range]{width:40px;height:16px}.ribbon-widget.ribbon-toggle .toggle-container{position:relative;width:32px;height:16px}.ribbon-widget.ribbon-toggle input[type=checkbox]{opacity:0;width:0;height:0}.ribbon-widget.ribbon-toggle .toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--app-color-border);transition:.2s;border-radius:16px}.ribbon-widget.ribbon-toggle .toggle-slider:before{position:absolute;content:"";height:12px;width:12px;left:2px;bottom:2px;background:var(--app-color-surface-elevated);transition:.2s;border-radius:50%}.ribbon-widget.ribbon-toggle input:checked+.toggle-slider{background:var(--app-color-primary)}.ribbon-widget.ribbon-toggle input:checked+.toggle-slider:before{transform:translate(16px)}@media (max-width: 768px){.ribbon-tabs{padding:6px 12px;gap:12px}.ribbon-tabs-left{gap:16px}.app-title{font-size:14px}.ribbon-tab{padding:5px 10px;font-size:12px}.ribbon-content{padding:10px 12px}.ribbon-group{gap:16px}.ribbon-tool,.ribbon-widget{width:calc(var(--current-button-size) * .9);height:calc(var(--current-button-size) * .9)}.ribbon-tool-icon{font-size:calc(var(--ribbon-icon-size) * .9)}.ribbon-tool-text{font-size:calc(var(--ribbon-font-size) * .9)}}[data-high-contrast=true] .ribbon-tool{border-width:2px}[data-high-contrast=true] .ribbon-tool.active{border-width:3px}[data-high-contrast=true] .ribbon-tab{border:1px solid var(--app-color-border)}[data-high-contrast=true] .ribbon-tab.active{border-width:2px}[data-reduced-motion=true] .ribbon-tool,[data-reduced-motion=true] .ribbon-tab,[data-reduced-motion=true] .ribbon-pin-btn,[data-reduced-motion=true] .ribbon-container{transition:none}[data-reduced-motion=true] .ribbon-tool:hover{transform:none}@media print{.ribbon-container{display:none}}.object-tree{flex:1;display:flex;flex-direction:column;background:var(--app-color-surface-elevated);color:var(--app-color-text);font-family:var(--app-font-family);font-size:var(--app-font-size-sm);min-height:0}.tree-header{flex-shrink:0;background:var(--app-color-surface);border-bottom:1px solid var(--app-color-border);min-height:48px;overflow:hidden}.tree-header-content{display:flex;justify-content:space-between;align-items:center;padding:var(--app-spacing-md) var(--app-spacing-lg);min-height:48px;width:100%;box-sizing:border-box}.tree-header h4{margin:0;font-size:var(--app-font-size-sm);font-weight:var(--app-font-weight-semibold);color:var(--app-color-text);flex-shrink:0}.tree-actions{display:flex;gap:var(--app-spacing-xs);align-items:center;flex-wrap:nowrap;overflow:visible}.tree-btn{background:none;border:1px solid var(--app-color-border);color:var(--app-color-text-muted);padding:var(--app-spacing-xs) var(--app-spacing-sm);border-radius:var(--app-radius-sm);font-size:var(--app-font-size-xs);cursor:pointer;transition:all var(--app-duration-normal) var(--app-easing-ease-out);min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-btn:hover{background:var(--app-color-surface-hover);border-color:var(--app-color-border-hover);color:var(--app-color-text-secondary)}.tree-btn.visibility-btn{background:var(--app-color-surface);color:var(--app-color-text-secondary)}.tree-btn.visibility-btn:hover{background:var(--app-color-surface-hover);color:var(--app-color-primary);transform:scale(1.1)}.tree-btn.hierarchy-btn{background:var(--app-color-surface);color:var(--app-color-text-secondary);position:relative}.tree-btn.hierarchy-btn:hover{background:var(--app-color-surface-hover);color:var(--app-color-primary);transform:scale(1.1)}.tree-btn.hierarchy-btn:active{background:var(--app-color-selected);color:var(--app-color-primary);transform:scale(.95)}.tree-btn.mode-btn.pinned{background:var(--app-color-selected);color:var(--app-color-primary);border-color:var(--app-color-primary)}.tree-btn.mode-btn.auto-hide{background:var(--app-color-surface);color:var(--app-color-text-muted);border-style:dashed}.tree-btn.switch-side-btn{background:var(--app-color-surface);color:var(--app-color-text-secondary)}.tree-btn.switch-side-btn:hover{background:var(--app-color-surface-hover);color:var(--app-color-primary);transform:scale(1.1)}.tree-btn.close-btn{background:var(--app-color-surface);color:var(--app-color-text-muted);font-size:16px;margin-left:var(--app-spacing-xs)}.tree-btn.close-btn:hover{background:var(--app-color-error);color:#fff;border-color:var(--app-color-error)}.tree-content{flex:1;overflow:hidden;min-height:0;padding:0 12px}.empty-tree{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;padding:20px;text-align:center;color:var(--app-color-text-secondary);border:2px dashed var(--app-color-border);border-radius:8px;margin:16px;background:var(--app-color-surface-subtle)}.empty-tree p{margin:0 0 8px;font-size:14px;font-weight:500}.empty-tree small{font-size:12px;opacity:.7}.loading-tree{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;padding:20px;text-align:center;color:var(--app-color-text-secondary);border:2px solid var(--app-color-primary);border-radius:8px;margin:16px;background:var(--app-color-surface-subtle);animation:pulse 1.5s ease-in-out infinite}.loading-tree p{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--app-color-primary)}.loading-tree small{font-size:12px;opacity:.7}.error-tree{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;padding:20px;text-align:center;color:var(--app-color-text-secondary);border:2px solid var(--app-color-error, #ef4444);border-radius:8px;margin:16px;background:var(--app-color-surface-subtle)}.error-tree p{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--app-color-error, #ef4444)}.error-tree small{font-size:12px;opacity:.7;color:var(--app-color-error, #ef4444)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.tree-nodes{min-height:100%}.tree-node-container{position:relative}.tree-node{display:flex;align-items:center;padding:var(--app-spacing-xs) var(--app-spacing-sm);cursor:pointer;transition:all var(--app-duration-fast) var(--app-easing-ease-out);-webkit-user-select:none;user-select:none;min-height:28px;border-radius:var(--app-radius-sm);margin:1px var(--app-spacing-sm);gap:var(--app-spacing-sm)}.tree-node:hover{background:var(--app-color-surface-hover)}.tree-node.selected{background:var(--app-color-selected);color:var(--app-color-primary);font-weight:var(--app-font-weight-medium)}.tree-node.selected:hover{background:var(--app-color-selected-hover)}.tree-node.hidden-object{opacity:.5;background:var(--app-color-surface)}.tree-node.hidden-object:hover{background:var(--app-color-surface-hover);opacity:.7}.tree-node.hidden-object .node-label{color:var(--app-color-text-muted)}.tree-node.root{font-weight:var(--app-font-weight-semibold);color:var(--app-color-text);background:var(--app-color-surface);border:1px solid var(--app-color-border);margin:var(--app-spacing-xs) var(--app-spacing-sm)}.tree-node.root:hover{background:var(--app-color-surface-hover)}.tree-node.dataset,.tree-node.category{font-weight:var(--app-font-weight-medium);color:var(--app-color-text-secondary)}.tree-node.item{color:var(--app-color-text-muted);font-size:var(--app-font-size-xs)}.expand-icon{color:var(--app-color-text-muted);font-size:10px;width:12px;display:flex;align-items:center;justify-content:center;transition:transform var(--app-duration-normal) var(--app-easing-ease-out)}.visibility-checkbox{color:var(--app-color-text-muted);font-size:14px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--app-duration-fast) var(--app-easing-ease-out);border-radius:var(--app-radius-sm);flex-shrink:0}.visibility-checkbox:hover{background:var(--app-color-surface-hover);color:var(--app-color-text-secondary);transform:scale(1.1)}.visibility-checkbox.visible{color:var(--app-color-primary)}.visibility-checkbox.hidden{color:var(--app-color-text-muted)}.visibility-checkbox.indeterminate{color:var(--app-color-warning);opacity:.8}.visibility-checkbox.visible:hover{color:var(--app-color-error);transform:scale(1.2)}.visibility-checkbox.hidden:hover{color:var(--app-color-success);transform:scale(1.2)}.visibility-checkbox.indeterminate:hover{color:var(--app-color-warning-hover);transform:scale(1.2)}.node-icon{font-size:var(--app-font-size-sm);width:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-children{position:relative}.tree-node.depth-0{padding-left:var(--app-spacing-sm)}.tree-node.depth-1{padding-left:calc(var(--app-spacing-sm) + 20px)}.tree-node.depth-2{padding-left:calc(var(--app-spacing-sm) + 40px)}.tree-node.depth-3{padding-left:calc(var(--app-spacing-sm) + 60px)}.tree-node.depth-4{padding-left:calc(var(--app-spacing-sm) + 80px)}.tree-node-container:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--app-color-border);display:none}.tree-content::-webkit-scrollbar{width:6px}.tree-content::-webkit-scrollbar-track{background:var(--app-color-surface)}.tree-content::-webkit-scrollbar-thumb{background:var(--app-color-border);border-radius:var(--app-radius-full);-webkit-transition:background var(--app-duration-fast) var(--app-easing-ease-out);transition:background var(--app-duration-fast) var(--app-easing-ease-out)}.tree-content::-webkit-scrollbar-thumb:hover{background:var(--app-color-border-hover)}.tree-virtual-list{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable;min-height:0}.tree-children{margin-left:var(--app-spacing-md)}@keyframes fadeInTree{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tree-node{animation:fadeInTree var(--app-duration-normal) var(--app-easing-ease-out)}.tree-node:focus{outline:2px solid var(--app-color-border-focus);outline-offset:2px}.tree-btn:focus{outline:2px solid var(--app-color-border-focus);outline-offset:2px}@media (max-width: 768px){.tree-header{padding:var(--app-spacing-sm) var(--app-spacing-md)}.tree-node{min-height:32px;padding:var(--app-spacing-sm) var(--app-spacing-md)}.node-label{font-size:var(--app-font-size-xs)}.tree-node.depth-0{padding-left:var(--app-spacing-sm)}.tree-node.depth-1{padding-left:calc(var(--app-spacing-sm) + 16px)}.tree-node.depth-2{padding-left:calc(var(--app-spacing-sm) + 32px)}.tree-node.depth-3{padding-left:calc(var(--app-spacing-sm) + 48px)}.tree-node.depth-4{padding-left:calc(var(--app-spacing-sm) + 64px)}}[data-high-contrast=true] .tree-node{border:1px solid transparent}[data-high-contrast=true] .tree-node:hover{border-color:var(--app-color-border)}[data-high-contrast=true] .tree-node.selected{border-color:var(--app-color-primary)}[data-reduced-motion=true] .tree-node{animation:none}[data-reduced-motion=true] .tree-node{transition:none}.label-toggle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--app-radius-sm);font-size:12px;transition:all var(--app-duration-fast) var(--app-easing-ease-out);cursor:pointer;-webkit-user-select:none;user-select:none}.label-toggle.visible{background:var(--app-color-success-light, #e7f5e7);color:var(--app-color-success, #28a745);border:1px solid var(--app-color-success, #28a745)}.label-toggle.hidden{background:var(--app-color-surface);color:var(--app-color-text-muted);border:1px solid var(--app-color-border)}.label-toggle.disabled{background:var(--app-color-surface);color:var(--app-color-disabled);border:1px solid var(--app-color-border);cursor:default;opacity:.5}.label-toggle:hover:not(.disabled){transform:scale(1.1);box-shadow:0 2px 4px #0000001a}.label-toggle.visible:hover{background:var(--app-color-success, #28a745);color:#fff}.label-toggle.hidden:hover{background:var(--app-color-warning-light, #fff3cd);color:var(--app-color-warning, #856404);border-color:var(--app-color-warning, #856404)}.context-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--app-radius-sm);font-size:14px;font-weight:700;transition:all var(--app-duration-fast) var(--app-easing-ease-out);cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;color:var(--app-color-text-muted);opacity:0}.tree-node:hover .context-menu-trigger{opacity:1}.context-menu-trigger:hover{background:var(--app-color-surface-hover);color:var(--app-color-text);transform:scale(1.1);box-shadow:0 2px 4px #0000001a}.context-menu-trigger:active{background:var(--app-color-primary-light, #e7f3ff);color:var(--app-color-primary);transform:scale(.95)}.tree-node{justify-content:flex-start;position:relative}.tree-node .node-label{flex:1;text-align:left}[data-high-contrast=true] .label-toggle.visible{background:var(--app-color-success);color:#fff;border:2px solid var(--app-color-success)}[data-high-contrast=true] .label-toggle.hidden{background:var(--app-color-surface);color:var(--app-color-text);border:2px solid var(--app-color-text)}[data-high-contrast=true] .context-menu-trigger{background:var(--app-color-surface);color:var(--app-color-text);border:1px solid var(--app-color-border)}[data-high-contrast=true] .context-menu-trigger:hover{background:var(--app-color-primary);color:#fff;border-color:var(--app-color-primary)}@media (max-width: 768px){.label-toggle,.context-menu-trigger{width:24px;height:24px;font-size:14px}.tree-node{min-height:32px;gap:var(--app-spacing-xs)}.context-menu-trigger{opacity:1}}.tree-dropdown{position:relative;display:inline-block}.tree-dropdown-toggle{background:var(--app-color-surface);border:1px solid var(--app-color-border);color:var(--app-color-text-muted);padding:var(--app-spacing-xs) var(--app-spacing-sm);border-radius:var(--app-radius-sm);font-size:var(--app-font-size-xs);cursor:pointer;transition:all var(--app-duration-normal) var(--app-easing-ease-out);min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-dropdown-toggle:hover{background:var(--app-color-surface-hover);border-color:var(--app-color-border-hover);color:var(--app-color-text-secondary)}.tree-dropdown-menu{position:absolute;top:100%;right:0;background:var(--app-color-surface-elevated);border:1px solid var(--app-color-border);border-radius:var(--app-radius-md);box-shadow:var(--app-shadow-lg);min-width:160px;z-index:9999;margin-top:var(--app-spacing-xs);overflow:hidden}.tree-dropdown-item{display:flex;align-items:center;gap:var(--app-spacing-sm);padding:var(--app-spacing-sm) var(--app-spacing-md);background:none;border:none;color:var(--app-color-text);font-size:var(--app-font-size-sm);cursor:pointer;transition:background-color var(--app-duration-normal) var(--app-easing-ease-out);width:100%;text-align:left}.tree-dropdown-item:hover{background:var(--app-color-surface-hover)}.tree-dropdown-item:active{background:var(--app-color-selected)}.tree-dropdown-icon{font-size:var(--app-font-size-sm);min-width:16px;display:flex;align-items:center;justify-content:center}.tree-dropdown-text{flex:1;white-space:nowrap}.tree-dropdown-divider{height:1px;background:var(--app-color-border);margin:var(--app-spacing-xs) 0}.file-import-wizard-improved{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.wizard-content{background:#fff;border-radius:1rem;box-shadow:0 25px 50px -12px #00000040;max-width:60rem;width:100%;max-height:90vh;overflow-y:auto;position:relative;border:1px solid #e5e7eb;display:flex;flex-direction:column}.notifications-container{position:absolute;top:1rem;right:1rem;z-index:50;display:flex;flex-direction:column;gap:.5rem;max-width:320px}.notification{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;animation:slideIn .3s ease-out;box-shadow:0 4px 6px -1px #0000001a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-success{background:#10b981f2;color:#fff;border:1px solid #10b981}.notification-warning{background:#f59e0bf2;color:#fff;border:1px solid #f59e0b}.notification-error{background:#ef4444f2;color:#fff;border:1px solid #ef4444}.notification-info{background:#3b82f6f2;color:#fff;border:1px solid #3b82f6}.notification-icon{font-size:1.125rem;flex-shrink:0}.notification-message{flex:1;line-height:1.4}.notification-close{background:none;border:none;color:currentColor;font-size:1.25rem;cursor:pointer;padding:0;line-height:1;opacity:.8;transition:opacity .2s}.notification-close:hover{opacity:1}.progress-container{border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f8fafc,#f1f5f9);transition:all .3s ease}.progress-container.compact{padding:.75rem 1.5rem;width:100%}.progress-container.expanded{padding:1.5rem 2rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;width:100%}.progress-summary{display:flex;align-items:center;gap:1rem;flex:1}.progress-container.compact .progress-summary{justify-content:flex-end}.step-counter{font-size:.875rem;font-weight:600;color:#374151;background:#3b82f61a;padding:.25rem .5rem;border-radius:.375rem;border:1px solid rgba(59,130,246,.2);white-space:nowrap}.current-step-name{font-size:.875rem;font-weight:500;color:#111827;flex:1}.import-type-label{font-size:.875rem;color:#374151;font-weight:500}.import-type-label strong{color:#111827;font-weight:600}.expand-btn,.collapse-btn,.wizard-close-btn{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:#3b82f6;padding:.375rem .5rem;border-radius:.375rem;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease;min-width:2rem;text-align:center}.expand-btn:hover,.collapse-btn:hover,.wizard-close-btn:hover{background:#3b82f626;border-color:#3b82f64d;transform:translateY(-1px)}.wizard-close-btn{position:absolute;top:.5rem;right:.5rem;z-index:20;font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center}.progress-container.compact .progress-header .expand-btn,.progress-container.expanded .progress-header .collapse-btn{order:-1;margin-right:.75rem}.progress-container.expanded .progress-steps{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;position:relative;gap:1rem}.progress-container.compact .progress-steps{display:none}.progress-container.expanded .progress-steps:before{content:"";position:absolute;top:1rem;left:0;right:0;height:2px;background:#e5e7eb;z-index:0;transform:translateY(-50%)}.step{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;z-index:1;background:#fff;padding:.75rem;border-radius:.75rem;transition:all .3s ease;min-width:120px;border:2px solid #e5e7eb;flex:1;box-shadow:0 1px 3px #0000001a}.step.active{background:#fff;border-color:#3b82f6;transform:scale(1.02);box-shadow:0 0 0 4px #3b82f61a,0 4px 6px -1px #0000001a}.step.completed{background:#fff;border-color:#10b981;box-shadow:0 1px 3px #0000001a}.step-circle{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;transition:all .3s ease;border:2px solid #e5e7eb;background:#fff;color:#6b7280;position:relative}.validation-indicator{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:#ef4444;color:#fff;border-radius:50%;font-size:8px;font-weight:900;display:flex;align-items:center;justify-content:center;border:1px solid white;box-shadow:0 1px 3px #0003}.step.active .step-circle{background:#3b82f6;color:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633}.step.completed .step-circle{background:#10b981;color:#fff;border-color:#10b981}.step-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.step-label{font-size:.75rem;font-weight:600;text-align:center;color:#6b7280;white-space:nowrap}.step.active .step-label{color:#3b82f6}.step.completed .step-label{color:#10b981}.step-requirements{display:flex;flex-direction:column;gap:.25rem;align-items:center;width:100%}.requirement-status{display:flex;align-items:center;gap:.25rem;font-size:.625rem;font-weight:500;padding:.125rem .25rem;border-radius:.25rem;white-space:nowrap;background:#ffffffb3;border:1px solid transparent}.requirement-status.valid{color:#059669;border-color:#10b98133;background:#10b9811a}.requirement-status.pending{color:#6b7280;border-color:#6b728033;background:#6b72800d}.requirement-status.optional{color:#9ca3af;border-color:#9ca3af33;background:#9ca3af0d}.requirement-icon{font-size:.625rem;width:.75rem;text-align:center}.requirement-text{font-size:.625rem;line-height:1}@media (max-width: 768px){.progress-container.compact{padding:.5rem 1rem}.progress-summary{gap:.5rem;flex-wrap:wrap}.import-type-label{font-size:.75rem;order:1;width:100%;margin-bottom:.25rem}.step-counter{font-size:.75rem;padding:.125rem .375rem;order:2}.current-step-name{font-size:.75rem;order:3}.expand-btn,.collapse-btn{padding:.25rem .375rem;min-width:1.5rem}.progress-container.expanded .progress-steps{flex-wrap:wrap;gap:.5rem;justify-content:center}.step{min-width:100px;padding:.5rem}.step-label{font-size:.625rem}.requirement-status,.requirement-text{font-size:.5rem}.requirement-icon{font-size:.5rem;width:.625rem}}.wizard-body{flex:1;overflow-y:auto}.setup-step,.mapping-step,.processing-step,.results-step{padding:1.5rem}.step-header{text-align:center;margin-bottom:1rem}.step-header h1{font-size:1.375rem;font-weight:600;color:#111827;margin:0}.step-header p{color:#6b7280;font-size:.875rem;line-height:1.4;max-width:500px;margin:0 auto}.upload-grid{display:grid;gap:2rem;margin-bottom:2rem}.file-upload-card{border:2px solid #e5e7eb;border-radius:1rem;overflow:hidden;background:#fff;transition:all .3s ease}.file-upload-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a}.file-header{padding:1.5rem;border-bottom:1px solid #f3f4f6;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.file-header h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.required-badge{background:#ef4444;color:#fff;font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;font-weight:500}.file-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0}.file-drop-zone{padding:3rem 2rem;text-align:center;border:2px dashed #d1d5db;margin:1.5rem;border-radius:.75rem;background:#f9fafb;transition:all .3s ease;cursor:pointer}.file-drop-zone:hover,.file-drop-zone.drag-active{border-color:#3b82f6;background:#3b82f60d;transform:scale(1.02)}.drop-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.drop-icon{font-size:3rem;color:#9ca3af;transition:color .3s ease}.file-drop-zone:hover .drop-icon,.file-drop-zone.drag-active .drop-icon{color:#3b82f6}.drop-content h4{font-size:1.25rem;font-weight:600;color:#111827;margin:0}.drop-content p{color:#6b7280;margin:0}.browse-button{background:#3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease;border:none;font-size:.875rem}.browse-button:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.file-requirements{background:#3b82f61a;padding:.75rem;border-radius:.5rem;font-size:.875rem;color:#374151;border:1px solid rgba(59,130,246,.2)}.file-info-card{margin:1.5rem}.file-status{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-radius:.5rem;background:#f9fafb;border:1px solid #e5e7eb}.file-status.valid{background:#10b9811a;border-color:#10b981}.file-status.invalid{background:#ef44441a;border-color:#ef4444}.file-details{flex:1}.file-name{font-weight:600;color:#111827;display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.file-meta{font-size:.875rem;color:#6b7280}.file-actions{display:flex;gap:.5rem}.remove-file-btn{background:none;border:none;font-size:1.125rem;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:background .2s}.file-errors,.file-warnings{margin-top:.75rem;padding:.75rem;border-radius:.5rem;font-size:.875rem}.file-errors{background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.file-warnings{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.error-message,.warning-message{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.error-message:last-child,.warning-message:last-child{margin-bottom:0}.mapping-container,.mapping-section{margin-bottom:2rem}.mapping-header{text-align:center;margin-bottom:2rem}.mapping-header h3{font-size:1.375rem;font-weight:600;color:#111827;margin:0 0 .5rem}.mapping-header p{color:#6b7280;margin:0}.mapping-preview{margin-bottom:2rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.mapping-preview h4{background:#f3f4f6;padding:1rem;margin:0;font-size:1rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.preview-table{overflow-x:auto}.preview-table table{width:100%;border-collapse:collapse;font-size:.875rem}.preview-table th{background:#f9fafb;padding:.75rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.preview-table td{padding:.75rem;border-bottom:1px solid #f3f4f6;color:#6b7280;white-space:nowrap}.mappings-container{display:flex;flex-direction:column;gap:2rem}.required-section{background:#fef2f2;border:2px solid #f87171;border-radius:1rem;overflow:hidden}.optional-section{background:#fffbeb;border:2px solid #fbbf24;border-radius:1rem;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#00000008;border-bottom:1px solid rgba(0,0,0,.1)}.section-header h4{margin:0;font-size:1rem;font-weight:700;color:#111827;display:flex;align-items:center;gap:.5rem}.section-controls{display:flex;align-items:center;gap:1rem}.field-count{font-size:.875rem;color:#6b7280;font-weight:500}.mass-remove-btn{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.3);padding:.5rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mass-remove-btn:hover{background:#ef444433;border-color:#ef444480}.mappings-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1rem;padding:1rem 1.5rem;background:#00000005;border-bottom:1px solid rgba(0,0,0,.1);font-weight:600;font-size:.875rem;color:#374151}.mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1rem;align-items:center;padding:1rem 1.5rem;background:#ffffffb3;border-bottom:1px solid rgba(0,0,0,.05);transition:all .2s ease}.mapping-row.required.error{background:#ef44441a;border-left:4px solid #ef4444}.column-select,.type-select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background:#fff;color:#374151;transition:all .2s ease}.column-select:focus,.type-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.field-name{font-weight:500;color:#374151}.status-indicator .mapped{color:#10b981;font-size:.875rem;font-weight:500}.status-indicator .unmapped{color:#ef4444;font-size:.875rem;font-weight:500}.remove-mapping-btn{background:none;border:none;font-size:1rem;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:background .2s;justify-self:center}.remove-mapping-btn:hover{background:#ef44441a}.add-mapping-section{padding:1.5rem;text-align:center;border-top:1px solid #e5e7eb;background:#f9fafb}.add-mapping-btn{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:.5rem}.add-mapping-help{font-size:.875rem;color:#6b7280;margin:0}.step-actions{display:flex;justify-content:space-between;gap:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb;margin-top:.75rem}.secondary-btn,.primary-btn{padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent;min-width:140px}.secondary-btn{background:#f3f4f6;color:#374151;border-color:#d1d5db}.secondary-btn:hover{background:#e5e7eb;border-color:#9ca3af}.primary-btn{background:#3b82f6;color:#fff;box-shadow:0 1px 2px #0000000d}.primary-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.primary-btn.success{background:linear-gradient(135deg,#10b981,#059669)}.primary-btn.success:hover{background:linear-gradient(135deg,#059669,#047857)}.primary-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.processing-content{text-align:center;padding:2rem}.processing-spinner{font-size:4rem;margin-bottom:1.5rem;animation:spin 2s linear infinite}.processing-status{font-size:1.125rem;color:#374151;font-weight:500;margin-bottom:2rem}.processing-checklist{display:flex;flex-direction:column;gap:1rem;max-width:400px;margin:0 auto;text-align:left}.process-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb;font-weight:500;color:#6b7280;transition:all .3s ease}.process-item.active{background:#3b82f61a;border-color:#3b82f6;color:#3b82f6}.process-item.completed{background:#10b9811a;border-color:#10b981;color:#10b981}.results-summary{margin-bottom:2rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:1rem;padding:1.5rem;text-align:center;transition:all .3s ease}.summary-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a}.summary-card.primary{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6}.card-icon{font-size:2.5rem;margin-bottom:1rem}.card-content{display:flex;flex-direction:column;gap:.5rem}.card-number{font-size:2rem;font-weight:700;color:#111827;line-height:1}.card-label{font-size:.875rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.validation-results{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:1rem;padding:1.5rem}.validation-results h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#0f172a}.validation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.validation-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500}.validation-item.success{background:#10b9811a;color:#065f46;border:1px solid rgba(16,185,129,.2)}.validation-item.warning{background:#f59e0b1a;color:#92400e;border:1px solid rgba(245,158,11,.2)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.file-import-wizard-improved{padding:.5rem}.wizard-content{max-height:95vh;border-radius:.75rem}.setup-step,.mapping-step,.processing-step,.results-step{padding:1.5rem}.step-header h1{font-size:1.5rem}.progress-steps{flex-wrap:wrap;gap:.5rem}.step span{font-size:.625rem}.mappings-header,.mapping-row{grid-template-columns:1fr;gap:.5rem}.mappings-header{display:none}.mapping-row{display:flex;flex-direction:column;align-items:stretch;text-align:left}.mapping-row>*{margin-bottom:.5rem}.step-actions{flex-direction:column}.summary-cards{grid-template-columns:1fr}.notifications-container{position:static;margin-bottom:1rem}}@media (max-width: 480px){.wizard-content{margin:.25rem;max-height:98vh}.progress-container,.setup-step,.mapping-step,.processing-step,.results-step{padding:1rem}.file-drop-zone{padding:2rem 1rem;margin:1rem}.drop-icon{font-size:2rem}.card-number{font-size:1.5rem}.section-header{flex-direction:column;gap:.5rem;align-items:stretch}.section-controls{justify-content:space-between}}@media (prefers-color-scheme: dark){.file-import-wizard-improved{background:#000c}.wizard-content{background:#1f2937;border-color:#374151;color:#f9fafb}.step-header h1{color:#f9fafb}}.appearance-step{padding:var(--space-4, 1rem)}.appearance-content{margin-bottom:var(--space-4, 1rem)}.appearance-sections{display:grid;gap:var(--space-3, .75rem);margin-bottom:var(--space-3, .75rem)}.appearance-section{background:var(--gray-50, #f9fafb);border:1px solid var(--gray-200, #e5e7eb);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem);transition:all .2s ease}.appearance-section:hover{border-color:var(--gray-300, #d1d5db);box-shadow:var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05))}.appearance-section h3{margin:0 0 var(--space-3, .75rem) 0;font-size:.95rem;font-weight:var(--font-weight-semibold, 600);color:var(--gray-900, #111827);display:flex;align-items:center;gap:var(--space-2, .5rem)}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3, .75rem);align-items:start}.control-group{display:flex;flex-direction:column;gap:var(--space-1, .25rem)}.control-group label{font-weight:var(--font-weight-medium, 500);color:var(--gray-700, #374151);font-size:.875rem}.compact-widget{padding:var(--space-3, .75rem) var(--space-4, 1rem)}.compact-widget h3{margin:0 0 var(--space-2, .5rem) 0;font-size:.9rem}.compact-controls{display:flex;flex-wrap:wrap;gap:var(--space-3, .75rem);align-items:center}.compact-control-item{display:flex;align-items:center;gap:var(--space-2, .5rem);min-width:-webkit-fit-content;min-width:fit-content}.compact-label{font-weight:var(--font-weight-medium, 500);color:var(--gray-700, #374151);font-size:.8rem;white-space:nowrap;min-width:-webkit-fit-content;min-width:fit-content}.compact-color-picker{display:flex;align-items:center}.compact-color-input{width:40px;height:32px;border:1px solid var(--gray-300, #d1d5db);border-radius:.375rem;cursor:pointer;background:transparent}.compact-range-container{display:flex;align-items:center;min-width:120px}.compact-range-input{width:100%;height:4px;background:var(--gray-200, #e5e7eb);border-radius:2px;outline:none;cursor:pointer}.compact-range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--blue-500, #3b82f6);border-radius:50%;cursor:pointer}.compact-range-input::-moz-range-thumb{width:16px;height:16px;background:var(--blue-500, #3b82f6);border:none;border-radius:50%;cursor:pointer}.compact-number-container{display:flex;align-items:center;gap:var(--space-1, .25rem)}.compact-number-input{width:70px;padding:.375rem .5rem;border:1px solid var(--gray-300, #d1d5db);border-radius:.375rem;font-size:.875rem;text-align:center}.compact-unit{font-size:.8rem;color:var(--gray-500, #6b7280);font-weight:var(--font-weight-medium, 500)}.compact-checkbox-label{display:flex;align-items:center;gap:var(--space-2, .5rem);cursor:pointer}.compact-checkbox{width:16px;height:16px;cursor:pointer}.compact-checkbox-text{font-size:.8rem;color:var(--gray-700, #374151);font-weight:var(--font-weight-medium, 500)}.control-group input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--gray-200, #e5e7eb);outline:none;opacity:.8;transition:opacity .2s;cursor:pointer}.control-group input[type=range]:hover{opacity:1}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary-blue, #2563eb);cursor:pointer;box-shadow:var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05));-webkit-transition:all .2s ease;transition:all .2s ease}.control-group input[type=range]::-webkit-slider-thumb:hover{background:var(--primary-blue-dark, #1d4ed8);transform:scale(1.1)}.control-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-blue, #2563eb);cursor:pointer;border:none;box-shadow:var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05))}.control-group input[type=color]{width:100%;height:40px;border:1px solid var(--gray-300, #d1d5db);border-radius:var(--radius-md, .5rem);cursor:pointer;background:none;padding:2px;transition:all .2s ease}.control-group input[type=color]:hover{border-color:var(--primary-blue, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.control-group input[type=color]::-webkit-color-swatch-wrapper{padding:0}.control-group input[type=color]::-webkit-color-swatch{border:none;border-radius:calc(var(--radius-md, .5rem) - 2px)}.control-group span{font-size:.875rem;color:var(--gray-600, #4b5563);font-weight:var(--font-weight-medium, 500);text-align:center;padding:var(--space-1, .25rem);background:var(--gray-100, #f3f4f6);border-radius:var(--radius-sm, .25rem);min-width:3rem;display:inline-block}.checkbox-group{flex-direction:row;align-items:center;gap:var(--space-2, .5rem);padding:var(--space-2, .5rem);background:#fff;border-radius:var(--radius-md, .5rem);border:1px solid var(--gray-200, #e5e7eb);transition:all .2s ease}.checkbox-group:hover{border-color:var(--gray-300, #d1d5db);box-shadow:var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05))}.checkbox-group label{display:flex;align-items:center;gap:var(--space-2, .5rem);cursor:pointer;font-weight:var(--font-weight-normal, 400);margin:0;color:var(--gray-700, #374151)}.checkbox-group input[type=checkbox]{width:16px;height:16px;border:1px solid var(--gray-300, #d1d5db);border-radius:var(--radius-sm, .25rem);cursor:pointer;accent-color:var(--primary-blue, #2563eb)}.suggestion-section{background:linear-gradient(135deg,#2563eb0d,#10b9810d);border:1px solid var(--primary-blue, #2563eb);border-radius:var(--radius-lg, .75rem);padding:var(--space-5, 1.25rem);margin-bottom:var(--space-6, 1.5rem)}.suggestion-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3, .75rem)}.suggestion-header h4{margin:0;font-size:1rem;font-weight:var(--font-weight-semibold, 600);color:var(--gray-900, #111827);display:flex;align-items:center;gap:var(--space-2, .5rem)}.suggestion-button{background:var(--primary-blue, #2563eb);color:#fff;border:none;padding:var(--space-2, .5rem) var(--space-4, 1rem);border-radius:var(--radius-md, .5rem);font-size:.875rem;font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05))}.suggestion-button:hover{background:var(--primary-blue-dark, #1d4ed8);transform:translateY(-1px);box-shadow:var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / .1))}.suggestion-description{margin:0;font-size:.875rem;color:var(--gray-600, #4b5563);line-height:1.5}.coordinate-analysis{background:linear-gradient(135deg,#3b82f60d,#10b9810d);border:1px solid var(--primary-blue, #2563eb);border-radius:var(--radius-lg, .75rem);padding:var(--space-5, 1.25rem);margin-bottom:var(--space-6, 1.5rem)}.analysis-header h3{margin:0 0 var(--space-3, .75rem) 0;font-size:1rem;font-weight:var(--font-weight-semibold, 600);color:var(--gray-900, #111827);display:flex;align-items:center;gap:var(--space-2, .5rem)}.analysis-description{margin:0 0 var(--space-2, .5rem) 0;font-size:.875rem;color:var(--gray-700, #374151);line-height:1.5}.analysis-note{margin:0;font-size:.8rem;color:var(--gray-600, #4b5563);font-style:italic;line-height:1.4}.style-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.numeric-input-wrapper{display:flex;align-items:center;gap:.25rem}.checkbox-group{display:flex;align-items:center}.control-group span{font-weight:500;color:#1f2937;background-color:#f3f4f6;padding:.25rem .5rem;border-radius:.375rem;font-size:.875rem;min-width:4ch;text-align:center}.style-input{width:70px;padding:.375rem .5rem;border-radius:.375rem;border:1px solid #d1d5db;background-color:#fff;font-size:.875rem;font-weight:500;color:#1f2937;text-align:right;transition:border-color .2s,box-shadow .2s}.control-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2, .5rem)}.control-header label{margin:0;font-weight:var(--font-weight-medium, 500);color:var(--gray-700, #374151);font-size:.875rem}.suggestion-checkbox{display:flex;align-items:center;gap:var(--space-1, .25rem);background:var(--gray-50, #f9fafb);padding:var(--space-1, .25rem) var(--space-2, .5rem);border-radius:var(--radius-sm, .25rem);border:1px solid var(--gray-200, #e5e7eb);transition:all .2s ease}.suggestion-checkbox:hover{background:var(--gray-100, #f3f4f6);border-color:var(--primary-blue, #2563eb)}.suggestion-checkbox input[type=checkbox]{width:14px;height:14px;margin:0;cursor:pointer;accent-color:var(--primary-blue, #2563eb)}.suggestion-checkbox label{margin:0;font-size:.75rem;color:var(--gray-600, #4b5563);cursor:pointer;font-weight:var(--font-weight-normal, 400)}.suggestion-checkbox input:checked+label{color:var(--primary-blue, #2563eb);font-weight:var(--font-weight-medium, 500)}.control-group input[type=range]:disabled{opacity:.6;cursor:not-allowed}.control-group input[type=range]:disabled::-webkit-slider-thumb{cursor:not-allowed;background:var(--gray-400, #9ca3af)}.control-group input[type=range]:disabled::-moz-range-thumb{cursor:not-allowed;background:var(--gray-400, #9ca3af)}.appearance-preview{background:var(--gray-50, #f9fafb);border:1px solid var(--gray-200, #e5e7eb);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem)}.appearance-preview h4{margin:0 0 var(--space-3, .75rem) 0;font-size:.9375rem;font-weight:var(--font-weight-semibold, 600);color:var(--gray-900, #111827);display:flex;align-items:center;gap:var(--space-2, .5rem)}.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2, .5rem)}.preview-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, .5rem);background:#fff;border-radius:var(--radius-md, .5rem);border:1px solid var(--gray-200, #e5e7eb);font-size:.8125rem}.preview-item span:first-child{color:var(--gray-600, #4b5563);font-weight:var(--font-weight-medium, 500)}.preview-item span:last-child{color:var(--gray-900, #111827);font-weight:var(--font-weight-semibold, 600)}.data-type-static{padding:var(--space-2, .5rem);background:var(--gray-100, #f3f4f6);border-radius:var(--radius-sm, .375rem);font-size:.875rem;color:var(--gray-700, #374151);font-weight:var(--font-weight-medium, 500);text-transform:capitalize;border:1px solid var(--gray-200, #e5e7eb)}@media (max-width: 768px){.appearance-sections{gap:var(--space-3, .75rem)}.control-grid{grid-template-columns:1fr;gap:var(--space-3, .75rem)}.preview-grid{grid-template-columns:1fr}.appearance-section{padding:var(--space-3, .75rem)}.compact-controls{flex-direction:column;align-items:stretch;gap:var(--space-3, .75rem)}.compact-control-item{justify-content:space-between;flex-wrap:wrap}.compact-range-container{min-width:140px}}@media (max-width: 480px){.appearance-step{padding:var(--space-4, 1rem)}.preview-item{flex-direction:column;gap:var(--space-1, .25rem);text-align:center}.checkbox-group{padding:var(--space-2, .5rem)}}.import-type-selection{padding:1.5rem}.import-controls{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.import-search{flex:1;min-width:200px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem}.import-search:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.sort-select,.tag-filter-select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;background:#fff;color:#374151}.sort-select:focus,.tag-filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.import-close-btn{margin-left:auto;background:#fff;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:1.125rem;cursor:pointer;transition:all .15s ease}.import-close-btn:hover{background:#f9fafb;border-color:#9ca3af;transform:translateY(-1px)}.dataset-naming-form{max-width:600px;margin:0 auto 2rem}.selected-type-preview{margin-bottom:2rem;text-align:center}.selected-type-card{display:inline-flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #3b82f6;border-radius:.75rem;box-shadow:0 4px 6px #3b82f61a}.selected-type-card .card-icon{font-size:2rem}.selected-type-card .card-content h3{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#111827}.selected-type-card .card-content p{margin:0;font-size:.875rem;color:#6b7280}.form-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.form-input,.form-textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;background:#fff;color:#374151;transition:all .2s ease;font-family:inherit}.form-input:focus,.form-textarea:focus{border-color:var(--app-color-primary);outline:none;box-shadow:0 0 0 2px #3b82f61a}.form-textarea{resize:vertical;min-height:80px}.input-help{font-size:.75rem;color:#6b7280;margin-top:.25rem}.import-types-grid{margin-bottom:1.5rem}.import-types-grid h2{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .75rem;padding-bottom:.25rem;border-bottom:1px solid #e5e7eb}.type-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.import-type-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.75rem;aspect-ratio:1 / 1;min-height:180px}.import-type-card .card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.card-header-left{display:flex;align-items:center;gap:.5rem;min-width:0}.card-title{margin:0;font-size:1rem;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-header-right{display:flex;align-items:center;gap:.375rem}.import-type-card.available:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:#3b82f6}.import-type-card.coming-soon{opacity:.6;cursor:not-allowed;background:#f9fafb}.pin-toggle{background:transparent;border:none;padding:0;line-height:0;cursor:pointer;font-size:1rem;transition:all .15s ease}.pin-toggle:hover{transform:translateY(-1px)}.pinned-order-badge{background:#3b82f6;color:#fff;border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:700}.import-type-card.pinned{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.star-icon{color:#9ca3af}.pin-toggle.active .star-icon{color:#f59e0b}.card-icon{font-size:1.5rem;text-align:left;line-height:1}.card-content{flex:1}.import-type-card .card-content{display:flex;flex-direction:column}.card-content h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .375rem}.card-content p{color:#6b7280;font-size:.8rem;line-height:1.4;margin:0 0 .75rem}.card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:auto}.tag-chip{font-size:.65rem;color:#374151;background:#f3f4f6;border:1px solid #e5e7eb;padding:.125rem .375rem;border-radius:.375rem}.file-count,.optional-count{font-size:.65rem;padding:.125rem .375rem;border-radius:.25rem;font-weight:500}.file-count{background:#ef44441a;color:#dc2626}.optional-count{background:#f59e0b1a;color:#d97706}.card-action{margin-top:auto}.select-btn{background:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.8rem;width:100%}.select-btn:hover{background:#2563eb}.coming-soon-badge{position:absolute;top:1rem;right:1rem;background:#6b7280;color:#fff;font-size:.75rem;padding:.25rem .5rem;border-radius:.375rem;font-weight:500}.help-text{display:flex;align-items:center;gap:.5rem;color:#6b7280;font-size:.875rem}.multi-file-upload{padding:1rem}.upload-grid{margin-bottom:1rem}.upload-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.file-upload-section{background:#fff;border:2px solid #e5e7eb;border-radius:1rem;overflow:hidden;transition:all .3s ease}.file-upload-section.required{border-color:#f87171}.file-upload-section.optional{border-color:#fbbf24}.file-upload-section.drag-active{border-color:#3b82f6;background:#3b82f60d}.section-header{padding:1.5rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:flex-start}.section-info h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.section-info p{color:#6b7280;font-size:.875rem;margin:0;line-height:1.5}.section-meta{text-align:right}.file-limit{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:.25rem .5rem;border-radius:.375rem}.file-drop-zone{padding:2rem;text-align:center;cursor:pointer;transition:all .3s ease;border:2px dashed transparent;margin:1.5rem;border-radius:.75rem;background:#f9fafb}.file-drop-zone.empty{border-color:#d1d5db}.file-drop-zone.has-files{background:#f0f9ff;border-color:#0ea5e9}.file-drop-zone.drag-active{border-color:#3b82f6;background:#3b82f61a;transform:scale(1.02)}.drop-content h4{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem}.drop-content p{color:#6b7280;font-size:.875rem;margin:.25rem 0}.uploaded-files{display:flex;flex-direction:column;gap:.75rem}.uploaded-file{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border-radius:.5rem;border:1px solid #e5e7eb;text-align:left}.file-info{flex:1}.file-name{font-weight:500;color:#111827;display:block;font-size:.875rem}.file-size{color:#6b7280;font-size:.75rem}.remove-file-btn{background:none;border:none;color:#ef4444;font-size:1rem;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:background .2s}.remove-file-btn:hover{background:#ef44441a}.add-more-files{padding:.75rem;border:2px dashed #d1d5db;border-radius:.5rem;color:#6b7280;font-size:.875rem;cursor:pointer;transition:all .2s ease}.add-more-files:hover{border-color:#3b82f6;color:#3b82f6}.section-status{padding:1rem 1.5rem;background:#f9fafb;border-top:1px solid #e5e7eb}.status-errors,.status-warnings{display:flex;flex-direction:column;gap:.25rem}.error-message{color:#dc2626;font-size:.875rem}.warning-message{color:#d97706;font-size:.875rem}.status-success{color:#059669;font-size:.875rem;font-weight:500}.file-upload-card-compact{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;overflow:hidden;transition:all .2s ease;cursor:pointer;min-height:140px;display:flex;flex-direction:column}.file-upload-card-compact.required{border-color:#f87171}.file-upload-card-compact.optional{border-color:#fbbf24}.file-upload-card-compact.drag-active{border-color:#3b82f6;background:#3b82f60d;transform:scale(1.02)}.file-upload-card-compact.complete{border-color:#10b981;background:#10b9810d}.file-upload-card-compact.complete.required{border-color:#10b981;background:#10b9811a}.file-upload-card-compact:hover:not(.drag-active){border-color:#d1d5db;box-shadow:0 2px 4px #0000001a}.file-drop-zone-compact{flex:1;padding:1rem;display:flex;flex-direction:column;height:100%;min-height:120px}.drop-content-compact,.uploaded-files-compact{display:flex;flex-direction:column;height:100%}.card-header-compact{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.card-header-left{display:flex;align-items:center;gap:.5rem;flex:1}.card-header-right{display:flex;align-items:center}.file-status-indicator{display:flex;align-items:center;gap:.375rem}.status-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);border:2px solid white;box-shadow:0 2px 4px #0000001a}.status-icon.complete{background:#10b981}.status-icon.incomplete{background:#ef4444}.file-count-display{font-size:.75rem;font-weight:600;color:#6b7280;background:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;border:1px solid #e5e7eb;white-space:nowrap}.card-icon-compact{font-size:1.25rem;flex-shrink:0}.card-title-compact{display:flex;align-items:center;gap:.5rem;flex:1}.card-title-compact h4{font-size:.875rem;font-weight:600;color:#111827;margin:0;line-height:1.2}.required-indicator{color:#ef4444;font-weight:700;font-size:1rem}.info-tooltip-container{position:relative;display:flex;align-items:center;cursor:help}.info-icon{width:16px;height:16px;border-radius:50%;background:#e5e7eb;color:#6b7280;font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border:1px solid #d1d5db}.info-tooltip-container:hover .info-icon{background:#3b82f6;color:#fff;border-color:#3b82f6;transform:scale(1.1)}.card-body-compact{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.5rem}.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:.5rem}.upload-icon{font-size:1.5rem;color:#9ca3af}.upload-prompt span:last-child{font-size:.75rem;font-weight:500;color:#6b7280}.file-formats{font-size:.625rem;color:#9ca3af;background:#f9fafb;padding:.25rem .5rem;border-radius:.25rem;border:1px solid #e5e7eb}.files-list-compact{flex:1;display:flex;flex-direction:column;gap:.375rem;overflow-y:auto;max-height:80px}.uploaded-file-compact{display:flex;justify-content:space-between;align-items:center;padding:.375rem .5rem;background:#f9fafb;border-radius:.375rem;border:1px solid #e5e7eb}.file-info-compact{flex:1;min-width:0}.file-name-compact{display:block;font-size:.75rem;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.file-size-compact{font-size:.625rem;color:#6b7280;line-height:1.2}.remove-file-btn-compact{background:none;border:none;color:#ef4444;font-size:.75rem;cursor:pointer;padding:.125rem;border-radius:.25rem;transition:background .2s;flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.remove-file-btn-compact:hover{background:#ef44441a}.add-more-compact{padding:.375rem;border:1px dashed #d1d5db;border-radius:.375rem;color:#6b7280;font-size:.625rem;text-align:center;cursor:pointer;transition:all .2s ease}.add-more-compact:hover{border-color:#3b82f6;color:#3b82f6}.validation-status-compact{padding:.375rem .75rem;font-size:.625rem;text-align:center;background:#f9fafb;border-top:1px solid #e5e7eb}.validation-error{color:#dc2626;font-weight:500}.validation-warning{color:#d97706;font-weight:500}.file-type-badge{background:#3b82f6;color:#fff;font-size:.75rem;padding:.25rem .5rem;border-radius:.375rem;font-weight:500;margin-left:.5rem}.nav-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem}.field-input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background:#fff;color:#374151;transition:all .2s ease}.field-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.file-tab.valid{background:#10b9811a;border-color:#10b981;color:#065f46}.file-tab.invalid{background:#ef44441a;border-color:#ef4444;color:#dc2626}.file-tab.processed{background:#f59e0b1a;border-color:#f59e0b;color:#d97706}.file-tab.processed:hover{background:#f59e0b33;border-color:#f59e0b}.mapping-summary{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.summary-stats{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.summary-stats .stat{background:#fff;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:#374151;border:1px solid rgba(14,165,233,.2)}.data-summary{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(14,165,233,.2)}.data-summary h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#111827}.data-counts{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.data-count{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:600;box-shadow:0 2px 4px #10b98133}.mapping-progress{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.current-file{font-weight:600;color:#111827;font-size:1rem}.file-counter{color:#6b7280;font-size:.875rem;background:#f3f4f6;padding:.25rem .5rem;border-radius:.375rem}.file-navigation{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;margin-top:2rem}.file-navigation h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#111827}.file-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.file-tab{background:#fff;border:1px solid #d1d5db;padding:.5rem .75rem;border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.file-tab:hover{border-color:#3b82f6;background:#3b82f60d}.file-tab.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.comprehensive-validation{padding:2rem}.validation-content{display:flex;flex-direction:column;gap:2rem;margin:2rem 0}.validation-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.validation-section h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:#111827}.validation-section .section-description{margin:0 0 1rem;color:#6b7280;font-size:.875rem;line-height:1.5}.validation-info{margin-bottom:1rem}.info-message{padding:.875rem 1rem;border-radius:.5rem;font-size:.875rem;line-height:1.6;display:flex;align-items:flex-start;gap:.5rem}.info-message.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.info-message.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.info-message.warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.info-message.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.dip-convention-section .control-group{margin-top:1rem}.dip-convention-section .control-hint{margin:.5rem 0 0 2rem;font-size:.8125rem;color:#6b7280;font-style:italic}@media (max-width: 768px){.type-cards{grid-template-columns:1fr}.upload-grid{grid-template-columns:1fr!important;grid-template-rows:auto!important}.upload-grid>div{grid-column:1!important;grid-row:auto!important}.file-upload-card-compact{min-height:120px}.file-formats{font-size:.575rem}.progress-info{flex-direction:column;gap:.5rem;text-align:center}.file-tabs{justify-content:center}}@media (max-width: 480px){.import-type-selection,.multi-file-upload,.sequential-mapping,.comprehensive-validation{padding:.75rem}.import-type-card{padding:1rem}.file-upload-card-compact{min-height:100px}.file-drop-zone-compact{padding:.75rem;min-height:80px}.card-header-compact{margin-bottom:.5rem}.card-icon-compact{font-size:1rem}.card-title-compact h4{font-size:.8rem}.info-icon{width:14px;height:14px;font-size:.7rem}.upload-icon{font-size:1.25rem}.file-formats{font-size:.55rem;padding:.125rem .375rem}.files-list-compact{max-height:60px;gap:.25rem}.uploaded-file-compact{padding:.25rem .375rem}.file-name-compact{font-size:.7rem}.file-size-compact{font-size:.575rem}.mapping-progress{padding:1rem}}.sequential-mapping{padding:1.5rem}.mapping-status-indicator{margin-top:1rem;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;text-align:center}.status-success{background:#10b9811a;color:#065f46;border:1px solid rgba(16,185,129,.2)}.status-warning{background:#f59e0b1a;color:#92400e;border:1px solid rgba(245,158,11,.2)}.file-navigation-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.navigation-controls{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.nav-btn{background:#fff;border:1px solid #d1d5db;color:#374151;padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.nav-btn:hover{background:#f9fafb;border-color:#9ca3af}.nav-btn.secondary{background:#f3f4f6}.file-tabs-compact{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0;overflow-x:auto;padding:.25rem 0}.file-tab-compact{background:#fff;border:1px solid #d1d5db;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:flex;align-items:center;gap:.375rem;min-width:0}.file-tab-compact:hover{border-color:#3b82f6;background:#3b82f60d}.file-tab-compact.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.file-tab-compact.processed{background:#10b9811a;border-color:#10b981;color:#065f46}.file-tab-compact.processed.active{background:#10b981;color:#fff}.tab-name{overflow:hidden;text-overflow:ellipsis;max-width:120px}.tab-status{background:#0000001a;color:currentColor;padding:.125rem .375rem;border-radius:.25rem;font-size:.6rem;font-weight:600;min-width:1.25rem;text-align:center}.file-tab-compact.active .tab-status{background:#fff3}.mapping-controls{display:flex;align-items:center;gap:.75rem}.auto-map-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 2px 4px #3b82f633}.auto-map-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.file-counter{color:#6b7280;font-size:.75rem;font-weight:500;background:#fff;padding:.25rem .5rem;border-radius:.25rem;border:1px solid #e5e7eb;white-space:nowrap}.mapping-container{margin-bottom:1rem}.mapping-preview{margin-bottom:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.mapping-preview h4{background:#f3f4f6;padding:.75rem 1rem;margin:0;font-size:.875rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.mappings-container{display:flex;flex-direction:column;gap:1rem}.required-section,.optional-section{border-radius:.5rem;overflow:hidden}.required-section{background:#fef2f2;border:1px solid #f87171}.optional-section{background:#fffbeb;border:1px solid #fbbf24}.section-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#00000008;border-bottom:1px solid rgba(0,0,0,.1)}.section-controls{display:flex;align-items:center;gap:.75rem}.section-header h4{margin:0;font-size:.875rem;font-weight:700;color:#111827;display:flex;align-items:center;gap:.5rem}.field-count{font-size:.75rem;color:#6b7280;font-weight:500;background:#ffffffb3;padding:.25rem .5rem;border-radius:.25rem}.auto-map-optional-btn{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 2px 4px #f59e0b33}.auto-map-optional-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px);box-shadow:0 4px 6px #f59e0b4d}.mappings-list{display:flex;flex-direction:column}.mapping-row{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:.75rem;align-items:center;padding:.75rem 1rem;background:#ffffffb3;border-bottom:1px solid rgba(0,0,0,.05);transition:all .2s ease}.mapping-row.optional{grid-template-columns:2fr 2fr 1fr auto}.mapping-row:hover{background:#ffffffe6}.mapping-row.required.error{background:#ef44441a;border-left:3px solid #ef4444}.field-name{font-weight:500;color:#374151;font-size:.875rem}.field-name strong{color:#111827}.column-select,.type-select{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.75rem;background:#fff;color:#374151;transition:all .2s ease}.column-select:focus,.type-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.data-type-static{padding:.375rem .5rem;background:#f3f4f6;border-radius:.375rem;font-size:.75rem;color:#6b7280;font-weight:500;text-transform:capitalize;border:1px solid #e5e7eb;text-align:center}.status-indicator{display:flex;justify-content:center}.status-indicator .mapped{color:#10b981;font-size:.75rem;font-weight:600}.status-indicator .unmapped{color:#ef4444;font-size:.75rem;font-weight:600}.mapping-row.custom{background:#3b82f60d;border-left:3px solid #3b82f6}.field-input{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.75rem;background:#fff;color:#374151;transition:all .2s ease}.field-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.remove-mapping-btn{background:none;border:none;font-size:1rem;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:all .2s ease;justify-self:center;color:#ef4444;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.remove-mapping-btn:hover{background:#ef44441a;transform:scale(1.1)}.add-mapping-section{padding:.75rem 1rem;text-align:center;background:#ffffff80;border-top:1px solid rgba(0,0,0,.05)}.add-mapping-btn{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.add-mapping-btn:hover{background:#e5e7eb;border-color:#9ca3af}.file-process-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #0ea5e9;border-radius:.5rem;padding:1rem;text-align:center;margin-top:1rem}.process-file-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #10b98133}.process-file-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 6px #10b9814d}.process-file-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.process-file-btn.enabled{background:linear-gradient(135deg,#10b981,#059669)}.process-note{margin:.5rem 0 0;font-size:.75rem;color:#6b7280}.loading-container{text-align:center;padding:2rem}.loading-spinner{font-size:2rem;margin-bottom:1rem;animation:spin 2s linear infinite}@media (max-width: 768px){.sequential-mapping{padding:1rem}.file-navigation-header{flex-direction:column;align-items:stretch;gap:.75rem}.navigation-controls{justify-content:center;flex-wrap:wrap}.file-tabs-compact{justify-content:center;max-width:100%}.tab-name{max-width:80px}.mapping-controls{justify-content:center}.mapping-row{grid-template-columns:1fr;gap:.5rem;text-align:left}.mapping-row.optional{grid-template-columns:1fr}.mapping-row>*{width:100%}.status-indicator{justify-content:flex-start}.remove-mapping-btn{justify-self:flex-end;margin-top:.5rem}}@media (max-width: 480px){.sequential-mapping,.file-navigation-header{padding:.75rem}.nav-btn{padding:.375rem .5rem;font-size:.75rem}.file-tab-compact{padding:.25rem .5rem;font-size:.65rem}.tab-name{max-width:60px}.auto-map-btn{padding:.375rem .75rem;font-size:.75rem}.mapping-row,.section-header{padding:.5rem .75rem}.section-header h4{font-size:.8rem}.field-count{font-size:.65rem}}.mapping-utility-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin:1.5rem 0;padding:1rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:.75rem}.utility-btn{padding:.5rem 1rem;border-radius:.375rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;white-space:nowrap;min-width:140px;box-shadow:0 2px 4px #0000001a}.utility-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.utility-btn.primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.utility-btn.secondary{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.utility-btn.secondary:hover{background:linear-gradient(135deg,#4b5563,#374151);transform:translateY(-1px);box-shadow:0 4px 6px #6b72804d}.utility-btn.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.utility-btn.warning:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px);box-shadow:0 4px 6px #f59e0b4d}.utility-btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.utility-btn.danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 6px #ef44444d}.utility-btn.success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.utility-btn.success:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 6px #10b9814d}.auto-map-required-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 2px 4px #ef444433}.auto-map-required-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 6px #ef44444d}@media (max-width: 768px){.mapping-utility-buttons{flex-direction:column;align-items:stretch;gap:.5rem}.utility-btn{min-width:unset;font-size:.75rem;padding:.375rem .75rem}}@media (max-width: 480px){.mapping-utility-buttons{padding:.75rem}.utility-btn{font-size:.7rem;padding:.3rem .6rem}.auto-map-required-btn{font-size:.65rem;padding:.25rem .5rem}}.form-input.error{border-color:var(--app-color-error, #dc2626);box-shadow:0 0 0 2px #dc26261a}.input-error{margin-top:4px;font-size:12px;color:var(--app-color-error, #dc2626);display:flex;align-items:center;gap:4px}.input-error:before{content:"⚠️";font-size:10px}.interval-appearance-panel{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.5rem;padding:1rem;margin-bottom:1rem;transition:all .2s ease}.interval-appearance-panel:hover{border-color:#dee2e6;box-shadow:0 2px 4px #0000000d}.interval-appearance-panel h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#495057;border-bottom:1px solid #e9ecef;padding-bottom:.5rem}.interval-rendering-controls{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.interval-rendering-controls label{font-size:.875rem;font-weight:500;color:#495057;display:flex;align-items:center;gap:.375rem;cursor:pointer}.interval-rendering-controls input[type=radio]{width:1rem;height:1rem;accent-color:#3b82f6}.interval-thickness-controls{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.interval-thickness-controls label{font-size:.875rem;font-weight:500;color:#495057;display:flex;align-items:center;gap:.375rem;cursor:pointer}.interval-thickness-controls input[type=radio]{width:1rem;height:1rem;accent-color:#3b82f6}.interval-thickness-controls input[type=number]{padding:.25rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.875rem;width:4rem;transition:border-color .2s ease}.interval-thickness-controls input[type=number]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.interval-thickness-controls select{padding:.25rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.875rem;background:#fff;cursor:pointer;min-width:8rem;transition:border-color .2s ease}.interval-thickness-controls select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.interval-color-controls{margin-top:.75rem}.interval-color-controls>label{font-size:.875rem;font-weight:500;color:#495057;margin-right:.5rem}.interval-color-controls select{padding:.25rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.875rem;background:#fff;cursor:pointer;min-width:10rem;transition:border-color .2s ease}.interval-color-controls select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.color-map-list{display:flex;flex-direction:column;gap:.5rem;max-height:12rem;overflow-y:auto;padding:.5rem;background:#fff;border:1px solid #e9ecef;border-radius:.25rem;margin-top:.5rem}.color-map-list>div{display:flex;align-items:center;padding:.25rem .5rem;border-radius:.25rem;transition:background-color .2s ease}.color-map-list>div:hover{background-color:#f8f9fa}.color-map-list span{font-size:.875rem;color:#495057;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.color-map-list input[type=color]{width:2rem;height:1.5rem;border:1px solid #ced4da;border-radius:.25rem;cursor:pointer;background:none;padding:0;margin-left:.5rem}.color-map-list input[type=color]:focus{outline:none;box-shadow:0 0 0 2px #3b82f633}@media (max-width: 768px){.interval-thickness-controls{flex-direction:column;align-items:flex-start;gap:.5rem}.interval-thickness-controls label{width:100%}.interval-thickness-controls input[type=number],.interval-thickness-controls select{width:100%;max-width:12rem}.interval-color-controls select{width:100%;max-width:15rem}.color-map-list{max-height:8rem}}@media (max-width: 480px){.interval-appearance-panel{padding:.75rem}.interval-thickness-controls{gap:.375rem}.interval-thickness-controls label{font-size:.8125rem}.color-map-list span{font-size:.8125rem;max-width:4rem}}.file-appearance-panels{display:flex;flex-direction:column;gap:.75rem}.file-appearance-panel{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.file-appearance-panel:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a}.panel-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.panel-header h4{margin:0 0 .125rem;font-size:.9375rem;font-weight:600;color:#111827}.panel-subtitle{font-size:.8125rem;color:#6b7280;margin:0}.control-group{margin-bottom:.875rem}.control-group:last-child{margin-bottom:0}.control-label{display:block;font-size:.8125rem;font-weight:500;color:#374151;margin-bottom:.375rem}.radio-group{display:flex;flex-direction:column;gap:.5rem}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border:1px solid #e5e7eb;border-radius:.375rem;cursor:pointer;transition:all .2s ease;background:#fff}.radio-option:hover{border-color:#d1d5db;background:#f9fafb}.radio-option input[type=radio]{margin:0;width:1rem;height:1rem;cursor:pointer}.radio-option span{font-size:.875rem;font-weight:500;color:#374151;cursor:pointer}.radio-option input[type=radio]:checked+span{color:#111827;font-weight:600}.inline-number-input{width:4rem;padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.875rem;text-align:center;margin-left:.5rem}.inline-number-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.inline-select{width:200px;margin-left:.5rem;padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;background:#fff;font-size:.875rem}.inline-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.full-width-select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background:#fff;margin-top:.5rem}.full-width-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.color-mapping-section{margin-top:.5rem;padding:.625rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem}.color-mapping-header{font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.randomize-colors-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.25rem;white-space:nowrap}.randomize-colors-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.color-mapping-grid{display:flex;flex-direction:column;gap:.25rem;max-height:280px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;padding:.375rem}.color-mapping-item{display:flex;align-items:center;padding:.375rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:.25rem;transition:all .2s ease;gap:.375rem;min-height:40px}.color-mapping-item:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000001a}.color-lock-btn{background:transparent;border:1px solid var(--gray-300, #d1d5db);border-radius:.25rem;padding:0;cursor:pointer;font-size:.75rem;transition:all .2s ease;width:32px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.color-lock-btn:hover{background:var(--gray-100, #f3f4f6);border-color:var(--gray-400, #9ca3af)}.color-lock-btn.locked{background:var(--red-50, #fef2f2);border-color:var(--red-300, #fca5a5);color:var(--red-600, #dc2626)}.color-lock-btn.locked:hover{background:var(--red-100, #fee2e2);border-color:var(--red-400, #f87171)}.color-lock-btn.unlocked{background:var(--green-50, #f0fdf4);border-color:var(--green-300, #86efac);color:var(--green-600, #16a34a)}.color-lock-btn.unlocked:hover{background:var(--green-100, #dcfce7);border-color:var(--green-400, #4ade80)}.color-picker-container,.lock-button-container{display:flex;align-items:center;justify-content:center;width:40px;flex-shrink:0}.value-label{font-size:.875rem;color:#374151;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.color-picker{width:32px;height:28px;border:1px solid #d1d5db;border-radius:.25rem;cursor:pointer;padding:0;background:none;flex-shrink:0}.color-picker::-webkit-color-swatch-wrapper{padding:0;border:none;border-radius:.25rem}.color-picker::-webkit-color-swatch{border:none;border-radius:.25rem}.color-picker:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.no-data-message{color:#6b7280;font-style:italic;margin-top:.5rem;padding:1rem;text-align:center;background:#f9fafb;border-radius:.375rem;border:1px dashed #d1d5db}.point-appearance-panel{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem;margin-bottom:1rem;transition:all .2s ease}@media (max-width: 768px){.file-appearance-panels{gap:.75rem}.file-appearance-panel{padding:1rem}.radio-group{gap:.5rem}.color-mapping-grid{max-height:250px;gap:.25rem;padding:.375rem}.color-mapping-item{padding:.375rem}.inline-select{min-width:6rem}}@media (max-width: 480px){.file-appearance-panel{padding:.75rem}.panel-header{margin-bottom:.75rem;padding-bottom:.5rem}.panel-header h4{font-size:.875rem}.panel-subtitle{font-size:.75rem}.radio-option{padding:.375rem;gap:.5rem}.control-group{margin-bottom:1rem}.color-mapping-grid{max-height:200px;gap:.25rem;padding:.375rem}.color-mapping-section{padding:.5rem}.inline-number-input{width:3rem}.inline-select{min-width:5rem;font-size:.75rem}}.inline-color-input{width:40px;height:28px;margin-left:.5rem;border:1px solid #d1d5db;border-radius:.25rem;padding:0;cursor:pointer;background:none}.inline-color-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.inline-color-input::-webkit-color-swatch-wrapper{padding:0;border:none;border-radius:.25rem}.inline-color-input::-webkit-color-swatch{border:none;border-radius:.25rem}.zoom-controls-container{display:flex;flex-direction:column;gap:4px;pointer-events:none;padding:4px}.zoom-btn{pointer-events:auto;width:32px;height:32px;border:1px solid rgba(0,0,0,.1);border-radius:4px;background:#fff;color:#555;cursor:pointer;box-shadow:0 2px 6px #0000001a;transition:all .2s ease;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;padding:6px}.zoom-btn svg{width:100%;height:100%;fill:currentColor}.zoom-btn:hover{background:#f8f9fa;color:#222;box-shadow:0 3px 8px #00000026;transform:translateY(-1px)}.zoom-btn:active{transform:translateY(0);box-shadow:0 1px 3px #00000026;background:#e9ecef}.zoom-btn:focus{outline:2px solid #4a90e2;outline-offset:2px}@media (prefers-color-scheme: dark){.zoom-btn{background:#2d2d2d;border-color:#ffffff1a;color:#ddd}.zoom-btn:hover{background:#383838;color:#fff}.zoom-btn:active{background:#252525}.zoom-btn:focus{outline-color:#5ca3e6}}.save-camera-view-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.save-camera-view-dialog{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color, #e0e0e0)}.dialog-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary, #1a1a1a)}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary, #666);padding:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-button:hover{background:var(--bg-hover, #f0f0f0);color:var(--text-primary, #1a1a1a)}.dialog-content{padding:24px;overflow-y:auto;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:14px;color:var(--text-primary, #1a1a1a)}.form-group input[type=text],.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary, #4a90e2);box-shadow:0 0 0 3px #4a90e21a}.form-group textarea{resize:vertical;min-height:60px}.icon-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.icon-option{width:40px;height:40px;border:2px solid var(--border-color, #d0d0d0);border-radius:6px;background:var(--bg-primary, #ffffff);cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-option:hover{border-color:var(--accent-primary, #4a90e2);transform:scale(1.05)}.icon-option.selected{border-color:var(--accent-primary, #4a90e2);background:#4a90e21a}.custom-icon-input{width:60px!important;text-align:center;padding:8px!important}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-group span{font-weight:400}.camera-info{margin-top:24px;padding:16px;background:var(--bg-secondary, #f8f9fa);border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.camera-info h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.camera-coords{display:flex;flex-direction:column;gap:6px;font-size:13px;font-family:Courier New,monospace;color:var(--text-primary, #1a1a1a)}.camera-coords strong{color:var(--text-secondary, #666);font-weight:500}.dialog-footer{padding:16px 24px;border-top:1px solid var(--border-color, #e0e0e0);display:flex;gap:12px;justify-content:flex-end}.dialog-footer button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-secondary{background:var(--bg-secondary, #f0f0f0);color:var(--text-primary, #1a1a1a)}.btn-secondary:hover{background:var(--bg-hover, #e0e0e0)}.btn-primary{background:var(--accent-primary, #4a90e2);color:#fff}.btn-primary:hover{background:var(--accent-primary-dark, #3a7bc8);transform:translateY(-1px);box-shadow:0 4px 12px #4a90e24d}@media (prefers-color-scheme: dark){.save-camera-view-dialog{--bg-primary: #2a2a2a;--bg-secondary: #1e1e1e;--bg-hover: #3a3a3a;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--border-color: #404040}}.camera-view-manager-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.camera-view-manager{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:700px;width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.manager-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color, #e0e0e0)}.manager-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary, #1a1a1a)}.manager-toolbar{padding:16px 24px;border-bottom:1px solid var(--border-color, #e0e0e0);display:flex;flex-direction:column;gap:12px}.search-input{width:100%;padding:10px 12px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;font-size:14px;box-sizing:border-box}.search-input:focus{outline:none;border-color:var(--accent-primary, #4a90e2);box-shadow:0 0 0 3px #4a90e21a}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:6px 12px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);font-size:13px;cursor:pointer;transition:all .2s}.filter-btn:hover{background:var(--bg-hover, #f0f0f0);border-color:var(--accent-primary, #4a90e2)}.filter-btn.active{background:var(--accent-primary, #4a90e2);color:#fff;border-color:var(--accent-primary, #4a90e2)}.views-list{flex:1;overflow-y:auto;padding:16px 24px}.view-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:8px;border:1px solid var(--border-color, #e0e0e0);margin-bottom:12px;transition:all .2s}.view-item:hover{background:var(--bg-hover, #f8f9fa);border-color:var(--accent-primary, #4a90e2)}.view-icon{font-size:32px;line-height:1;flex-shrink:0}.view-info{flex:1;min-width:0}.view-name{font-weight:600;font-size:15px;color:var(--text-primary, #1a1a1a);margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.favorite-badge{font-size:14px}.standard-badge{font-size:11px;padding:2px 6px;background:var(--bg-secondary, #f0f0f0);border-radius:4px;color:var(--text-secondary, #666);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.view-description{font-size:13px;color:var(--text-secondary, #666);margin-bottom:6px;line-height:1.4}.view-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{font-size:11px;padding:3px 8px;background:var(--bg-secondary, #e8f0fe);color:var(--accent-primary, #4a90e2);border-radius:12px;font-weight:500}.view-actions{display:flex;gap:4px;flex-shrink:0}.action-btn{width:32px;height:32px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;background:var(--bg-primary, #ffffff);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn:hover{background:var(--bg-hover, #f0f0f0);transform:scale(1.05)}.delete-btn:hover{background:#fee;border-color:#f44}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary, #666)}.empty-state p{margin-bottom:16px;font-size:15px}.empty-state button{padding:8px 16px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;background:var(--bg-primary, #ffffff);cursor:pointer;font-size:14px}.manager-footer{padding:16px 24px;border-top:1px solid var(--border-color, #e0e0e0);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.stats{font-size:13px;color:var(--text-secondary, #666)}.footer-actions{display:flex;gap:8px}.btn-secondary{padding:8px 16px;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--bg-hover, #f0f0f0);border-color:var(--accent-primary, #4a90e2)}@media (prefers-color-scheme: dark){.camera-view-manager{--bg-primary: #2a2a2a;--bg-secondary: #1e1e1e;--bg-hover: #3a3a3a;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--border-color: #404040}.tag{--bg-secondary: #1e3a5f}}:root{--primary-blue: #2563eb;--primary-blue-dark: #1d4ed8;--primary-blue-light: #3b82f6;--secondary-blue: #e0f2fe;--accent-blue: #06b6d4;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success-green: #10b981;--warning-amber: #f59e0b;--error-red: #ef4444;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-family);font-weight:var(--font-weight-normal);color:var(--gray-900);background-color:var(--gray-50);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-display:swap}.App{height:100vh;display:flex;flex-direction:column;background:var(--gray-900);color:#fff;overflow:hidden;position:relative}.full-screen-main{position:absolute;inset:0;overflow:hidden;z-index:1}.full-screen-3d{width:100%;height:100%;position:relative}.data-panel-overlay{position:absolute;top:0;right:0;width:400px;height:100%;background:#0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;animation:slideInRight .3s ease-out}.data-panel{width:100%;height:100%;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column}.data-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:#000c;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}.data-panel .panel-header h3{margin:0;font-size:1rem;font-weight:var(--font-weight-semibold)}.close-btn{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all .2s ease;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#ffffff1a}.data-panel .panel-content{flex:1;overflow:hidden;background:#fff;color:var(--gray-900)}.no-data-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:10;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--space-8) var(--space-12);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 40px #00000080}.message-content h2{margin:0 0 var(--space-4) 0;font-size:2rem;font-weight:var(--font-weight-bold);color:#fff;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.message-content p{margin:0 0 var(--space-6) 0;font-size:1.125rem;color:var(--gray-300);line-height:1.6}.quick-import-btn{background:linear-gradient(135deg,var(--primary-blue),#3b82f6);color:#fff;border:none;padding:var(--space-4) var(--space-8);border-radius:var(--radius-lg);font-size:1rem;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .3s ease;box-shadow:0 8px 25px #2563eb4d}.quick-import-btn:hover{background:linear-gradient(135deg,#1d4ed8,var(--primary-blue));transform:translateY(-2px);box-shadow:0 12px 30px #2563eb66}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.object-tree-window{width:90%!important;max-width:400px;left:5%!important}.no-data-message{padding:var(--space-6) var(--space-8)}.message-content h2{font-size:1.75rem}}@media (max-width: 768px){.object-tree-window{width:95%!important;left:2.5%!important;top:60px!important}.no-data-message{padding:var(--space-6) var(--space-8)}.message-content h2{font-size:1.75rem}}@media (max-width: 480px){.object-tree-window{width:98%!important;left:1%!important;top:50px!important;height:60%!important}.no-data-message{padding:var(--space-4) var(--space-6)}.message-content h2{font-size:1.5rem}.quick-import-btn{padding:var(--space-3) var(--space-6);font-size:.875rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.viewer-container,.grid-container{animation:fadeIn .5s ease-out}.data-summary span{animation:slideIn .3s ease-out}.data-summary span:nth-child(2){animation-delay:.1s}.data-summary span:nth-child(3){animation-delay:.2s}.data-summary span:nth-child(4){animation-delay:.3s}.grid-container::-webkit-scrollbar,.data-grid-container::-webkit-scrollbar{width:6px;height:6px}.grid-container::-webkit-scrollbar-track,.data-grid-container::-webkit-scrollbar-track{background:var(--gray-100);border-radius:var(--radius-sm)}.grid-container::-webkit-scrollbar-thumb,.data-grid-container::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}.grid-container::-webkit-scrollbar-thumb:hover,.data-grid-container::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@media print{.ribbon-container{box-shadow:none;border-bottom:2px solid var(--gray-300)}.welcome-screen,.cta-button{display:none}}button:focus-visible,.quick-import-btn:focus-visible{outline:none}.panel-header{background:var(--gray-50);border-bottom:1px solid var(--gray-300);padding:var(--space-3) var(--space-4);display:flex;justify-content:space-between;align-items:center;min-height:44px;flex-shrink:0}.panel-header h3{margin:0;font-size:14px;font-weight:var(--font-weight-medium);color:var(--gray-700)}.panel-controls{display:flex;gap:var(--space-2);align-items:center}.panel-swap{background:#fff;border:1px solid var(--gray-300);color:var(--gray-600);font-size:12px;font-weight:700;cursor:pointer;padding:var(--space-1);width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.panel-swap:hover{background:var(--gray-50);border-color:var(--gray-400);color:var(--gray-800)}.panel-close{background:none;border:none;color:var(--gray-500);font-size:16px;font-weight:700;cursor:pointer;padding:var(--space-1);width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.panel-close:hover{background:var(--gray-100);color:var(--gray-700)}.panel-content{flex:1;overflow:hidden;background:#fff}:root{--app-color-background: #ffffff;--app-color-surface: #f9fafb;--app-color-surface-elevated: #ffffff;--app-color-surface-hover: #f3f4f6;--app-color-surface-active: #e5e7eb;--app-color-text: #111827;--app-color-text-secondary: #374151;--app-color-text-muted: #6b7280;--app-color-text-inverse: #ffffff;--app-color-border: #e5e7eb;--app-color-border-hover: #d1d5db;--app-color-border-focus: #2563eb;--app-color-primary: #2563eb;--app-color-primary-hover: #1d4ed8;--app-color-primary-active: #1e40af;--app-color-primary-text: #ffffff;--app-color-success: #10b981;--app-color-warning: #f59e0b;--app-color-error: #ef4444;--app-color-info: #3b82f6;--app-color-disabled: #d1d5db;--app-color-selected: #dbeafe;--app-color-selected-hover: #bfdbfe;--app-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--app-font-family-mono: "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace;--app-font-size-xs: .75rem;--app-font-size-sm: .875rem;--app-font-size-md: 1rem;--app-font-size-lg: 1.125rem;--app-font-size-xl: 1.25rem;--app-font-size-xxl: 1.5rem;--app-font-weight-normal: 400;--app-font-weight-medium: 500;--app-font-weight-semibold: 600;--app-font-weight-bold: 700;--app-line-height-tight: 1.25;--app-line-height-normal: 1.5;--app-line-height-relaxed: 1.75;--app-spacing-xs: .25rem;--app-spacing-sm: .5rem;--app-spacing-md: 1rem;--app-spacing-lg: 1.5rem;--app-spacing-xl: 2rem;--app-spacing-xxl: 3rem;--app-radius-none: 0;--app-radius-sm: .25rem;--app-radius-md: .375rem;--app-radius-lg: .5rem;--app-radius-full: 9999px;--app-shadow-none: none;--app-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--app-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--app-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--app-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--app-z-index-dropdown: 1000;--app-z-index-modal: 1040;--app-z-index-tooltip: 1070;--app-z-index-notification: 1080;--app-duration-fast: .15s;--app-duration-normal: .2s;--app-duration-slow: .3s;--app-easing-linear: linear;--app-easing-ease: ease;--app-easing-ease-in: ease-in;--app-easing-ease-out: ease-out;--app-easing-ease-in-out: ease-in-out}body{font-family:var(--app-font-family);font-size:var(--app-font-size-md);line-height:var(--app-line-height-normal);color:var(--app-color-text);background-color:var(--app-color-background);margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}*:focus{outline:2px solid var(--app-color-border-focus);outline-offset:2px}.theme-button{font-family:var(--app-font-family);font-size:var(--app-font-size-sm);font-weight:var(--app-font-weight-medium);background:var(--app-color-surface);color:var(--app-color-text);border:1px solid var(--app-color-border);border-radius:var(--app-radius-md);padding:var(--app-spacing-sm) var(--app-spacing-md);cursor:pointer;transition:all var(--app-duration-normal) var(--app-easing-ease-out);display:inline-flex;align-items:center;justify-content:center;gap:var(--app-spacing-sm)}.theme-button:hover{background:var(--app-color-surface-hover);border-color:var(--app-color-border-hover)}.theme-button:active{background:var(--app-color-surface-active)}.theme-button:disabled{opacity:.6;cursor:not-allowed;color:var(--app-color-disabled)}.theme-button.primary{background:var(--app-color-primary);color:var(--app-color-primary-text);border-color:var(--app-color-primary)}.theme-button.primary:hover{background:var(--app-color-primary-hover);border-color:var(--app-color-primary-hover)}.theme-button.primary:active{background:var(--app-color-primary-active);border-color:var(--app-color-primary-active)}.theme-input{font-family:var(--app-font-family);font-size:var(--app-font-size-sm);background:var(--app-color-surface-elevated);color:var(--app-color-text);border:1px solid var(--app-color-border);border-radius:var(--app-radius-md);padding:var(--app-spacing-sm) var(--app-spacing-md);transition:all var(--app-duration-normal) var(--app-easing-ease-out);width:100%}.theme-input:hover{border-color:var(--app-color-border-hover)}.theme-input:focus{border-color:var(--app-color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--app-color-border-focus) 10%,transparent)}.theme-input::placeholder{color:var(--app-color-text-muted)}.theme-panel{background:var(--app-color-surface-elevated);border:1px solid var(--app-color-border);border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-sm);overflow:hidden}.theme-panel-header{background:var(--app-color-surface);border-bottom:1px solid var(--app-color-border);padding:var(--app-spacing-md) var(--app-spacing-lg);display:flex;align-items:center;justify-content:between;gap:var(--app-spacing-md)}.theme-panel-title{font-size:var(--app-font-size-lg);font-weight:var(--app-font-weight-semibold);color:var(--app-color-text);margin:0}.theme-panel-content{padding:var(--app-spacing-lg)}.theme-list{list-style:none;margin:0;padding:0}.theme-list-item{display:flex;align-items:center;padding:var(--app-spacing-sm) var(--app-spacing-md);border-radius:var(--app-radius-md);transition:all var(--app-duration-fast) var(--app-easing-ease-out);cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--app-spacing-sm)}.theme-list-item:hover{background:var(--app-color-surface-hover)}.theme-list-item.selected{background:var(--app-color-selected);color:var(--app-color-primary)}.theme-list-item.selected:hover{background:var(--app-color-selected-hover)}.theme-modal-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--app-color-text) 50%,transparent);z-index:var(--app-z-index-modal);display:flex;align-items:center;justify-content:center;padding:var(--app-spacing-lg)}.theme-modal{background:var(--app-color-surface-elevated);border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-xl);max-width:90vw;max-height:90vh;overflow:hidden;animation:modalSlideIn var(--app-duration-normal) var(--app-easing-ease-out)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.theme-tooltip{background:var(--app-color-text);color:var(--app-color-text-inverse);font-size:var(--app-font-size-xs);font-weight:var(--app-font-weight-medium);padding:var(--app-spacing-xs) var(--app-spacing-sm);border-radius:var(--app-radius-md);box-shadow:var(--app-shadow-md);z-index:var(--app-z-index-tooltip);max-width:200px;line-height:var(--app-line-height-tight)}.theme-scrollbar::-webkit-scrollbar{width:8px;height:8px}.theme-scrollbar::-webkit-scrollbar-track{background:var(--app-color-surface);border-radius:var(--app-radius-full)}.theme-scrollbar::-webkit-scrollbar-thumb{background:var(--app-color-border);border-radius:var(--app-radius-full);-webkit-transition:background var(--app-duration-fast) var(--app-easing-ease-out);transition:background var(--app-duration-fast) var(--app-easing-ease-out)}.theme-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--app-color-border-hover)}[data-high-contrast=true]{--app-color-border: currentColor;--app-shadow-sm: none;--app-shadow-md: none;--app-shadow-lg: none;--app-shadow-xl: none}[data-high-contrast=true] .theme-button,[data-high-contrast=true] .theme-input,[data-high-contrast=true] .theme-panel{border-width:2px}[data-reduced-motion=true] *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-theme=dark]{color-scheme:dark}.text-xs{font-size:var(--app-font-size-xs)}.text-sm{font-size:var(--app-font-size-sm)}.text-md{font-size:var(--app-font-size-md)}.text-lg{font-size:var(--app-font-size-lg)}.text-xl{font-size:var(--app-font-size-xl)}.text-xxl{font-size:var(--app-font-size-xxl)}.font-normal{font-weight:var(--app-font-weight-normal)}.font-medium{font-weight:var(--app-font-weight-medium)}.font-semibold{font-weight:var(--app-font-weight-semibold)}.font-bold{font-weight:var(--app-font-weight-bold)}.text-primary{color:var(--app-color-text)}.text-secondary{color:var(--app-color-text-secondary)}.text-muted{color:var(--app-color-text-muted)}.text-success{color:var(--app-color-success)}.text-warning{color:var(--app-color-warning)}.text-error{color:var(--app-color-error)}.text-info{color:var(--app-color-info)}.bg-surface{background-color:var(--app-color-surface)}.bg-elevated{background-color:var(--app-color-surface-elevated)}.bg-primary{background-color:var(--app-color-primary)}.bg-success{background-color:var(--app-color-success)}.bg-warning{background-color:var(--app-color-warning)}.bg-error{background-color:var(--app-color-error)}.bg-info{background-color:var(--app-color-info)}.border-default{border-color:var(--app-color-border)}.border-primary{border-color:var(--app-color-primary)}.border-success{border-color:var(--app-color-success)}.border-warning{border-color:var(--app-color-warning)}.border-error{border-color:var(--app-color-error)}.border-info{border-color:var(--app-color-info)}.rounded-none{border-radius:var(--app-radius-none)}.rounded-sm{border-radius:var(--app-radius-sm)}.rounded-md{border-radius:var(--app-radius-md)}.rounded-lg{border-radius:var(--app-radius-lg)}.rounded-full{border-radius:var(--app-radius-full)}.shadow-none{box-shadow:var(--app-shadow-none)}.shadow-sm{box-shadow:var(--app-shadow-sm)}.shadow-md{box-shadow:var(--app-shadow-md)}.shadow-lg{box-shadow:var(--app-shadow-lg)}.shadow-xl{box-shadow:var(--app-shadow-xl)}.p-xs{padding:var(--app-spacing-xs)}.p-sm{padding:var(--app-spacing-sm)}.p-md{padding:var(--app-spacing-md)}.p-lg{padding:var(--app-spacing-lg)}.p-xl{padding:var(--app-spacing-xl)}.p-xxl{padding:var(--app-spacing-xxl)}.m-xs{margin:var(--app-spacing-xs)}.m-sm{margin:var(--app-spacing-sm)}.m-md{margin:var(--app-spacing-md)}.m-lg{margin:var(--app-spacing-lg)}.m-xl{margin:var(--app-spacing-xl)}.m-xxl{margin:var(--app-spacing-xxl)}.mb-xs{margin-bottom:var(--app-spacing-xs)}.mb-sm{margin-bottom:var(--app-spacing-sm)}.mb-md{margin-bottom:var(--app-spacing-md)}.mb-lg{margin-bottom:var(--app-spacing-lg)}.mb-xl{margin-bottom:var(--app-spacing-xl)}.mb-xxl{margin-bottom:var(--app-spacing-xxl)}.flex{display:flex}.gap-xs{gap:var(--app-spacing-xs)}.gap-sm{gap:var(--app-spacing-sm)}.gap-md{gap:var(--app-spacing-md)}.gap-lg{gap:var(--app-spacing-lg)}.theme-button-group{display:flex;flex-wrap:wrap;gap:var(--app-spacing-xs)}.color-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--app-spacing-md);margin-top:var(--app-spacing-md)}.color-swatch{display:flex;flex-direction:column;gap:var(--app-spacing-xs)}.color-preview{width:100%;height:40px;border-radius:var(--app-radius-md);border:1px solid var(--app-color-border);cursor:pointer;transition:transform var(--app-duration-fast) var(--app-easing-ease-out)}.color-preview:hover{transform:scale(1.05)}.color-info{text-align:center}@media (max-width: 768px){.color-palette{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--app-spacing-sm)}.theme-button-group{gap:var(--app-spacing-xs)}.theme-button{font-size:var(--app-font-size-xs);padding:var(--app-spacing-xs) var(--app-spacing-sm)}}.label-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;overflow:hidden}.label-element{position:absolute;pointer-events:auto;-webkit-user-select:none;user-select:none;cursor:pointer;white-space:nowrap;transition:all .1s ease-out;z-index:100}.label-element:hover{transform:scale(1.05);z-index:200}.label-element.always-on-top{z-index:1000}.leader-line{position:absolute;pointer-events:none;z-index:50;overflow:visible}.label-property-editor{background:var(--app-color-surface, #ffffff);border:1px solid var(--app-color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 12px #00000026;width:100%;height:100%;display:flex;flex-direction:column;font-family:var(--app-font-family, "Segoe UI", system-ui, sans-serif)}.label-property-editor.empty{padding:20px;text-align:center;color:var(--app-color-text-muted, #666)}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--app-color-border, #e0e0e0);background:var(--app-color-surface-variant, #f8f9fa)}.editor-header h3{margin:0;font-size:16px;font-weight:600;color:var(--app-color-text, #333)}.selection-count{font-size:12px;color:var(--app-color-primary, #007acc);font-weight:400;margin-left:8px}.close-btn{background:none;border:none;font-size:18px;cursor:pointer;color:var(--app-color-text-muted, #666);width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.close-btn:hover{background-color:var(--app-color-hover, #f0f0f0);color:var(--app-color-text, #333)}.tab-navigation{display:flex;border-bottom:1px solid var(--app-color-border, #e0e0e0);background:var(--app-color-surface, #ffffff)}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:none;background:none;cursor:pointer;transition:all .2s ease;border-bottom:2px solid transparent;font-size:11px}.tab-btn:hover{background-color:var(--app-color-hover, #f0f0f0)}.tab-btn.active{background-color:var(--app-color-primary-light, #e7f3ff);border-bottom-color:var(--app-color-primary, #007acc);color:var(--app-color-primary, #007acc)}.tab-icon{font-size:16px}.tab-label{font-size:10px;font-weight:500}.tab-content{flex:1;overflow-y:auto;padding:16px}.property-group{margin-bottom:24px}.property-group:last-child{margin-bottom:0}.property-group h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--app-color-text, #333);border-bottom:1px solid var(--app-color-border-light, #f0f0f0);padding-bottom:4px}.property-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.property-row:last-child{margin-bottom:0}.property-row label{font-size:12px;color:var(--app-color-text, #333);min-width:100px;display:flex;align-items:center;gap:6px}.property-row input,.property-row select{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--app-color-border, #e0e0e0);border-radius:4px;font-size:12px;background:var(--app-color-surface, #ffffff);color:var(--app-color-text, #333)}.property-row input:focus,.property-row select:focus{outline:none;border-color:var(--app-color-primary, #007acc);box-shadow:0 0 0 2px var(--app-color-primary-light, #e7f3ff)}.property-row input[type=range]{flex:1;margin-right:8px}.property-row input[type=color]{width:40px;height:32px;padding:2px;border-radius:4px;cursor:pointer}.property-row input[type=checkbox]{width:auto;margin:0}.property-row span{font-size:11px;color:var(--app-color-text-muted, #666);min-width:32px;text-align:right}.anchor-grid{display:grid;grid-template-rows:repeat(3,1fr);gap:4px;max-width:120px}.anchor-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.anchor-btn{width:32px;height:32px;border:1px solid var(--app-color-border, #e0e0e0);background:var(--app-color-surface, #ffffff);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.anchor-btn:hover{border-color:var(--app-color-primary, #007acc)}.anchor-btn.active{background:var(--app-color-primary, #007acc);border-color:var(--app-color-primary, #007acc)}.anchor-dot{width:6px;height:6px;border-radius:50%;background:var(--app-color-text-muted, #666)}.anchor-btn.active .anchor-dot{background:#fff}.template-list{display:flex;flex-direction:column;gap:8px}.template-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--app-color-border, #e0e0e0);border-radius:6px;background:var(--app-color-surface-variant, #f8f9fa)}.template-info{flex:1}.template-info strong{display:block;font-size:13px;color:var(--app-color-text, #333);margin-bottom:2px}.template-description{font-size:11px;color:var(--app-color-text-muted, #666)}.apply-btn,.save-template-btn{padding:6px 12px;border:1px solid var(--app-color-primary, #007acc);background:var(--app-color-primary, #007acc);color:#fff;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease}.apply-btn:hover,.save-template-btn:hover{background:var(--app-color-primary-dark, #0066aa);border-color:var(--app-color-primary-dark, #0066aa)}.save-template-btn:disabled{opacity:.5;cursor:not-allowed}.save-template-btn:disabled:hover{background:var(--app-color-primary, #007acc);border-color:var(--app-color-primary, #007acc)}.style-panel,.position-panel,.leader-panel,.behavior-panel,.templates-panel{height:100%}.tab-content::-webkit-scrollbar{width:6px}.tab-content::-webkit-scrollbar-track{background:var(--app-color-surface-variant, #f8f9fa)}.tab-content::-webkit-scrollbar-thumb{background:var(--app-color-border, #e0e0e0);border-radius:3px}.tab-content::-webkit-scrollbar-thumb:hover{background:var(--app-color-text-muted, #666)}.label-debug-info{position:absolute;top:10px;left:10px;background:#000000b3;color:#fff;padding:8px;border-radius:4px;font-size:11px;font-family:monospace;pointer-events:auto;z-index:2000}.label-debug-info div{margin-bottom:2px}.label-debug-info div:last-child{margin-bottom:0}@keyframes labelFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes labelFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.label-element.fade-in{animation:labelFadeIn .3s ease-out}.label-element.fade-out{animation:labelFadeOut .2s ease-in}@media (max-width: 768px){.label-property-editor{width:280px;max-height:500px}.tab-btn{padding:10px 6px}.tab-icon{font-size:14px}.tab-label{font-size:9px}.anchor-btn{width:28px;height:28px}.anchor-dot{width:5px;height:5px}}
