*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--theme-font-family,system-ui,-apple-system,sans-serif);line-height:1.5;color:var(--theme-textPrimary);background:var(--theme-background)}button{border:none;background:none;cursor:pointer;font:inherit}input,select,textarea{font:inherit;border:none;outline:none}ol,ul{list-style:none}a{text-decoration:none;color:inherit}.flex-row{display:flex;align-items:center;gap:16px}.flex-col{display:flex;flex-direction:column}.theme-button{background:var(--theme-gradient-button);border:1px solid var(--theme-primary);color:var(--theme-textPrimary);border-radius:var(--theme-border-radius);font-size:var(--theme-font-size-normal);font-weight:var(--theme-font-weight-medium);padding:calc(var(--theme-spacing-form)/2) var(--theme-spacing-form);box-shadow:var(--theme-button-shadow);cursor:pointer;font-family:var(--theme-font-family);transition:all .2s;display:flex;align-items:center;gap:4px}.theme-button:hover{opacity:.9;transform:translateY(-1px)}.theme-button:disabled{opacity:.5;cursor:not-allowed}.dropdown-container{position:absolute;background:var(--theme-windowBg);border:1px solid var(--theme-borderColor);border-radius:var(--theme-border-radius);box-shadow:var(--theme-window-shadow);z-index:50;overflow:hidden;font-family:var(--theme-font-family);display:flex;flex-direction:column}.dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--theme-spacing-menu);background:var(--theme-windowHeader);border-bottom:1px solid var(--theme-borderColor)}.dropdown-content{background:var(--theme-background);overflow-y:auto;flex:1 1;min-height:0}.dropdown-content,.menu-item{padding:var(--theme-spacing-menu)}.menu-item{display:flex;align-items:center;gap:var(--theme-spacing-menu);border-radius:calc(var(--theme-border-radius) / 2);cursor:pointer;border:1px solid transparent;transition:all .2s;color:var(--theme-textPrimary);font-size:calc(var(--theme-font-size-small) + 1px);font-weight:var(--theme-font-weight-medium)}.menu-item:hover{background:var(--theme-windowHeader);border-color:var(--theme-borderColor)}.menu-item-number{color:var(--theme-textSecondary);min-width:20px;font-size:var(--theme-font-size-small)}.menu-item-label,.menu-item-number{font-weight:var(--theme-font-weight-medium)}.menu-item-label{flex:1 1;font-size:calc(var(--theme-font-size-small) + 1px);color:var(--theme-textPrimary)}.menu-item-selected{background:var(--theme-selectedBg);color:var(--theme-primary)}.text-primary{color:var(--theme-textPrimary)}.text-secondary{color:var(--theme-textSecondary)}.font-small{font-size:var(--theme-font-size-small)}.font-normal{font-size:var(--theme-font-size-normal)}.font-large{font-size:var(--theme-font-size-large)}.font-title{font-size:var(--theme-font-size-title)}.font-medium{font-weight:var(--theme-font-weight-medium)}.font-bold{font-weight:var(--theme-font-weight-bold)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center{display:flex;align-items:center;justify-content:center}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:40}.tabbar{display:flex;gap:6px;border-bottom:1px solid var(--theme-borderColor)}.tab{padding:6px 10px;background:var(--theme-windowHeader);color:var(--theme-textPrimary);font-size:var(--theme-font-size-small);font-weight:var(--theme-font-weight-medium);border:1px solid var(--theme-borderColor);border-bottom:none;border-radius:6px 6px 0 0}.tab--active{background:var(--theme-gradient-button);border-color:var(--theme-primary);box-shadow:var(--theme-button-shadow)}.loading-container{display:flex;align-items:center;justify-content:center;height:100%}.loading-content{display:flex;flex-direction:column;align-items:center;gap:8px}.loading-spinner{width:32px;height:32px;border-top:2px solid var(--theme-borderColor);border:2px solid var(--theme-borderColor);border-top-color:var(--theme-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-text{font-size:var(--theme-font-size-small);color:var(--theme-textSecondary)}input[type=range]{accent-color:var(--theme-accent)}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background-color:var(--theme-fieldBg);border:1px solid color-mix(in srgb,var(--theme-borderColor) 20%,var(--theme-textSecondary) 80%);border-radius:4px;position:relative;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.1)}input[type=checkbox]:checked{background-color:var(--theme-fieldBg);border:1px solid var(--theme-borderColor)}input[type=checkbox]:checked:after{content:"✓";position:absolute;color:var(--theme-textPrimary);font-size:16px;font-weight:600;line-height:1}input[type=range]::-webkit-slider-thumb{background-color:var(--theme-accent)}input[type=range]::-moz-range-thumb{background-color:var(--theme-accent)}.form-input::placeholder,.theme-input::placeholder{color:color-mix(in srgb,var(--theme-textSecondary) 50%,transparent);opacity:.7}.desktop-container{width:100vw;height:100vh;background:var(--theme-background);overflow:hidden;position:relative;font-family:var(--theme-font-family)}.desktop-header{position:absolute;top:0;left:0;right:0;height:48px;background:var(--theme-windowHeader);border-bottom:1px solid var(--theme-borderColor);box-shadow:var(--theme-window-shadow);z-index:40;display:flex;align-items:center;justify-content:space-between;padding:0 16px}@keyframes desktopContextMenuAppear{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.desktop-icon{position:absolute;width:80px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);padding:8px;border-radius:calc(var(--theme-border-radius) + 4px)}.desktop-icon:hover{transform:translateY(-4px) scale(1.08)}.desktop-icon.dragging{opacity:.8;z-index:50;transform:translateY(-6px) scale(1.1) rotate(3deg);filter:drop-shadow(0 12px 24px rgba(0,0,0,.25))}.desktop-icon.selected{background:linear-gradient(145deg,color-mix(in srgb,var(--theme-accent) 30%,transparent),color-mix(in srgb,var(--theme-primary) 20%,transparent));border:2px solid var(--theme-primary);border-radius:calc(var(--theme-border-radius) + 4px);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 20%,transparent),0 8px 20px rgba(0,0,0,.15)}.desktop-icon-image{width:48px;height:48px;background:linear-gradient(145deg,var(--theme-gradient-button),color-mix(in srgb,var(--theme-primary) 80%,var(--theme-secondary) 20%));border-radius:calc(var(--theme-border-radius) + 2px);margin-bottom:8px;box-shadow:0 4px 12px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.3);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.desktop-icon-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.3),transparent 50%,rgba(0,0,0,.1));border-radius:inherit}.desktop-icon:hover .desktop-icon-image{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.3),0 0 0 2px color-mix(in srgb,var(--theme-primary) 40%,transparent)}.desktop-icon-image-inner{width:28px;height:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--theme-background) 95%,var(--theme-primary) 5%),color-mix(in srgb,var(--theme-windowBg) 90%,var(--theme-accent) 10%));border-radius:calc(var(--theme-border-radius) / 2);box-shadow:inset 0 2px 4px rgba(0,0,0,.1),inset 0 -1px 2px rgba(255,255,255,.8);border:1px solid color-mix(in srgb,var(--theme-borderColor) 80%,var(--theme-primary) 20%);position:relative;z-index:1}.desktop-icon-image-inner:after{content:"📱";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;opacity:.7}.desktop-icon-label{font-size:calc(var(--theme-font-size-small) + 1px);text-align:center;line-height:1.3;padding:4px 8px;border-radius:calc(var(--theme-border-radius) + 2px);transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:var(--theme-font-weight-medium);color:var(--theme-textPrimary);background:linear-gradient(145deg,rgba(255,255,255,.95),color-mix(in srgb,var(--theme-background) 90%,var(--theme-windowHeader) 10%));box-shadow:0 2px 8px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.8);border:1px solid color-mix(in srgb,var(--theme-borderColor) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-icon:hover .desktop-icon-label{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.9);background:linear-gradient(145deg,rgba(255,255,255,.98),color-mix(in srgb,var(--theme-background) 95%,var(--theme-accent) 5%))}.desktop-icon.selected .desktop-icon-label{background:linear-gradient(145deg,var(--theme-primary),color-mix(in srgb,var(--theme-primary) 80%,var(--theme-secondary) 20%));color:white;box-shadow:0 4px 16px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.3);border-color:rgba(255,255,255,.3)}.desktop-icon.selected .desktop-icon-image-inner:after{color:white;opacity:1}.desktop-icon.selected{animation:iconGlow 2s ease-in-out infinite alternate}@keyframes iconGlow{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 20%,transparent),0 8px 20px rgba(0,0,0,.15)}to{box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 35%,transparent),0 8px 24px rgba(0,0,0,.2),0 0 20px color-mix(in srgb,var(--theme-primary) 20%,transparent)}}.desktop-icon.dragging{animation:none}.desktop-icon.dragging .desktop-icon-image{transform:rotate(-2deg);box-shadow:0 12px 32px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.3)}.desktop-icon.dragging .desktop-icon-label{transform:rotate(1deg) translateY(-1px);opacity:.9}.desktop-icon-context-menu{background:linear-gradient(145deg,rgba(255,255,255,.98),color-mix(in srgb,var(--theme-windowBg) 95%,var(--theme-accent) 5%));border:2px solid color-mix(in srgb,var(--theme-borderColor) 70%,var(--theme-primary) 30%);border-radius:calc(var(--theme-border-radius) + 4px);box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.5),inset 0 1px 0 rgba(255,255,255,.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:desktopContextMenuAppear .2s cubic-bezier(.4,0,.2,1);min-width:180px}.desktop-icon-context-menu .menu-item{gap:calc(var(--theme-spacing-menu) + 2px);padding:calc(var(--theme-spacing-menu) + 4px) calc(var(--theme-spacing-menu) + 6px);border-radius:calc(var(--theme-border-radius) + 1px);transition:all .25s cubic-bezier(.4,0,.2,1);font-size:calc(var(--theme-font-size-small) + 1px);margin-bottom:2px;position:relative;overflow:hidden}.desktop-icon-context-menu .menu-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(145deg,rgba(255,255,255,0),rgba(255,255,255,.1));opacity:0;transition:opacity .25s}.desktop-icon-context-menu .menu-item:hover{background:linear-gradient(145deg,color-mix(in srgb,var(--theme-accent) 25%,rgba(255,255,255,.8)),color-mix(in srgb,var(--theme-primary) 15%,rgba(255,255,255,.9)));border-color:color-mix(in srgb,var(--theme-primary) 40%,transparent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.6);color:var(--theme-primary)}.desktop-icon-context-menu .menu-item:hover:before{opacity:1}.desktop-icon-context-menu .menu-item:active{transform:translateY(0);box-shadow:0 2px 6px rgba(0,0,0,.15),inset 0 1px 2px rgba(0,0,0,.1)}.desktop-icon-context-menu .menu-item.text-red-600{color:#dc2626}.desktop-icon-context-menu .menu-item.text-red-600:hover{background:linear-gradient(145deg,color-mix(in srgb,#fef2f2 90%,#dc2626 10%),color-mix(in srgb,#fee2e2 85%,#dc2626 15%));border-color:color-mix(in srgb,#dc2626 40%,transparent);color:#dc2626}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-main-container{display:flex;flex-direction:row;height:100%;width:100%;overflow:hidden;font-family:var(--theme-font-family)}.chat-sidebar-panel{width:300px;min-width:300px;max-width:300px;border-right:1px solid var(--theme-borderColor);background:var(--theme-windowHeader);flex-direction:column}.chat-content-panel,.chat-sidebar-panel{display:flex;height:100%;overflow:hidden}.chat-content-panel{flex:1 1;flex-direction:column;min-height:0}.chat-conversation-area{flex:1 1 auto;overflow-y:auto;padding:calc(var(--theme-spacing-form) * 3);min-height:0;background:var(--theme-background)}.chat-empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--theme-textSecondary);font-size:var(--theme-font-size-normal);font-family:var(--theme-font-family)}.chat-messages-container{padding-bottom:var(--theme-spacing-form)}.chat-message{display:flex;flex-direction:column;margin-bottom:var(--theme-spacing-form)}.chat-message.user{align-items:flex-end}.chat-message.assistant{align-items:flex-start}.chat-model-header{display:flex;align-items:center;gap:6px;font-size:calc(var(--theme-font-size-small) - 1px);color:var(--theme-textSecondary);margin-bottom:4px;font-family:var(--theme-font-family)}.chat-model-icon{font-size:calc(var(--theme-font-size-small) + 1px)}.chat-model-name{font-weight:var(--theme-font-weight-medium)}.chat-bubble{padding:calc(var(--theme-spacing-form) + 2px);border-radius:var(--theme-border-radius);font-size:var(--theme-font-size-small);white-space:pre-wrap;word-break:break-words;font-family:var(--theme-font-family)}.chat-bubble.user{max-width:70%;color:var(--theme-textPrimary);border-bottom-right-radius:4px;background:var(--theme-windowHeader);border:1px solid var(--theme-borderColor)}.chat-bubble.assistant{width:100%;color:var(--theme-textPrimary);border-bottom-left-radius:4px;background:var(--theme-fieldBg);border:1px solid var(--theme-borderColor)}.chat-form-area{flex-shrink:0;border-top:1px solid var(--theme-borderColor);padding:var(--theme-spacing-form) calc(var(--theme-spacing-form) * 3);flex-direction:column;background:var(--theme-background)}.chat-form-area,.chat-input-container{display:flex;gap:calc(var(--theme-spacing-form) + 2px)}.chat-input-container{flex:1 1 auto;min-height:0;flex-direction:column}.chat-textarea{width:100%;height:100%;resize:none;padding:calc(var(--theme-spacing-form) + 2px);line-height:1.4;font-family:var(--theme-font-family);font-size:var(--theme-font-size-normal)}.chat-form-controls{justify-content:space-between;flex-wrap:wrap}.chat-button-group,.chat-form-controls{display:flex;align-items:center;gap:var(--theme-spacing-form)}.chat-delete-button{color:#dc2626!important}.chat-loading-indicator{display:flex;justify-content:flex-start;margin-bottom:var(--theme-spacing-form)}.chat-loading-bubble{max-width:80%;padding:calc(var(--theme-spacing-form) + 2px);border-radius:var(--theme-border-radius);background:var(--theme-windowHeader);color:var(--theme-textPrimary);border-bottom-left-radius:4px;border:1px solid var(--theme-borderColor)}.chat-typing-dots{display:flex;align-items:center;gap:4px}.chat-typing-dot{width:8px;height:8px;background:var(--theme-textSecondary);border-radius:50%;animation:bounce 1.4s ease-in-out infinite}.chat-typing-dot:first-child{animation-delay:-.32s}.chat-typing-dot:nth-child(2){animation-delay:-.16s}.markdown-editor{display:flex;flex-direction:column;height:100%}.markdown-preview{min-height:200px;overflow-y:auto;padding:1em;border:1px solid var(--theme-borderColor);border-radius:calc(var(--theme-border-radius) / 2);background:var(--theme-fieldBg);white-space:pre-wrap;text-indent:0}.markdown-preview code,.markdown-preview pre{white-space:pre;text-indent:0}.markdown-preview ol,.markdown-preview ul{padding-left:1.5em;list-style-position:outside}.markdown-preview ul{list-style-type:disc}.markdown-preview ol{list-style-type:decimal}.markdown-preview li{text-indent:0}.markdown-preview blockquote{margin-left:1em;padding-left:1em;text-indent:0}.hljs{background:var(--theme-windowBg)!important;color:var(--theme-textPrimary)!important}.hljs-comment,.hljs-quote{color:var(--theme-textSecondary)!important}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:var(--theme-primary)!important}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#22863a!important}.hljs-bullet,.hljs-meta,.hljs-number,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-variable{color:#005cc5!important}.chat-markdown-content{font-family:inherit;font-size:inherit;line-height:1.5}.chat-markdown-content code,.chat-markdown-content pre{white-space:pre;text-indent:0}.chat-markdown-content ol,.chat-markdown-content ul{list-style-position:outside}.chat-markdown-content ul{list-style-type:disc}.chat-markdown-content ol{list-style-type:decimal}.chat-markdown-content li{white-space:normal}.chat-markdown-content blockquote{margin-left:1em;padding-left:1em;text-indent:0}.chat-markdown-content h1,.chat-markdown-content h2,.chat-markdown-content h3,.chat-markdown-content h4,.chat-markdown-content h5,.chat-markdown-content h6{margin-top:.8em;margin-bottom:.4em}.chat-markdown-content h1:first-child,.chat-markdown-content h2:first-child,.chat-markdown-content h3:first-child{margin-top:0}.chat-markdown-content p{margin-bottom:.8em}.chat-markdown-content p:last-child{margin-bottom:0}.chat-markdown-content ol,.chat-markdown-content ul{margin-bottom:.8em;padding-left:1.5em}.chat-markdown-content li{margin-bottom:.2em;text-indent:0}.chat-markdown-content code{background:rgba(0,0,0,.05);border-radius:3px;padding:.1em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.chat-bubble.user .chat-markdown-content code{background:rgba(255,255,255,.2)}.chat-markdown-content pre{background:rgba(0,0,0,.05)!important;border-radius:6px;padding:.8em;margin:.8em 0;overflow-x:auto;white-space:pre;text-indent:0}.chat-bubble.user .chat-markdown-content pre{background:rgba(255,255,255,.15)!important}.chat-markdown-content pre code{background:none;padding:0;border-radius:0;font-size:inherit;white-space:pre;text-indent:0}.chat-markdown-content blockquote{border-left:3px solid rgba(0,0,0,.2);padding-left:.8em;margin:.8em 0;font-style:italic}.chat-bubble.user .chat-markdown-content blockquote{border-left-color:rgba(255,255,255,.4)}.chat-markdown-content a{color:inherit;text-decoration:underline;opacity:.9}.chat-markdown-content a:hover{opacity:1}.chat-markdown-content>:first-child{margin-top:0}.chat-markdown-content>:last-child{margin-bottom:0}.chat-markdown-content .hljs-strong,.chat-markdown-content b,.chat-markdown-content strong,.markdown-preview .hljs-strong,.markdown-preview b,.markdown-preview strong{color:var(--theme-textPrimary)!important;font-weight:var(--theme-font-weight-bold)!important}.chat-bubble .hljs-strong,.chat-bubble b,.chat-bubble strong{color:inherit!important;font-weight:var(--theme-font-weight-bold)!important}.lai-kw{color:var(--theme-lai-keyword);font-weight:600}.lai-affix{color:var(--theme-lai-affix)}.lai-num{color:var(--theme-lai-number)}.lai-str{color:var(--theme-lai-string)}.lai-com{color:var(--theme-lai-comment);font-style:italic}.lai-target{color:var(--theme-lai-target);font-weight:500}.lai-field{color:var(--theme-lai-field);font-weight:500}.lai-elementById{color:var(--theme-lai-elementById);font-weight:500}.lai-func{color:var(--theme-lai-func);font-weight:500}.lai-const{color:var(--theme-lai-const);font-weight:600}.lai-jsonKey{color:var(--theme-lai-jsonKey);font-weight:500}.lai-interpolation{color:var(--theme-lai-interpolation);font-weight:500}.lai-op{color:var(--theme-lai-operator)}.lai-paren{color:var(--theme-lai-paren)}.lai-overlay{position:relative;width:100%;height:100%;background:var(--theme-windowBg);border:1px solid var(--theme-borderColor);border-radius:calc(var(--theme-border-radius) / 2);overflow:hidden}.lai-overlay-pre,.lai-overlay-ta{position:absolute;inset:0;margin:0;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45;white-space:pre;tab-size:2;-moz-tab-size:2}.lai-overlay-pre{pointer-events:none;overflow:hidden;color:var(--theme-textPrimary)}.lai-overlay-ta{resize:none;border:0;outline:none;width:100%;height:100%;background:transparent;color:transparent;caret-color:var(--theme-textPrimary);overflow:auto}.form-container{display:flex;flex-direction:column;height:100%;gap:var(--theme-spacing-form);padding:0}.form-section{margin-bottom:6px;display:grid;grid-template-columns:120px 1fr;grid-gap:calc(var(--theme-spacing-form) * 3);gap:calc(var(--theme-spacing-form) * 3);align-items:center}.form-section-textarea{display:flex!important;flex-direction:column!important;align-items:stretch!important;flex:1 1;min-height:0;grid-template-columns:none!important;grid-gap:0}.form-section-textarea .form-label{text-align:left!important;padding-right:0!important;margin-bottom:0}.form-section-textarea textarea{flex:1 1;min-height:120px;height:auto}.form-controls .form-section{margin-bottom:0;margin-right:12px;display:flex}.form-header{margin-bottom:6px}.form-title{font-size:var(--theme-font-size-large);font-weight:var(--theme-font-weight-bold);color:var(--theme-textPrimary);margin-bottom:4px}.form-description{font-size:var(--theme-font-size-small);color:var(--theme-textSecondary)}.form-controls{display:flex;gap:calc(var(--theme-spacing-form) * 3);margin-bottom:2px;padding:0;flex-wrap:wrap}.form-input{background:var(--theme-fieldBg);border:1px solid var(--theme-borderColor);padding:calc(var(--theme-spacing-form) / 2) var(--theme-spacing-form);border-radius:calc(var(--theme-border-radius) / 2);font-family:var(--theme-font-family);font-size:var(--theme-font-size-normal);font-weight:var(--theme-font-weight-medium);color:var(--theme-textPrimary);box-shadow:inset 0 1px 2px rgba(0,0,0,.05);transition:all .2s}.form-input:focus{outline:none;border-color:var(--theme-primary);box-shadow:0 0 0 3px var(--theme-primary)20,inset 0 1px 3px rgba(0,0,0,.1)}.form-input:disabled{background:var(--theme-windowHeader);opacity:.6;cursor:not-allowed}.form-input-preview{border-color:var(--theme-borderColor);cursor:default;color:var(--theme-textPrimary);box-shadow:inset 0 1px 2px rgba(0,0,0,.05);font-family:var(--theme-font-family);font-size:var(--theme-font-size-normal);font-weight:var(--theme-font-weight-medium)}.form-label{font-size:var(--theme-font-size-small);margin-bottom:0;padding:0;text-align:right;padding-right:calc(var(--theme-spacing-form) + 2px)}.form-button,.form-label{color:var(--theme-textPrimary)}.form-button{border:2px solid var(--theme-primary);padding:calc(var(--theme-spacing-form) / 2) var(--theme-spacing-form);border-radius:calc(var(--theme-border-radius) / 2);background:var(--theme-gradient-button);font-family:var(--theme-font-family);font-size:var(--theme-font-size-normal);cursor:pointer;transition:all .2s;box-shadow:var(--theme-button-shadow);display:flex;align-items:center;gap:4px}.form-button:not(:disabled):hover:not(:active){background:var(--theme-gradient-button);border-color:var(--theme-primary);opacity:.9;transform:translateY(-1px);box-shadow:var(--theme-window-shadow)}.form-button:active{transform:translateY(0)!important;box-shadow:var(--theme-button-shadow)!important}.form-button:focus{outline:none}.form-button:disabled{opacity:.5;cursor:not-allowed}.form-button.primary{background:var(--theme-gradient-button);border:2px solid var(--theme-primary);color:var(--theme-textPrimary);box-shadow:var(--theme-button-shadow)}.form-button.primary:not(:disabled):hover:not(:active){opacity:.9;transform:translateY(-1px);box-shadow:var(--theme-window-shadow)}.form-button.primary:active{transform:translateY(0)!important;opacity:1!important;box-shadow:var(--theme-button-shadow)!important}.form-button.primary:focus{outline:none}.rdg .rdg-cell.text-right,.rdg .rdg-header-cell.text-right,.rdg .text-right{text-align:right}.rdg .rdg-cell{padding-left:12px}.rdg{background:var(--theme-background);color:var(--theme-textPrimary);border:none;font-family:var(--theme-font-family);font-size:var(--theme-font-size-small)}.rdg .rdg-header-row{background:var(--theme-gradient-button);border-bottom:2px solid var(--theme-borderColor)}.rdg .rdg-header-cell{color:var(--theme-textPrimary);font-weight:var(--theme-font-weight-medium);font-size:var(--theme-font-size-small);border-right:1px solid var(--theme-borderColor);padding:var(--theme-spacing-crud);display:flex;align-items:center}.rdg .rdg-header-cell:last-child{border-right:none}.rdg .rdg-row{background:var(--theme-background);transition:background-color .2s}.rdg .rdg-row:hover{background:var(--theme-windowHeader)}.rdg .rdg-row:nth-child(2n){background:rgba(0,0,0,.02)}.rdg .rdg-row:nth-child(2n):hover{background:var(--theme-windowHeader)}.rdg .rdg-cell{background:inherit;color:var(--theme-textPrimary);border-right:1px solid var(--theme-borderColor);border-bottom:1px solid var(--theme-borderColor);padding:calc(var(--theme-spacing-crud) / 2) calc(var(--theme-spacing-crud) + 4px);display:flex;align-items:center;font-size:var(--theme-font-size-small)}.rdg .rdg-cell:last-child{border-right:none}.rdg .rdg-row:last-child .rdg-cell{border-bottom:none}.rdg .rdg-row[aria-selected=true]{background:var(--theme-accent);border:1px solid var(--theme-primary)}.rdg .rdg-row[aria-selected=true] .rdg-cell{background:inherit;color:var(--theme-primary);font-weight:var(--theme-font-weight-medium)}.rdg .rdg-header-cell[data-column-key=select-row]{justify-content:center;width:50px;min-width:50px;max-width:50px}.rdg .rdg-cell[data-column-key=select-row]{justify-content:center;padding:calc(var(--theme-spacing-crud) / 2)}.save-btn{position:relative;display:inline-flex;align-items:center;gap:6px;min-width:110px}.save-btn.is-saving:before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--theme-primary),transparent);background-size:200% 100%;animation:save-bar 1.2s ease-in-out infinite;border-top-left-radius:var(--theme-border-radius);border-top-right-radius:var(--theme-border-radius)}.save-spinner{width:14px;height:14px;border:2px solid color-mix(in srgb,var(--theme-borderColor) 70%,transparent);border-top-color:var(--theme-primary);border-radius:50%;animation:save-spin .9s linear infinite}.save-btn.is-success{background:color-mix(in srgb,var(--theme-primary) 18%,var(--theme-gradient-button));border-color:var(--theme-primary)}.save-btn.is-error{background:color-mix(in srgb,#dc2626 18%,var(--theme-gradient-button));border-color:#dc2626}@keyframes save-bar{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes save-spin{to{transform:rotate(1turn)}}:root{--desk-tree-label-bg:color-mix(in srgb,var(--theme-background) 98%,white 2%)}.tree-container,.tree-item{width:100%}.tree-item-content{padding-left:2px}.tree-item-level-1{padding-left:8px}.tree-item-level-2{padding-left:14px}.tree-item-level-3{padding-left:20px}.tree-item-level-4{padding-left:26px}.tree-icon-container{display:flex;align-items:center;justify-content:center}.tree-icon-container,.tree-icon-placeholder{width:16px;height:16px}.tree-desktop-badge{background:color-mix(in srgb,var(--theme-accent) 20%,transparent);border:1px solid var(--theme-accent);padding:1px 4px;border-radius:calc(var(--theme-border-radius) / 3);font-size:var(--theme-font-size-small);font-weight:var(--theme-font-weight-medium);color:var(--theme-primary)}.tree-add-button{width:20px;height:20px;background:transparent;border:1px solid transparent;border-radius:calc(var(--theme-border-radius) / 2);color:var(--theme-textSecondary);cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center}.tree-add-button:disabled{cursor:not-allowed;opacity:.5}.tree-add-button:not(:disabled):hover{opacity:1;background:color-mix(in srgb,var(--theme-accent) 20%,transparent);color:var(--theme-primary);border-color:var(--theme-accent)}.tree-submenu{border-left:1px solid var(--theme-borderColor);margin-left:8px}.tree-add-icon{width:8px;height:8px}.tree-chevron-icon{width:12px;height:12px}.code-editor{width:100%;height:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45;background:var(--theme-windowBg);color:var(--theme-textPrimary);border:1px solid var(--theme-borderColor);border-radius:calc(var(--theme-border-radius) / 2);padding:8px;resize:none;outline:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.05);caret-color:var(--theme-textPrimary);scrollbar-color:var(--theme-borderColor) var(--theme-windowBg);scrollbar-width:thin}.code-editor::-webkit-scrollbar{width:10px;height:10px}.code-editor::-webkit-scrollbar-track{background:var(--theme-windowBg)}.code-editor::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--theme-borderColor) 60%,transparent);border:2px solid var(--theme-windowBg);border-radius:8px}.code-editor::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--theme-primary) 60%,var(--theme-borderColor) 40%)}.code-toolbar{display:flex;gap:var(--theme-spacing-form);align-items:center;padding-top:var(--theme-spacing-form)}.code-error-flag{color:#dc2626;font-weight:700;margin-left:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tree-field{color:var(--theme-textPrimary)!important;background:var(--theme-fieldBg)!important;border:1px solid var(--theme-borderColor)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:12px!important;padding:2px 4px!important;border-radius:calc(var(--theme-border-radius) / 2)!important}.tree-field:focus{outline:none!important;border-color:var(--theme-primary)!important;box-shadow:0 0 0 2px var(--theme-primary)20!important}.window-container{position:absolute;background:var(--theme-background);box-shadow:var(--theme-window-shadow);border:1px solid var(--theme-borderColor);overflow:hidden;border-radius:var(--theme-border-radius);transition:all .2s}.window-container.dragging{cursor:-webkit-grabbing;cursor:grabbing;box-shadow:0 8px 24px rgba(0,0,0,.25);transform:scale(1.02)}.window-container.maximized{border-radius:0}.window-header{display:flex;align-items:center;justify-content:space-between;padding:var(--theme-spacing-wndHdr) 16px;background:var(--theme-primary);color:white;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-bottom:1px solid var(--theme-borderColor);cursor:-webkit-grab;cursor:grab;position:relative;z-index:100;pointer-events:auto}.window-header.maximized{cursor:default}.window-header:hover{transform:none!important}.window-title{font-size:var(--theme-font-size-small);font-weight:var(--theme-font-weight-medium);color:white;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-controls{display:flex;align-items:center;gap:8px}.window-control-button{width:22px;height:22px;padding:0;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:calc(var(--theme-border-radius) / 2);color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative;z-index:10;pointer-events:auto}.window-control-button:hover{background:rgba(255,255,255,.2);transform:none!important}.window-control-button.close{position:relative;z-index:1001;pointer-events:auto!important}.window-control-button.close:hover{background:#dc2626;transform:none!important}.window-content{flex:1 1;overflow:hidden;background:var(--theme-background);margin-top:0}.window-content-inner{padding:4px 8px;height:100%;overflow-y:auto}.window-content-section{padding:16px;color:var(--theme-textPrimary)}.window-content-section.info{color:var(--theme-primary)}.window-content-section.error{color:#dc2626}.content-title{font-weight:var(--theme-font-weight-medium);margin-bottom:8px;font-size:var(--theme-font-size-normal)}.content-text{margin-bottom:8px}.content-detail,.content-text{font-size:var(--theme-font-size-small)}.content-detail{color:var(--theme-textSecondary)}.window-container.interactive-prompt{border:2px solid color-mix(in srgb,var(--theme-borderColor) 60%,var(--theme-accent) 40%);background:var(--theme-windowBackground)}.window-container.interactive-prompt .window-header{background:color-mix(in srgb,var(--theme-windowHeader) 85%,var(--theme-textPrimary) 15%);border-bottom:1px solid color-mix(in srgb,var(--theme-borderColor) 70%,var(--theme-accent) 30%)}.window-container.interactive-prompt .window-title{color:var(--theme-textPrimary)}.resize-handle{position:absolute;background:transparent;z-index:20}.resize-se{right:-5px;cursor:se-resize}.resize-se,.resize-sw{bottom:-5px;width:15px;height:15px}.resize-sw{left:-5px;cursor:sw-resize}.resize-ne{right:-5px;cursor:ne-resize}.resize-ne,.resize-nw{width:15px;height:15px}.resize-nw{left:-5px;cursor:nw-resize}.resize-e{right:-5px;width:8px;cursor:e-resize}.resize-w{left:0;width:8px;cursor:w-resize}.resize-n{left:-3px;height:24px;cursor:n-resize}.resize-n,.resize-s{width:calc(100% - 16px)}.resize-s{bottom:-5px;left:8px;height:8px;cursor:s-resize}.form-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 2px 4px rgba(0,0,0,.1)}.form-header .window-title{color:white;text-shadow:0 1px 2px rgba(0,0,0,.3)}.data-grid{border:1px solid var(--theme-borderColor);border-radius:var(--theme-border-radius);overflow:hidden;font-family:var(--theme-font-family)}.data-grid-header{background:var(--theme-windowHeader);font-weight:var(--theme-font-weight-medium)}.data-grid-cell,.data-grid-header{border-bottom:1px solid var(--theme-borderColor);font-size:var(--theme-font-size-small);color:var(--theme-textPrimary)}.data-grid-cell{background:var(--theme-background)}.data-grid-row:hover .data-grid-cell,.filter-bar{background:var(--theme-windowHeader)}.filter-bar{display:flex;align-items:center;gap:calc(var(--theme-spacing-form) * 1.5);padding:calc(var(--theme-spacing-form) * .75) var(--theme-spacing-form);border:1px solid var(--theme-borderColor);border-radius:var(--theme-border-radius)}.filter-group{display:flex;gap:var(--theme-spacing-form);flex-wrap:wrap}.filter-group.horizontal{flex-direction:row}.filter-group.vertical{flex-direction:column}.filter-item{display:flex;align-items:center;gap:8px}.filter-label{color:var(--theme-textPrimary);font-size:var(--theme-font-size-small);font-weight:var(--theme-font-weight-medium);min-width:90px;white-space:nowrap}.filter-input{min-width:160px}.filter-range{display:flex;align-items:center;gap:8px}.filter-range .form-input{width:120px}.filter-actions{display:flex;gap:8px;margin-left:auto}.error-container{padding:16px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--theme-border-radius);color:#dc2626}.error-title{font-weight:var(--theme-font-weight-bold);font-size:var(--theme-font-size-normal);margin-bottom:8px}.error-message{margin-bottom:8px}.error-detail,.error-message{font-size:var(--theme-font-size-small)}.error-detail{opacity:.8}.error-container.error--console{background:#fff;border:1px solid #eee;color:#000}.error-container.error--console .error-title{color:#000}.error-container.error--console .error-message{color:#dc2626}.error-container.error--console .error-detail{color:#000;opacity:.8}