@import url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css);:root{--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-neutral-0:#fff;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-success-50:#f0fdf4;--color-success-100:#dcfce7;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-success-700:#15803d;--color-error-50:#fef2f2;--color-error-100:#fee2e2;--color-error-500:#ef4444;--color-error-600:#dc2626;--color-error-700:#b91c1c;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-info-50:#ecfeff;--color-info-100:#cffafe;--color-info-500:#06b6d4;--color-info-600:#0891b2;--font-family-sans:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-family-mono:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-none:1;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--spacing-0:0;--spacing-px:1px;--spacing-0-5:0.125rem;--spacing-1:0.25rem;--spacing-1-5:0.375rem;--spacing-2:0.5rem;--spacing-2-5:0.625rem;--spacing-3:0.75rem;--spacing-3-5:0.875rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-7:1.75rem;--spacing-8:2rem;--spacing-9:2.25rem;--spacing-10:2.5rem;--spacing-11:2.75rem;--spacing-12:3rem;--spacing-14:3.5rem;--spacing-16:4rem;--spacing-20:5rem;--radius-none:0;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-inner:inset 0 2px 4px 0 #0000000d;--shadow-focus:0 0 0 3px #2563eb33;--shadow-focus-error:0 0 0 3px #dc262633;--transition-fastest:75ms;--transition-fast:150ms;--transition-normal:200ms;--transition-slow:300ms;--transition-slower:500ms;--ease-default:cubic-bezier(0.4,0,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-tooltip:600;--z-toast:700;--header-height:64px;--sidebar-width:280px;--chat-panel-width:400px;--max-content-width:1400px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:16px;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-neutral-50);color:var(--color-neutral-800);font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);height:100vh;height:100%;line-height:var(--line-height-normal);text-rendering:optimizeLegibility}ol,ul{list-style:none}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}a{color:inherit;text-decoration:none}canvas,img,picture,svg,video{display:block;height:auto;max-width:100%}button,input,select,textarea{color:inherit;font:inherit}button{background:#0000;border:none;cursor:pointer}button:disabled{cursor:not-allowed}textarea{resize:vertical}fieldset{border:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}*{-webkit-tap-highlight-color:transparent}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}table{border-collapse:collapse;border-spacing:0}code,kbd,pre,samp{font-family:var(--font-family-mono);font-size:.875em}::selection{background-color:var(--color-primary-100);color:var(--color-primary-900)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}*{scrollbar-color:var(--color-neutral-300) var(--color-neutral-100);scrollbar-width:thin}.h1,h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.025em}.h1,.h2,h1,h2{color:var(--color-neutral-900);line-height:var(--line-height-tight)}.h2,h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em}.h3,h3{font-size:var(--font-size-xl)}.h3,.h4,h3,h4{color:var(--color-neutral-800);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.h4,h4{font-size:var(--font-size-lg)}.h5,h5{color:var(--color-neutral-800);font-size:var(--font-size-base)}.h5,.h6,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}.h6,h6{color:var(--color-neutral-700);font-size:var(--font-size-sm)}.text-body-lg{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.text-body{font-size:var(--font-size-base)}.text-body,.text-body-sm{line-height:var(--line-height-normal)}.text-body-sm{font-size:var(--font-size-sm)}.text-caption{color:var(--color-neutral-500);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-primary-600)}.text-secondary{color:var(--color-neutral-500)}.text-muted{color:var(--color-neutral-400)}.text-success{color:var(--color-success-600)}.text-error{color:var(--color-error-600)}.text-warning{color:var(--color-warning-600)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3}.font-mono{font-family:var(--font-family-mono)}.link{color:var(--color-primary-600);text-decoration:none;transition:color var(--transition-fast) var(--ease-default)}.link:hover{color:var(--color-primary-700);text-decoration:underline}.prose{max-width:65ch}.prose p{margin-bottom:var(--spacing-4)}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--color-neutral-900);font-weight:var(--font-weight-semibold)}.prose em{font-style:italic}.prose code{background-color:var(--color-neutral-100);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:.875em;padding:.125em .375em}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.gap-0{gap:0}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-auto{margin-right:auto}.p-0{padding:0}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.px-1{padding-left:var(--spacing-1);padding-right:var(--spacing-1)}.px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.px-5{padding-left:var(--spacing-5);padding-right:var(--spacing-5)}.px-6{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}.py-1{padding-bottom:var(--spacing-1);padding-top:var(--spacing-1)}.py-2{padding-bottom:var(--spacing-2);padding-top:var(--spacing-2)}.py-3{padding-bottom:var(--spacing-3);padding-top:var(--spacing-3)}.py-4{padding-bottom:var(--spacing-4);padding-top:var(--spacing-4)}.py-5{padding-bottom:var(--spacing-5);padding-top:var(--spacing-5)}.py-6{padding-bottom:var(--spacing-6);padding-top:var(--spacing-6)}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.min-h-full{min-height:100%}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.inset-0{bottom:0;left:0;right:0;top:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded,.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow,.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.transition{transition-duration:var(--transition-normal);transition-property:color,background-color,border-color,box-shadow,opacity,transform;transition-timing-function:var(--ease-default)}.transition-all{transition-duration:var(--transition-normal);transition-property:all;transition-timing-function:var(--ease-default)}.transition-colors{transition-duration:var(--transition-normal);transition-property:color,background-color,border-color;transition-timing-function:var(--ease-default)}.transition-transform{transition-duration:var(--transition-normal);transition-property:transform;transition-timing-function:var(--ease-default)}.duration-fast{transition-duration:var(--transition-fast)}.duration-normal{transition-duration:var(--transition-normal)}.duration-slow{transition-duration:var(--transition-slow)}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}.scale-105{transform:scale(1.05)}.scale-110{transform:scale(1.1)}.translate-y-0{transform:translateY(0)}.translate-y-1{transform:translateY(var(--spacing-1))}.-translate-y-1{transform:translateY(calc(var(--spacing-1)*-1))}.visible{visibility:visible}.invisible{visibility:hidden}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-dropdown{z-index:var(--z-dropdown)}.z-modal{z-index:var(--z-modal)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.app-header{background-color:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-200);height:var(--header-height);justify-content:space-between;padding:0 var(--spacing-6);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky)}.app-header,.header-brand{align-items:center;display:flex}.header-brand{gap:var(--spacing-3)}.header-logo{align-items:center;color:var(--color-neutral-900);display:flex;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);gap:var(--spacing-2);text-decoration:none}.header-logo-icon{font-size:1.5rem}.header-logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));-webkit-background-clip:text;background-clip:text}.header-subtitle{border-left:1px solid var(--color-neutral-300);color:var(--color-neutral-500);font-size:var(--font-size-sm);margin-left:var(--spacing-2);padding-left:var(--spacing-2)}.header-actions,.header-status{align-items:center;display:flex;gap:var(--spacing-3)}.connection-status{align-items:center;background-color:var(--color-neutral-100);border-radius:var(--radius-full);color:var(--color-neutral-600);display:flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);gap:var(--spacing-2);padding:var(--spacing-1-5) var(--spacing-3)}.connection-status.connected{background-color:var(--color-success-50);color:var(--color-success-700)}.connection-status.disconnected{background-color:var(--color-error-50);color:var(--color-error-700)}.connection-dot{background-color:var(--color-neutral-400);border-radius:var(--radius-full);height:6px;width:6px}.connection-status.connected .connection-dot{background-color:var(--color-success-500)}.connection-status.disconnected .connection-dot{background-color:var(--color-error-500)}.header-nav{gap:var(--spacing-1)}.header-nav,.header-nav-link{align-items:center;display:flex}.header-nav-link{border-radius:var(--radius-lg);color:var(--color-neutral-600);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);transition:background-color var(--transition-fast) var(--ease-default),color var(--transition-fast) var(--ease-default)}.header-nav-link:hover{background-color:var(--color-neutral-100);color:var(--color-neutral-800)}.header-nav-link.active{background-color:var(--color-primary-50);color:var(--color-primary-600)}.user-menu{gap:var(--spacing-2)}.user-avatar,.user-menu{align-items:center;display:flex}.user-avatar{background-color:var(--color-primary-100);border-radius:var(--radius-full);color:var(--color-primary-600);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);height:2rem;justify-content:center;width:2rem}@media (max-width:1024px){.header-subtitle{display:none}}@media (max-width:768px){.app-header{height:56px;padding:0 var(--spacing-4)}.header-nav{display:none}.header-logo{font-size:var(--font-size-base)}.header-logo-icon{font-size:1.25rem}.connection-status{padding:var(--spacing-1) var(--spacing-2)}}@media (max-width:480px){.app-header{padding:0 var(--spacing-3)}.header-actions,.header-brand{gap:var(--spacing-2)}}.app{background-color:var(--color-neutral-100);flex-direction:column;height:100vh;max-height:100vh}.app,.desmos-layout{display:flex;overflow:hidden}.desmos-layout{flex:1 1;height:calc(100vh - var(--header-height));position:relative}.sidebar{background-color:var(--color-neutral-0);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transition:width var(--transition-normal) var(--ease-default),transform var(--transition-normal) var(--ease-default);z-index:var(--z-sticky)}.sidebar.open{width:320px}.sidebar.closed{overflow:hidden;width:0}.sidebar-left{border-right:1px solid var(--color-neutral-200)}.sidebar-right{border-left:1px solid var(--color-neutral-200)}.sidebar-header{background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);min-height:52px;padding:var(--spacing-3) var(--spacing-4)}.sidebar-header,.sidebar-title{align-items:center;display:flex;gap:var(--spacing-2)}.sidebar-title{color:var(--color-neutral-700);flex:1 1;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.sidebar-icon{font-size:1rem}.sidebar-toggle{align-items:center;background-color:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);color:var(--color-neutral-500);cursor:pointer;display:flex;font-size:.75rem;height:28px;justify-content:center;transition:all var(--transition-fast) var(--ease-default);width:28px}.sidebar-toggle:hover{background-color:var(--color-neutral-200);color:var(--color-neutral-700)}.sidebar-content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto}.sidebar-expand-btn{align-items:center;background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-1);padding:var(--spacing-3) var(--spacing-2);position:absolute;top:var(--spacing-4);transition:all var(--transition-fast) var(--ease-default);z-index:var(--z-sticky)}.sidebar-expand-btn:hover{background-color:var(--color-neutral-50);box-shadow:var(--shadow-lg)}.sidebar-expand-btn.left{left:var(--spacing-4)}.sidebar-expand-btn.right{right:var(--spacing-4)}.sidebar-expand-btn span:first-child{font-size:1.25rem}.sidebar-expand-btn .expand-label{color:var(--color-neutral-600);font-size:.625rem;font-weight:var(--font-weight-medium);text-orientation:mixed;writing-mode:vertical-rl}.clear-btn{background-color:var(--color-error-50);border:1px solid var(--color-error-200);border-radius:var(--radius-md);color:var(--color-error-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast) var(--ease-default)}.clear-btn:hover{background-color:var(--color-error-100)}.graph-canvas{background-color:var(--color-neutral-0);flex:1 1;min-width:0;overflow:hidden;position:relative}.graph-error-toast{align-items:center;background-color:var(--color-error-50);border:1px solid var(--color-error-200);border-radius:var(--radius-lg);bottom:var(--spacing-6);box-shadow:var(--shadow-lg);display:flex;gap:var(--spacing-3);left:50%;padding:var(--spacing-3) var(--spacing-4);position:absolute;transform:translateX(-50%);z-index:10}.graph-error-toast .error-icon{font-size:1.125rem}.graph-error-toast .error-text{color:var(--color-error-700);font-size:var(--font-size-sm)}.graph-error-toast .error-dismiss{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-error-500);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.graph-error-toast .error-dismiss:hover{background-color:var(--color-error-100)}.pyodide-status-badge{align-items:center;background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-full);bottom:var(--spacing-4);box-shadow:var(--shadow-sm);display:flex;font-size:var(--font-size-xs);gap:var(--spacing-2);padding:var(--spacing-1-5) var(--spacing-3);position:absolute;right:var(--spacing-4);z-index:10}.pyodide-status-badge .status-dot{border-radius:var(--radius-full);height:8px;width:8px}.pyodide-status-badge.ready .status-dot{background-color:var(--color-success-500)}.pyodide-status-badge.loading .status-dot{animation:pulse 1.5s ease-in-out infinite;background-color:var(--color-warning-500)}.pyodide-status-badge.error .status-dot{background-color:var(--color-error-500)}.pyodide-status-badge .status-text{color:var(--color-neutral-600)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.desmos-layout.mobile{flex-direction:column}.mobile-nav{background-color:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-200);display:flex;padding:0}.mobile-nav-btn{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:var(--color-neutral-500);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:var(--font-size-xs);gap:var(--spacing-0-5);padding:var(--spacing-2) var(--spacing-3);position:relative;transition:all var(--transition-fast) var(--ease-default)}.mobile-nav-btn:hover{color:var(--color-neutral-700)}.mobile-nav-btn.active{border-bottom-color:var(--color-primary-600);color:var(--color-primary-600)}.mobile-nav-btn .nav-icon{font-size:1.25rem}.mobile-nav-btn .nav-label{font-weight:var(--font-weight-medium)}.mobile-nav-btn .nav-badge{align-items:center;background-color:var(--color-primary-500);border-radius:var(--radius-full);color:#fff;display:flex;font-size:.625rem;font-weight:var(--font-weight-semibold);height:16px;justify-content:center;min-width:16px;padding:0 4px;position:absolute;right:calc(50% - 20px);top:var(--spacing-1)}.mobile-content{flex:1 1;overflow:hidden}.mobile-panel{height:100%;overflow-y:auto}.mobile-panel.expressions-panel,.mobile-panel.graph-panel-mobile{background-color:var(--color-neutral-0)}.mobile-panel.graph-panel-mobile{position:relative}.mobile-panel.chat-panel-mobile{background-color:var(--color-neutral-0)}.two-column-layout{display:none}.container{margin-left:auto;margin-right:auto;max-width:var(--max-content-width);padding-left:var(--spacing-4);padding-right:var(--spacing-4);width:100%}.grid{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1024px){.sidebar.open{width:280px}}@media (max-width:768px){:root{--header-height:56px}.app-main{padding:0}.sidebar,.sidebar-expand-btn{display:none}}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--spacing-2);justify-content:center;line-height:var(--line-height-none);padding:var(--spacing-2-5) var(--spacing-4);text-align:center;transition:background-color var(--transition-fast) var(--ease-default),border-color var(--transition-fast) var(--ease-default),box-shadow var(--transition-fast) var(--ease-default),transform var(--transition-fast) var(--ease-default);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:var(--color-primary-600);border-color:var(--color-primary-600);box-shadow:var(--shadow-xs);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-700);border-color:var(--color-primary-700);box-shadow:var(--shadow-sm)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-800)}.btn-secondary{background-color:var(--color-neutral-0);border-color:var(--color-neutral-300);color:var(--color-neutral-700)}.btn-secondary:hover:not(:disabled){background-color:var(--color-neutral-50);border-color:var(--color-neutral-400);color:var(--color-neutral-800)}.btn-secondary:active:not(:disabled){background-color:var(--color-neutral-100)}.btn-outline{background-color:initial;border-color:var(--color-primary-300);color:var(--color-primary-600)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-50);border-color:var(--color-primary-400)}.btn-outline:active:not(:disabled){background-color:var(--color-primary-100)}.btn-ghost{background-color:initial;border-color:#0000;color:var(--color-neutral-600)}.btn-ghost:hover:not(:disabled){background-color:var(--color-neutral-100);color:var(--color-neutral-800)}.btn-ghost:active:not(:disabled){background-color:var(--color-neutral-200)}.btn-danger{background-color:var(--color-error-600);border-color:var(--color-error-600);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--color-error-700);border-color:var(--color-error-700)}.btn-danger:focus-visible{box-shadow:var(--shadow-focus-error)}.btn-success{background-color:var(--color-success-600);border-color:var(--color-success-600);color:#fff}.btn-success:hover:not(:disabled){background-color:var(--color-success-700);border-color:var(--color-success-700)}.btn-link{background-color:initial;border-color:#0000;color:var(--color-primary-600);padding-left:0;padding-right:0}.btn-link:hover:not(:disabled){color:var(--color-primary-700);text-decoration:underline}.btn-xs{font-size:var(--font-size-xs);gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2)}.btn-sm,.btn-xs{border-radius:var(--radius-md)}.btn-sm{font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3)}.btn-lg{font-size:var(--font-size-base);padding:var(--spacing-3) var(--spacing-5)}.btn-lg,.btn-xl{border-radius:var(--radius-xl)}.btn-xl{font-size:var(--font-size-lg);padding:var(--spacing-4) var(--spacing-6)}.btn-icon{height:2.5rem;padding:var(--spacing-2-5);width:2.5rem}.btn-icon.btn-xs{height:1.75rem;padding:var(--spacing-1);width:1.75rem}.btn-icon.btn-sm{height:2rem;padding:var(--spacing-1-5);width:2rem}.btn-icon.btn-lg{height:3rem;padding:var(--spacing-3);width:3rem}.btn-block{display:flex;width:100%}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-bottom-left-radius:var(--radius-lg);border-top-left-radius:var(--radius-lg)}.btn-group .btn:last-child{border-bottom-right-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.btn-group .btn:not(:first-child){margin-left:-1px}.btn-loading{color:#0000!important;pointer-events:none;position:relative}.btn-loading:after{animation:btn-spin .6s linear infinite;border:2px solid;border-radius:var(--radius-full);border-right:2px solid #0000;content:"";height:1em;position:absolute;width:1em}.btn-danger.btn-loading:after,.btn-primary.btn-loading:after,.btn-success.btn-loading:after{border-color:#ffffff4d #fff #ffffff4d #ffffff4d}@keyframes btn-spin{to{transform:rotate(1turn)}}.input{-webkit-appearance:none;appearance:none;background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-300);border-radius:var(--radius-lg);color:var(--color-neutral-800);display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);padding:var(--spacing-2-5) var(--spacing-3);transition:border-color var(--transition-fast) var(--ease-default),box-shadow var(--transition-fast) var(--ease-default);width:100%}.input::placeholder{color:var(--color-neutral-400)}.input:hover:not(:disabled):not(:focus){border-color:var(--color-neutral-400)}.input:focus{border-color:var(--color-primary-500);box-shadow:var(--shadow-focus);outline:none}.input:disabled{background-color:var(--color-neutral-100);color:var(--color-neutral-500);cursor:not-allowed}.input-error,.input-error:focus{border-color:var(--color-error-500)}.input-error:focus{box-shadow:var(--shadow-focus-error)}.input-success{border-color:var(--color-success-500)}.input-sm{border-radius:var(--radius-md);font-size:var(--font-size-xs);padding:var(--spacing-2) var(--spacing-2-5)}.input-lg{border-radius:var(--radius-xl);font-size:var(--font-size-base);padding:var(--spacing-3) var(--spacing-4)}.input-wrapper{display:flex;position:relative;width:100%}.input-wrapper .input{flex:1 1}.input-icon{color:var(--color-neutral-400);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-icon-left{left:var(--spacing-3)}.input-icon-right{right:var(--spacing-3)}.input-wrapper .input-icon-left+.input{padding-left:var(--spacing-10)}.input-wrapper .input.has-icon-right{padding-right:var(--spacing-10)}.textarea{line-height:var(--line-height-relaxed);min-height:100px;resize:vertical}.select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%2364748B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right var(--spacing-3) center;background-repeat:no-repeat;background-size:1.25rem;padding-right:var(--spacing-10)}.select:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%232563EB' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}.checkbox,.radio{-webkit-appearance:none;appearance:none;background-color:var(--color-neutral-0);border:1.5px solid var(--color-neutral-400);cursor:pointer;height:1rem;-webkit-print-color-adjust:exact;print-color-adjust:exact;transition:background-color var(--transition-fast) var(--ease-default),border-color var(--transition-fast) var(--ease-default),box-shadow var(--transition-fast) var(--ease-default);width:1rem}.checkbox{border-radius:var(--radius-sm)}.radio{border-radius:var(--radius-full)}.checkbox:hover:not(:disabled),.radio:hover:not(:disabled){border-color:var(--color-primary-500)}.checkbox:focus-visible,.radio:focus-visible{box-shadow:var(--shadow-focus);outline:none}.checkbox:checked,.radio:checked{background-color:var(--color-primary-600);border-color:var(--color-primary-600)}.checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}.radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.5}.label{color:var(--color-neutral-700);display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-1-5)}.label-required:after{color:var(--color-error-500);content:" *"}.help-text{color:var(--color-neutral-500);font-size:var(--font-size-xs);margin-top:var(--spacing-1-5)}.help-text-error{color:var(--color-error-600)}.form-group{margin-bottom:var(--spacing-4)}.form-group:last-child{margin-bottom:0}.input-group{align-items:stretch;display:flex}.input-group .input{flex:1 1;min-width:0}.input-group .input:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group .input:not(:last-child){border-bottom-right-radius:0;border-right:none;border-top-right-radius:0}.input-group-text{align-items:center;background-color:var(--color-neutral-100);border:1px solid var(--color-neutral-300);color:var(--color-neutral-600);display:flex;font-size:var(--font-size-sm);padding:0 var(--spacing-3)}.input-group-text:first-child{border-bottom-left-radius:var(--radius-lg);border-right:none;border-top-left-radius:var(--radius-lg)}.input-group-text:last-child{border-bottom-right-radius:var(--radius-lg);border-left:none;border-top-right-radius:var(--radius-lg)}.input-group .btn:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group .btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-search{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394A3B8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'/%3E%3C/svg%3E");background-position:left var(--spacing-3) center;background-repeat:no-repeat;background-size:1.25rem;padding-left:var(--spacing-10)}.input-search:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%232563EB'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'/%3E%3C/svg%3E")}.badge{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);gap:var(--spacing-1);line-height:var(--line-height-normal);padding:var(--spacing-0-5) var(--spacing-2);white-space:nowrap}.badge-gray{background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.badge-primary{background-color:var(--color-primary-100);color:var(--color-primary-700)}.badge-success{background-color:var(--color-success-100);color:var(--color-success-700)}.badge-error{background-color:var(--color-error-100);color:var(--color-error-700)}.badge-warning{background-color:var(--color-warning-100);color:var(--color-warning-600)}.badge-info{background-color:var(--color-info-100);color:var(--color-info-600)}.badge-solid-gray{background-color:var(--color-neutral-600);color:#fff}.badge-solid-primary{background-color:var(--color-primary-600);color:#fff}.badge-solid-success{background-color:var(--color-success-600);color:#fff}.badge-solid-error{background-color:var(--color-error-600);color:#fff}.badge-outline{background-color:initial;border:1px solid}.badge-outline-gray{border:1px solid var(--color-neutral-300);color:var(--color-neutral-600)}.badge-outline-primary{border:1px solid var(--color-primary-300);color:var(--color-primary-600)}.badge-sm{font-size:.625rem;padding:var(--spacing-0-5) var(--spacing-1-5)}.badge-lg{font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-3)}.badge-pill{border-radius:var(--radius-full);padding-left:var(--spacing-2-5);padding-right:var(--spacing-2-5)}.badge-dot{align-items:center;background:none;color:var(--color-neutral-700);display:inline-flex;font-size:var(--font-size-sm);gap:var(--spacing-1-5);padding:0}.badge-dot:before{background-color:var(--color-neutral-400);border-radius:var(--radius-full);content:"";height:6px;width:6px}.badge-dot-success:before{background-color:var(--color-success-500)}.badge-dot-error:before{background-color:var(--color-error-500)}.badge-dot-warning:before{background-color:var(--color-warning-500)}.badge-dot-primary:before{background-color:var(--color-primary-500)}.status-indicator{align-items:center;color:var(--color-neutral-600);display:inline-flex;font-size:var(--font-size-sm);gap:var(--spacing-2)}.status-dot{background-color:var(--color-neutral-400);border-radius:var(--radius-full);flex-shrink:0;height:8px;width:8px}.status-dot-connected,.status-dot-online,.status-dot-ready{background-color:var(--color-success-500)}.status-dot-disconnected,.status-dot-error,.status-dot-offline{background-color:var(--color-error-500)}.status-dot-away,.status-dot-loading{animation:status-pulse 1.5s ease-in-out infinite;background-color:var(--color-warning-500)}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}.tag{align-items:center;background-color:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);color:var(--color-neutral-700);display:inline-flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2)}.tag-removable{padding-right:var(--spacing-1)}.tag-remove-btn{align-items:center;border-radius:var(--radius-sm);color:var(--color-neutral-500);display:flex;font-size:.625rem;height:1rem;justify-content:center;transition:background-color var(--transition-fast) var(--ease-default),color var(--transition-fast) var(--ease-default);width:1rem}.tag-remove-btn:hover{background-color:var(--color-neutral-200);color:var(--color-neutral-700)}.code-tag{background-color:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-md);color:var(--color-primary-700);font-family:var(--font-family-mono);padding:var(--spacing-1) var(--spacing-2)}.code-tag,.env-badge{display:inline-flex;font-size:var(--font-size-xs)}.env-badge{align-items:center;border-radius:var(--radius-full);font-weight:var(--font-weight-medium);letter-spacing:.05em;padding:var(--spacing-1) var(--spacing-2-5);text-transform:uppercase}.env-badge-development{background-color:var(--color-neutral-100);color:var(--color-neutral-600)}.env-badge-test{background-color:var(--color-warning-100);color:var(--color-warning-600)}.env-badge-production{background-color:var(--color-success-100);color:var(--color-success-700)}.card{background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);overflow:hidden}.card-elevated{border:none;box-shadow:var(--shadow-md)}.card-flat{background-color:var(--color-neutral-50);border:none}.card-outline{background-color:initial;border:1px solid var(--color-neutral-200)}.card-header{background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);padding:var(--spacing-4) var(--spacing-5)}.card-header-clear{background-color:initial}.card-title{color:var(--color-neutral-800);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.card-subtitle{color:var(--color-neutral-500);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}.card-body{padding:var(--spacing-5)}.card-body-compact{padding:var(--spacing-4)}.card-footer{background-color:var(--color-neutral-50);border-top:1px solid var(--color-neutral-200);padding:var(--spacing-4) var(--spacing-5)}.card-footer-clear{background-color:initial}.card-interactive{cursor:pointer;transition:border-color var(--transition-fast) var(--ease-default),box-shadow var(--transition-fast) var(--ease-default),transform var(--transition-fast) var(--ease-default)}.card-interactive:hover{border-color:var(--color-neutral-300);box-shadow:var(--shadow-md)}.card-interactive:active{transform:scale(.99)}.card-interactive:focus-visible{border-color:var(--color-primary-500);box-shadow:var(--shadow-focus);outline:none}.card-selected{background-color:var(--color-primary-50);border-color:var(--color-primary-500)}.panel{border:1px solid var(--color-neutral-200);border-radius:var(--radius-2xl);flex-direction:column;height:100%;overflow:hidden}.panel,.panel-header{background-color:var(--color-neutral-0);display:flex}.panel-header{align-items:center;border-bottom:1px solid var(--color-neutral-200);flex-shrink:0;justify-content:space-between;padding:var(--spacing-4) var(--spacing-5)}.panel-title{align-items:center;color:var(--color-neutral-800);display:flex;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);gap:var(--spacing-2);margin:0}.panel-title-icon{font-size:1.25rem}.panel-body{flex:1 1;overflow:auto}.panel-footer{background-color:var(--color-neutral-0);border-top:1px solid var(--color-neutral-200);flex-shrink:0;padding:var(--spacing-4) var(--spacing-5)}.divider{background-color:var(--color-neutral-200);height:1px;margin:var(--spacing-4) 0}.divider-vertical{height:100%;margin:0 var(--spacing-4);width:1px}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:var(--spacing-10)}.empty-state-icon{color:var(--color-neutral-300);font-size:3rem;margin-bottom:var(--spacing-4)}.empty-state-title{color:var(--color-neutral-700);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-2)}.empty-state-description{color:var(--color-neutral-500);font-size:var(--font-size-sm);max-width:280px}.empty-state-action{margin-top:var(--spacing-6)}.well{background-color:var(--color-neutral-100);border-radius:var(--radius-lg);padding:var(--spacing-4)}.well-sm{padding:var(--spacing-3)}.well-lg{padding:var(--spacing-6)}.chat-interface{background:#fff;background:var(--color-neutral-0,#fff);display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.chat-messages{flex:1 1;min-height:0;overflow-y:auto;padding:16px;padding:var(--spacing-4,16px)}.chat-welcome{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;padding:24px;padding:var(--spacing-6,24px);text-align:center}.welcome-icon{font-size:2.5rem;margin-bottom:16px;margin-bottom:var(--spacing-4,16px)}.chat-welcome h3{color:#1e293b;color:var(--color-neutral-800,#1e293b);font-size:1.125rem;font-weight:600;margin:0 0 8px;margin:0 0 var(--spacing-2,8px) 0}.chat-welcome p{color:#64748b;color:var(--color-neutral-500,#64748b);font-size:.875rem;line-height:1.5;margin:0 0 20px;margin:0 0 var(--spacing-5,20px) 0;max-width:280px}.example-questions{flex-direction:column;max-width:280px;width:100%}.example-btn,.example-questions{display:flex;gap:8px;gap:var(--spacing-2,8px)}.example-btn{align-items:center;background-color:#f8fafc;background-color:var(--color-neutral-50,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--color-neutral-200,#e2e8f0);border-radius:12px;color:#334155;color:var(--color-neutral-700,#334155);cursor:pointer;font-size:.875rem;padding:12px 16px;padding:var(--spacing-3,12px) var(--spacing-4,16px);text-align:left;transition:all .2s ease}.example-btn:hover:not(:disabled){background-color:#f1f5f9;background-color:var(--color-neutral-100,#f1f5f9);border-color:#cbd5e1;border-color:var(--color-neutral-300,#cbd5e1);transform:translateX(4px)}.example-btn:disabled{cursor:not-allowed;opacity:.5}.example-icon{color:#3b82f6;color:var(--color-primary-500,#3b82f6);font-weight:600}.chat-message{margin-bottom:16px;margin-bottom:var(--spacing-4,16px)}.chat-message:last-child{margin-bottom:0}.chat-message.user{display:flex;justify-content:flex-end}.user-bubble{background:#2563eb;background:var(--color-primary-600,#2563eb);border-radius:18px 18px 4px 18px;color:#fff;font-size:.875rem;line-height:1.5;max-width:80%;padding:12px 16px;padding:var(--spacing-3,12px) var(--spacing-4,16px)}.user-bubble p{margin:0}.chat-message.assistant{border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--color-neutral-100,#f1f5f9);padding:16px 0;padding:var(--spacing-4,16px) 0}.chat-message.assistant.loading,.chat-message.assistant:last-of-type:not(.loading){border-bottom:none}.assistant-header{align-items:center;display:flex;gap:8px;gap:var(--spacing-2,8px);margin-bottom:12px;margin-bottom:var(--spacing-3,12px)}.assistant-icon{font-size:1.125rem}.assistant-label{color:#64748b;color:var(--color-neutral-500,#64748b);font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.assistant-agent-log{margin-bottom:12px;margin-bottom:var(--spacing-3,12px)}.assistant-processing{margin-top:8px;margin-top:var(--spacing-2,8px)}.assistant-content{padding-left:calc(1.125rem + 8px);padding-left:calc(1.125rem + var(--spacing-2, 8px))}.assistant-text{color:#1e293b;color:var(--color-neutral-800,#1e293b);font-size:.9375rem;line-height:1.7;margin:0 0 12px;margin:0 0 var(--spacing-3,12px) 0}.chat-message.assistant.error .assistant-text{color:#dc2626;color:var(--color-error-600,#dc2626)}.expression-tags{display:flex;flex-wrap:wrap;gap:8px;gap:var(--spacing-2,8px)}.expr-tag{align-items:center;background:#eff6ff;background:var(--color-primary-50,#eff6ff);border:1px solid #bfdbfe;border:1px solid var(--color-primary-200,#bfdbfe);border-radius:6px;color:#1d4ed8;color:var(--color-primary-700,#1d4ed8);display:inline-flex;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:.8125rem;padding:6px 12px;padding:var(--spacing-1-5,6px) var(--spacing-3,12px)}.chat-input-area{background:#fff;background:var(--color-neutral-0,#fff);border-top:1px solid #e2e8f0;border-top:1px solid var(--color-neutral-200,#e2e8f0);padding:16px;padding:var(--spacing-4,16px)}.chat-input-wrapper{align-items:center;background:#f8fafc;background:var(--color-neutral-50,#f8fafc);border:1px solid #cbd5e1;border:1px solid var(--color-neutral-300,#cbd5e1);border-radius:24px;display:flex;gap:8px;gap:var(--spacing-2,8px);padding:4px;padding:var(--spacing-1,4px);transition:border-color .2s ease,box-shadow .2s ease}.chat-input-wrapper:focus-within{background:#fff;background:var(--color-neutral-0,#fff);border-color:#3b82f6;border-color:var(--color-primary-500,#3b82f6);box-shadow:0 0 0 3px #3b82f61a}.chat-input{background:#0000;border:none;color:#1e293b;color:var(--color-neutral-800,#1e293b);flex:1 1;font-size:.875rem;outline:none;padding:8px 12px;padding:var(--spacing-2,8px) var(--spacing-3,12px)}.chat-input::placeholder{color:#94a3b8;color:var(--color-neutral-400,#94a3b8)}.chat-input:disabled{cursor:not-allowed}.send-btn{align-items:center;background:#2563eb;background:var(--color-primary-600,#2563eb);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:background-color .2s ease,transform .15s ease;width:36px}.send-btn:hover:not(:disabled){background:#1d4ed8;background:var(--color-primary-700,#1d4ed8)}.send-btn:active:not(:disabled){transform:scale(.95)}.send-btn:disabled{background:#cbd5e1;background:var(--color-neutral-300,#cbd5e1);cursor:not-allowed}.send-icon{font-weight:700}.send-loading{animation:spin 1s linear infinite;display:inline-block}@media (max-width:768px){.chat-input-area,.chat-messages{padding:12px;padding:var(--spacing-3,12px)}.user-bubble{max-width:90%}.assistant-content{padding-left:0}.chat-welcome{padding:16px;padding:var(--spacing-4,16px)}.example-questions{max-width:100%}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000}.chat-messages::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--color-neutral-300,#cbd5e1);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8;background:var(--color-neutral-400,#94a3b8)}.graph-renderer{background-color:var(--color-neutral-0);height:100%;inset:0;overflow:hidden;position:absolute;width:100%}.graph-title{background-color:#ffffffe6;border-radius:var(--radius-md);color:var(--color-neutral-700);font-weight:var(--font-weight-semibold);margin:0;padding:var(--spacing-1) var(--spacing-3);z-index:5}.graph-render-error,.graph-title{font-size:var(--font-size-sm);left:50%;position:absolute;top:var(--spacing-4);transform:translateX(-50%)}.graph-render-error{background-color:var(--color-error-50);border:1px solid var(--color-error-200);border-radius:var(--radius-lg);color:var(--color-error-700);padding:var(--spacing-2) var(--spacing-4);z-index:10}.graph-plot-container{background-color:var(--color-neutral-0);height:100%!important;overflow:hidden;width:100%!important}.jsxgraph-container{inset:0!important;position:absolute!important}.graph-plot-container canvas,.graph-plot-container svg,.jsxgraph-container canvas,.jsxgraph-container svg{display:block;height:100%!important;width:100%!important}.JXGtext{color:var(--color-neutral-600)!important;font-family:var(--font-family-sans)!important;font-size:11px!important}.jxgbox .JXGgrid line{stroke:var(--color-neutral-200)!important;stroke-width:1!important}.jxgbox line[class*=axis]{stroke:var(--color-neutral-500)!important}.jxgbox path:hover{stroke-width:3.5!important}.graph-loading-overlay{align-items:center;background-color:#fffc;display:flex;inset:0;justify-content:center;position:absolute;z-index:5}.loading-spinner{animation:spinner-rotate .8s linear infinite;border:3px solid var(--color-neutral-200);border-radius:var(--radius-full);border-top-color:var(--color-primary-500);height:3rem;width:3rem}@keyframes spinner-rotate{to{transform:rotate(1turn)}}.graph-plot-container .grid line{stroke:var(--color-neutral-200);stroke-width:1}.graph-plot-container .x.axis path,.graph-plot-container .y.axis path{stroke:var(--color-neutral-500);stroke-width:1.5}.graph-plot-container .x.axis text,.graph-plot-container .y.axis text{fill:var(--color-neutral-600);font-family:var(--font-family-sans);font-size:11px}.graph-plot-container .x.axis .tick line,.graph-plot-container .y.axis .tick line{stroke:var(--color-neutral-400)}.graph-plot-container path.line{stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.graph-controls{bottom:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-1);position:absolute;right:var(--spacing-4);z-index:10}.graph-control-btn{align-items:center;background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-neutral-700);cursor:pointer;display:flex;font-size:var(--font-size-lg);height:2rem;justify-content:center;transition:all var(--transition-fast) var(--ease-default);width:2rem}.graph-control-btn:hover{background-color:var(--color-neutral-50);border-color:var(--color-neutral-300)}.graph-control-btn:active{background-color:var(--color-neutral-100)}@media (max-width:768px){.graph-controls{bottom:var(--spacing-2);right:var(--spacing-2)}.graph-control-btn{height:2.5rem;width:2.5rem}}.expr-editor{background-color:var(--color-neutral-0);display:flex;flex-direction:column;height:100%;min-height:0}.expr-editor-header{align-items:center;background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);display:flex;justify-content:space-between;padding:var(--spacing-2) var(--spacing-4)}.expr-editor-count{color:var(--color-neutral-500)}.expr-clear-btn,.expr-editor-count{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.expr-clear-btn{background-color:initial;border:1px solid var(--color-error-200);border-radius:var(--radius-md);color:var(--color-error-600);cursor:pointer;padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast) var(--ease-default)}.expr-clear-btn:hover{background-color:var(--color-error-50);border-color:var(--color-error-300)}.expr-list{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto}.expr-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-8) var(--spacing-4);text-align:center}.expr-empty .empty-icon{font-size:2.5rem;margin-bottom:var(--spacing-3);opacity:.5}.expr-empty p{color:var(--color-neutral-600);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0 0 var(--spacing-1) 0}.expr-empty span{color:var(--color-neutral-400);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed)}.expr-item{align-items:center;border-bottom:1px solid var(--color-neutral-100);display:flex;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--transition-fast) var(--ease-default)}.expr-item:hover{background-color:var(--color-neutral-50)}.expr-item.adding,.expr-item.editing{background-color:var(--color-primary-50);border-bottom-color:var(--color-primary-100)}.expr-color{border-radius:var(--radius-sm);flex-shrink:0;height:100%;min-height:32px;width:6px}.expr-number{background-color:var(--color-neutral-100);border-radius:var(--radius-full);color:var(--color-neutral-400);font-size:.625rem;font-weight:var(--font-weight-semibold)}.expr-number,.expr-type-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.expr-type-icon{color:var(--color-neutral-500);font-size:.875rem}.expr-item.type-function .expr-type-icon{color:var(--color-primary-600);font-style:italic;font-weight:var(--font-weight-semibold)}.expr-item.type-implicit .expr-type-icon{color:var(--color-primary-600)}.expr-item.type-point .expr-type-icon{color:var(--color-success-600)}.expr-item.type-segment .expr-type-icon{color:var(--color-neutral-700)}.expr-item.type-polygon .expr-type-icon{color:var(--color-primary-500)}.expr-item.type-angle .expr-type-icon{color:var(--color-error-500)}.expr-content{flex:1 1;min-width:0}.expr-display{border-radius:var(--radius-md);padding:var(--spacing-1-5) var(--spacing-2);transition:background-color var(--transition-fast) var(--ease-default)}.expr-display.clickable{cursor:pointer}.expr-display.clickable:hover{background-color:var(--color-neutral-100)}.expr-display:not(.clickable){cursor:default}.expr-display code{word-break:break-all}.expr-display code,.expr-input{color:var(--color-neutral-800);font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.expr-input{background-color:var(--color-neutral-0);border:1px solid var(--color-primary-300);border-radius:var(--radius-md);outline:none;padding:var(--spacing-1-5) var(--spacing-2);transition:border-color var(--transition-fast) var(--ease-default),box-shadow var(--transition-fast) var(--ease-default);width:100%}.expr-input:focus{border-color:var(--color-primary-500);box-shadow:var(--shadow-focus)}.expr-input::placeholder{color:var(--color-neutral-400);font-family:var(--font-family-sans)}.expr-actions{display:flex;gap:var(--spacing-1);opacity:0;transition:opacity var(--transition-fast) var(--ease-default)}.expr-item.adding .expr-actions,.expr-item.editing .expr-actions,.expr-item:hover .expr-actions{opacity:1}.expr-action-btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:.875rem;height:24px;justify-content:center;transition:all var(--transition-fast) var(--ease-default);width:24px}.expr-action-btn.save{background-color:var(--color-success-50);color:var(--color-success-600)}.expr-action-btn.save:hover{background-color:var(--color-success-100)}.expr-action-btn.save:disabled{cursor:not-allowed;opacity:.5}.expr-action-btn.cancel{background-color:var(--color-neutral-100);color:var(--color-neutral-500)}.expr-action-btn.cancel:hover{background-color:var(--color-neutral-200)}.expr-action-btn.delete{background-color:initial;color:var(--color-error-500);font-size:1.25rem;font-weight:var(--font-weight-bold)}.expr-action-btn.delete:hover{background-color:var(--color-error-50);color:var(--color-error-600)}.expr-add-btn{align-items:center;background-color:var(--color-neutral-50);border:2px dashed var(--color-neutral-300);border-radius:var(--radius-lg);color:var(--color-neutral-600);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--spacing-2);justify-content:center;margin:var(--spacing-3);padding:var(--spacing-3);transition:all var(--transition-fast) var(--ease-default)}.expr-add-btn:hover{background-color:var(--color-primary-50);border-color:var(--color-primary-300);color:var(--color-primary-600)}.expr-add-btn .add-icon{align-items:center;background-color:var(--color-neutral-200);border-radius:var(--radius-full);color:var(--color-neutral-400);display:flex;font-size:1.25rem;font-weight:var(--font-weight-bold);height:24px;justify-content:center;transition:all var(--transition-fast) var(--ease-default);width:24px}.expr-add-btn:hover .add-icon{background-color:var(--color-primary-100);color:var(--color-primary-600)}.expr-quick-add{border-top:1px solid var(--color-neutral-100);padding:var(--spacing-4)}.quick-add-label{color:var(--color-neutral-500);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin:0 0 var(--spacing-2) 0}.quick-add-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.quick-chip{background-color:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-full);color:var(--color-primary-700);cursor:pointer;font-family:var(--font-family-mono);font-size:var(--font-size-xs);padding:var(--spacing-1-5) var(--spacing-3);transition:all var(--transition-fast) var(--ease-default)}.quick-chip:hover{background-color:var(--color-primary-100);border-color:var(--color-primary-300);transform:translateY(-1px)}.expression-editor{background-color:var(--color-neutral-0);display:flex;flex-direction:column}.expression-editor-header{align-items:center;background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);display:flex;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4)}.expression-editor-title{align-items:center;color:var(--color-neutral-700);display:flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);gap:var(--spacing-2);margin:0}.expression-editor-icon{font-size:1rem}.expression-count{background-color:var(--color-neutral-200);border-radius:var(--radius-full);color:var(--color-neutral-500);font-size:var(--font-size-xs);padding:var(--spacing-0-5) var(--spacing-2)}.expression-list{flex:1 1;overflow-x:hidden;overflow-y:auto}.expression-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-6) var(--spacing-4);text-align:center}.expression-empty p{color:var(--color-neutral-600);font-size:var(--font-size-sm);margin:0 0 var(--spacing-1) 0}.expression-empty span{color:var(--color-neutral-400);font-size:var(--font-size-xs)}.expression-item{align-items:center;border-bottom:1px solid var(--color-neutral-100);display:flex;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4)}.expression-color-indicator{border-radius:var(--radius-sm);height:24px;width:4px}.expression-text{color:var(--color-neutral-700);cursor:pointer}.expression-edit-input,.expression-text{flex:1 1;font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.expression-edit-input{border:1px solid var(--color-primary-300);border-radius:var(--radius-md);outline:none;padding:var(--spacing-1) var(--spacing-2)}.expression-actions{display:flex;gap:var(--spacing-1)}.expression-btn{background:none;border:none;cursor:pointer;opacity:.6;padding:var(--spacing-1);transition:opacity var(--transition-fast)}.expression-btn:hover{opacity:1}.expression-add{border-top:1px solid var(--color-neutral-200);display:flex;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4)}.expression-add-input{border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);flex:1 1;font-size:var(--font-size-sm);outline:none;padding:var(--spacing-2) var(--spacing-3)}.expression-add-input:focus{border-color:var(--color-primary-500)}.expression-add-btn{background-color:var(--color-primary-500);border:none;border-radius:var(--radius-md);color:var(--color-neutral-0);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-2) var(--spacing-4)}.expression-add-btn:disabled{cursor:not-allowed;opacity:.5}.geometry-list{padding:var(--spacing-2)}.geometry-section{margin-bottom:var(--spacing-3)}.geometry-section:last-child{margin-bottom:0}.geometry-section-header{align-items:center;background-color:var(--color-neutral-50);border-radius:var(--radius-md);display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-1);padding:var(--spacing-2) var(--spacing-2)}.geometry-icon{font-size:.875rem}.geometry-title{color:var(--color-neutral-600);flex:1 1;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.5px;text-transform:uppercase}.geometry-count{background-color:var(--color-neutral-200);border-radius:var(--radius-full);color:var(--color-neutral-500);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-0-5) var(--spacing-2)}.geometry-items{display:flex;flex-direction:column;gap:var(--spacing-1)}.geometry-item{align-items:center;background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-100);border-radius:var(--radius-md);display:flex;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);transition:all var(--transition-fast) var(--ease-default)}.geometry-item:hover{background-color:var(--color-neutral-50);border-color:var(--color-neutral-200)}.geometry-color{border-radius:var(--radius-full);flex-shrink:0;height:8px;width:8px}.geometry-label{color:var(--color-neutral-800);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-width:24px}.geometry-coords{color:var(--color-neutral-500);flex:1 1;text-align:right}.geometry-coords,.geometry-style{font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.geometry-style{color:var(--color-neutral-400);letter-spacing:1px}.geometry-value{color:var(--color-error-600);font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.point-item .geometry-color{box-shadow:0 0 0 2px var(--color-neutral-0),0 0 0 3px currentColor}.segment-item .geometry-label{font-family:var(--font-family-mono)}.angle-item .geometry-color{background-color:var(--color-error-500)}.geometry-header{align-items:center;background-color:var(--color-primary-50);border-left:3px solid var(--color-primary-500);border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3)}.geometry-header-title{color:var(--color-primary-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.geometry-clear-btn{background-color:initial;border:1px solid var(--color-error-200);border-radius:var(--radius-md);color:var(--color-error-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast) var(--ease-default)}.geometry-clear-btn:hover{background-color:var(--color-error-50);border-color:var(--color-error-300)}.geometry-item.editing{background-color:var(--color-primary-50);border-color:var(--color-primary-300)}.geometry-coords.clickable,.geometry-label.clickable{border-radius:var(--radius-sm);cursor:pointer;padding:var(--spacing-0-5) var(--spacing-1);transition:background-color var(--transition-fast) var(--ease-default)}.geometry-coords.clickable:hover,.geometry-label.clickable:hover{background-color:var(--color-neutral-100)}.point-edit-form{align-items:center;display:flex;flex:1 1;gap:var(--spacing-1-5)}.point-coord-input{background-color:var(--color-neutral-0);border:1px solid var(--color-primary-300);border-radius:var(--radius-md);color:var(--color-neutral-800);font-family:var(--font-family-mono);font-size:var(--font-size-xs);outline:none;padding:var(--spacing-1) var(--spacing-1-5);transition:border-color var(--transition-fast) var(--ease-default);width:60px}.point-coord-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-100)}.point-label-input{background-color:var(--color-neutral-0);border:1px solid var(--color-primary-300);border-radius:var(--radius-md);color:var(--color-neutral-800);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);outline:none;padding:var(--spacing-1) var(--spacing-1-5);text-align:center;transition:border-color var(--transition-fast) var(--ease-default);width:48px}.point-label-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-100)}.point-edit-actions{display:flex;gap:var(--spacing-1);margin-left:auto}.geometry-actions{display:flex;gap:var(--spacing-1);opacity:0;transition:opacity var(--transition-fast) var(--ease-default)}.geometry-item:hover .geometry-actions{opacity:1}.geometry-action-btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:.8rem;height:22px;justify-content:center;transition:all var(--transition-fast) var(--ease-default);width:22px}.geometry-action-btn.save{background-color:var(--color-success-50);color:var(--color-success-600)}.geometry-action-btn.save:hover{background-color:var(--color-success-100)}.geometry-action-btn.cancel{background-color:var(--color-neutral-100);color:var(--color-neutral-500)}.geometry-action-btn.cancel:hover{background-color:var(--color-neutral-200)}.geometry-action-btn.delete{background-color:initial;color:var(--color-error-500);font-size:1.1rem;font-weight:var(--font-weight-bold)}.geometry-action-btn.delete:hover{background-color:var(--color-error-50);color:var(--color-error-600)}.expr-calc-value{background-color:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:var(--radius-sm);color:var(--color-neutral-600);display:inline-block;font-family:var(--font-family-sans);font-size:.85em;font-weight:var(--font-weight-medium);margin-left:var(--spacing-2);padding:2px 6px;vertical-align:middle}@media (max-width:768px){.expr-editor{padding-bottom:var(--spacing-4)}.expr-item{padding:var(--spacing-3)}.expr-actions{opacity:1}.geometry-list{padding:var(--spacing-3)}.geometry-item{padding:var(--spacing-2-5) var(--spacing-3)}.geometry-actions{opacity:1}.point-edit-form{flex-wrap:wrap;gap:var(--spacing-1)}.point-coord-input{width:55px}.point-label-input{width:44px}}.agent-log{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:13px;overflow:hidden}.agent-log-header{align-items:center;background:#222;border-bottom:1px solid #2a2a2a;display:flex;justify-content:space-between;padding:10px 14px}.agent-log-title{align-items:center;color:#e1e1e1;display:flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.5px;text-transform:uppercase}.agent-log-icon{color:#fbbf24;font-size:14px}.agent-log-timer{align-items:center;color:#60a5fa;display:flex;font-size:12px;font-weight:500;gap:6px}.timer-dot{animation:pulse-dot 1s ease-in-out infinite;background:#60a5fa;border-radius:50%;height:6px;width:6px}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.agent-log-content{max-height:180px;overflow-y:auto;padding:6px 0}.agent-log-entry{padding:6px 14px;transition:background .15s ease}.agent-log-entry:hover{background:#252525}.agent-log-entry.active{background:#60a5fa1a}.log-line{gap:10px;min-height:24px}.log-icon,.log-line{align-items:center;display:flex}.log-icon{flex-shrink:0;font-size:12px;height:16px;justify-content:center;width:16px}.log-icon.spinning{animation:spin 1s linear infinite;color:#60a5fa}@keyframes spin{to{transform:rotate(1turn)}}.agent-log-entry.success .log-icon{color:#4ade80}.agent-log-entry.error .log-icon{color:#fbbf24}.agent-log-entry.pending .log-icon{color:#9ca3af}.log-label{color:#d1d5db;flex:1 1;font-size:13px}.log-text{color:#9ca3af;font-size:13px}.log-status{border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.3px;padding:2px 8px;text-transform:uppercase}.log-status.success{background:#4ade8026;color:#4ade80}.log-status.error{background:#fbbf2426;color:#fbbf24}.log-status.pending{background:#60a5fa26;color:#60a5fa}.log-expand{color:#6b7280;font-size:10px;text-align:center;transition:color .15s ease;width:16px}.log-line:hover .log-expand{color:#9ca3af}.log-details{background:#252525;border-left:2px solid #60a5fa;border-radius:6px;margin:8px 0 4px 26px;padding:10px 12px}.log-details pre{color:#9ca3af;font-size:11px;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}.agent-log-footer{background:#1f1f1f;border-top:1px solid #2a2a2a;font-size:11px;padding:8px 14px}.footer-success{color:#4ade80}.footer-warning{color:#fbbf24}.agent-log-content::-webkit-scrollbar{width:6px}.agent-log-content::-webkit-scrollbar-track{background:#0000}.agent-log-content::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:3px}.agent-log-content::-webkit-scrollbar-thumb:hover{background:#4a4a4a}.agent-steps-compact{background:#f1f5f9;border-radius:6px;display:flex;flex-direction:column;font-size:12px;overflow:hidden}.compact-header{align-items:center;cursor:pointer;display:flex;gap:8px;padding:6px 12px;transition:background .15s ease}.compact-header:hover{background:#e2e8f0}.compact-icon{font-size:11px}.agent-steps-compact .compact-icon{color:#4ade80}.compact-text{color:#64748b;font-weight:500}.compact-confidence{border-left:1px solid #e2e8f0;color:#94a3b8;font-size:11px;padding-left:8px}.compact-toggle{color:#94a3b8;font-size:10px;margin-left:auto;transition:transform .2s ease}.compact-details{background:#f8fafc;border-top:1px solid #e2e8f0;padding:8px 12px}.compact-step{align-items:flex-start;display:flex;font-size:11px;gap:8px;padding:4px 0}.compact-step .step-icon{align-items:center;display:flex;flex-shrink:0;font-size:10px;height:14px;justify-content:center;width:14px}.compact-step.success .step-icon{color:#22c55e}.compact-step.error .step-icon{color:#f59e0b}.compact-step.pending .step-icon{color:#94a3b8}.compact-step .step-label{color:#475569;font-weight:500;min-width:60px}.compact-step .step-message{color:#64748b;flex:1 1;word-break:break-word}@media (max-width:480px){.agent-log{font-size:12px}.agent-log-header{padding:8px 12px}.agent-log-entry{padding:5px 12px}.log-status{font-size:9px;padding:2px 6px}.agent-log-content{max-height:150px}}:root{--premium-gradient:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899)}.landing-page{background-color:#fcfcfd;color:var(--color-neutral-800);display:flex;flex-direction:column;font-family:"Outfit",var(--font-family-sans);min-height:100vh;overflow-x:hidden;position:relative}.landing-container{margin:0 auto;max-width:1200px;padding:0 24px;width:100%}.bg-decorations{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.blob{animation:move-blobs 20s cubic-bezier(.45,0,.55,1) infinite alternate;border-radius:50%;filter:blur(80px);opacity:.5;position:absolute}.blob-1{background:radial-gradient(circle,#6366f14d 0,#6366f100 70%);height:500px;right:-100px;top:-100px;width:500px}.blob-2{animation-delay:-5s;background:radial-gradient(circle,#ec489933 0,#ec489900 70%);bottom:-50px;height:400px;left:-100px;width:400px}.blob-3{animation-delay:-10s;background:radial-gradient(circle,#a855f726 0,#a855f700 70%);height:600px;left:30%;top:40%;width:600px}@keyframes move-blobs{0%{transform:translate(0) scale(1)}to{transform:translate(50px,100px) scale(1.1)}}.bg-mesh{background-image:radial-gradient(at 10% 10%,#6366f10d 0,#0000 50%),radial-gradient(at 90% 90%,#ec48990d 0,#0000 50%);height:100%;left:0;position:absolute;top:0;width:100%}.landing-nav{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:#fff9;border-bottom:1px solid #fff6;border-bottom:1px solid var(--glass-border);display:flex;height:64px;left:0;position:fixed;right:0;top:0;transition:all .3s ease;z-index:var(--z-sticky)}.nav-menu-link{background:none;border:none;border-radius:8px;color:var(--color-neutral-700);cursor:pointer;font-size:16px;font-weight:600;padding:8px 16px;transition:all .3s ease}.nav-menu-link:hover{background:#6366f10d;color:#6366f1}.nav-content{justify-content:space-between;width:100%}.logo,.nav-content{align-items:center;display:flex}.logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899);background:var(--premium-gradient);-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800;letter-spacing:-1px}.btn-primary-sm{background:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899);background:var(--premium-gradient);border:none;border-radius:12px;box-shadow:0 4px 15px #6366f133;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:10px 24px;transition:all .3s cubic-bezier(.23,1,.32,1)}.btn-primary-sm:hover{box-shadow:0 8px 25px #6366f14d;transform:translateY(-2px)}.hero-section{padding-bottom:80px;padding-top:180px;position:relative;z-index:1}.hero-text-wrapper{margin:0 auto;max-width:800px;text-align:center}.hero-title{color:#1a1b1e;font-size:64px;font-weight:900;letter-spacing:-2.5px;line-height:1.1;margin-bottom:24px}.text-gradient{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899);background:var(--premium-gradient);-webkit-background-clip:text;background-clip:text}.hero-description{color:#4b5563;font-size:22px;font-weight:500;letter-spacing:-.5px}.content-cards-section{padding:60px 0 120px;position:relative;z-index:1}.section-header{align-items:center;display:flex;flex-direction:column;margin-bottom:60px}.section-title{color:#1a1b1e;font-size:32px;font-weight:800;margin-bottom:12px}.section-underline{background:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899);background:var(--premium-gradient);border-radius:2px;height:4px;width:60px}.content-grid{display:flex;justify-content:center}.content-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffb3;background:var(--glass-bg);border:1px solid #fff6;border:1px solid var(--glass-border);border-radius:32px;box-shadow:0 10px 30px #00000008;cursor:pointer;max-width:420px;overflow:hidden;transition:all .5s cubic-bezier(.23,1,.32,1);width:100%}.content-card:hover{border-color:#6366f14d;box-shadow:0 40px 80px #6366f126;transform:translateY(-15px) scale(1.02)}.content-thumbnail{height:240px;overflow:hidden;position:relative;width:100%}.content-thumbnail img{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.23,1,.32,1);width:100%}.content-card:hover .content-thumbnail img{transform:scale(1.1)}.thumbnail-overlay{align-items:center;background:#6366f166;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.thumbnail-overlay span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0003;border:1px solid #ffffff4d;border-radius:100px;color:#fff;font-size:18px;font-weight:800;padding:12px 24px}.content-card:hover .thumbnail-overlay{opacity:1}.content-info{padding:32px}.content-title{color:#1a1b1e;font-size:24px;font-weight:800;margin-bottom:12px}.content-desc{color:#6b7280;font-size:16px;line-height:1.6;margin-bottom:24px}.content-footer{align-items:center;display:flex;justify-content:space-between}.content-link{color:#6366f1;font-size:16px;font-weight:700}.arrow-circle{align-items:center;background:#f3f4f6;border-radius:50%;display:flex;font-weight:800;height:32px;justify-content:center;transition:all .3s ease;width:32px}.content-card:hover .arrow-circle{background:#6366f1;color:#fff;transform:rotate(-45deg)}.animate-up{animation:fadeInUp .8s cubic-bezier(.23,1,.32,1) forwards}.animate-up-delay{animation:fadeInUp .8s cubic-bezier(.23,1,.32,1) .2s forwards;opacity:0}.animate-up-delay-2{animation:fadeInUp .8s cubic-bezier(.23,1,.32,1) .4s forwards;opacity:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.hero-title{font-size:42px;letter-spacing:-1.5px}.hero-description{font-size:18px}.content-card{max-width:100%}}.app-footer{background-color:initial;border-top:1px solid #0000000d;margin-top:auto;padding:4rem 0 2rem;position:relative;width:100%;z-index:10}.footer-content{align-items:center;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;max-width:1200px;padding:0 1.5rem}.footer-logo-text{color:var(--color-text-primary);font-family:var(--font-heading);font-size:1.25rem;font-weight:700}.footer-info{flex-direction:column;font-size:.875rem}.footer-info,.footer-info-row{align-items:center;display:flex;gap:.5rem}.footer-info-row{flex-wrap:wrap;justify-content:center}.divider,.footer-copyright{color:var(--color-text-tertiary);font-size:.75rem}.footer-copyright{margin-top:.5rem}@media (max-width:768px){.footer-info-row{flex-direction:column;gap:.25rem}.divider{display:none}}.app-layout{flex-direction:column;height:100vh}.app-layout,.app-main{display:flex;overflow:hidden}.app-main{flex:1 1;flex-direction:column;position:relative}.app-main.scrollable{overflow-y:auto}:root{--image-gen-bg:#f8fafc;--glass-bg:#ffffffb3;--glass-border:#fff6;--primary-gradient:linear-gradient(135deg,#6366f1,#a855f7);--secondary-gradient:linear-gradient(135deg,#f472b6,#fb7185);--card-shadow:0 8px 32px 0 #1f268712;--adaptive-min-width:320px}.image-gen-page{background-color:#f8fafc;background-color:var(--image-gen-bg);box-sizing:border-box;flex-direction:column;font-family:var(--font-family-sans);gap:var(--spacing-8);margin:0 auto;max-width:1200px;min-height:calc(100vh - var(--header-height));padding:var(--spacing-8) var(--spacing-6)}.image-gen-main,.image-gen-page{display:flex;flex:1 1;width:100%}.image-gen-main{flex-direction:column}.image-gen-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffb3;background:var(--glass-bg);border:1px solid #fff6;border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:0 8px 32px 0 #1f268712;box-shadow:var(--card-shadow);padding:var(--spacing-10) 0;position:relative;text-align:center}.back-btn{align-items:center;background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);color:var(--color-neutral-600);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--spacing-1);left:var(--spacing-6);padding:var(--spacing-2) var(--spacing-4);position:absolute;top:50%;transform:translateY(-50%);transition:all var(--transition-normal)}.back-btn:hover{background:var(--color-neutral-50);border-color:var(--color-primary-200);color:var(--color-primary-600);transform:translateY(-50%) translateX(-4px)}.image-gen-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;font-size:var(--font-size-4xl);font-weight:800;letter-spacing:-.02em;margin-bottom:var(--spacing-2)}.image-gen-header p{color:var(--color-neutral-500);font-size:var(--font-size-lg);margin:0 auto;max-width:600px}.header-example-image{display:block;height:auto;margin:0 auto var(--spacing-6);max-width:400px}.image-gen-layout{align-items:flex-start;display:flex;gap:var(--spacing-8);width:100%}.image-gen-content{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-8);min-width:0}.image-gen-sidebar{display:none;flex-shrink:0;position:-webkit-sticky;position:sticky;top:var(--spacing-8);width:160px}@media (min-width:1024px){.image-gen-sidebar{display:block}}.input-section{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#ffffffb3;background:var(--glass-bg);border:1px solid #fff6;border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:0 8px 32px 0 #1f268712;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:var(--spacing-6);margin:0 auto;max-width:1200px;padding:var(--spacing-8);width:100%}.category-selector{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center}.category-btn{align-items:center;background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-full);color:var(--color-neutral-600);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--spacing-2);padding:var(--spacing-2-5) var(--spacing-5);transition:all var(--transition-normal)}.category-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-300);color:var(--color-primary-600)}.category-btn.active{background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);border:none;box-shadow:0 4px 12px #6366f14d;color:#fff;transform:scale(1.05)}.cat-icon{font-size:1.2rem}.step-container{display:flex;flex-direction:column;gap:var(--spacing-3);width:100%}.step-container.horizontal{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-top:var(--spacing-4)}.step-label{align-items:center;color:var(--color-neutral-700);display:flex;font-size:var(--font-size-md);font-weight:700;gap:var(--spacing-2)}.step-label:before{background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);border-radius:var(--radius-full);content:"";display:inline-block;height:16px;width:4px}.prompt-input.mini{font-size:var(--font-size-md);min-height:80px;padding:var(--spacing-4)}.ratio-selector-container{align-items:center;display:flex;gap:var(--spacing-4)}.setting-label{color:var(--color-neutral-500);font-size:var(--font-size-sm);font-weight:600}.upload-placeholder.main-upload{background:#fff9;border-width:3px;padding:var(--spacing-12)}.upload-subtext{color:var(--color-neutral-400);font-size:var(--font-size-xs);margin-top:calc(var(--spacing-1)*-1)}.reference-preview{background:#f1f5f9;height:300px}.reference-image-section{display:flex;justify-content:center;margin:var(--spacing-2) 0}.reference-upload-label{cursor:pointer;max-width:400px;width:100%}.upload-placeholder{align-items:center;background:#fff6;border:2px dashed var(--color-neutral-200);border-radius:var(--radius-xl);color:var(--color-neutral-500);display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-6);transition:all var(--transition-normal)}.upload-placeholder.dragging,.upload-placeholder:hover{background:#fffc;border-color:var(--color-primary-300);color:var(--color-primary-600)}.upload-placeholder.dragging{background:#fff;box-shadow:0 0 0 4px #6366f11a;transform:scale(1.02)}.upload-icon{font-size:2rem}.upload-text{font-size:var(--font-size-sm);font-weight:600}.reference-preview-container{border:2px solid var(--color-primary-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;position:relative;width:100%}.reference-preview{background-color:#f1f5f9;display:block;height:200px;object-fit:contain;width:100%}.remove-reference-btn{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;position:absolute;right:var(--spacing-2);top:var(--spacing-2);transition:background .2s;width:28px}.remove-reference-btn:hover{background:#ef4444e6}.ratio-selector{display:flex;gap:var(--spacing-3);justify-content:center;margin-top:calc(var(--spacing-2)*-1)}.ratio-btn{align-items:center;background:#fff6;border:1px solid var(--color-neutral-100);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;min-width:80px;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-normal)}.ratio-btn:hover{background:#fffc;border-color:var(--color-primary-200)}.ratio-btn.active{background:#fff;border-color:var(--color-primary-400);box-shadow:0 4px 12px #6366f11a}.ratio-label{color:var(--color-neutral-700);font-size:var(--font-size-sm);font-weight:700}.ratio-desc{color:var(--color-neutral-400);font-size:10px}.ratio-btn.active .ratio-label{color:var(--color-primary-600)}.prompt-input{background:#ffffff80;border:2px solid var(--color-neutral-100);border-radius:var(--radius-xl);font-family:inherit;font-size:var(--font-size-lg);min-height:140px;outline:none;padding:var(--spacing-6);resize:none;transition:all var(--transition-normal);width:100%}.prompt-input:focus{background:#fff;border-color:var(--color-primary-400);box-shadow:0 0 0 4px #6366f114}.generate-btn{align-items:center;align-self:flex-end;background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);border:none;border-radius:var(--radius-full);box-shadow:0 4px 15px #6366f133;color:#fff;cursor:pointer;display:flex;font-size:var(--font-size-lg);font-weight:700;gap:var(--spacing-2);padding:var(--spacing-4) var(--spacing-10);transition:all var(--transition-normal)}.generate-btn:hover:not(:disabled){box-shadow:0 8px 25px #6366f14d;transform:translateY(-2px) scale(1.02)}.generate-btn:disabled{background:var(--color-neutral-300);box-shadow:none;cursor:not-allowed;transform:none}.gallery-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-4);margin-left:auto;margin-right:auto;max-width:1600px;width:100%}.gallery-header h2{color:var(--color-neutral-800);font-size:var(--font-size-2xl);font-weight:700}.clear-gallery-btn{background:#fff;border:1px solid var(--color-error-200);border-radius:var(--radius-lg);color:var(--color-error-600);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-normal)}.clear-gallery-btn:hover{background:var(--color-error-50);color:var(--color-error-700);transform:translateY(-2px)}.gallery-section{min-height:400px;width:100%}.image-grid{grid-gap:var(--spacing-8);animation:fadeIn .6s cubic-bezier(.16,1,.3,1);display:grid;gap:var(--spacing-8);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-template-columns:repeat(auto-fill,minmax(var(--adaptive-min-width),1fr))}.image-card{background:#fff;border:1px solid var(--color-neutral-100);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);overflow:hidden;padding:var(--spacing-3);position:relative;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.image-card:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-2xl);transform:translateY(-10px) rotate(1deg)}.image-card img{border-radius:var(--radius-xl);display:block;height:auto;transition:transform .5s ease;width:100%}.image-card:hover img{transform:scale(1.02)}.image-preview-wrapper{border-radius:var(--radius-xl);cursor:pointer;overflow:hidden;position:relative}.image-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000004d;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.image-preview-wrapper:hover .image-overlay{opacity:1}.view-icon{background:#fff3;border:1px solid #ffffff4d;border-radius:var(--radius-full);color:#fff;font-size:var(--font-size-sm);font-weight:700;padding:var(--spacing-2) var(--spacing-4)}.image-actions{background:linear-gradient(0deg,#0009,#0000);bottom:-60px;display:flex;justify-content:center;left:0;padding:var(--spacing-4);position:absolute;right:0;transition:bottom .3s ease}.image-card:hover .image-actions{bottom:0}.download-btn{background:#fff;border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--color-neutral-900);cursor:pointer;font-size:var(--font-size-sm);font-weight:700;padding:var(--spacing-2) var(--spacing-6);transition:all var(--transition-fast)}.download-btn:hover{background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);color:#fff;transform:scale(1.05)}.empty-state{background:#ffffffb3;background:var(--glass-bg);border:1px dashed var(--color-neutral-300);border-radius:var(--radius-2xl);color:var(--color-neutral-400);padding:var(--spacing-20) 0;text-align:center}.empty-icon{filter:grayscale(1);font-size:5rem;margin-bottom:var(--spacing-4);opacity:.5}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.lightbox-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ae6;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-8);position:fixed;right:0;top:0;z-index:1000}.lightbox-content{align-items:center;background:#fff;border-radius:var(--radius-2xl);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;gap:var(--spacing-4);max-height:90vh;max-width:90vw;padding:var(--spacing-4);position:relative}.lightbox-content img{border-radius:var(--radius-xl);max-height:calc(90vh - 120px);max-width:100%;object-fit:contain}.close-lightbox{align-items:center;background:#fff;border:none;border-radius:50%;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:absolute;right:-20px;top:-20px;transition:transform .2s ease;width:40px}.close-lightbox:hover{transform:scale(1.1) rotate(90deg)}.lightbox-actions{display:flex;justify-content:center;width:100%}.download-btn-large{background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);border:none;border-radius:var(--radius-full);box-shadow:0 4px 15px #6366f14d;color:#fff;cursor:pointer;font-weight:700;padding:var(--spacing-3) var(--spacing-10);transition:all .2s ease}.download-btn-large:hover{box-shadow:0 8px 25px #6366f166;transform:translateY(-2px)}@media (max-width:768px){.image-gen-header h1{font-size:var(--font-size-3xl)}.back-btn{display:inline-flex;margin-bottom:var(--spacing-4);position:static;transform:none}.input-section{padding:var(--spacing-5)}.image-grid{--adaptive-min-width:100%}}.url-input-container{background:#fff9;border:2px solid var(--color-primary-100);border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:var(--spacing-4);max-width:400px;padding:var(--spacing-6);width:100%}.url-input{border:2px solid var(--color-neutral-200);border-radius:var(--radius-lg);font-size:var(--font-size-md);outline:none;padding:var(--spacing-3) var(--spacing-4);transition:all var(--transition-normal);width:100%}.url-input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.url-input-actions{display:flex;gap:var(--spacing-3);justify-content:flex-end}.url-cancel-btn,.url-confirm-btn{border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-normal)}.url-confirm-btn{background:linear-gradient(135deg,#6366f1,#a855f7);background:var(--primary-gradient);color:#fff}.url-cancel-btn{background:var(--color-neutral-100);color:var(--color-neutral-600)}.url-cancel-btn:hover{background:var(--color-neutral-200)}.upload-text-sub{color:var(--color-neutral-400);font-size:var(--font-size-xs);margin-top:calc(var(--spacing-1)*-1)}.url-mode-btn{background:none;border:none;color:var(--color-primary-600);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;margin-top:var(--spacing-3);opacity:.8;text-decoration:underline;transition:all .2s}.url-mode-btn:hover{opacity:1;transform:translateY(-1px)}