:root{--color-bg-primary:#1a1a24;--color-bg-secondary:#202028;--color-bg-tertiary:#21262d;--color-bg-elevated:#2a2a34;--color-bg-surface:#32323c;--color-bg-overlay:#0009;--color-bg-hover:#ffffff0f;--color-bg-active:#ffffff1a;--color-bg-selected:#6366f126;--color-text-primary:#f0f0f0;--color-text-secondary:#a8a8b0;--color-text-muted:#6b6b78;--color-text-inverse:#1a1a24;--color-text-search-match:#f87171;--color-text-on-accent:#fff;--color-accent-primary:#6366f1;--color-accent-primary-hover:#818cf8;--color-accent-success:#22c55e;--color-accent-success-hover:#4ade80;--color-accent-warning:#f59e0b;--color-accent-warning-hover:#fbbf24;--color-accent-error:#ef4444;--color-accent-error-hover:#f87171;--color-accent-info:#3b82f6;--color-accent-info-hover:#60a5fa;--color-wf-group-inputs:#fbbf24;--color-wf-group-generators:#a78bfa;--color-wf-group-tools:#60a5fa;--color-wf-group-control:#34d399;--color-wf-group-data:#38bdf8;--color-border-subtle:#ffffff0f;--color-border-default:#ffffff1a;--color-border-strong:#ffffff29;--color-border-focus:var(--color-accent-primary);--color-scrollbar-thumb:#fff6;--color-scrollbar-thumb-hover:#fff9;--color-scrollbar-track:#0000001a;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif,"Noto Color Emoji";--font-mono:"SF Mono","Cascadia Code","Consolas","Monaco",monospace,"Noto Color Emoji";--font-size-xs:0.75rem;--font-size-sm:0.85rem;--font-size-base:0.9rem;--font-size-lg:1rem;--font-size-xl:1.15rem;--font-size-2xl:1.3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.65;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 24px #0000004d;--shadow-xl:0 16px 48px #0006;--shadow-primary:0 4px 14px #6366f140;--shadow-success:0 4px 14px #22c55e40;--shadow-warning:0 4px 14px #f59e0b40;--shadow-error:0 4px 14px #ef444440;--transition-fast:100ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--transition-spring:300ms cubic-bezier(0.34,1.56,0.64,1);--z-dropdown:100;--z-sticky:200;--z-popover:2000;--z-modal-backdrop:3000;--z-modal:3100;--z-toast:5000;--z-tooltip:10000;--chat-content-max-width:960px;--chat-content-min-width:360px;--input-bg:var(--color-bg-elevated);--input-border:var(--color-border-default);--input-border-focus:var(--color-accent-primary);--input-placeholder:var(--color-text-muted);--btn-primary-bg:linear-gradient(135deg,#667eea,#764ba2);--btn-primary-hover:linear-gradient(135deg,#764ba2,#667eea);--btn-secondary-bg:var(--color-bg-hover);--btn-secondary-border:var(--color-border-default);--card-bg:var(--color-bg-elevated);--card-border:var(--color-border-subtle);--card-radius:var(--radius-xl);--dialog-bg:linear-gradient(135deg,#1e1e2e,#2d2d3d);--dialog-border:var(--color-border-default);--dialog-radius:var(--radius-2xl);--dialog-shadow:var(--shadow-xl)}:root[data-theme=light]{--color-bg-primary:#f5f5f7;--color-bg-secondary:#eeeef0;--color-bg-tertiary:#e8e8ec;--color-bg-elevated:#fff;--color-bg-surface:#f0f0f2;--color-bg-overlay:#0000004d;--color-bg-hover:#0000000a;--color-bg-active:#00000014;--color-bg-selected:#6366f11a;--color-text-primary:#1a1a2e;--color-text-secondary:#52526a;--color-text-muted:#8e8ea0;--color-text-inverse:#fff;--color-text-search-match:#dc2626;--color-accent-primary:#5b5ef0;--color-accent-primary-hover:#4f46e5;--color-wf-group-inputs:#d97706;--color-wf-group-generators:#7c3aed;--color-wf-group-tools:#2563eb;--color-wf-group-control:#059669;--color-wf-group-data:#0284c7;--color-border-subtle:#0000000f;--color-border-default:#0000001f;--color-border-strong:#0000002e;--color-scrollbar-thumb:#00000040;--color-scrollbar-thumb-hover:#0006;--color-scrollbar-track:#0000000a;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 16px 48px #00000029;--shadow-primary:0 4px 14px #6366f126;--shadow-success:0 4px 14px #22c55e26;--shadow-warning:0 4px 14px #f59e0b26;--shadow-error:0 4px 14px #ef444426;--input-bg:#fff;--btn-primary-bg:linear-gradient(135deg,#6366f1,#8b5cf6);--btn-primary-hover:linear-gradient(135deg,#8b5cf6,#6366f1);--btn-secondary-bg:#0000000a;--btn-secondary-border:var(--color-border-default);--card-bg:#fff;--card-border:var(--color-border-subtle);--dialog-bg:linear-gradient(135deg,#f8f8fa,#fff);--dialog-border:var(--color-border-default)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}*{scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track);scrollbar-width:thin}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}#root,body,html{height:100%;margin:0;width:100%}.remote-controller-bootstrap{align-items:center;background:var(--color-bg-primary);box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:var(--space-8);width:100%}.remote-controller-bootstrap__card{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8);width:min(100%,620px)}.remote-controller-bootstrap__card>h1,.remote-controller-bootstrap__card>p{margin:0;text-align:center}.remote-controller-bootstrap__header{align-items:flex-start;display:flex;gap:var(--space-4)}.remote-controller-bootstrap__header-icon{align-items:center;background:var(--color-bg-selected);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);color:var(--color-accent-success);display:inline-flex;flex:0 0 44px;height:44px;justify-content:center;width:44px}.remote-controller-bootstrap__header h1{color:var(--color-text-primary);font-size:var(--font-size-2xl);line-height:var(--line-height-tight);margin:var(--space-1) 0 0}.remote-controller-bootstrap__header p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:var(--space-2) 0 0}.remote-controller-bootstrap__eyebrow{color:var(--color-accent-success);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.remote-controller-bootstrap__section{align-items:flex-start;background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.remote-controller-bootstrap__section h2,.remote-controller-bootstrap__section p{margin:0}.remote-controller-bootstrap__section h2{color:var(--color-text-primary);font-size:var(--font-size-xl);line-height:var(--line-height-tight)}.remote-controller-bootstrap__section p{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.remote-controller-bootstrap__section--error{background:color-mix(in srgb,var(--color-accent-error) 8%,var(--color-bg-surface));border-color:color-mix(in srgb,var(--color-accent-error) 45%,#0000)}.remote-controller-bootstrap__progress-icon{color:var(--color-accent-primary)}.remote-controller-bootstrap__error-icon{align-self:center;color:var(--color-accent-error)}.remote-controller-bootstrap__notice{background:var(--color-bg-selected);border-radius:var(--radius-md);color:var(--color-accent-info);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-2)}.remote-controller-bootstrap__fingerprint{background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);width:100%}.remote-controller-bootstrap__fingerprint span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.remote-controller-bootstrap__fingerprint code{color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-relaxed);overflow-wrap:anywhere;user-select:text}.remote-controller-bootstrap__auth-form{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.remote-controller-bootstrap__auth-form label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.remote-controller-bootstrap__auth-form input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);box-sizing:border-box;color:var(--color-text-primary);font:inherit;height:40px;padding:0 var(--space-3);width:100%}.remote-controller-bootstrap__auth-form input:focus{border-color:var(--input-border-focus);outline:2px solid color-mix(in srgb,var(--color-accent-primary) 35%,#0000);outline-offset:1px}.remote-controller-bootstrap__auth-form input:disabled{opacity:.65}.remote-controller-bootstrap__input-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.remote-controller-bootstrap__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end}.remote-controller-bootstrap__button{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--space-2);justify-content:center;min-height:36px;padding:var(--space-2) var(--space-4);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.remote-controller-bootstrap__button:disabled{cursor:not-allowed;opacity:.5}.remote-controller-bootstrap__button--primary{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:var(--color-text-on-accent)}.remote-controller-bootstrap__button--primary:hover:not(:disabled){background:var(--color-accent-primary-hover);border-color:var(--color-accent-primary-hover)}.remote-controller-bootstrap__button--secondary{background:var(--btn-secondary-bg);border-color:var(--color-border-default);color:var(--color-text-secondary)}.remote-controller-bootstrap__button--secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong);color:var(--color-text-primary)}.remote-controller-bootstrap__button--danger{background:#0000;border-color:color-mix(in srgb,var(--color-accent-error) 55%,#0000);color:var(--color-accent-error)}.remote-controller-bootstrap__button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-accent-error) 8%,#0000);border-color:var(--color-accent-error)}.remote-controller-bootstrap__action-error{color:var(--color-accent-error);font-size:var(--font-size-sm);margin:0;text-align:right}@keyframes remote-controller-spin{to{transform:rotate(1turn)}}.remote-controller-bootstrap__spin{align-self:center;animation:remote-controller-spin .9s linear infinite;color:var(--color-accent-primary)}@media(max-width:640px){.remote-controller-bootstrap{align-items:stretch;padding:var(--space-4)}.remote-controller-bootstrap__card{padding:var(--space-5)}.remote-controller-bootstrap__actions,.remote-controller-bootstrap__button{width:100%}}.confirm-dialog-overlay{align-items:center;background:var(--color-bg-overlay);display:flex;inset:0;justify-content:center;padding:var(--space-6);position:fixed;z-index:1100}.confirm-dialog{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl,0 16px 48px #0006);display:flex;flex-direction:column;gap:var(--space-3);max-width:400px;padding:var(--space-6);width:100%}.confirm-dialog__title{color:var(--color-text-primary);font-size:16px;font-weight:600;margin:0}.confirm-dialog__body{color:var(--color-text-secondary);font-size:14px;line-height:1.5;margin:0}.confirm-dialog__actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2)}.confirm-btn{border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;padding:var(--space-2) var(--space-4);transition:background .15s,opacity .15s}.confirm-btn:disabled{cursor:not-allowed;opacity:.5}.confirm-btn--primary{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.confirm-btn--primary:hover:not(:disabled){opacity:.85}.confirm-btn--secondary{background:#0000;border-color:var(--color-border-default);color:var(--color-text-primary)}.confirm-btn--secondary:hover:not(:disabled){background:var(--color-bg-hover)}.confirm-btn--danger{background:#0000;border-color:var(--color-accent-error);color:var(--color-accent-error)}.confirm-btn--danger:hover:not(:disabled){background:#ef44441a}.remote-devices-dialog__overlay{align-items:center;background:var(--color-bg-overlay);display:flex;inset:0;justify-content:center;padding:var(--space-6);position:fixed;z-index:var(--z-modal-backdrop)}.remote-devices-dialog{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:min(760px,100vh - 48px);overflow:hidden;width:min(760px,100%)}.remote-devices-dialog__header{align-items:flex-start;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-5) var(--space-6)}.remote-devices-dialog__header h2,.remote-devices-dialog__header p{margin:0}.remote-devices-dialog__header h2{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.remote-devices-dialog__header p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal);margin-top:var(--space-1)}.remote-devices-dialog__header-actions{display:flex;flex-shrink:0;gap:var(--space-2)}.remote-devices-dialog__icon-button{align-items:center;background:#0000;border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;width:32px}.remote-devices-dialog__icon-button:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong);color:var(--color-text-primary)}.remote-devices-dialog__icon-button:disabled{cursor:not-allowed;opacity:.5}.remote-devices-dialog__body{min-height:220px;overflow-y:auto;padding:var(--space-4) var(--space-6) var(--space-6)}.remote-devices-dialog__state{align-items:center;color:var(--color-text-muted);display:flex;flex-direction:column;gap:var(--space-3);justify-content:center;min-height:200px;text-align:center}.remote-devices-dialog__state p{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0;max-width:440px}.remote-devices-dialog__list{display:flex;flex-direction:column;gap:var(--space-3)}.remote-devices-dialog__device{align-items:flex-start;background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);padding:var(--space-4)}.remote-devices-dialog__device-icon{align-items:center;background:var(--color-bg-selected);border-radius:var(--radius-md);color:var(--color-accent-info);display:inline-flex;flex:0 0 38px;height:38px;justify-content:center;width:38px}.remote-devices-dialog__device-main{display:flex;flex:1;flex-direction:column;gap:var(--space-1);min-width:0}.remote-devices-dialog__device-heading{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.remote-devices-dialog__device-heading strong{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.remote-devices-dialog__badge{background:var(--color-bg-active);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2)}.remote-devices-dialog__badge--ready{background:color-mix(in srgb,var(--color-accent-success) 13%,#0000);color:var(--color-accent-success)}.remote-devices-dialog__badge--upgrade-required{background:color-mix(in srgb,var(--color-accent-warning) 13%,#0000);color:var(--color-accent-warning)}.remote-devices-dialog__badge--current-device{background:var(--color-bg-selected);color:var(--color-accent-info)}.remote-devices-dialog__metadata,.remote-devices-dialog__reason{font-size:var(--font-size-xs);line-height:var(--line-height-normal);margin:0}.remote-devices-dialog__metadata{color:var(--color-text-muted)}.remote-devices-dialog__reason{color:var(--color-text-secondary)}.remote-devices-dialog__trust{align-items:flex-end;background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-md);display:flex;gap:var(--space-3);justify-content:space-between;margin-top:var(--space-2);padding:var(--space-3)}.remote-devices-dialog__trust>div{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.remote-devices-dialog__trust span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.remote-devices-dialog__trust code{color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:var(--line-height-normal);overflow-wrap:anywhere;user-select:text}.remote-devices-dialog__forget{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-size:var(--font-size-xs);gap:var(--space-1);padding:var(--space-1) var(--space-2)}.remote-devices-dialog__forget:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-accent-error) 50%,#0000);color:var(--color-accent-error)}.remote-devices-dialog__button{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--space-2);justify-content:center;min-height:34px;padding:var(--space-2) var(--space-3)}.remote-devices-dialog__button:disabled,.remote-devices-dialog__forget:disabled{cursor:not-allowed;opacity:.5}.remote-devices-dialog__button--primary{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:var(--color-text-on-accent)}.remote-devices-dialog__button--primary:hover:not(:disabled){background:var(--color-accent-primary-hover);border-color:var(--color-accent-primary-hover)}.remote-devices-dialog__button--secondary{background:var(--btn-secondary-bg);border-color:var(--color-border-default);color:var(--color-text-secondary)}.remote-devices-dialog__button--secondary:hover:not(:disabled){border-color:var(--color-border-strong);color:var(--color-text-primary)}.remote-devices-dialog__error{color:var(--color-accent-error);font-size:var(--font-size-sm);margin:var(--space-3) 0 0;text-align:right}.remote-devices-dialog__confirm-layer .confirm-dialog-overlay{z-index:calc(var(--z-modal) + 1)}@keyframes remote-devices-spin{to{transform:rotate(1turn)}}.remote-devices-dialog__spin{animation:remote-devices-spin .8s linear infinite}@media(max-width:700px){.remote-devices-dialog__overlay{align-items:stretch;padding:var(--space-3)}.remote-devices-dialog{max-height:calc(100vh - 24px)}.remote-devices-dialog__body,.remote-devices-dialog__header{padding-left:var(--space-4);padding-right:var(--space-4)}.remote-devices-dialog__device,.remote-devices-dialog__trust{align-items:stretch;flex-direction:column}.remote-devices-dialog__device>.remote-devices-dialog__button{width:100%}}#root,.web-controller-shell,.web-controller-shell__content,body,html{height:100%;margin:0;width:100%}body{background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans)}.web-controller-shell{overflow:hidden;position:relative}.web-controller-shell__trust-notice{align-items:center;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-default);box-sizing:border-box;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--space-2);justify-content:center;left:0;min-height:32px;padding:var(--space-1) var(--space-4);position:fixed;right:0;text-align:center;top:0;z-index:calc(var(--z-modal) + 3)}.web-controller-shell__content{box-sizing:border-box;padding-top:32px}.web-controller-shell__content .remote-devices-dialog__overlay{top:32px}.web-controller-shell__closed{align-items:center;background:var(--color-bg-primary);box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:var(--space-6)}.web-controller-shell__closed-card{align-items:center;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8);text-align:center;width:min(100%,460px)}.web-controller-shell__closed-card h1,.web-controller-shell__closed-card p{margin:0}.web-controller-shell__closed-card p{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.web-controller-shell__closed-card a{align-items:center;background:var(--color-accent-primary);border:1px solid var(--color-accent-primary);border-radius:var(--radius-md);color:var(--color-text-on-accent);display:inline-flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-height:36px;padding:0 var(--space-4);text-decoration:none}.web-controller-shell__closed-card a:hover{background:var(--color-accent-primary-hover);border-color:var(--color-accent-primary-hover)}