@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-700:oklch(50.8% .118 165.612);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-semibold:600;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0\.5{top:calc(var(--spacing)*.5)}.top-1\/2{top:50%}.left-0\.5{left:calc(var(--spacing)*.5)}.left-2\.5{left:calc(var(--spacing)*2.5)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:calc(var(--spacing)*0)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-500{border-color:var(--color-indigo-500)}.border-red-100{border-color:var(--color-red-100)}.border-t-indigo-600{border-top-color:var(--color-indigo-600)}.bg-\[\#F8F9FA\]{background-color:#f8f9fa}.bg-amber-100{background-color:var(--color-amber-100)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-white{background-color:var(--color-white)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.pb-0\.5{padding-bottom:calc(var(--spacing)*.5)}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-700{color:var(--color-indigo-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-slate-500{color:var(--color-slate-500)}.text-white{color:var(--color-white)}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:border-indigo-400:is(:where(.group):hover *){border-color:var(--color-indigo-400)}.hover\:bg-amber-50:hover{background-color:var(--color-amber-50)}.hover\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-200:hover{background-color:var(--color-emerald-200)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-indigo-200:hover{background-color:var(--color-indigo-200)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-200:hover{background-color:var(--color-red-200)}.hover\:opacity-90:hover{opacity:.9}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-indigo-500:focus-visible{--tw-ring-color:var(--color-indigo-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}}:root{--bg-primary:#f8f9fa;--bg-secondary:#fff;--bg-tertiary:#f1f3f4;--studio-bg:#fdfdfe;--studio-gradient-start:#fbfcff;--studio-gradient-end:#f7f9fc;--grid-color:#0f172a0c;--accent:#6366f1;--accent-hover:#4f46e5;--accent-light:#e0e7ff;--accent-subtle:#eef2ff;--text-primary:#1f2937;--text-secondary:#6b7280;--text-muted:#9ca3af;--border:#e5e7eb;--border-hover:#d1d5db;--success:#10b981;--success-light:#d1fae5;--warning:#f59e0b;--warning-light:#fef3c7;--danger:#ef4444;--danger-light:#fee2e2;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--ui-font-scale:1;--plot-card-height:540px;--plot-options-width:352px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:calc(14px*var(--ui-font-scale));background-color:var(--studio-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.45}#root{flex-direction:column;min-height:100vh;display:flex}.app-shell{background:linear-gradient(to bottom,var(--studio-gradient-start),var(--studio-gradient-end));position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hover);background-clip:padding-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted);background-clip:padding-box}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ppms-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:.2s ease-out fadeIn}.animate-slide-in{animation:.2s ease-out slideIn}.animate-slide-in-right{animation:.15s ease-out slideInRight}.animate-pulse-subtle{animation:2s ease-in-out infinite pulse-subtle}.toggle-switch{cursor:pointer;align-items:center;display:inline-flex;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background:var(--border);border-radius:10px;width:36px;height:20px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-switch:hover .toggle-slider{background:var(--border-hover)}.toggle-switch input:checked:hover+.toggle-slider{background:var(--accent-hover)}.custom-checkbox{cursor:pointer;align-items:center;display:inline-flex;position:relative}.custom-checkbox input{opacity:0;width:0;height:0;position:absolute}.checkbox-box{border:2px solid var(--border-hover);background:#fff;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.checkbox-box svg{color:#fff;opacity:0;width:12px;height:12px;transition:all .15s;transform:scale(.5)}.custom-checkbox input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent)}.custom-checkbox input:checked+.checkbox-box svg{opacity:1;transform:scale(1)}.custom-checkbox:hover .checkbox-box{border-color:var(--accent)}.btn{cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:600;display:block}.form-select,.form-input{border:1px solid var(--border);width:100%;color:var(--text-primary);background:#fff;border-radius:6px;padding:9px 12px;font-size:13.5px;transition:all .15s}.form-select:hover,.form-input:hover{border-color:var(--border-hover)}.form-select:focus,.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.input{border:1px solid var(--border);width:100%;color:var(--text-primary);background:#fff;border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:all .15s}.input:hover{border-color:var(--border-hover)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.input-sm{padding:.375rem .5rem;font-size:.75rem}.card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:.75rem;transition:all .2s}.card:hover{box-shadow:var(--shadow-md)}.card-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle),var(--shadow-md)}.panel{background:var(--bg-tertiary);border-radius:.5rem;padding:.75rem}.icon-rail{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:220;background:#ffffffeb;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;width:64px;height:100%;padding:10px 6px 12px;display:flex;position:relative;overflow:visible;box-shadow:2px 0 12px #0f172a0f}.icon-rail-main,.icon-rail-bottom{flex-direction:column;align-items:center;width:100%;display:flex}.icon-rail-main{gap:4px;padding-top:6px}.icon-rail-bottom{place-items:center;gap:6px;padding-right:0;display:grid}.icon-rail-btn{cursor:pointer;width:50px;min-height:50px;color:var(--text-secondary);background:0 0;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;transition:all .15s;display:flex;position:relative}.icon-rail-btn-section-gap{margin-top:8px}.icon-rail-btn:hover{color:var(--text-primary);background:#f8fafc}.icon-rail-btn.active{color:var(--accent);background:#eef2ff}.icon-rail-btn.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-7px}.icon-rail-btn-label{letter-spacing:.03em;font-size:9px;font-weight:600;line-height:1}.icon-rail-btn-count{color:#334155;font-variant-numeric:tabular-nums;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 5px;font-size:9px;font-weight:700;line-height:1;display:grid;position:absolute;top:4px;right:0;transform:translate(0)}.icon-rail-stats{grid-auto-rows:max-content;place-items:center;gap:8px;width:max-content;min-width:0;margin:0;display:grid;transform:none}.icon-rail-stat{text-align:center;place-items:center;gap:3px;width:max-content;display:grid}.icon-rail-badge{background:var(--bg-tertiary);width:30px;height:30px;color:var(--text-secondary);font-variant-numeric:tabular-nums;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;padding:0;font-size:11px;font-weight:700;line-height:1;display:flex}.icon-rail-badge-value{text-align:center;justify-content:center;align-items:center;width:100%;line-height:1;display:inline-flex;transform:none}.icon-rail-stat-label{color:#94a3b8;letter-spacing:.01em;text-align:center;width:100%;font-size:9px;font-weight:600;line-height:1.05;display:block}.btn-add-action{color:#fff!important;background:linear-gradient(135deg,#5d69f6,#3b82f6)!important;border:1px solid #0000!important;border-radius:999px!important;box-shadow:0 7px 18px #3b82f642!important}.btn-add-action:hover{transform:translateY(-1px);color:#fff!important;background:linear-gradient(135deg,#4f5fe8,#2563eb)!important;border-color:#0000!important;box-shadow:0 11px 24px #3b82f657!important}.btn-add-action:disabled{opacity:.6;cursor:not-allowed;transform:none}.icon-btn-add{color:#3f55cb;background:#eaf1ff;border:1px solid #c8d7ff}.icon-btn-add:hover{color:#2d4fc7;background:#dfeaff;border-color:#afc6ff}.drawer-overlay{z-index:40;background:#0003;animation:.15s fadeIn;position:fixed;inset:0}.drawer{z-index:50;background:linear-gradient(#fff,#fbfcff);flex-direction:column;width:388px;animation:.2s ease-out slideInLeft;display:flex;position:fixed;top:56px;bottom:0;left:64px;box-shadow:6px 0 28px #0f172a24}.drawer-wide{width:min(680px,100vw - 64px)}.drawer-files-wide{width:min(700px,100vw - 560px)}.drawer-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffffd9;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-body{flex:1;padding:20px;overflow-y:auto}.drawer-body-files{flex-direction:column;min-height:0;padding:14px 18px 16px;display:flex;overflow:visible}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.upload-zone{text-align:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;margin-bottom:20px;padding:32px;transition:all .2s}.upload-zone:hover{cursor:pointer;background:#f5f7ff;border-color:#6366f1}.upload-zone-active{background:linear-gradient(135deg,#f5f7ff,#eef2ff);border-color:#6366f1;transform:scale(1.02)}.upload-icon{color:#6b7280;background:#e5e7eb;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;transition:all .2s;display:flex}.upload-zone:hover .upload-icon,.upload-zone-active .upload-icon{color:#6366f1;background:#eef2ff}.file-item{cursor:pointer;background:#fff;border:1px solid #f3f4f6;border-radius:8px;align-items:center;gap:12px;margin-bottom:6px;padding:12px;transition:all .15s;display:flex}.file-item:hover{background:#f9fafb;border-color:#e5e7eb}.file-icon{color:#3b82f6;background:#dbeafe;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.file-info{flex:1;min-width:0}.file-name{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.file-meta{color:#9ca3af;margin-top:2px;font-size:11px}.expander{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:12px;overflow:hidden}.expander-header{cursor:pointer;color:#374151;background:#fff;border:none;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.expander-header:hover{background:#f9fafb}.expander-content{background:#fafbfc;border-top:1px solid #f3f4f6;padding:16px;animation:.2s ease-out slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.badge{border-radius:12px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-primary{color:#6366f1;background:#eef2ff}.badge-gray{color:#6b7280;background:#f3f4f6}.badge-success{color:#059669;background:#d1fae5}.icon-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;transition:all .15s;display:flex}.icon-btn:hover{color:#6366f1;background:#f3f4f6}.icon-btn-danger:hover{color:#ef4444;background:#fee2e2}.plot-card{background:linear-gradient(to bottom,rgba(var(--plot-card-rgb,250,251,252),.96),rgba(var(--plot-card-rgb,250,251,252),.9));height:clamp(420px,var(--plot-card-height),760px);border:1px solid #e5e7eb;border-radius:13px;flex-direction:column;transition:height .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 2px 6px #0f172a0f}.plot-card.active{border-color:#c7d2fe;box-shadow:0 0 0 1px #c7d2fe,0 8px 24px #6366f11f}.plot-card-minimized{height:auto}.plot-card-header{background:linear-gradient(to bottom,#ffffffc7,#ffffffa8),linear-gradient(to bottom,rgba(var(--plot-card-rgb-strong,246,248,251),.9),rgba(var(--plot-card-rgb,250,251,252),.86));border-bottom:1px solid #f3f4f6;flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 16px;display:grid}.plot-title-wrap{flex-direction:column;justify-self:start;align-items:flex-start;gap:6px;min-width:0;display:flex}.plot-title{color:#111827;cursor:text;text-overflow:ellipsis;white-space:nowrap;border:1px solid #0000;border-radius:4px;max-width:220px;padding:6px 9px;font-size:13.5px;font-weight:600;transition:border-color .15s,background .15s;overflow:hidden}.plot-title:hover{background:var(--bg-tertiary);border-color:var(--border)}.plot-title-input{color:#111827;border:1px solid var(--accent);background:#fff;border-radius:4px;outline:none;width:200px;max-width:220px;padding:6px 9px;font-size:13.5px;font-weight:600;box-shadow:0 0 0 3px #6366f11a}.plot-group-select{color:#475569;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:1px solid #d1d5db;border-radius:7px;min-width:118px;max-width:180px;height:28px;padding:0 26px 0 9px;font-size:11.5px;font-weight:600;transition:border-color .15s,box-shadow .15s}.plot-group-select:hover{border-color:#b8c2d1}.plot-group-select:focus{border-color:#818cf8;outline:none;box-shadow:0 0 0 3px #e0e7ff}.mode-selector{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;justify-self:center;gap:4px;padding:4px;display:flex}.mode-btn{cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 11px;transition:all .15s;display:flex}.mode-btn:hover{background:#fff9}.mode-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a}.mode-btn-sub{color:var(--text-muted);background:var(--bg-tertiary);letter-spacing:.04em;border-radius:3px;padding:1px 4px;font-size:10px;font-weight:700}.mode-btn.active .mode-btn-sub{color:#fff;background:var(--accent)}.mode-btn-label{color:var(--text-secondary);font-size:11.5px;font-weight:500}.mode-btn.active .mode-btn-label{color:var(--text-primary);font-weight:600}.plot-actions{justify-self:end;gap:6px;display:flex}.plot-card-body{flex:1;min-height:0;display:flex;overflow:hidden}.plot-content{background:linear-gradient(to bottom,#ffffffdb,#ffffffc2),linear-gradient(to bottom,rgba(var(--plot-card-rgb-strong,246,248,251),.92),rgba(var(--plot-card-rgb,250,251,252),.86));color:#9ca3af;flex:1;justify-content:center;align-items:center;min-width:0;padding:0;font-size:13px;display:flex}.plot-options{width:clamp(300px,var(--plot-options-width),460px);flex-basis:clamp(300px,var(--plot-options-width),460px);background:linear-gradient(to bottom,#ffffffdb,#ffffffc2),linear-gradient(to bottom,rgba(var(--plot-card-rgb-strong,246,248,251),.92),rgba(var(--plot-card-rgb,250,251,252),.86));border-top:none;border-left:1px solid #f3f4f6;flex-direction:column;flex-shrink:0;min-height:0;padding:16px 16px 14px;display:flex;overflow:hidden}.options-content{flex-direction:column;flex:1;gap:14px;min-height:0;padding-right:6px;display:flex;overflow-y:auto}.options-content-spacious{padding-bottom:10px;padding-right:8px}.plot-options .form-group{gap:8px}.plot-options .form-label{color:#4b5563;text-transform:none;letter-spacing:.01em;font-size:11px;font-weight:600}.plot-options .form-input,.plot-options .form-select{border-radius:8px;min-height:34px;font-size:12.5px}.plot-options .panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px}.plot-options .toggle-row{min-height:32px;font-size:12.5px}.options-overview{background:linear-gradient(#fff,#f9fbff)}.options-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.options-overview-item{background:#fff;border:1px solid #e7ecf4;border-radius:8px;padding:7px 8px}.options-overview-label{text-transform:uppercase;letter-spacing:.03em;color:#6b7280;font-size:10px;display:block}.options-overview-value{color:#1f2937;margin-top:3px;font-size:13px;font-weight:700;display:block}.curve-tools-panel{flex-direction:column;gap:10px;display:flex}.curve-tools-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.curve-tools-title{text-transform:uppercase;letter-spacing:.05em;color:#475569;font-size:11px;font-weight:700}.curve-search-wrap{position:relative}.curve-search-icon{color:#9ca3af;pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.curve-search-input{padding-left:31px}.curve-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.curve-palette-row{flex-wrap:wrap;gap:6px;display:flex}.curve-bulk-smoothing{flex-direction:column;gap:6px;display:flex}.curve-bulk-smoothing-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.tabs{border-bottom:2px solid #f3f4f6;gap:4px;margin-bottom:16px;display:flex}.tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-2px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.tab:hover{color:#111827;background:#f9fafb}.tab.active{color:#6366f1;border-bottom-color:#6366f1}.header{border-bottom:1px solid var(--border);z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.header-wordmark{letter-spacing:-.02em;-webkit-text-fill-color:transparent;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#4f46e5,#6366f1,#818cf8);-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:800;line-height:1}.header-sep{background:var(--border);width:1px;height:20px}.header-project-btn{color:#4c1d95;cursor:pointer;background:linear-gradient(135deg,#eef2ffeb,#e0e7fff0);border:1px solid #c7d2fe;border-radius:10px;flex:0 auto;justify-content:flex-start;align-items:center;gap:8px;min-width:0;max-width:min(320px,30vw);padding:8px 14px;font-size:13px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 1px 3px #6366f129}.header-project-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-project-btn:hover{border-color:#a5b4fc;transform:translateY(-1px);box-shadow:0 4px 12px #6366f13d}.header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.session-presence-chip{color:#1d4ed8;letter-spacing:.01em;-webkit-user-select:none;user-select:none;cursor:pointer;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-width:54px;height:34px;padding:0 9px;font-size:12px;font-weight:700;transition:border-color .2s,box-shadow .2s,transform .2s;display:inline-flex;box-shadow:0 2px 8px #3b82f62e}.session-presence-wrapper{position:relative}.session-presence-chip:hover,.session-presence-chip.is-open{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 8px 20px #2563eb38}.session-presence-chip span{text-align:center;min-width:12px}.session-presence-chip-inactive{color:#9a3412;background:#fff7ed;border:1px solid #fdba74;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700}.session-presence-panel{z-index:2400;background:radial-gradient(circle at 0 0,#bfdbfe61,#eff6fffa 55%),linear-gradient(145deg,#fff,#f8fafc);border:1px solid #dbeafe;border-radius:16px;flex-direction:column;gap:12px;width:min(520px,100vw - 26px);height:min(78vh,740px);max-height:min(78vh,740px);padding:14px;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 20px 44px #0f172a38}.session-presence-panel-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.session-presence-panel-title-wrap{flex-direction:column;gap:4px;display:flex}.session-presence-panel-title{color:#0f172a;letter-spacing:.01em;margin:0;font-size:16px;font-weight:700}.session-presence-panel-subtitle{color:#475569;gap:10px;margin:0;font-size:11.5px;font-weight:600;display:inline-flex}.session-presence-panel-close{color:#475569;cursor:pointer;background:#ffffffe6;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.session-presence-panel-close:hover{color:#1e3a8a;border-color:#bfdbfe}.session-presence-identity{flex-direction:column;gap:6px;display:flex}.session-presence-label{color:#334155;letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:700}.session-presence-identity-row{align-items:center;gap:8px;display:flex}.session-presence-input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;min-width:0;height:36px;padding:0 11px;font-size:13px;font-weight:600}.session-presence-input:focus{border-color:#60a5fa;outline:none;box-shadow:0 0 0 2px #3b82f629}.session-presence-save-btn{color:#3730a3;cursor:pointer;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;border-radius:10px;height:36px;padding:0 12px;font-size:12px;font-weight:700}.session-presence-save-btn:hover{border-color:#a5b4fc}.session-presence-list{flex:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;max-height:min(30vh,220px);display:grid}.session-presence-section{background:#ffffffe6;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:8px;min-height:90px;max-height:180px;padding:10px;display:flex;overflow:auto}.session-presence-section-title{color:#0f172a;letter-spacing:.01em;align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.session-status-dot{border-radius:999px;flex-shrink:0;width:11px;height:11px}.session-status-dot-online{background:radial-gradient(circle at 30% 30%,#bbf7d0,#22c55e);animation:1.8s ease-in-out infinite presence-breath-online;box-shadow:0 0 #22c55e8c}.session-status-dot-inactive{background:radial-gradient(circle at 30% 30%,#fed7aa,#f97316);animation:2.2s ease-in-out infinite presence-breath-inactive;box-shadow:0 0 #f9731673}.session-presence-empty{color:#64748b;margin-top:2px;font-size:12px}.session-presence-user-row{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:4px;padding:7px 8px;display:flex}.session-presence-user-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.session-presence-user-name{color:#0f172a;font-size:12px;font-weight:700;line-height:1.25}.session-presence-user-role{color:#334155;letter-spacing:.03em;text-transform:uppercase;background:#f1f5f9;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.session-presence-user-meta{color:#64748b;font-size:11px;font-weight:600}.session-chat{background:#ffffffed;border:1px solid #dbeafe;border-radius:12px;flex:auto;grid-template-rows:auto minmax(0,1fr) auto;gap:9px;min-height:0;padding:10px;display:grid;overflow:hidden}.session-chat-header{color:#1e3a8a;letter-spacing:.02em;align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.session-chat-messages{flex-direction:column;gap:7px;min-height:0;max-height:none;padding-right:3px;display:flex;overflow:auto}.session-chat-empty{color:#64748b;padding:8px 0;font-size:12px}.session-chat-message{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:7px 8px}.session-chat-message.is-me{background:#eff6ff;border-color:#bfdbfe}.session-chat-message-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.session-chat-author{color:#0f172a;font-size:12px;font-weight:700}.session-chat-time{color:#64748b;font-size:10px;font-weight:600}.session-chat-text{color:#1e293b;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:12px;line-height:1.38}.session-chat-compose{background:linear-gradient(#ffffffc2,#fffffff5);align-items:center;gap:8px;padding-top:6px;display:flex}.session-chat-input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;min-width:0;height:36px;padding:0 11px;font-size:13px;font-weight:500}.session-chat-input:focus{border-color:#60a5fa;outline:none;box-shadow:0 0 0 2px #3b82f629}.session-chat-send-btn{color:#1e3a8a;cursor:pointer;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #93c5fd;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.session-chat-send-btn:hover{border-color:#60a5fa}.session-chat-send-btn:disabled{opacity:.52;cursor:not-allowed}@keyframes presence-breath-online{0%,to{transform:scale(1);box-shadow:0 0 #22c55e73}50%{transform:scale(1.18);box-shadow:0 0 0 8px #22c55e0a}}@keyframes presence-breath-inactive{0%,to{transform:scale(1);box-shadow:0 0 #f973166b}50%{transform:scale(1.12);box-shadow:0 0 0 7px #f973160d}}.header-action-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:600;transition:all .2s;display:flex}.header-action-btn:hover{transform:translateY(-1px)}.header-action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.header-action-btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 6px 18px #6366f152}.header-action-btn-primary:hover{box-shadow:0 10px 24px #6366f166}.header-action-btn-plot{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 8px 22px #6366f161}.header-action-btn-plot:hover{box-shadow:0 12px 28px #6366f175}.header-action-btn-secondary{color:#4338ca;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;box-shadow:0 2px 6px #6366f126}.header-action-btn-secondary:hover{border-color:#a5b4fc;box-shadow:0 6px 14px #6366f133}.read-only-banner{color:#3730a3;letter-spacing:.01em;background:linear-gradient(#e0e7ff80,#eef2ff5c);border-bottom:1px solid #a5b4fc80;flex-shrink:0;justify-content:center;align-items:center;gap:10px;width:100%;min-height:32px;padding:6px 24px;font-size:12px;font-weight:600;display:flex}.session-share-banner{z-index:45;pointer-events:none;position:absolute;top:56px;left:0;right:0}.read-only-banner.is-editor{color:#0c4a6e;background:linear-gradient(#dbeafe80,#eff6ff59);border-bottom-color:#7dd3fc73}.read-only-banner.is-owner{color:#166534;background:linear-gradient(#dcfce775,#f0fdf457);border-bottom-color:#86efac80}.read-only-banner-chip{color:#4338ca;text-transform:uppercase;letter-spacing:.04em;background:#ffffffd6;border:1px solid #818cf885;border-radius:999px;justify-content:center;align-items:center;height:20px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.read-only-banner.is-editor .read-only-banner-chip{color:#075985;border-color:#38bdf873}.read-only-banner.is-owner .read-only-banner-chip{color:#166534;border-color:#4ade8073}.read-only-banner-text{opacity:.92;text-align:center}.canvas{background:linear-gradient(to bottom,#ffffff52,#f8fafc6b),linear-gradient(var(--grid-color)1px,transparent 1px),linear-gradient(90deg,var(--grid-color)1px,transparent 1px);background-position:0 0,0 0,0 0;background-size:100% 100%,20px 20px,20px 20px;flex:1;position:relative;overflow-y:auto}.canvas-content{flex-direction:column;gap:22px;min-height:100%;padding:30px 30px 40px;display:flex}.plot-groups-toolbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#fffffff5,#fcfdffeb);border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.plot-groups-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plot-group-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #d9e2f0;border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:12px;font-weight:600;transition:all .14s;display:inline-flex}.plot-group-chip:hover{background:#f8faff;border-color:#bacae6}.plot-group-chip.active{color:#312e81;background:#eef2ff;border-color:#818cf8}.plot-group-chip-count{color:#475569;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-flex}.plot-groups-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.plot-groups-visibility{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plot-groups-visibility-stat{color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:5px;height:30px;padding:0 11px;font-size:11px;font-weight:700;display:inline-flex}.plot-groups-visibility-value{color:#1e3a8a}.plot-groups-visibility-label{color:#64748b;font-weight:600}.plot-groups-visibility-sep{color:#94a3b8}.plot-groups-visibility-total{color:#475569}.plot-navigator{background:linear-gradient(#fff,#f8fbff);border:1px solid #e2e8f0;border-radius:11px;flex-direction:column;gap:8px;padding:9px;display:flex}.plot-navigator-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.plot-navigator-title{color:#1f2937;font-size:12px;font-weight:700}.plot-navigator-meta{color:#64748b;font-size:11px}.plot-navigator-list{flex-direction:column;gap:6px;max-height:184px;padding-right:2px;display:flex;overflow-y:auto}.plot-navigator-empty{color:#64748b;text-align:center;padding:10px 8px;font-size:12px}.plot-nav-item{background:#fff;border:1px solid #e5e7eb;border-radius:9px;align-items:center;gap:6px;padding:4px;transition:border-color .14s,background .14s,opacity .14s;display:flex}.plot-nav-item.is-active{background:#eef2ff;border-color:#818cf8}.plot-nav-item.is-hidden{opacity:.68;background:#f8fafc}.plot-nav-focus{cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:3px 5px;display:flex}.plot-nav-swatch{border:1px solid #94a3b880;border-radius:999px;flex-shrink:0;width:11px;height:11px}.plot-nav-title{text-align:left;color:#334155;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.plot-nav-group{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:600}.plot-nav-focus-btn,.plot-nav-visibility-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .14s;display:inline-flex}.plot-nav-focus-btn:hover,.plot-nav-visibility-btn:hover{color:#1f2937;background:#f8fafc;border-color:#94a3b8}.plot-nav-visibility-btn.is-off{color:#64748b;background:#f8fafc}.plot-groups-search-wrap{width:min(250px,100%);position:relative}.plot-groups-search{padding-left:33px;font-size:12.5px}.plot-groups-create,.plot-groups-manage{align-items:center;gap:8px;display:inline-flex}.plot-accent-btn{color:#4c1d95;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;box-shadow:0 2px 6px #6366f129}.plot-accent-btn:hover{border-color:#a5b4fc;transform:translateY(-1px);box-shadow:0 6px 14px #6366f13d}.plot-accent-btn-solid{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:1px solid #0000;box-shadow:0 6px 16px #6366f14d}.plot-accent-btn-solid:hover{box-shadow:0 10px 22px #6366f161}.plot-group-input{width:170px;min-width:140px;font-size:12.5px}.plot-group-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:12px;padding:12px;display:flex}.plot-group-section-head{align-items:center;gap:9px;display:flex}.plot-group-toggle{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .14s;display:inline-flex}.plot-group-toggle:hover{color:#334155;background:#f1f5f9}.plot-group-section-title{color:#1f2937;font-size:14px;font-weight:700}.plot-group-section-count{color:#475569;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-right:auto;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.plot-group-grid{grid-template-columns:repeat(auto-fill,minmax(760px,1fr));gap:18px;display:grid}.plot-card-anchor{min-width:0}.plot-groups-empty{text-align:center;color:#6b7280;background:#fff;border:1px dashed #d1d5db;border-radius:12px;padding:28px 16px;font-size:13px}.empty-state{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.empty-state-content{text-align:center}.empty-icon{color:#6366f1;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 16px;display:flex;box-shadow:0 4px 12px #6366f133}.empty-title{color:#111827;margin-bottom:8px;font-size:18px;font-weight:600}.empty-text{color:#6b7280;max-width:320px;margin-bottom:24px;font-size:13px}.empty-hint{color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:inline-flex;box-shadow:0 2px 4px #0000000d}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 2px 4px #6366f14d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 8px #6366f166}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{color:#6b7280;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d}.btn-secondary:hover{background:#f9fafb;border-color:#d1d5db}.project-buttons{flex-wrap:wrap;gap:8px;display:flex}.project-buttons .btn{flex:1;justify-content:center;min-width:0}.dialog-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;animation:.2s slideUp;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dialog-header{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.dialog-title{color:#111827;margin:0;font-size:18px;font-weight:600}.dialog-body{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.dialog-footer{background:#f9fafb;border-top:1px solid #f3f4f6;border-radius:0 0 12px 12px;justify-content:flex-end;gap:14px;padding:16px 24px;display:flex}.project-list{flex-direction:column;gap:8px;display:flex}.project-list-compact{max-height:220px;padding-right:4px;overflow-y:auto}.project-item{cursor:pointer;background:#f9fafb;border:1px solid #f3f4f6;border-radius:8px;align-items:center;gap:12px;padding:13px 16px;transition:all .15s;display:flex}.project-item:hover{background:#f3f4f6;border-color:#e5e7eb}.project-item-name{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.dialog-overwrite-block{padding-top:2px}.dialog-overwrite-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:600}.session-terminated-overlay{z-index:220;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:linear-gradient(#f8fafc75,#f1f5f985);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.session-terminated-card{background:linear-gradient(160deg,#fffffff7,#fff1f2e6);border:1px solid #fb71855c;border-radius:18px;width:min(560px,94vw);padding:28px 30px;box-shadow:0 20px 48px #be185d26,0 4px 16px #0f172a14}.session-terminated-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#be123c;margin:0;font-size:11px;font-weight:700}.session-terminated-title{letter-spacing:-.02em;color:#0f172a;margin:8px 0 0;font-size:24px;font-weight:700;line-height:1.25}.session-terminated-text{color:#475569;margin:10px 0 0;font-size:14px;line-height:1.6}.session-terminated-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.session-terminated-btn{letter-spacing:.01em;cursor:pointer;border:1px solid #0000;border-radius:10px;height:36px;padding:0 14px;font-size:12px;font-weight:700;transition:all .18s}.session-terminated-btn-primary{color:#fff;background:linear-gradient(135deg,#4f46e5,#6366f1);box-shadow:0 8px 20px #4f46e547}.session-terminated-btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px #4f46e557}.session-terminated-btn-secondary{color:#334155;background:#f8fafc;border-color:#cbd5e1}.session-terminated-btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8;transform:translateY(-1px)}.share-links-list{flex-direction:column;gap:8px;max-height:200px;padding-right:4px;display:flex;overflow-y:auto}.share-link-item{background:#f8faff;border:1px solid #dbeafe;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.share-link-meta{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.share-link-pill{color:#4338ca;text-transform:uppercase;letter-spacing:.04em;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:999px;align-items:center;height:20px;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.share-link-token{color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px}.share-link-expiry{color:#64748b;font-size:11px}.share-links-empty{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:10px 12px;font-size:12px}[data-tooltip]{position:relative}[data-tooltip]:before{content:"";opacity:0;visibility:hidden;pointer-events:none;z-index:65;background:linear-gradient(135deg,#1e293bf5,#0f172af5);width:8px;height:8px;transition:all .18s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(2px)rotate(45deg)}[data-tooltip]:after{content:attr(data-tooltip);letter-spacing:.01em;white-space:nowrap;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;z-index:66;background:linear-gradient(135deg,#1e293bf5,#0f172af5);border:1px solid #94a3b859;border-radius:.55rem;padding:.42rem .72rem;font-size:.72rem;font-weight:600;transition:all .18s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-2px);box-shadow:0 10px 26px #0f172a59}[data-tooltip]:hover:before,[data-tooltip]:focus-visible:before{opacity:1;visibility:visible;transform:translate(-50%)translateY(-3px)rotate(45deg)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%)translateY(-10px)}.header .header-project-btn[data-tooltip]:before{top:100%;bottom:auto;left:16px;transform:translateY(2px)rotate(45deg)}.header .header-project-btn[data-tooltip]:after{top:100%;bottom:auto;left:0;transform:translateY(6px)}.header .header-project-btn[data-tooltip]:hover:before,.header .header-project-btn[data-tooltip]:focus-visible:before{transform:translateY(-2px)rotate(45deg)}.header .header-project-btn[data-tooltip]:hover:after,.header .header-project-btn[data-tooltip]:focus-visible:after{transform:translateY(10px)}.header .header-actions [data-tooltip]:before{inset:100% 16px auto auto;transform:translateY(2px)rotate(45deg)}.header .header-actions [data-tooltip]:after{inset:100% 0 auto auto;transform:translateY(6px)}.header .header-actions [data-tooltip]:hover:before,.header .header-actions [data-tooltip]:focus-visible:before{transform:translateY(-2px)rotate(45deg)}.header .header-actions [data-tooltip]:hover:after,.header .header-actions [data-tooltip]:focus-visible:after{transform:translateY(10px)}.icon-rail [data-tooltip]:before{z-index:260;top:50%;bottom:auto;left:100%;transform:translate(-2px,-50%)rotate(45deg)}.icon-rail [data-tooltip]:after{z-index:261;white-space:nowrap;max-width:min(220px,45vw);top:50%;bottom:auto;left:100%;transform:translate(8px,-50%)}.icon-rail [data-tooltip]:hover:before,.icon-rail [data-tooltip]:focus-visible:before{transform:translate(2px,-50%)rotate(45deg)}.icon-rail [data-tooltip]:hover:after,.icon-rail [data-tooltip]:focus-visible:after{transform:translate(12px,-50%)}@media(hover:none){[data-tooltip]:before,[data-tooltip]:after{display:none}}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.glass{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffc}.gradient-border{position:relative}.gradient-border:before{content:"";border-radius:inherit;background:linear-gradient(135deg,var(--accent),#ec4899);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.color-picker-input{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;width:32px;height:28px;padding:2px;transition:all .15s}.color-picker-input:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.color-picker-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.color-picker-input::-webkit-color-swatch-wrapper{padding:1px}.color-picker-input::-webkit-color-swatch{border:none;border-radius:3px}.color-picker-input::-moz-color-swatch{border:none;border-radius:3px}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary)25%,var(--border)50%,var(--bg-tertiary)75%);background-size:200% 100%;animation:1.5s infinite shimmer}.upload-zone-compact{border:1.5px dashed var(--border-hover);background:var(--bg-primary);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:11px 13px;transition:all .15s;display:flex}.upload-zone-compact:hover{border-color:var(--accent);background:var(--accent-subtle)}.upload-zone-compact.active{border-color:var(--accent);background:var(--accent-light)}.upload-picker{flex-shrink:0;position:relative}.upload-picker-trigger{min-width:96px}.upload-picker-menu{z-index:120;background:#fff;border:1px solid #e5e7eb;border-radius:10px;min-width:150px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #0f172a2e}.upload-picker-item{text-align:left;color:#334155;cursor:pointer;background:0 0;border:none;width:100%;padding:8px 10px;font-size:12px}.upload-picker-item:hover{background:#f8fafc}.files-assign-bar{background:#fafbff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.files-assign-top{justify-content:space-between;align-items:center;display:flex}.files-assign-count{color:#6b7280;font-size:12px}.files-folder-tools{background:#fafbff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:8px;padding:9px;display:flex}.files-folder-create,.files-folder-move{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.files-folder-create .form-select,.files-folder-move .form-select{min-width:120px}.files-target-grid-compact{max-height:none;padding-right:0;overflow:visible}.files-assign-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.files-target-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:7px;display:grid}.files-target-chip{color:#334155;cursor:pointer;background:#fff;border:1px solid #dbe3f4;border-radius:10px;justify-content:space-between;align-items:center;gap:7px;min-width:0;padding:8px 10px;transition:all .12s;display:inline-flex}.files-target-chip:hover{background:#f8faff;border-color:#b8c7ef}.files-target-chip.active{color:#312e81;background:#eef2ff;border-color:#818cf8}.files-target-chip-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11.5px;font-weight:600;overflow:hidden}.files-target-chip-count{color:#475569;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.tree-node{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;border-radius:9px;align-items:center;gap:9px;padding:9px 11px;font-size:13.5px;font-weight:500;transition:background .1s;display:flex}.tree-node:hover{background:var(--bg-tertiary)}.tree-node-actions{opacity:0;align-items:center;gap:6px;margin-left:auto;transition:opacity .1s;display:inline-flex}.tree-node:hover .tree-node-actions,.tree-node:focus-within .tree-node-actions{opacity:1}.tree-node-edit{flex:1;align-items:center;gap:6px;min-width:0;margin-left:auto;display:inline-flex}.tree-node-input{flex:1;min-width:0;height:30px}.tree-leaf{cursor:pointer;color:var(--text-secondary);border-left:3px solid #0000;border-radius:9px;align-items:center;gap:9px;padding:8px 11px 8px 32px;font-size:12.5px;transition:all .1s;display:flex}.tree-leaf:hover{background:var(--bg-tertiary)}.tree-leaf.selected{background:var(--accent-subtle);border-left-color:var(--accent);color:var(--text-primary)}.tree-leaf.assigned-to-target{background:#ecfdf5;border-left-color:#10b981}.tree-leaf-check{color:#4f46e5;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;display:inline-flex}.tree-leaf-check.active{background:#eef2ff;border-color:#6366f1}.tree-leaf-badge{color:#047857;white-space:nowrap;background:#d1fae5;border:1px solid #a7f3d0;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:600}.tree-leaf-badge-muted{color:#4b5563;background:#f3f4f6;border-color:#e5e7eb}.tree-leaf-actions{opacity:0;gap:6px;margin-left:auto;transition:opacity .1s;display:flex}.tree-leaf:hover .tree-leaf-actions,.tree-leaf:focus-within .tree-leaf-actions{opacity:1}.tree-leaf-actions .icon-btn:disabled{opacity:.35;cursor:not-allowed}.tree-leaf-actions .icon-btn:disabled:hover{color:#9ca3af;background:0 0}.dataset-name-text{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;line-height:1.2;overflow:hidden}.tree-leaf-empty{cursor:default;border-left-color:#0000}.tree-leaf-empty:hover{background:0 0}.project-active-card{border:1px solid var(--accent-light);background:linear-gradient(135deg,var(--accent-subtle),white);box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.project-active-header{align-items:center;gap:14px;padding:17px;display:flex}.project-active-icon{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.project-active-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.project-active-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.project-active-meta{color:var(--text-secondary);font-size:12px}.project-empty-card{border:1px dashed var(--border);background:var(--bg-tertiary);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:30px 16px;display:flex}.global-progress-host{z-index:30010;pointer-events:none;position:fixed;bottom:16px;right:16px}.toast-progress{background:linear-gradient(#fff,#f8fbff);border:1px solid #d6e0ee;border-radius:12px;flex-direction:column;gap:8px;width:min(360px,100vw - 42px);padding:10px 11px;display:flex;box-shadow:0 10px 26px #0f172a2e}.toast-progress-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.toast-progress-label{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:12px;font-weight:600;line-height:1.25;overflow:hidden}.toast-progress-value{text-align:right;color:#475569;font-variant-numeric:tabular-nums;flex:none;min-width:36px;font-size:11px;font-weight:700}.toast-progress-track{background:#e2e8f0;border:1px solid #d6dee8;border-radius:999px;height:8px;position:relative;overflow:hidden}.toast-progress-fill{border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#0ea5e9);transition:width .18s;position:absolute;top:0;bottom:0;left:0}.project-drive-card{box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#f8faff,#fff);border:1px solid #d9e2f0;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.project-drive-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-drive-title-wrap{color:#334155;align-items:center;gap:7px;display:inline-flex}.project-drive-title{letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:700}.project-drive-badge{color:#64748b;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.project-drive-badge-on{color:#065f46;background:#ecfdf5;border-color:#86efac}.project-drive-text{color:#475569;margin:0;font-size:12px;line-height:1.45}.project-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:4px;margin-bottom:12px;display:grid}.project-toolbar-btn{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:11px 13px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.project-toolbar-btn:hover{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary)}.project-toolbar-btn-icon{padding-inline:10px}.project-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.project-section-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.project-sort-wrap{align-items:center;gap:6px;display:inline-flex}.project-sort-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px;font-weight:700}.project-sort-select{appearance:none;border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;border-radius:8px;padding:0 28px 0 9px;font-size:11px;font-weight:600}.project-sort-select:hover{border-color:var(--border-hover)}.project-sort-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.project-sort-select:disabled{opacity:.6;cursor:default}.project-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:9px 2px 8px;font-size:11px;font-weight:600}.project-section-refresh{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.project-section-refresh:hover:enabled{border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-tertiary)}.project-section-refresh:disabled{opacity:.6;cursor:default}.project-section-refresh .is-spinning{animation:.9s linear infinite ppms-icon-spin}.project-list-v2{flex-direction:column;gap:10px;display:flex}.project-list-item{cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:10px;align-items:center;gap:15px;padding:13px 15px;transition:all .15s;display:flex}.project-list-item:hover{border-color:var(--border-hover);background:var(--bg-tertiary)}.project-list-item.active{background:var(--accent-subtle);border-color:var(--accent-light)}.project-list-item.active:hover{border-color:var(--accent)}.project-list-item-icon{background:var(--bg-tertiary);width:28px;height:28px;color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-list-item.active .project-list-item-icon{background:var(--accent-light)}.project-list-item-body{flex:1;min-width:0}.project-list-item-title-row{align-items:center;gap:8px;min-width:0;display:flex}.project-list-item-name{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.project-storage-badge{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.45;display:inline-flex}.project-storage-badge.is-drive{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.project-storage-badge.is-local{color:#475569;background:#f8fafc;border-color:#cbd5e1}.project-storage-badge.is-mixed{color:#7c2d12;background:#fff7ed;border-color:#fed7aa}.project-list-item-meta{color:var(--text-muted);gap:10px;margin-top:1px;font-size:11px;display:flex}.project-list-item-meta span{align-items:center;gap:2px;display:flex}.project-list-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:5px;display:flex}.project-list-item-time{color:var(--text-muted);white-space:nowrap;align-items:center;gap:3px;font-size:11px;display:flex}.project-list-item-last-save{color:var(--text-muted);white-space:nowrap;font-size:10px;line-height:1.2}.project-list-item-delete{opacity:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:all .15s}.project-list-item:hover .project-list-item-delete,.project-list-item:focus-within .project-list-item-delete{opacity:1}.project-list-item-delete:hover{color:var(--danger);background:var(--danger-light)}.project-list-item-delete:focus-visible{opacity:1;color:var(--danger);background:var(--danger-light)}.project-empty-list{text-align:center;color:var(--text-muted);border:1px dashed var(--border);background:var(--bg-tertiary);border-radius:8px;padding:26px 16px;font-size:13px}.project-list-loading{text-align:center;width:100%;color:var(--text-muted);border:1px dashed var(--border);background:var(--bg-tertiary);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:26px 16px;font-size:13px;display:inline-flex}.project-list-loading .is-spinning{animation:.9s linear infinite ppms-icon-spin}.files-panel{flex-direction:column;flex:auto;gap:14px;min-height:0;display:flex}.files-split-layout{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.files-tree-pane{flex-direction:column;flex:auto;gap:10px;width:100%;min-width:0;min-height:0;display:flex}.files-tree-scroll{scrollbar-gutter:stable;background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:auto;min-height:0;max-height:none;padding:6px 6px 10px;overflow:hidden auto}.files-actions-pane{z-index:3;background:linear-gradient(#fff,#f8fbff);border:1px solid #dbe3f4;border-radius:26px;flex-direction:column;gap:8px;width:clamp(400px,30vw,470px);max-height:none;padding:14px;display:flex;position:absolute;top:-64px;left:calc(100% + 28px);overflow:visible;box-shadow:0 16px 34px #0f172a26}.files-actions-title{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:11px;font-weight:700}.navigator-panel{flex-direction:column;gap:12px;display:flex}.navigator-presets{background:linear-gradient(#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:8px;padding:9px;display:flex}.navigator-presets-grid{grid-template-columns:1fr;gap:6px;display:grid}.navigator-preset-btn{color:#334155;text-align:left;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:600;transition:all .14s}.navigator-preset-btn:hover:enabled{color:#312e81;background:#eef2ff;border-color:#a5b4fc}.navigator-preset-btn.active{color:#312e81;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#6366f1;box-shadow:0 3px 10px #6366f133}.navigator-preset-btn:disabled{opacity:.55;cursor:not-allowed}.navigator-presets .navigator-preset-btn[data-tooltip]:after{white-space:normal;max-width:min(240px,100% - 20px);line-height:1.35}.navigator-search-wrap{width:100%}.navigator-panel .plot-navigator-list{max-height:min(56vh,520px)}.files-search-input{padding-top:9px;padding-bottom:9px;padding-left:34px;font-size:13px}.files-export-format-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.files-export-format-row .form-micro-label{flex:auto;margin-bottom:0}.files-export-format-select{width:auto;min-width:156px;max-width:180px;height:31px;padding-top:4px;padding-bottom:4px;font-size:12px}.files-empty-state{text-align:center;color:#9ca3af;background:#fcfcfd;border:1px dashed #e5e7eb;border-radius:10px;padding:34px 12px;font-size:13px}.batch-count-chip{color:#94a3b8;flex-shrink:0;font-size:11px}.dataset-meta-text{color:#94a3b8;white-space:nowrap;flex-shrink:0;font-size:10.5px}.toast-undo-row{align-items:center;gap:10px;display:flex}.project-panel-root{flex-direction:column;gap:20px;display:flex}.project-empty-title{color:#6b7280;font-size:12px}.project-empty-subtitle{color:#9ca3af;font-size:11px}.settings-panel{flex-direction:column;gap:14px;display:flex}.settings-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:12px;padding:12px;display:flex}.settings-section-title{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:11px;font-weight:700}.tabs-compact{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin-bottom:16px;padding:4px;display:grid;overflow:hidden}.tabs-compact .tab{white-space:normal;color:#6b7280;border-bottom:none;border-radius:7px;justify-content:center;gap:4px;min-width:0;min-height:40px;margin-bottom:0;padding:6px 8px;font-size:11px}.tabs-compact .tab span{text-overflow:clip;white-space:normal;text-align:center;word-break:break-word;max-width:100%;line-height:1.2;overflow:visible}.tabs-compact .tab:hover{color:#374151;background:#fff}.tabs-compact .tab.active{color:#312e81;background:#fff;border-bottom:none;box-shadow:0 1px 2px #0f172a17}.tabs-compact .tab svg{flex-shrink:0;width:14px;height:14px}.form-micro-label{color:#6b7280;margin-bottom:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;display:block}.range-slider{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px;transition:background .15s}.range-slider:hover{background:var(--border-hover)}.range-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:14px;height:14px;transition:transform .1s,box-shadow .1s;box-shadow:0 1px 3px #0003}.range-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 2px 6px #6366f166}.range-slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.slider-row{flex-direction:column;gap:5px;display:flex}.slider-header{justify-content:space-between;align-items:center;display:flex}.slider-value{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;min-width:28px;font-size:11px;font-weight:600}.slider-value-clickable{cursor:pointer;border-radius:3px;padding:1px 4px;transition:background .1s}.slider-value-clickable:hover{background:var(--accent-subtle)}.slider-value-input{width:56px;color:var(--accent);border:1px solid var(--accent);text-align:right;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--accent-subtle);background:#fff;border-radius:4px;outline:none;padding:1px 4px;font-size:11px;font-weight:600}.slider-value-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider-value-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider-value-input[type=number]{-moz-appearance:textfield}.options-section{border-top:1px solid #f3f4f6;margin-top:8px;padding-top:14px}.options-section-title{color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:11px;font-weight:700}.toggle-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;display:flex}.options-section-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-top:10px;padding:12px}.options-section-card .options-section-title{margin-bottom:8px}.subplot-presets{flex-wrap:wrap;gap:6px;display:flex}.subplot-assignment-panel{background:#f8fafc;flex-direction:column;gap:12px;display:flex}.subplot-assignment-summary{gap:10px}.subplot-slot-overview{flex-wrap:wrap;gap:6px;display:flex}.subplot-slot-overview-chip{color:#334155;background:#fff;border:1px solid #d1d5db;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.subplot-slot-overview-chip strong{font-size:10px}.subplot-slot-overview-chip.is-selected{color:#3730a3;background:#eef2ff;border-color:#6366f1}.subplot-manager-overlay{z-index:1200;align-items:flex-start;padding:10px 14px 14px}.subplot-manager-dialog{width:min(1120px,100vw - 40px);max-width:min(1120px,100vw - 40px);max-height:calc(100vh - 24px)}.subplot-manager-dialog .dialog-header{padding:12px 18px}.subplot-manager-dialog .dialog-body{padding-top:12px;padding-bottom:14px}.subplot-manager-body{grid-template-rows:auto auto minmax(clamp(220px,48vh,560px),1fr);gap:8px;min-height:0;display:grid;overflow:hidden}.subplot-manager-controls{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.subplot-manager-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.subplot-manager-config-row{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:8px;display:grid}.subplot-manager-config-row .form-group{margin:0}.subplot-manager-share-row{align-items:center;min-height:34px;display:flex}.subplot-manager-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:12px;height:100%;min-height:0;display:grid}.subplot-manager-toolbar-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.subplot-manager-toolbar-row .subplot-presets,.subplot-manager-toolbar-row .subplot-manager-actions{flex:320px;justify-content:center}.subplot-manager-curves-pane,.subplot-manager-grid-pane{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:9px;min-height:0;padding:10px;display:flex}.subplot-manager-pane-head{color:#334155;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.subplot-manager-search{height:34px}.subplot-manager-curves-list{flex-direction:column;flex:auto;gap:5px;min-height:0;max-height:none;padding-right:4px;display:flex;overflow:auto}.subplot-manager-empty-curves{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:12px;font-size:12px}.subplot-manager-titles-list{border-top:1px solid #e2e8f0;flex-direction:column;flex:none;gap:7px;max-height:min(28vh,260px);margin-top:10px;padding-top:9px;display:flex;overflow:auto}.subplot-manager-title-row{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;display:grid}.subplot-manager-title-label{color:#475569;font-size:11px;font-weight:700}.subplot-manager-curve-row{grid-template-columns:22px minmax(0,1fr) auto;gap:6px;padding:5px 7px}.subplot-selection-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.subplot-selection-count{color:#475569;font-size:11px;font-weight:700}.subplot-selection-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.subplot-shortcut-hint{color:#64748b;margin:-4px 0 0;font-size:10px}.subplot-shortcut-hint kbd{color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;min-width:18px;height:18px;margin:0 1px;padding:0 4px;font-size:10px;line-height:1;display:inline-flex}.subplot-grid-editor{flex:auto;align-content:start;gap:10px;min-height:0;padding-right:3px;display:grid;overflow:auto}.subplot-manager-grid-pane{overflow:hidden}.subplot-grid-cell{cursor:pointer;background:#fff;border:1px solid #dbe3ea;border-radius:10px;flex-direction:column;min-height:92px;padding:9px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:flex}.subplot-grid-cell:hover{border-color:#c3d0dd;box-shadow:0 1px 3px #0f172a0f}.subplot-grid-cell.is-selected{background:#eef2ff;border-color:#6366f1;box-shadow:0 0 0 1px #6366f133}.subplot-grid-cell.is-drag-over{background:#e0e7ff;border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e547}.subplot-grid-head{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.subplot-grid-title{color:#374151;font-size:11px;font-weight:700}.subplot-grid-count{color:#475569;background:#f8fafc;border:1px solid #d1d5db;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.subplot-grid-chips{flex-wrap:wrap;align-content:flex-start;gap:6px;display:flex}.subplot-grid-editor.is-dense-layout .subplot-grid-cell{max-height:min(190px,32vh);overflow:hidden}.subplot-grid-editor.is-dense-layout .subplot-grid-chips{flex:auto;min-height:0;padding-right:2px;overflow:auto}.subplot-grid-empty{color:#94a3b8;font-size:10px}.subplot-dataset-chip{color:#334155;text-overflow:ellipsis;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;background:#f1f5f9;border:1px solid #d5dbe6;border-radius:999px;align-items:center;max-width:100%;padding:2px 6px;font-size:10px;display:inline-flex;overflow:hidden}.subplot-dataset-chip:active{cursor:grabbing}.subplot-curve-row{border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:8px;transition:background-color .15s,border-color .15s;display:grid}.subplot-curve-row.is-selected{background:#eef2ff;border-color:#c7d2fe}.subplot-curve-row:first-of-type{margin-top:0}.subplot-curve-check{justify-content:center;align-items:center;display:inline-flex}.subplot-curve-check input{cursor:pointer;width:14px;height:14px}.subplot-curve-name{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.subplot-curve-slot-badge{color:#334155;background:#f8fafc;border:1px solid #d1d5db;border-radius:999px;justify-content:center;align-items:center;min-width:36px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.subplot-assign-btn{min-width:64px}.subplot-curve-select{width:120px}.subplot-range-list{flex-direction:column;gap:10px;display:flex}.subplot-range-card{background:#f9fafb}.subplot-range-title{color:#475569;margin-bottom:10px;font-size:12px;font-weight:700}.symmetrize-selected-list{border-top:1px solid #f3f4f6;max-height:180px;margin-top:10px;padding-top:10px;overflow-y:auto}.annotation-editor-list{flex-direction:column;gap:14px;display:flex}.annotation-editor-card{padding:13px}.annotation-textarea{resize:vertical;white-space:pre-wrap;min-height:60px;line-height:1.4}.js-plotly-plot .gtitle-subtitle.js-placeholder{display:none!important}.plot-title-editor-overlay{z-index:32;pointer-events:auto;transform-origin:50%;position:absolute;overflow:visible}.plot-title-editor-toolbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5;border:1px solid #e5e7eb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;max-width:min(96vw,760px);min-height:34px;padding:6px 8px;display:flex;position:absolute;top:0;left:0;transform:translateY(calc(-100% - 6px));box-shadow:0 10px 24px #0f172a24}.plot-title-editor-toolbar.is-bottom{top:100%;transform:translateY(6px)}.plot-title-editor-target{color:#475569;text-transform:uppercase;letter-spacing:.05em;margin-right:2px;font-size:10px;font-weight:700}.plot-title-editor-tool-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:7px;min-height:24px;padding:0 7px;font-size:11px;font-weight:600}.plot-title-editor-tool-btn:hover{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}.plot-title-editor-tool-btn.is-active{color:#312e81;background:#e0e7ff;border-color:#a5b4fc}.plot-title-editor-tool-btn.is-apply{color:#3730a3;background:#e0e7ff;border-color:#c7d2fe}.plot-title-editor-size{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:7px;width:56px;min-height:24px;padding:0 6px;font-size:12px}.plot-title-editor-color{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:28px;height:24px;padding:2px}.plot-title-editor-subplot{color:#334155;background:#fff;border:1px solid #d1d5db;border-radius:7px;min-height:24px;padding:0 6px;font-size:11px}.plot-title-editor-family{color:#334155;background:#fff;border:1px solid #d1d5db;border-radius:7px;max-width:168px;min-height:24px;padding:0 6px;font-size:11px}.plot-title-editor-input{pointer-events:auto;color:#111827;text-align:center;width:100%;height:100%;line-height:1;font:inherit;box-shadow:none;background:#ffffff05;border:1px dashed #0000;border-radius:2px;outline:none;padding:0 4px}.plot-title-editor-textarea{text-align:left;resize:none;white-space:pre-wrap;padding:6px 8px;line-height:1.35}.plot-title-editor-input:focus{box-shadow:none;background:#ffffffc7;border-color:#6366f173}.plot-title-editor-input::selection{background:#6366f140}.raw-data-backdrop{z-index:1200;background:#0f172a73;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.raw-data-modal{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;width:min(1460px,98vw);max-height:min(95vh,980px);display:flex;overflow:hidden;box-shadow:0 24px 50px #0f172a40}.raw-data-header{background:linear-gradient(#fbfcfe,#fff);border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.raw-data-title-wrap{color:#1f2937;align-items:flex-start;gap:10px;display:flex}.raw-data-title{margin:0;font-size:15px;font-weight:700;line-height:1.2}.raw-data-subtitle{color:#6b7280;margin:2px 0 0;font-size:12px}.raw-data-actions{align-items:center;gap:4px;display:flex}.raw-data-content{flex-direction:column;gap:14px;padding:14px 16px 18px;display:flex;overflow-y:auto}.raw-data-dataset-nav{flex-wrap:wrap;gap:8px;display:flex}.raw-data-dataset-tab{color:#334155;cursor:pointer;background:#fff;border:1px solid #d9e2f0;border-radius:10px;align-items:center;gap:8px;min-width:0;max-width:min(320px,100%);padding:7px 10px;transition:all .14s;display:inline-flex}.raw-data-dataset-tab:hover{background:#f8faff;border-color:#bacae6}.raw-data-dataset-tab.active{color:#312e81;background:#eef2ff;border-color:#818cf8}.raw-data-dataset-tab-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.raw-data-dataset-tab-meta{color:#475569;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.raw-data-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:13px}.raw-data-empty{color:#6b7280;border:1px dashed #d1d5db;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:120px;font-size:13px;display:flex}.raw-data-empty-small{color:#6b7280;background:#fcfcfd;border:1px dashed #e5e7eb;border-radius:8px;padding:8px 10px;font-size:12px}.raw-data-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.raw-data-section-head{background:#fafbfd;border-bottom:1px solid #eef2f7;padding:10px 12px}.raw-data-dataset-title{color:#111827;margin-bottom:6px;font-size:13px;font-weight:600}.raw-data-chips{flex-wrap:wrap;gap:6px;display:flex}.raw-data-chip{color:#4338ca;background:#eef2ff;border:1px solid #dde5ff;border-radius:999px;align-items:center;padding:2px 7px;font-size:11px;display:inline-flex}.raw-data-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 12px;display:grid}.raw-stat-card{background:#fff;border:1px solid #eef2f7;border-radius:8px;padding:8px 9px}.raw-stat-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.raw-stat-value{color:#111827;margin-top:4px;font-size:16px;font-weight:700}.raw-stat-meta{color:#6b7280;margin-top:2px;font-size:11px}.raw-data-block{padding:0 14px 14px}.raw-data-block-title{color:#374151;margin:2px 0 8px;font-size:12px;font-weight:600}.raw-trace-list{color:#6b7280;margin-bottom:6px;font-size:11px}.raw-table-wrap{border:1px solid #e5e7eb;border-radius:8px;max-height:320px;overflow:auto}.raw-table{border-collapse:collapse;width:100%;min-width:max-content;font-size:12px}.raw-table th{z-index:1;text-align:left;color:#374151;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:8px 10px;font-weight:600;position:sticky;top:0}.raw-table th:first-child{z-index:2;position:sticky;left:0}.raw-table td{color:#111827;white-space:nowrap;border-bottom:1px solid #f1f5f9;padding:8px 10px}.raw-table td:first-child{z-index:1;background:#fff;position:sticky;left:0}.raw-table tbody tr:nth-child(2n) td,.raw-table tbody tr:nth-child(2n) td:first-child{background:#fcfdff}.raw-table-compact{min-width:320px}.raw-data-panel{flex-direction:column;gap:12px;min-height:100%;display:flex}.raw-data-panel-controls{flex-direction:column;gap:10px;display:flex}.raw-data-panel-toolbar{justify-content:space-between;align-items:end;gap:10px;display:flex}.raw-data-panel-meta{flex-wrap:wrap;gap:8px;display:flex}.raw-data-panel-stats{grid-template-columns:1fr;padding:0}.raw-data-panel-table-wrap{max-height:min(52vh,560px)}.raw-data-panel .raw-table{font-size:12px;line-height:1.35}.raw-data-panel .raw-table th,.raw-data-panel .raw-table td{font-variant-numeric:tabular-nums;padding:9px 11px}.raw-data-panel-pagination{justify-content:space-between;align-items:center;gap:10px;display:flex}.raw-data-panel-empty{border:1px dashed var(--border);color:var(--text-secondary);text-align:center;background:#fbfcff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:26px 12px;font-size:12px;display:flex}.raw-data-panel .icon-btn:disabled{opacity:.35;cursor:not-allowed}.raw-data-panel .icon-btn:disabled:hover{color:#9ca3af;background:0 0}@media(max-width:1400px){.canvas-content{gap:22px;padding:24px}.plot-group-grid{grid-template-columns:repeat(auto-fill,minmax(680px,1fr))}.plot-options{width:min(340px,clamp(300px,var(--plot-options-width),460px));flex-basis:min(340px,clamp(300px,var(--plot-options-width),460px))}}@media(max-width:1200px){.header{padding:0 14px}.read-only-banner{padding:6px 14px}.drawer{width:min(360px,100vw - 58px)}.drawer-wide{width:min(680px,100vw - 58px)}.drawer-files-wide{width:min(620px,100vw - 500px)}.files-actions-pane{border-radius:22px;width:clamp(350px,34vw,410px);padding:13px;top:-56px;left:calc(100% + 22px)}.canvas-content{gap:20px;padding:22px}.plot-group-grid{grid-template-columns:minmax(0,1fr)}.plot-groups-actions{gap:8px}.plot-title{max-width:280px}}@media(max-width:1080px){.header-left{gap:10px;min-width:0}.header-project-btn{max-width:min(260px,28vw)}.header-actions{gap:8px}.session-presence-chip{height:32px;padding:0 10px}.canvas-content{gap:16px;padding:18px 18px 28px}.plot-group-section{padding:10px}.plot-group-grid{gap:14px}.plot-card-header{grid-template-columns:1fr;align-items:start;gap:8px}.plot-title-wrap,.mode-selector,.plot-actions{justify-self:start}.mode-selector{flex-wrap:wrap;max-width:100%}.plot-actions{flex-wrap:wrap;gap:6px}.plot-card{height:clamp(420px,var(--plot-card-height),760px)}.plot-card-body{flex-direction:row;overflow:auto hidden}.plot-content{flex:1 0 620px;min-width:620px;min-height:0}.plot-options{width:min(360px,clamp(300px,var(--plot-options-width),460px));flex:0 0 min(360px,clamp(300px,var(--plot-options-width),460px));border-top:none;border-left:1px solid #f3f4f6;max-height:none}.files-target-grid{grid-template-columns:1fr}.files-actions-pane{width:auto;max-height:none;box-shadow:none;border-color:#e5e7eb;border-radius:10px;position:static;left:auto;overflow:visible}.files-tree-scroll{max-height:none}.raw-data-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subplot-manager-dialog{width:min(960px,100vw - 26px);max-width:min(960px,100vw - 26px)}.subplot-manager-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.subplot-manager-config-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.header{padding:0 12px}.read-only-banner{gap:8px;min-height:30px;padding:5px 12px;font-size:11px}.read-only-banner-chip{height:18px;padding:0 7px;font-size:10px}.header-wordmark{font-size:16.5px}.header-project-btn{max-width:min(200px,32vw);padding:6px 9px}.header-action-btn{padding:7px 9px}.session-presence-chip{height:30px;padding:0 8px}.session-presence-chip-inactive{display:none}.session-presence-panel{width:min(500px,100vw - 20px);height:calc(100vh - 98px);max-height:calc(100vh - 98px);right:-8px}.session-presence-list{grid-template-columns:minmax(0,1fr);max-height:min(34vh,210px)}.session-chat-messages{min-height:0;max-height:none}.subplot-manager-workspace{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:1fr}.subplot-manager-config-row{grid-template-columns:repeat(2,minmax(0,1fr))}.session-terminated-overlay{padding:14px}.session-terminated-card{border-radius:14px;padding:20px 18px}.session-terminated-title{font-size:20px}.session-terminated-text{font-size:13px}.session-terminated-actions{margin-top:16px}.icon-rail{width:52px;padding:8px 4px 10px}.icon-rail-btn{border-radius:10px;width:42px;min-height:42px}.icon-rail-btn-label{font-size:8px}.icon-rail-badge{width:26px;height:26px;font-size:10px}.icon-rail-stat{gap:2px;width:max-content}.icon-rail-stats{margin-right:0;transform:none}.icon-rail-stat-label{font-size:8px}.drawer{width:min(360px,100vw - 52px);left:52px}.drawer-wide{width:calc(100vw - 52px)}.drawer-files-wide{width:min(640px,100vw - 52px)}.canvas-content{gap:14px;padding:14px}.plot-groups-toolbar{gap:9px;padding:10px}.plot-groups-actions{flex-direction:column;align-items:stretch}.plot-groups-visibility{width:100%}.plot-groups-visibility .btn{flex:150px}.plot-navigator-head{flex-direction:column;align-items:flex-start}.plot-groups-search-wrap{width:100%}.plot-groups-create,.plot-groups-manage{flex-wrap:wrap;width:100%}.plot-group-input{flex:1;width:auto}.plot-group-grid{gap:12px}.plot-nav-group{text-overflow:ellipsis;white-space:nowrap;max-width:112px;overflow:hidden}.tabs-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs-compact .tab{padding:7px}.tabs-compact .tab svg{display:none}}@media(max-width:680px){.header-sep{display:none}.header-project-btn{max-width:min(150px,36vw)}.header-action-btn span{display:none}.drawer{width:min(100vw,380px);left:0}.drawer-wide,.drawer-files-wide{width:100vw}.drawer-body{padding:14px}.plot-group-section-head{flex-wrap:wrap;row-gap:8px}.plot-group-section-count{margin-right:0}.plot-title,.plot-group-select{max-width:100%}.mode-btn{padding:5px 8px}.mode-btn-label{font-size:11px}.plot-options{flex-basis:320px;width:320px;padding:12px 12px 10px}.tabs-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.tabs-compact .tab{min-height:38px;padding:7px 6px;font-size:10.5px}.options-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.curve-tools-grid,.files-folder-create,.files-folder-move{grid-template-columns:1fr}.files-split-layout{gap:10px}.project-toolbar{grid-template-columns:1fr}.project-section-controls{justify-content:space-between;width:100%}.project-sort-wrap{flex:1;min-width:0}.project-sort-select{width:100%}.project-toolbar-btn-icon{justify-content:center;width:100%}.dialog{width:94%;max-height:90vh}.subplot-manager-dialog{width:min(100vw - 12px,1000px);max-width:min(100vw - 12px,1000px)}.subplot-manager-config-row{grid-template-columns:1fr}.dialog-header{padding:16px 18px}.dialog-body{padding:18px}.dialog-footer{padding:12px 18px}.raw-data-backdrop{padding:8px}.raw-data-modal{width:100%;max-height:96vh}.raw-data-stats-grid{grid-template-columns:1fr}.subplot-selection-actions{width:100%}.subplot-selection-actions .btn,.subplot-manager-actions .btn{flex:160px}.subplot-curve-row{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.subplot-assign-btn,.subplot-curve-select{grid-column:2/span 2;width:100%}}@media(hover:none){.tree-leaf-actions,.project-list-item-delete{opacity:1}}@media(min-width:821px){:root[data-density=compact] .canvas-content{gap:16px;padding:24px}:root[data-density=compact] .plot-card-header{gap:8px;padding:8px 12px}:root[data-density=compact] .plot-options{padding:12px 12px 10px}:root[data-density=compact] .options-content,:root[data-density=compact] .files-panel,:root[data-density=compact] .navigator-panel,:root[data-density=compact] .project-panel-root,:root[data-density=compact] .settings-panel{gap:10px}:root[data-density=spacious] .canvas-content{gap:30px;padding:34px}:root[data-density=spacious] .plot-card-header{gap:14px;padding:12px 18px}:root[data-density=spacious] .plot-options{padding:18px 18px 16px}:root[data-density=spacious] .options-content{gap:16px}:root[data-density=spacious] .files-panel,:root[data-density=spacious] .navigator-panel,:root[data-density=spacious] .project-panel-root,:root[data-density=spacious] .settings-panel{gap:18px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
