.intellisense-status{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px 0 3px;border-radius:4px;background:color-mix(in srgb,var(--color-bg-surface-1) 85%,transparent);color:var(--intellisense-status-color, var(--color-fg-subtle));font-family:monospace;font-size:12px;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;transition:background .1s ease}.intellisense-status:hover{background:color-mix(in srgb,var(--color-fg-default) 15%,transparent)}.intellisense-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:16px;padding:0 5px;border-radius:2px;background:color-mix(in srgb,var(--intellisense-status-color, var(--color-fg-subtle)) 20%,transparent);border:1px solid var(--intellisense-status-color, var(--color-fg-subtle));font-size:11px;font-weight:700;line-height:1}.intellisense-status-text{font-size:12px}.editor-status-bar{display:flex;align-items:center;justify-content:space-between;height:30px;min-height:30px;padding:0 8px;background:var(--color-bg-surface-3);color:var(--color-fg-default);font-size:13px;-webkit-user-select:none;user-select:none;flex-shrink:0;overflow:hidden}.editor-status-bar-left,.editor-status-bar-right{display:flex;align-items:center;gap:2px;overflow:hidden}.editor-status-bar-item{display:inline-flex;align-items:center;height:30px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s ease}.editor-status-bar-item:hover{background:color-mix(in srgb,var(--color-fg-default) 15%,transparent)}.file-tabs{display:flex;align-items:flex-end;background:var(--color-bg-surface-1);border-bottom:1px solid var(--color-bg-surface-1);overflow-x:auto;overflow-y:hidden;flex-shrink:0;min-height:35px;scrollbar-width:thin;scrollbar-color:transparent transparent}.file-tabs:hover{scrollbar-color:var(--color-border-strong) transparent}.file-tabs::-webkit-scrollbar{height:4px;background:transparent}.file-tabs::-webkit-scrollbar-thumb{background:transparent;border-radius:2px}.file-tabs:hover::-webkit-scrollbar-thumb{background:var(--color-border-strong)}.file-tab{position:relative;display:flex;align-items:center;gap:6px;padding:0 12px;height:35px;min-width:90px;max-width:200px;cursor:pointer;background:var(--color-bg-surface-2);border-right:1px solid var(--color-bg-surface-1);color:var(--color-fg-muted);font-size:12px;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-user-select:none;user-select:none;flex-shrink:0;white-space:nowrap;overflow:hidden;transition:background .1s ease,color .1s ease}.file-tab:hover{background:var(--color-bg-surface-3);color:var(--color-fg-default)}.file-tab[draggable=true]{cursor:grab}.file-tab[draggable=true]:active{cursor:grabbing}.file-tab-dragged{opacity:.4}.file-tab-drop-indicator{width:2px;height:20px;align-self:center;background:var(--color-action-primary);border-radius:1px;flex-shrink:0;pointer-events:none;margin:0 2px}.file-tab-active{background:var(--color-bg-surface-1);color:var(--color-fg-default);border-top:2px solid var(--color-action-primary)}.file-tab-modified{width:6px;height:6px;border-radius:50%;background:var(--color-feedback-error);flex-shrink:0}.file-tab-name{overflow:hidden;text-overflow:ellipsis;flex:1}.file-tab-close{background:none;border:none;color:transparent;font-size:16px;line-height:1;cursor:pointer;padding:0;border-radius:3px;flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;transition:background .1s ease,color .1s ease}.file-tab:hover .file-tab-close,.file-tab-active .file-tab-close{color:var(--color-fg-default)}.file-tab-close:hover{background:var(--color-feedback-error)!important;color:var(--color-fg-default)!important}.file-tab-close:disabled{cursor:default;pointer-events:none}.ftabs-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.ftabs-confirm-box{background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:6px;padding:20px 24px;color:var(--color-fg-default);font-size:14px;min-width:290px}.ftabs-confirm-box p{margin:0 0 16px}.ftabs-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.ftabs-confirm-actions button{padding:6px 14px;border-radius:4px;border:1px solid var(--color-border-default);cursor:pointer;font-size:13px;background:var(--color-bg-surface-2);color:var(--color-fg-default)}.ftabs-confirm-actions button:hover{background:var(--color-border-default)}.ftabs-btn-close{background:var(--color-feedback-error)!important;border-color:var(--color-feedback-error)!important;color:var(--color-fg-default)!important}.ftabs-btn-close:hover{background:var(--color-feedback-error)!important}.tansor-compile-queue-card{position:absolute;top:calc(100% + 8px);right:12px;width:260px;background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:10px;padding:12px 14px;box-shadow:0 12px 32px #0000008c;z-index:300;color:var(--color-fg-default);font-size:13px;line-height:1.4;animation:tansorQueueCardIn .2s ease-out}@keyframes tansorQueueCardIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.tansor-compile-queue-card.queue-pending{border-left:3px solid var(--color-feedback-warning)}.tansor-compile-queue-card.queue-running{border-left:3px solid var(--color-action-primary-hover)}.tansor-compile-queue-card.queue-done{border-left:3px solid var(--color-feedback-success)}.tansor-compile-queue-card.queue-error{border-left:3px solid var(--color-feedback-error)}.tansor-compile-queue-card.queue-cancelled{border-left:3px solid var(--color-fg-muted)}.tansor-compile-queue-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.tansor-compile-queue-card-title{font-weight:500;word-break:break-word}.tansor-compile-queue-card-close{padding:0 4px;margin:-4px -4px 0 0;font-size:18px;line-height:1;color:var(--color-fg-muted);background:transparent;border:none;cursor:pointer;transition:color .15s ease}.tansor-compile-queue-card-close:hover{color:var(--color-fg-default)}.tansor-compile-queue-card-body{margin-top:10px}.tansor-compile-queue-progress-track{height:4px;background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);border-radius:2px;overflow:hidden}.tansor-compile-queue-progress-thumb{height:100%;border-radius:2px;background:var(--color-action-primary-hover)}.tansor-compile-queue-progress-thumb.queue-indeterminate{width:40%;animation:tansorQueueIndeterminate 1.4s infinite ease-in-out}.tansor-compile-queue-progress-thumb.queue-running-animated{width:100%;animation:tansorQueueRunning 1.2s infinite linear}@keyframes tansorQueueIndeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes tansorQueueRunning{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.tansor-compile-queue-card-meta{display:block;margin-top:6px;font-size:11px;color:var(--color-fg-muted)}.tansor-compile-queue-card-footer{margin-top:10px;display:flex;justify-content:flex-end}.tansor-compile-queue-card-cancel-btn{padding:5px 12px;font-size:12px;font-weight:500;color:var(--color-feedback-error);background:color-mix(in srgb,var(--color-feedback-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-feedback-error) 25%,transparent);border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.tansor-compile-queue-card-cancel-btn:hover{background:color-mix(in srgb,var(--color-feedback-error) 18%,transparent);border-color:color-mix(in srgb,var(--color-feedback-error) 40%,transparent)}.tansor-compile-queue-card-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.lib-modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:lib-fadeIn .15s ease}@keyframes lib-fadeIn{0%{opacity:0}to{opacity:1}}.lib-modal{background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:8px;width:680px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:lib-slideIn .2s ease;overflow:hidden}@keyframes lib-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.lib-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default)}.lib-modal-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase}.lib-icon{width:18px;height:18px;color:var(--color-action-primary);flex-shrink:0}.lib-close-btn{background:none;border:none;color:var(--color-fg-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.lib-close-btn:hover{background:var(--color-bg-surface-2);color:var(--color-fg-on-action)}.lib-tabs{display:flex;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default);padding:0 18px;gap:4px}.lib-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--color-fg-muted);font-size:13px;font-weight:500;cursor:pointer;padding:10px 14px;transition:all .15s;letter-spacing:.03em}.lib-tab:hover{color:var(--color-fg-default)}.lib-tab.active{color:var(--color-action-primary);border-bottom-color:var(--color-action-primary)}.lib-status{padding:8px 18px;font-size:13px;font-weight:500;border-bottom:1px solid transparent}.lib-status.success{background:color-mix(in srgb,var(--color-feedback-success) 12%,var(--color-bg-canvas));color:var(--color-feedback-success);border-bottom-color:color-mix(in srgb,var(--color-feedback-success) 30%,var(--color-bg-canvas))}.lib-status.error{background:color-mix(in srgb,var(--color-feedback-error) 15%,var(--color-bg-canvas));color:var(--color-feedback-error);border-bottom-color:color-mix(in srgb,var(--color-feedback-error) 35%,var(--color-bg-canvas))}.lib-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.lib-search-bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-canvas)}.lib-search-icon{width:16px;height:16px;color:var(--color-fg-subtle);flex-shrink:0}.lib-search-bar input{flex:1;background:transparent;border:none;outline:none;color:var(--color-fg-default);font-size:14px;caret-color:var(--color-action-primary)}.lib-search-bar input::placeholder{color:var(--color-fg-subtle)}.lib-search-btn{background:var(--color-action-primary);color:var(--color-action-primary-fg);border:none;border-radius:20px;padding:6px 18px;font-size:12px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.lib-search-btn:hover:not(:disabled){background:var(--color-action-primary-hover)}.lib-search-btn:disabled{opacity:.55;cursor:not-allowed}.lib-spinner{width:16px;height:16px;color:var(--color-action-primary);flex-shrink:0;animation:spin .8s linear infinite}.lib-spinner-center{width:32px;height:32px;margin-bottom:8px}.lib-list{flex:1;overflow-y:auto;padding:8px 0}.lib-list::-webkit-scrollbar{width:6px}.lib-list::-webkit-scrollbar-track{background:var(--color-bg-canvas)}.lib-list::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.lib-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--color-fg-subtle);font-size:14px;gap:8px;text-align:center}.lib-empty-sub{font-size:12px;color:var(--color-fg-subtle)}.lib-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--color-border-default);transition:background .1s}.lib-item:hover{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.lib-item-info{flex:1;min-width:0}.lib-item-header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px}.lib-item-name{font-weight:700;color:var(--color-fg-default);font-size:14px}.lib-item-author{color:var(--color-fg-muted);font-size:12px}.lib-item-desc{color:var(--color-fg-muted);font-size:12px;line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.lib-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.lib-item-version{font-size:11px;color:var(--color-fg-subtle);background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:3px;padding:2px 6px;white-space:nowrap}.lib-installed-badge{color:var(--color-feedback-success);border-color:color-mix(in srgb,var(--color-feedback-success) 30%,var(--color-bg-canvas));background:color-mix(in srgb,var(--color-feedback-success) 12%,var(--color-bg-canvas))}.lib-install-btn{background:var(--color-action-primary);color:var(--color-action-primary-fg);border:none;border-radius:20px;padding:6px 18px;font-size:12px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .15s;white-space:nowrap}.lib-install-btn:hover:not(:disabled){background:var(--color-action-primary-hover);box-shadow:0 0 12px color-mix(in srgb,var(--color-action-primary) 40%,transparent);transform:translateY(-1px)}.lib-install-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.lib-installing{display:flex;align-items:center;gap:4px}.board-lib-modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:99999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:board-lib-fadeIn .15s ease}@keyframes board-lib-fadeIn{0%{opacity:0}to{opacity:1}}.board-lib-modal{background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:8px;width:1020px;max-width:95vw;height:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:board-lib-slideIn .2s ease;overflow:hidden;align-self:center;margin:auto 0}@keyframes board-lib-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.board-lib-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default);flex-shrink:0}.board-lib-modal-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase}.board-lib-icon{width:18px;height:18px;color:var(--color-action-primary);flex-shrink:0}.board-lib-modal-subtitle{font-size:12px;font-weight:500;color:var(--color-fg-muted);text-transform:none;letter-spacing:.02em}.board-lib-close-btn{background:none;border:none;color:var(--color-fg-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.board-lib-close-btn:hover{background:var(--color-bg-surface-2);color:var(--color-fg-on-action)}.board-lib-status{padding:8px 18px;font-size:13px;font-weight:500;border-bottom:1px solid transparent;display:flex;align-items:center;gap:8px;flex-shrink:0}.board-lib-status.success{background:#0d2b1e;color:var(--color-feedback-success);border-bottom-color:#1a4731}.board-lib-status.error{background:#2b0d0d;color:var(--color-feedback-error);border-bottom-color:#4a1a1a}.board-lib-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.ilib-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ilib-fadeIn .15s ease}@keyframes ilib-fadeIn{0%{opacity:0}to{opacity:1}}.ilib-modal{background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:8px;width:480px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:ilib-slideIn .2s ease;overflow:hidden}@keyframes ilib-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.ilib-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default)}.ilib-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase}.ilib-close-btn{background:none;border:none;color:var(--color-fg-muted);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.ilib-close-btn:hover:not(:disabled){background:var(--color-bg-surface-2);color:var(--color-fg-on-action)}.ilib-close-btn:disabled{opacity:.3;cursor:not-allowed}.ilib-subtitle{padding:10px 18px;font-size:13px;color:var(--color-fg-muted);border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface-1);min-height:38px;display:flex;align-items:center}.ilib-subtitle-installing{display:flex;align-items:center;gap:8px;color:var(--color-action-primary);font-weight:500}.ilib-subtitle-done{color:var(--color-feedback-success);font-weight:500}.ilib-list{flex:1;overflow-y:auto;padding:6px 0}.ilib-list::-webkit-scrollbar{width:6px}.ilib-list::-webkit-scrollbar-track{background:var(--color-bg-canvas)}.ilib-list::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.ilib-item{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--color-border-default);gap:12px;transition:background .1s}.ilib-item:hover{background:var(--color-bg-surface-2)}.ilib-item-name{font-size:13px;color:var(--color-fg-default);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ilib-item--done .ilib-item-name,.ilib-item--error .ilib-item-name{color:var(--color-fg-muted)}.ilib-item-status{flex-shrink:0}.ilib-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:3px;white-space:nowrap}.ilib-badge--pending{color:var(--color-fg-subtle);background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong)}.ilib-badge--installing{color:var(--color-action-primary);background:var(--color-bg-surface-1);border:1px solid color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.ilib-badge--done{color:var(--color-feedback-success);background:color-mix(in srgb,var(--color-feedback-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-feedback-success) 25%,transparent)}.ilib-badge--error{color:var(--color-feedback-error);background:color-mix(in srgb,var(--color-feedback-error) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-feedback-error) 25%,transparent);cursor:help}.ilib-badge--wokwi{color:var(--color-action-primary-subtle);background:var(--color-bg-surface-2);border:1px solid color-mix(in srgb,var(--color-action-primary) 25%,transparent);margin-left:6px;font-size:9px;text-transform:uppercase;letter-spacing:.03em;cursor:default}.ilib-spinner{flex-shrink:0;animation:ilib-spin .8s linear infinite}@keyframes ilib-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ilib-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 18px;background:var(--color-bg-canvas);border-top:1px solid var(--color-border-default)}.ilib-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:20px;padding:8px 22px;font-size:13px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .15s;white-space:nowrap}.ilib-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.ilib-btn--primary{background:var(--color-action-primary);color:var(--color-action-primary-fg)}.ilib-btn--primary:hover:not(:disabled){background:var(--color-action-primary-hover);box-shadow:0 0 12px color-mix(in srgb,var(--color-action-primary) 40%,transparent);transform:translateY(-1px)}.ilib-btn--ghost{background:transparent;color:var(--color-fg-muted);border:1px solid var(--color-border-strong)}.ilib-btn--ghost:hover:not(:disabled){background:var(--color-bg-surface-2);color:var(--color-fg-default)}.flash-modal-overlay{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:flash-modal-fade-in .15s ease}@keyframes flash-modal-fade-in{0%{opacity:0}to{opacity:1}}.flash-modal{box-shadow:0 24px 64px #0009;animation:flash-modal-slide-in .2s ease}@keyframes flash-modal-slide-in{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.editor-toolbar-wrapper{container-type:inline-size;container-name:editor-toolbar;display:flex;align-items:center}.editor-toolbar-right-slot{display:flex;align-items:center;flex-shrink:0;background:#141416}.editor-toolbar{display:flex;align-items:center;justify-content:flex-start;padding:0 6px;height:100%;background:var(--color-bg-surface-1);border-bottom:1px solid var(--color-border-default);flex-shrink:0;gap:6px;min-width:0}.toolbar-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.toolbar-group-right{gap:6px}.tb-compile-btn-wrapper{position:relative;display:inline-flex}.tb-compile-btn-wrapper .tansor-compile-queue-card{top:calc(100% + 18px);left:0;right:auto}.toolbar-center-slot{flex:1 1 auto;min-width:0;display:flex;align-items:stretch;overflow:hidden}.toolbar-center-slot>.file-tabs{flex:1;min-width:0;border-bottom:none;background:transparent;min-height:0;height:100%}.toolbar-center-slot .file-tab{height:100%;padding:0 8px;min-width:70px;max-width:160px;font-size:11.5px}.toolbar-center-slot .file-tab-active{background:var(--color-bg-surface-1);border-top:2px solid var(--color-action-primary-subtle)}.tb-divider{width:1px;height:18px;background:var(--color-border-default);margin:0 3px;align-self:center}.tb-divider-hidden{display:none}.tb-btn{width:auto;min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:none;border-radius:5px;cursor:pointer;background:transparent;color:var(--color-fg-muted);transition:background .12s,color .12s;flex-shrink:0;align-self:center;font-size:12px;font-weight:500;font-family:inherit;white-space:nowrap}.tb-btn svg{width:22px;height:22px}.tb-btn-label{line-height:1}.tb-btn-icon-only{width:40px;height:40px;min-width:40px;padding:0}.tb-btn-icon-only svg{width:28px;height:28px}.tb-btn-icon-only .tb-btn-label{display:none}.board-target-mode-toggle{display:flex;background:var(--color-bg-surface-1);border-radius:5px;overflow:hidden;height:40px;flex-shrink:0;margin-right:22px}.board-target-mode-toggle__btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:none;background:var(--color-bg-surface-3);color:var(--color-fg-muted);cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;transition:background .12s,color .12s}.board-target-mode-toggle__btn:hover:not(.board-target-mode-toggle__btn--active){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-default)}.board-target-mode-toggle__btn--active{background:var(--color-action-primary-active);color:var(--color-fg-default)}.board-target-mode-toggle__icon{width:22px;height:22px;flex-shrink:0}.board-target-mode-toggle__label{line-height:1;white-space:nowrap}.board-serial-port-selector{position:relative;display:flex;align-items:center;gap:6px;height:40px;flex-shrink:0}.board-serial-port-selector__trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:4px;min-width:140px;height:40px;padding:0 8px;background:var(--color-bg-input);border:none;border-radius:5px;color:var(--color-fg-default);cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;outline:none;box-sizing:border-box;transition:background .15s,color .15s}.board-serial-port-selector__trigger:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-fg-default)}.board-serial-port-selector__trigger:disabled{opacity:.5;cursor:not-allowed}.board-serial-port-selector__trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.board-serial-port-selector__trigger-arrow{flex-shrink:0}.board-serial-port-selector__trigger--warn{color:var(--color-feedback-warning)}.board-serial-port-selector__warn-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--color-feedback-warning);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-feedback-warning) 35%,transparent)}.board-serial-port-selector__notice{padding:6px 14px 8px;border-bottom:1px solid var(--color-border-default);color:var(--color-fg-subtle);font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.board-serial-port-selector__notice--warn{color:var(--color-feedback-warning)}.board-serial-port-selector__driver-panel{padding:0 14px;white-space:normal;overflow-wrap:anywhere}.board-serial-port-selector__menu{position:absolute;top:calc(100% + 6px);left:0;z-index:200;list-style:none;margin:0;padding:6px 0;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:8px;min-width:160px;max-width:320px;box-shadow:var(--shadow-dropdown, 0 8px 24px rgba(0, 0, 0, .5));display:flex;flex-direction:column}.board-serial-port-selector__item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 14px;background:transparent;border:none;color:var(--color-fg-default);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:color .15s,background .15s}.board-serial-port-selector__item:hover{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-default)}.board-serial-port-selector__item--active{color:var(--color-action-primary);font-weight:500}.board-serial-port-selector__item--active:hover{color:var(--color-action-primary)}.board-serial-port-selector__item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-serial-port-selector__refresh{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);border:none;border-radius:5px;color:var(--color-fg-muted);cursor:pointer;font-size:22px;line-height:1;transition:background .12s,color .12s;flex-shrink:0}.board-serial-port-selector__refresh:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.board-serial-port-selector__refresh:disabled{opacity:.35;cursor:not-allowed}.tb-lang-select{background:var(--color-bg-input);color:var(--color-fg-default);border:none;transition:background .15s,color .15s}.tb-lang-select:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-fg-default)}.tb-lang-select:disabled{opacity:.5;cursor:not-allowed}.tb-lang-menu{position:absolute;top:110%;left:0;list-style:none;margin:6px 0 0;padding:6px 0;background:var(--color-bg-surface-2);border:1px solid color-mix(in srgb,var(--color-fg-default) 8%,transparent);border-radius:8px;min-width:160px;z-index:200;box-shadow:var(--shadow-dropdown, 0 8px 24px rgba(0, 0, 0, .5))}.tb-lang-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 14px;background:transparent;border:none;color:var(--color-fg-default);font-size:13px;text-align:left;font-family:inherit;cursor:pointer;transition:color .15s,background .15s}.tb-lang-menu-item:hover{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.tb-lang-menu-item--active,.tb-lang-menu-item--active:hover{color:var(--color-action-primary);font-weight:500}.tb-examples-menu{position:relative;display:inline-flex}.tb-btn-examples{color:var(--color-fg-muted)}.tb-btn-examples:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.tb-btn-examples:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.tb-btn-examples:disabled{opacity:.35;cursor:not-allowed}.tb-btn-catalog{color:var(--color-fg-muted);margin-right:4px}.tb-btn-catalog:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.tb-btn-catalog:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.tb-examples-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;max-height:70vh;overflow:auto;background-color:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:8px;box-shadow:var(--shadow-dropdown, 0 8px 24px rgba(0, 0, 0, .5));z-index:200;padding:4px 0}.tb-examples-submenu,.tb-examples-item{list-style:none;margin:0;padding:0}.tb-examples-submenu{min-width:160px}.tb-examples-item{position:relative;width:100%}.tb-examples-item-btn,.tb-examples-item-label{display:flex;align-items:center;width:100%;padding:14px 12px;font-size:12px;color:var(--color-fg-default);background:transparent;border:none;text-align:left;cursor:pointer;white-space:nowrap;box-sizing:border-box;font-family:inherit}.tb-examples-item-btn:hover,.tb-examples-item-label:hover,.tb-examples-item-label:focus-visible,.tb-examples-folder.expanded>.tb-examples-item-label,.tb-examples-item:hover>.tb-examples-item-label{background-color:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-default);outline:none}.tb-examples-item-loading{display:inline-flex;margin-left:6px}.tb-examples-item-loading>span{opacity:0;animation:tb-loading-dots-blink 1.4s infinite both}.tb-examples-item-loading>span:nth-child(1){animation-delay:0s}.tb-examples-item-loading>span:nth-child(2){animation-delay:.2s}.tb-examples-item-loading>span:nth-child(3){animation-delay:.4s}.tb-examples-folder>.tb-examples-item-label:after{content:"›";margin-left:auto;padding-left:10px;font-size:14px;line-height:1;transition:transform .15s ease}.tb-examples-folder.expanded>.tb-examples-item-label:after{transform:rotate(90deg)}.tb-examples-folder>.tb-examples-submenu{display:none;padding:0 0 0 12px}.tb-examples-folder.expanded>.tb-examples-submenu{display:block}.tb-examples-empty,.tb-examples-error{padding:8px 12px;font-size:12px;color:var(--color-fg-muted);white-space:nowrap}.tb-examples-error{color:var(--color-feedback-error)}.tb-loading-dots{display:inline-flex;margin-left:2px}.tb-loading-dots>span{opacity:0;animation:tb-loading-dots-blink 1.4s infinite both;transform:translateY(-1px)}.tb-loading-dots>span:nth-child(1){animation-delay:0s}.tb-loading-dots>span:nth-child(2){animation-delay:.2s}.tb-loading-dots>span:nth-child(3){animation-delay:.4s}@keyframes tb-loading-dots-blink{0%,80%,to{opacity:0}40%{opacity:1}}.tb-btn:disabled{opacity:.35;cursor:not-allowed}.tb-btn-compile{color:var(--color-action-primary-subtle)}.tb-btn-compile:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 8%,transparent)}.tb-btn-compile:hover:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 18%,transparent);color:var(--color-action-primary)}.tb-btn-compile:active:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.tb-btn-run{color:var(--color-feedback-success)}.tb-btn-run:hover:not(:disabled){background:color-mix(in srgb,var(--color-feedback-success) 12%,transparent);color:var(--color-feedback-success)}.tb-btn-stop{color:var(--color-feedback-error)}.tb-btn-stop:hover:not(:disabled){background:color-mix(in srgb,var(--color-feedback-error) 12%,transparent);color:var(--color-feedback-error)}.tb-btn-reset:hover:not(:disabled){background:var(--color-bg-surface-3);color:var(--color-fg-default)}.tb-btn-libraries{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;gap:5px;border:none;border-radius:5px;cursor:pointer;background:color-mix(in srgb,var(--color-action-primary) 8%,transparent);color:var(--color-action-primary);font-size:12px;font-weight:500;font-family:inherit;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;flex-shrink:0;align-self:center}.tb-btn-libraries svg{width:28px;height:28px}.tb-btn-libraries:hover{background:color-mix(in srgb,var(--color-action-primary) 18%,transparent);color:var(--color-fg-default)}.tb-btn-libraries:disabled{opacity:.4;cursor:not-allowed}@container editor-toolbar (max-width: 600px){.tb-btn-label{display:none}.tb-btn{width:32px;padding:0}.tb-btn svg,.tb-btn-libraries svg{width:18px;height:18px}.tb-btn-libraries{height:32px;padding:0 6px}.board-target-mode-toggle__label{display:none}.board-target-mode-toggle__btn{padding:0;width:32px}.board-target-mode-toggle__icon{width:22px;height:22px}.board-serial-port-selector__refresh{font-size:18px}}@container editor-toolbar (max-width: 460px){.tb-board-pill-label{display:none}.tb-board-pill{padding:3px 6px}}.tb-btn-lib{color:var(--color-action-primary)}.tb-btn-lib:hover{background:color-mix(in srgb,var(--color-action-primary) 10%,transparent);color:var(--color-action-primary)}.tb-lib-hint{display:flex;align-items:center;gap:6px;padding:5px 12px;background:color-mix(in srgb,var(--color-feedback-warning) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--color-feedback-warning) 25%,transparent);color:var(--color-feedback-warning);font-size:12px;font-family:inherit}.tb-lib-hint svg{flex-shrink:0;color:var(--color-feedback-warning)}.tb-lib-hint-btn{background:color-mix(in srgb,var(--color-action-primary) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-action-primary) 40%,transparent);border-radius:4px;color:var(--color-action-primary);font-size:12px;font-weight:600;font-family:inherit;padding:2px 8px;cursor:pointer;transition:background .12s}.tb-lib-hint-btn:hover{background:color-mix(in srgb,var(--color-action-primary) 30%,transparent);color:var(--color-fg-default)}.tb-lib-hint-close{margin-left:auto;background:none;border:none;color:var(--color-fg-muted);font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.tb-lib-hint-close:hover{color:var(--color-fg-default)}.tb-btn-output{color:var(--color-fg-muted)}.tb-btn-output:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.tb-btn-output:hover{background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.tb-btn-output-active{color:var(--color-action-primary-subtle);background:color-mix(in srgb,var(--color-action-primary) 10%,transparent)}.tb-btn-output-active:hover{background:color-mix(in srgb,var(--color-action-primary) 18%,transparent);color:var(--color-action-primary)}.tb-btn-output svg{width:22px;height:22px}.tb-btn-serial{color:var(--color-fg-muted)}.tb-btn-serial:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.tb-btn-serial:hover{background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.tb-btn-serial-active{color:var(--color-feedback-success);background:color-mix(in srgb,var(--color-feedback-success) 10%,transparent)}.tb-btn-serial-active:hover{background:color-mix(in srgb,var(--color-feedback-success) 18%,transparent);color:var(--color-feedback-success)}.tb-btn-serial svg{width:22px;height:22px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite;transform-origin:center}.tb-status{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-size:12px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-status-success{color:var(--color-feedback-success);background:color-mix(in srgb,var(--color-feedback-success) 10%,transparent)}.tb-status-error{color:var(--color-feedback-error);background:color-mix(in srgb,var(--color-feedback-error) 10%,transparent)}.tb-status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-btn-compile-all{color:var(--color-action-primary-subtle)}.tb-btn-compile-all:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 8%,transparent)}.tb-btn-compile-all:hover:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 18%,transparent);color:var(--color-action-primary)}.tb-btn-upload:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-muted)}.tb-btn-upload:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 12%,transparent);color:var(--color-fg-default)}.tb-btn-run-all{color:var(--color-feedback-success)}.tb-btn-run-all:hover:not(:disabled){background:color-mix(in srgb,var(--color-feedback-success) 12%,transparent);color:var(--color-feedback-success)}.tb-board-pill{display:flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:20px;border:1px solid;font-size:11px;font-weight:600;white-space:nowrap;opacity:.85;flex-shrink:0;background:color-mix(in srgb,var(--color-fg-default) 4%,transparent);max-width:170px;overflow:hidden}.tb-board-pill-icon{font-size:9px;flex-shrink:0}.tb-board-pill-label{overflow:hidden;text-overflow:ellipsis}.tb-board-pill-running{width:6px;height:6px;border-radius:50%;background:var(--color-feedback-success);flex-shrink:0;animation:pulse-run 1.4s ease-in-out infinite}@keyframes pulse-run{0%,to{opacity:1}50%{opacity:.3}}.tb-overflow-wrap{position:relative}.tb-btn-overflow{color:var(--color-fg-muted)}.tb-btn-overflow:hover{background:color-mix(in srgb,var(--color-fg-default) 7%,transparent);color:var(--color-fg-default)}.tb-btn-overflow-active{background:color-mix(in srgb,var(--color-fg-default) 10%,transparent);color:var(--color-fg-default)}.tb-overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:10px;padding:6px;min-width:180px;box-shadow:var(--shadow-dropdown, 0 8px 32px rgba(0, 0, 0, .6));display:flex;flex-direction:column;gap:2px}.tb-overflow-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:7px;color:var(--color-fg-default);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap;transition:background .12s,color .12s}.tb-overflow-item:hover{background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-fg-default)}.tb-overflow-item svg{flex-shrink:0;color:var(--color-action-primary)}.toolbar-error-detail{background:#1a0000;border-bottom:1px solid #5a1a1a;color:#f48fb1;font-size:11px;font-family:Cascadia Code,Fira Code,Consolas,monospace;padding:4px 12px;max-height:80px;overflow-y:auto;white-space:pre-wrap;line-height:1.4}.tb-btn-icon-only.tb-btn-icon-only{width:40px;height:40px;min-width:40px}.tb-btn-icon-only.tb-btn-icon-only svg{width:28px;height:28px}.tb-btn-libraries.tb-btn-icon-only svg{width:28px;height:28px}.file-explorer{width:100%;background:var(--color-bg-surface-1);border-right:1px solid var(--color-border-default);display:flex;flex-direction:column;overflow:hidden;font-size:12px;font-family:Segoe UI,sans-serif}.file-explorer-header{display:flex;align-items:center;justify-content:center;padding:0 10px;height:55px;color:var(--color-fg-muted);font-size:11px;font-weight:600;letter-spacing:.5px;border-bottom:1px solid var(--color-border-default);flex-shrink:0}.file-explorer-static-title{font-size:13px;font-weight:600;color:var(--color-fg-default);letter-spacing:.5px;-webkit-user-select:none;user-select:none}.file-explorer-header-actions{display:flex;align-items:center;gap:2px}.file-explorer-new-btn{background:none;border:none;color:var(--color-fg-muted);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:26px;height:26px}.file-explorer-new-btn:hover{background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-fg-default)}.file-explorer-save-btn{background:none;border:none;color:var(--color-fg-muted);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:26px;height:26px}.file-explorer-save-btn:hover{background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-action-primary-subtle)}.file-explorer-list{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.file-explorer-item{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;color:var(--color-fg-default);border-radius:3px;margin:1px 4px;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.file-explorer-item:hover{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent)}.file-explorer-item-active{background:color-mix(in srgb,var(--color-action-primary) 12%,transparent);color:var(--color-fg-default)}.file-explorer-item-new{background:color-mix(in srgb,var(--color-fg-default) 4%,transparent)}.file-explorer-icon{font-size:12px;flex-shrink:0;opacity:.8}.file-explorer-name{overflow:hidden;text-overflow:ellipsis;flex:1}.file-explorer-dot{width:7px;height:7px;border-radius:50%;background:#e8a87c;flex-shrink:0}.file-explorer-rename-input{flex:1;background:var(--color-bg-input);border:1px solid var(--color-action-primary-subtle);color:var(--color-fg-default);font-size:12px;padding:1px 4px;border-radius:2px;outline:none;min-width:0;font-family:inherit}.file-explorer-context-menu{position:fixed;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:4px;z-index:2000;display:flex;flex-direction:column;min-width:120px;box-shadow:0 4px 14px #00000080;overflow:hidden}.file-explorer-context-menu button{background:none;border:none;color:var(--color-fg-default);padding:7px 14px;text-align:left;cursor:pointer;font-size:12px;font-family:inherit}.file-explorer-context-menu button:hover:not(:disabled){background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);color:var(--color-fg-default)}.file-explorer-context-menu button:disabled{opacity:.35;cursor:not-allowed}.ctx-delete:hover:not(:disabled){color:var(--color-feedback-error)!important}.fe-board-section{margin-bottom:2px}.fe-board-header{display:flex;align-items:center;gap:5px;padding:5px 6px 5px 4px;height:55px;cursor:pointer;color:var(--color-fg-muted);border-radius:3px;margin:0 4px;-webkit-user-select:none;user-select:none;position:relative}.fe-board-header:hover,.fe-board-header-active{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-default)}.fe-collapse-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;flex-shrink:0;opacity:.6}.fe-collapse-btn:hover{opacity:1}.fe-board-icon{font-size:10px;flex-shrink:0;line-height:1}.fe-board-label{font-size:11px;font-weight:600;letter-spacing:.3px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.fe-board-new-btn{background:none;border:none;color:var(--color-fg-muted);cursor:pointer;padding:1px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:0;transition:opacity .1s}.fe-board-header:hover .fe-board-new-btn,.fe-board-header-active .fe-board-new-btn{opacity:1}.fe-board-new-btn:hover{background:color-mix(in srgb,var(--color-fg-default) 10%,transparent);color:var(--color-fg-default)}.fe-file-item{padding-left:26px!important;height:55px}.component-picker-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:99999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.component-picker-modal{background:var(--color-bg-surface-1);border-radius:12px;box-shadow:0 8px 32px #0003;width:90%;max-width:1100px;height:85vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:var(--color-bg-surface-1);border-bottom:1px solid var(--color-border-default)}.modal-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase}.modal-title-icon{width:18px;height:18px;color:var(--color-action-primary);flex-shrink:0}.close-btn{background:none;border:none;color:var(--color-fg-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--color-bg-surface-2);color:var(--color-fg-default)}.search-section{padding:16px 24px}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input{width:100%;padding:12px 40px 12px 12px;font-size:16px;border:2px solid var(--color-border-default);border-radius:8px;outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--color-action-primary);box-shadow:none}.clear-search-btn{position:absolute;right:12px;background:none;border:none;color:var(--color-fg-muted);cursor:pointer;padding:4px;font-size:18px;line-height:1;border-radius:4px;transition:background .2s,color .2s}.clear-search-btn:hover{background:var(--color-bg-surface-2);color:var(--color-fg-subtle)}.filter-rows{display:flex;flex-direction:column;flex-shrink:0}.filter-row{display:flex;gap:12px;padding:5px 24px;max-width:100%;align-items:flex-start;flex-shrink:0}.filter-row-label{width:72px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--color-fg-muted);padding-top:4px;text-align:right}.tag-chips .filter-row-label{width:auto;font-size:14px;font-weight:500;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);color:var(--color-fg-subtle);border-radius:20px;padding:8px 16px;text-align:center;height:38px;line-height:20px;box-sizing:border-box}.filter-row-content{display:flex;gap:8px;flex-wrap:wrap;flex:1;align-items:center;min-width:0}.category-tab{padding:8px 16px;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:20px;font-size:14px;font-weight:500;color:var(--color-fg-subtle);cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0}.category-tab:hover{background:var(--color-bg-surface-3);border-color:var(--color-border-default)}.category-tab.active{background:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-fg-default)}.brand-select-wrapper{position:relative;display:inline-flex;align-items:center}.brand-select{appearance:none;-webkit-appearance:none;padding:8px 32px 8px 14px;font-size:14px;font-weight:500;color:var(--color-fg-subtle);background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:20px;cursor:pointer;outline:none;min-width:140px;transition:all .2s;height:38px;line-height:20px;box-sizing:border-box}.brand-select:hover{background:var(--color-bg-surface-2);border-color:var(--color-border-default)}.brand-select:focus{border-color:var(--color-action-primary)}.brand-select-wrapper:after{content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--color-fg-muted);pointer-events:none}.tag-chip{padding:8px 16px;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:20px;font-size:14px;font-weight:500;color:var(--color-fg-subtle);cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0}.tag-chip:hover{background:var(--color-bg-surface-3);border-color:var(--color-border-default)}.tag-chip.active{background:var(--gray-0);border-color:var(--gray-0);color:var(--gray-1000)}.tag-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);border-radius:9px;font-size:11px;font-weight:600;color:var(--color-fg-subtle)}.tag-chip.active .tag-chip-count{background:color-mix(in srgb,var(--gray-1000) 12%,transparent);color:var(--gray-1000)}.components-grid{flex:1;overflow-y:auto;padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;align-content:start}.components-scroll{flex:1;overflow-y:auto;min-height:0}.components-scroll::-webkit-scrollbar{width:8px}.components-scroll::-webkit-scrollbar-track{background:var(--color-bg-surface-2);border-radius:4px}.components-scroll::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}.components-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.components-grid--inline{flex:none;overflow:visible}.loading-state{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--color-fg-muted);display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{width:40px;height:40px;border:4px solid var(--color-bg-surface-2);border-top:4px solid var(--color-action-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-results{grid-column:1 / -1;text-align:center;padding:40px 20px;color:var(--color-fg-muted)}.no-results p{margin:0 0 16px;font-size:18px}.clear-filters-btn{padding:10px 20px;background:var(--color-action-primary);color:var(--color-fg-default);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.clear-filters-btn:hover{background:var(--color-action-primary-hover)}.component-card{background:var(--color-bg-surface-1);border:2px solid var(--color-border-default);border-radius:8px;padding:16px;cursor:pointer;transition:all .2s;text-align:left;display:flex;flex-direction:column;gap:12px}.component-card:hover{border-color:var(--color-action-primary);box-shadow:0 4px 12px color-mix(in srgb,var(--color-action-primary) 15%,transparent);transform:translateY(-2px)}.component-card.component-card-disabled{filter:grayscale(100%) opacity(.55);cursor:default;pointer-events:none;-webkit-user-select:none;user-select:none}.component-card.component-card-plan-blocked{filter:grayscale(100%) opacity(.55);cursor:not-allowed;-webkit-user-select:none;user-select:none}.component-card.component-card-plan-blocked:hover{border-color:var(--color-border-default);box-shadow:none;transform:none}.card-thumbnail{display:flex;align-items:center;justify-content:center;height:100px;background:var(--color-bg-surface-2);border-radius:6px;overflow:hidden;position:relative}.component-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}.card-thumbnail svg{max-width:100%;max-height:100%}.board-thumb-img{height:85%;width:auto;max-width:100%;object-fit:contain;display:block}.board-thumb-svg svg{height:85%;width:auto;max-width:100%;display:block}.board-thumb-pending .spinner{width:24px;height:24px;border-width:3px}.board-thumb-missing{height:85%;aspect-ratio:3 / 2;max-width:100%;display:flex;align-items:center;justify-content:center;color:#555;border:1px dashed #444;border-radius:6px;box-sizing:border-box}.card-content{display:flex;flex-direction:column;gap:6px;flex:1}.card-name{font-size:16px;font-weight:600;color:var(--color-fg-default)}.card-description{font-size:13px;color:var(--color-fg-subtle);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta{display:flex;gap:8px;font-size:12px;color:var(--color-fg-muted)}.card-category{text-transform:capitalize}.card-pins{margin-left:auto}.card-actions{display:flex;gap:8px;margin-top:auto;padding-top:4px}.card-buy-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;padding:6px 12px;border-radius:4px;background:var(--color-action-primary);color:var(--color-fg-default);font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.card-buy-button:hover{background:var(--color-action-primary-hover)}.card-buy-button-disabled,.card-buy-button-disabled:hover{background:var(--color-bg-surface-2);color:var(--color-fg-muted);opacity:.6;cursor:not-allowed}.card-doc-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;padding:6px 12px;border-radius:4px;background:var(--color-bg-surface-2);color:var(--color-fg-muted);font-size:13px;font-weight:500;opacity:.6;cursor:not-allowed;-webkit-user-select:none;user-select:none}.card-action-icon{width:14px;height:14px;flex-shrink:0}.modal-footer{padding:16px 24px;border-top:1px solid var(--color-border-default);display:flex;justify-content:space-between;align-items:center}.component-count{font-size:14px;color:var(--color-fg-subtle)}.components-grid::-webkit-scrollbar,.category-tabs::-webkit-scrollbar{width:8px;height:8px}.components-grid::-webkit-scrollbar-track,.category-tabs::-webkit-scrollbar-track{background:var(--color-bg-surface-2);border-radius:4px}.components-grid::-webkit-scrollbar-thumb,.category-tabs::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}.components-grid::-webkit-scrollbar-thumb:hover,.category-tabs::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.component-property-dialog{position:absolute;background-color:var(--color-bg-surface-2);border:1px solid var(--color-border-strong);border-radius:8px;padding:12px;width:220px;max-height:min(calc(100vh - 24px),calc(100% - 16px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:0 4px 20px #00000080;z-index:1001;pointer-events:all;color:var(--color-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.component-property-body{display:contents}.component-tech-details,.component-intro{margin-bottom:12px}.component-tech-details-summary,.component-intro-summary{font-size:12px;color:var(--color-fg-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.component-tech-details-summary:hover,.component-intro-summary:hover{color:var(--color-fg-default)}.component-tech-description,.component-intro-text{font-size:12px;color:var(--color-fg-muted);line-height:1.5;margin-top:6px;white-space:pre-line}@media(max-width:520px){.component-property-dialog{inset:8px!important;max-width:none;max-height:none;width:auto;height:auto;overflow:hidden;display:flex;flex-direction:column}.component-property-dialog .component-property-header{flex-shrink:0}.component-property-body{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;margin:0 -4px;padding:0 4px}.component-property-dialog .property-actions{flex-shrink:0;margin-top:8px;padding-top:10px;border-top:1px solid var(--color-border-strong);background:var(--color-bg-surface-2)}}.component-property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--color-border-strong)}.component-property-title{font-size:14px;font-weight:600;color:var(--color-fg-default)}.component-property-sku{font-size:12px;color:var(--color-fg-muted);margin-top:2px}.property-close-button{background:transparent;border:none;color:var(--color-fg-muted);cursor:pointer;font-size:20px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.property-close-button:hover{background-color:var(--color-action-secondary-hover);color:var(--color-fg-default)}.pin-roles-section{margin-bottom:12px}.pin-roles-label{font-size:12px;color:var(--color-fg-muted);margin-bottom:6px;font-weight:500}.pin-role-item{font-size:12px;color:var(--color-fg-default);padding:4px 8px;margin:2px 0;background-color:var(--color-action-secondary-hover);border-radius:4px;display:flex;align-items:center}.pin-role-item--interactive{padding:8px 10px;min-height:36px;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:background-color .15s,border-color .15s,transform .05s}.pin-role-item--interactive:hover{background-color:var(--color-action-secondary-hover);border-color:var(--color-fg-default)}.pin-role-item--interactive:active{transform:scale(.98);background-color:var(--color-bg-surface-2)}.pin-role-item--interactive:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:1px}.pin-role-action{margin-left:auto;color:var(--color-fg-default);font-weight:700;font-size:14px}.pin-name{color:var(--color-fg-default);font-weight:500}.pin-description{color:var(--color-fg-muted);font-size:11px;margin-left:4px}.pin-assignment-section{margin-bottom:12px;padding:6px 8px;background-color:var(--color-action-secondary-hover);border-radius:4px}.pin-assignment-label{font-size:11px;color:var(--color-fg-muted);margin-bottom:4px}.pin-assignment-value{font-size:13px;color:var(--color-action-primary);font-weight:600}.property-edit-section{margin-bottom:12px;border-top:1px solid var(--color-border-strong);padding-top:10px}.property-edit-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;flex-wrap:wrap}.property-edit-label{font-size:12px;color:var(--color-fg-muted);font-weight:500;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.property-edit-select{flex:1;width:100px;padding:4px 8px;font-size:12px;font-weight:600;color:var(--color-fg-default);background-color:var(--color-action-secondary-hover);border:1px solid var(--color-border-strong);border-radius:4px;cursor:pointer;outline:none;transition:border-color .2s}.property-edit-select:hover{border-color:var(--color-action-primary)}.property-edit-select:focus{border-color:var(--color-action-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.property-edit-select option{background-color:var(--color-bg-surface-2);color:var(--color-fg-default)}.property-edit-input{flex:1;width:110px;padding:4px 8px;font-size:12px;font-weight:600;color:var(--color-fg-default);background-color:var(--color-action-secondary-hover);border:1px solid var(--color-border-strong);border-radius:4px;outline:none;transition:border-color .2s;font-family:inherit}.property-edit-input:hover{border-color:var(--color-action-primary)}.property-edit-input:focus{border-color:var(--color-action-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.property-range-input{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.property-range-slider{flex:1;min-width:0;cursor:pointer;accent-color:var(--color-action-primary)}.property-range-number{width:52px;padding:4px 6px;font-size:12px;font-weight:600;color:var(--color-fg-default);background-color:var(--color-action-secondary-hover);border:1px solid var(--color-border-strong);border-radius:4px;outline:none;transition:border-color .2s;text-align:center}.property-range-number:hover,.property-range-number:focus{border-color:var(--color-action-primary)}.property-range-number:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.property-range-input--stacked{flex-direction:column;align-items:stretch;gap:4px}.property-range-input--stacked .property-range-slider{flex:none;width:100%}.property-range-input--stacked .property-range-number{align-self:flex-end;width:60px}.property-actions{display:flex;gap:8px;margin-top:8px;align-items:center;flex-wrap:wrap}.property-action-button{flex:1;padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px}.property-action-button--icon{padding:6px 8px}.property-action-button svg{width:20px;height:20px;display:block;flex-shrink:0}.copy-button{background-color:var(--color-feedback-success);color:var(--color-fg-on-action)}.copy-button:hover{background-color:var(--color-feedback-success);transform:translateY(-1px);box-shadow:0 2px 8px color-mix(in srgb,var(--color-feedback-success) 30%,transparent)}.rotate-button{background-color:var(--color-action-primary);color:var(--color-fg-on-action)}.rotate-button:hover{background-color:var(--color-action-primary-hover);transform:translateY(-1px);box-shadow:0 2px 8px color-mix(in srgb,var(--color-action-primary) 30%,transparent)}.delete-button{background-color:var(--color-feedback-error);color:var(--color-fg-on-action)}.delete-button:hover{background-color:var(--color-feedback-error);transform:translateY(-1px);box-shadow:0 2px 8px color-mix(in srgb,var(--color-feedback-error) 30%,transparent)}.power-button{background-color:var(--color-feedback-warning);color:var(--color-fg-on-action)}.power-button:hover{background-color:var(--color-feedback-warning);transform:translateY(-1px);box-shadow:0 2px 8px color-mix(in srgb,var(--color-feedback-warning) 30%,transparent)}.buy-button{background-color:var(--color-action-primary);color:var(--color-fg-on-action);text-decoration:none}.buy-button:hover{background-color:var(--color-action-primary-hover);transform:translateY(-1px);box-shadow:0 2px 8px color-mix(in srgb,var(--color-action-primary) 30%,transparent)}.property-action-button:active{transform:translateY(0)}.limit-switch-state-button{flex:1;padding:5px 10px;font-size:12px;font-weight:600;color:var(--color-fg-default);background-color:var(--color-action-secondary-hover);border:1px solid var(--color-border-strong);border-radius:4px;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}.limit-switch-state-button:hover{border-color:var(--color-action-primary)}.limit-switch-state-button:focus{outline:none;border-color:var(--color-action-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-action-primary) 25%,transparent)}.limit-switch-state-button.is-pressed{background-color:var(--color-action-primary);color:var(--color-fg-on-action);border-color:var(--color-action-primary)}.net-name-combobox,.searchable-select{flex:1;position:relative;min-width:0}.net-name-combobox .property-edit-input,.searchable-select .property-edit-input{width:100%}.net-name-combobox-list,.searchable-select-list{z-index:1100;max-height:168px;overflow-y:auto;background-color:var(--color-bg-surface-2);border:1px solid var(--color-border-strong);border-radius:4px;box-shadow:0 6px 18px #00000073;padding:2px 0}.net-name-combobox-option,.searchable-select-option{padding:5px 8px;font-size:12px;font-weight:600;color:var(--color-fg-default);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.net-name-combobox-option:hover,.net-name-combobox-option.is-highlight,.searchable-select-option:hover,.searchable-select-option.is-highlight{background-color:var(--color-action-primary);color:var(--color-fg-on-action)}.property-edit-row--col{flex-direction:column;align-items:stretch;gap:6px}.nl-bg-swatches{display:flex;flex-wrap:wrap;gap:6px}.nl-bg-swatch{width:18px;height:18px;padding:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--color-fg-default) 35%,transparent);cursor:pointer;outline:none;transition:transform .1s ease,box-shadow .1s ease}.nl-bg-swatch:hover{transform:scale(1.12)}.nl-bg-swatch.is-active{box-shadow:0 0 0 2px var(--color-bg-surface-2),0 0 0 3.5px var(--color-action-primary)}.sensor-control-panel{position:absolute;top:8px;left:8px;background-color:var(--color-bg-surface-2);border:1px solid var(--color-border-strong);border-radius:8px;padding:12px 16px 14px;min-width:320px;max-width:420px;box-shadow:0 4px 20px #00000080;z-index:1002;pointer-events:all;color:var(--color-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;user-select:none}.sensor-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-strong)}.sensor-panel-title{font-size:13px;font-weight:600;color:var(--color-fg-default);letter-spacing:.01em}.sensor-panel-close{background:transparent;border:none;color:var(--color-fg-muted);cursor:pointer;font-size:20px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s,color .15s;line-height:1}.sensor-panel-close:hover{background-color:var(--color-action-secondary-hover);color:var(--color-fg-default)}.sensor-section-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--color-fg-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:10px;margin-bottom:4px}.sensor-section-label:first-of-type{margin-top:0}.sensor-section-icon{font-size:14px}.sensor-control-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:4px 0}.sensor-control-row--stacked{grid-template-columns:1fr;grid-template-rows:auto auto;gap:4px}.sensor-control-header{display:flex;align-items:center;gap:8px;min-width:0}.sensor-control-row--stacked .sensor-control-header{justify-content:space-between}.sensor-control-label{font-size:12px;color:var(--color-fg-default);width:20px;flex-shrink:0;text-align:right}.sensor-control-label-wide{font-size:12px;color:var(--color-fg-default);min-width:90px;flex-shrink:0}.sensor-slider{width:100%;min-width:0;-webkit-appearance:none;appearance:none;height:4px;background:var(--color-border-strong);border-radius:2px;outline:none;cursor:pointer}.sensor-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-action-primary);cursor:pointer;transition:background .15s}.sensor-slider::-webkit-slider-thumb:hover{background:var(--color-action-primary-hover)}.sensor-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-action-primary);cursor:pointer;border:none}.sensor-value-display{font-size:12px;color:var(--color-fg-default);min-width:70px;text-align:right;flex-shrink:0}.sensor-trigger-button{margin-top:8px;padding:7px 16px;background-color:var(--color-action-secondary);border:1px solid var(--color-border-strong);border-radius:4px;color:var(--color-fg-default);font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s;width:100%}.sensor-trigger-button:hover{background-color:var(--color-action-secondary-hover);border-color:var(--color-border-strong)}.sensor-trigger-button:active,.sensor-trigger-button.is-active{background-color:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-fg-on-action)}.sensor-trigger-button.is-active:hover{background-color:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover)}.sd-card-panel{position:absolute;top:8px;left:8px;background-color:var(--color-bg-surface-2);border:1px solid var(--color-border-strong);border-radius:8px;padding:12px 16px 14px;min-width:320px;max-width:420px;box-shadow:0 4px 20px #00000080;z-index:1002;pointer-events:all;color:var(--color-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sd-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-strong)}.sd-panel-title{font-size:13px;font-weight:600;letter-spacing:.01em}.sd-panel-close{background:transparent;border:none;color:var(--color-fg-muted);cursor:pointer;font-size:20px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;line-height:1}.sd-panel-close:hover{background-color:var(--color-bg-muted);color:var(--color-fg-default)}.sd-file-list{max-height:220px;overflow-y:auto;margin-bottom:10px}.sd-file-empty{color:var(--color-fg-muted);font-size:12px;padding:8px 0}.sd-file-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--color-border-subtle, transparent);font-size:12px}.sd-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:monospace}.sd-file-size{color:var(--color-fg-muted);white-space:nowrap}.sd-file-delete{background:transparent;border:1px solid var(--color-border-strong);border-radius:4px;color:var(--color-fg-muted);cursor:pointer;font-size:11px;padding:2px 8px}.sd-file-delete:hover{color:var(--color-fg-default);border-color:var(--color-fg-muted)}.sd-panel-error{color:#e5534b;font-size:12px;margin-bottom:8px}.sd-panel-footer{display:flex;justify-content:flex-start}.sd-upload-button{background:var(--color-bg-muted);border:1px solid var(--color-border-strong);border-radius:6px;color:var(--color-fg-default);cursor:pointer;font-size:12px;padding:6px 14px}.sd-upload-button:hover{border-color:var(--color-fg-muted)}.sd-panel-note{color:var(--color-fg-muted);font-size:11px;margin-top:10px}.canvas-minimap{position:absolute;bottom:16px;right:16px;z-index:20;background:color-mix(in srgb,var(--color-bg-surface-1) 90%,transparent);border:1px solid color-mix(in srgb,var(--color-fg-default) 12%,transparent);border-radius:8px;box-shadow:0 6px 20px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-user-select:none;user-select:none;touch-action:none;overflow:hidden;cursor:crosshair}.canvas-minimap-world{position:absolute;inset:0}.canvas-minimap-board{position:absolute;background:color-mix(in srgb,var(--color-action-primary) 55%,transparent);border:.5px solid color-mix(in srgb,var(--color-action-primary) 85%,transparent);border-radius:1px;pointer-events:none}.canvas-minimap-component{position:absolute;width:3px;height:3px;background:color-mix(in srgb,var(--color-fg-default) 55%,transparent);border-radius:1px;pointer-events:none}.canvas-minimap-viewport{position:absolute;border:1.5px solid color-mix(in srgb,var(--color-feedback-error) 95%,transparent);background:color-mix(in srgb,var(--color-feedback-error) 10%,transparent);border-radius:2px;pointer-events:none}.canvas-minimap:hover{border-color:color-mix(in srgb,var(--color-fg-default) 22%,transparent)}@media(max-width:720px){.canvas-minimap{width:90px!important;height:68px!important;bottom:12px;right:12px}}.bom-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:bom-fadeIn .15s ease}@keyframes bom-fadeIn{0%{opacity:0}to{opacity:1}}.bom-modal{background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:8px;width:620px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:bom-slideIn .2s ease;overflow:hidden}@keyframes bom-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.bom-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default)}.bom-title{display:flex;flex-direction:column;gap:2px}.bom-title-main{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase}.bom-title-sub{font-size:11px;color:var(--color-fg-muted)}.bom-close{background:none;border:none;color:var(--color-fg-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.bom-close:hover{background:var(--color-bg-surface-2);color:var(--color-fg-on-action)}.bom-tabs{display:flex;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-border-default)}.bom-tab{padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-fg-muted);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer}.bom-tab:hover{color:var(--color-fg-default)}.bom-tab.active{color:var(--color-action-primary-subtle);border-bottom-color:var(--color-action-primary-subtle)}.bom-body{padding:16px 18px;overflow-y:auto;flex:1}.bom-section{margin-bottom:18px}.bom-section-title{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--color-fg-muted);text-transform:uppercase;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid var(--color-border-default)}.bom-row{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:12px;padding:6px 0}.bom-label{font-size:12px;color:var(--color-fg-default)}.bom-control{display:flex;align-items:center;gap:8px}.bom-select{background:var(--color-bg-surface-2);color:var(--color-fg-default);border:1px solid var(--color-border-strong);border-radius:4px;padding:4px 8px;font-size:12px;min-width:200px}.bom-select:focus{outline:1px solid var(--color-action-primary-subtle)}.bom-check{accent-color:var(--color-action-primary-subtle)}.bom-badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.bom-badge-warn{background:color-mix(in srgb,var(--color-action-primary) 25%,transparent);color:var(--color-feedback-warning)}.bom-badge-error{background:color-mix(in srgb,var(--color-feedback-error) 30%,transparent);color:var(--color-feedback-error)}.bom-warning{margin:8px 0 12px;padding:8px 10px;background:color-mix(in srgb,var(--color-action-primary) 20%,transparent);border:1px solid color-mix(in srgb,var(--color-action-primary) 40%,transparent);border-radius:4px;color:var(--color-feedback-warning);font-size:11px;line-height:1.4}.bom-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;background:var(--color-bg-canvas);border-top:1px solid var(--color-border-default)}.bom-btn{padding:6px 14px;border-radius:4px;font-size:12px;cursor:pointer;border:1px solid transparent}.bom-btn-secondary{background:transparent;border-color:var(--color-border-strong);color:var(--color-fg-muted)}.bom-btn-secondary:hover{background:var(--color-bg-surface-2);color:var(--color-fg-on-action)}.bom-btn-primary{background:var(--color-action-primary-active);border-color:var(--color-action-primary-active);color:var(--color-fg-on-action)}.bom-btn-primary:hover{background:var(--color-action-primary-hover)}.bom-spiffs-empty{padding:24px;text-align:center;color:var(--color-fg-muted);font-size:12px;border:1px dashed var(--color-border-strong);border-radius:4px;margin-bottom:12px}.bom-spiffs-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:12px}.bom-spiffs-table th{text-align:left;font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--color-fg-muted);text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--color-border-default)}.bom-spiffs-table td{padding:6px 8px;border-bottom:1px solid var(--color-border-default);color:var(--color-fg-default)}.bom-spiffs-name{font-family:Consolas,Monaco,monospace;font-size:12px}.bom-spiffs-size{font-family:Consolas,Monaco,monospace;font-size:11px;color:var(--color-fg-muted);text-align:right}.bom-spiffs-actions{text-align:right}.bom-spiffs-delete{background:none;border:1px solid var(--color-border-strong);color:var(--color-fg-muted);padding:2px 8px;border-radius:3px;font-size:11px;cursor:pointer}.bom-spiffs-delete:hover{background:color-mix(in srgb,var(--color-feedback-error) 30%,transparent);border-color:color-mix(in srgb,var(--color-feedback-error) 55%,transparent);color:var(--color-fg-on-action)}.bom-spiffs-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.bom-spiffs-add{background:var(--color-action-primary-active);border:none;color:var(--color-fg-on-action);padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer}.bom-spiffs-add:hover{background:var(--color-action-primary-hover)}.bom-spiffs-tally{font-size:11px;color:var(--color-fg-muted);font-family:Consolas,Monaco,monospace}.bom-spiffs-tally.over{color:var(--color-feedback-error)}.screenshot-preview{position:relative;flex:1;min-height:0;overflow:hidden;background:linear-gradient(45deg,var(--color-bg-surface-2) 25%,transparent 25%),linear-gradient(-45deg,var(--color-bg-surface-2) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-bg-surface-2) 75%),linear-gradient(-45deg,transparent 75%,var(--color-bg-surface-2) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;background-color:var(--color-bg-surface-1);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.screenshot-preview:active{cursor:grabbing}.screenshot-preview__stage{position:absolute;inset:0;pointer-events:none}.screenshot-world-clone .wire-handle-layer,.screenshot-world-clone .selection-action-bar,.screenshot-world-clone .alignment-guide{display:none!important}.screenshot-world-clone .component-wrapper,.screenshot-world-clone .component-interactive-group{border-color:transparent!important}.screenshot-preview__crop{position:absolute;box-shadow:0 0 0 9999px var(--color-bg-overlay),inset 0 0 0 1px color-mix(in srgb,var(--color-fg-default) 25%,transparent);border:1.5px dashed var(--color-fg-on-action);pointer-events:none;box-sizing:border-box}.screenshot-preview--light .screenshot-preview__crop{box-shadow:0 0 0 9999px color-mix(in srgb,var(--color-bg-canvas) 18%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--color-bg-canvas) 12%,transparent);border:1.5px dashed var(--color-bg-surface-1)}.screenshot-preview__ruler-h,.screenshot-preview__ruler-v,.screenshot-preview__ruler-corner{position:absolute;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}.screenshot-preview__ruler-corner{background:var(--color-bg-surface-2);border-right:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong)}.screenshot-preview--light .screenshot-preview__ruler-corner{background:var(--color-bg-surface-3);border-right:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong)}.screenshot-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.screenshot-modal{width:min(92vw,960px);height:min(88vh,760px);display:flex;flex-direction:column;background:var(--color-bg-surface-1);color:var(--color-fg-default);border:1px solid var(--color-border-strong);border-radius:12px;box-shadow:0 24px 60px #0000008c;overflow:hidden}.screenshot-modal__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border-strong);background:var(--color-bg-surface-1)}.screenshot-modal__title{margin:0;font-size:15px;font-weight:600;letter-spacing:.2px}.screenshot-modal__close{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--color-fg-muted);font-size:20px;line-height:1;cursor:pointer;transition:background .12s ease,color .12s ease}.screenshot-modal__close:hover{background:var(--color-action-secondary-hover);color:var(--color-fg-on-action)}.screenshot-modal__toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 16px;border-bottom:1px solid var(--color-border-strong);background:var(--color-bg-surface-1)}.screenshot-modal__field{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-fg-default)}.screenshot-modal__select{height:30px;padding:0 10px;background:var(--color-bg-surface-1);color:var(--color-fg-default);border:1px solid var(--color-border-strong);border-radius:6px;font-size:13px;outline:none}.screenshot-modal__segment{display:inline-flex;align-items:center;padding:2px;background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:7px;gap:2px}.screenshot-modal__segment-btn{height:26px;padding:0 12px;background:transparent;color:var(--color-fg-muted);border:none;border-radius:5px;font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.screenshot-modal__segment-btn:hover{color:var(--color-fg-default)}.screenshot-modal__segment-btn.is-active{background:var(--color-action-primary-hover);color:var(--color-fg-on-action)}.screenshot-modal__btn{height:30px;padding:0 14px;background:var(--color-bg-surface-2);color:var(--color-fg-default);border:1px solid var(--color-border-strong);border-radius:6px;font-size:13px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.screenshot-modal__btn:hover:not(:disabled){background:var(--color-action-secondary-hover);border-color:var(--color-border-strong)}.screenshot-modal__btn:disabled{opacity:.55;cursor:not-allowed}.screenshot-modal__btn--primary{background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover);color:var(--color-fg-on-action)}.screenshot-modal__btn--primary:hover:not(:disabled){background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover)}.screenshot-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border-top:1px solid var(--color-border-strong);background:var(--color-bg-surface-1)}.screenshot-modal__zoom{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-fg-default);flex:1;min-width:0}.screenshot-modal__range{flex:1;max-width:280px;accent-color:var(--color-action-primary-hover)}.screenshot-modal__zoom-pct{width:44px;text-align:right;font-variant-numeric:tabular-nums;color:var(--color-fg-default)}.screenshot-modal__actions{display:flex;align-items:center;gap:8px}.simulator-canvas-container{display:flex;height:100%;position:relative}.simulator-canvas{flex:1;background-color:var(--color-bg-canvas);color:var(--color-fg-default);display:flex;flex-direction:column}.canvas-header{height:46px;padding:0 10px;background:var(--color-bg-surface-2);border-bottom:1px solid var(--color-border-default);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.canvas-header--portaled{height:38px;padding:0 8px;background:transparent;border-bottom:none;justify-content:flex-start;gap:8px}.canvas-header-left,.canvas-header-right{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s,box-shadow .3s}.status-dot.running{background:var(--color-feedback-success);box-shadow:0 0 6px color-mix(in srgb,var(--color-feedback-success) 70%,transparent);animation:pulse-green 2s ease-in-out infinite}.status-dot.stopped{background:var(--color-fg-subtle);box-shadow:none}@keyframes pulse-green{0%,to{box-shadow:0 0 4px color-mix(in srgb,var(--color-feedback-success) 50%,transparent)}50%{box-shadow:0 0 10px color-mix(in srgb,var(--color-feedback-success) 90%,transparent)}}.board-selector{padding:4px 22px 4px 8px;background:var(--color-bg-surface-1);color:var(--color-fg-default);border:1px solid var(--color-border-strong);border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:border-color .15s;height:32px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.board-selector:hover:not(:disabled){border-color:var(--color-action-primary)}.board-selector:disabled{opacity:.4;cursor:not-allowed}.canvas-serial-btn{display:flex;align-items:center;gap:5px;padding:0 10px;height:32px;background:transparent;border:1px solid var(--color-border-strong);border-radius:5px;color:var(--color-fg-muted);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}.canvas-serial-btn:hover{border-color:var(--color-action-primary);color:var(--color-fg-default)}.canvas-serial-btn-active{background:var(--color-bg-surface-3);border-color:var(--color-action-primary);color:var(--color-action-primary-subtle)}.canvas-serial-btn:disabled,.canvas-serial-btn-disabled{opacity:.4;cursor:not-allowed}.canvas-serial-btn svg{width:22px;height:22px}.canvas-round-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-bg-surface-2);border:none;border-radius:50%;color:var(--color-fg-default);cursor:pointer;pointer-events:auto;box-shadow:0 2px 6px #0006;padding:0;transition:background-color .15s ease,transform .15s ease,color .15s ease}.canvas-round-icon-btn:hover:not(:disabled){background:var(--color-bg-surface-3);transform:scale(1.08)}.canvas-round-icon-btn-active,.canvas-round-icon-btn-active:hover:not(:disabled){background:var(--color-bg-surface-3);color:var(--color-action-primary-subtle)}.canvas-round-icon-btn:disabled,.canvas-round-icon-btn-disabled{opacity:.4;cursor:not-allowed}.canvas-round-icon-btn svg{width:18px;height:18px}.canvas-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--color-border-strong);border-radius:5px;color:var(--color-fg-muted);cursor:pointer;transition:border-color .15s,background .15s,color .15s,opacity .15s;flex-shrink:0}.canvas-icon-btn:hover:not(:disabled){border-color:var(--color-action-primary);color:var(--color-fg-default)}.canvas-icon-btn:disabled{opacity:.4;cursor:not-allowed}.component-count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-fg-subtle)}.add-component-btn{display:flex;align-items:center;gap:5px;padding:0 10px;height:32px;background:var(--color-action-primary);color:var(--color-fg-on-action);border:none;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.add-component-btn:hover:not(:disabled){background:var(--color-action-primary-hover)}.add-component-btn:disabled{opacity:.35;cursor:not-allowed}.canvas-content{flex:1;position:relative;overflow:hidden;background-color:var(--color-bg-surface-1);background-image:repeating-linear-gradient(0deg,transparent,transparent 19px,color-mix(in srgb,var(--color-fg-default) 2.5%,transparent) 19px,color-mix(in srgb,var(--color-fg-default) 2.5%,transparent) 20px),repeating-linear-gradient(90deg,transparent,transparent 19px,color-mix(in srgb,var(--color-fg-default) 2.5%,transparent) 19px,color-mix(in srgb,var(--color-fg-default) 2.5%,transparent) 20px);-webkit-user-select:none;user-select:none;touch-action:none}.canvas-world{position:absolute;top:0;left:0;transform-origin:0 0;width:4000px;height:3000px}.components-area,.components-area-below-wires{position:absolute;inset:0;pointer-events:none}.components-area-below-wires{z-index:30}.zoom-controls{display:flex;align-items:center;gap:2px;background:var(--color-bg-surface-1);border:1px solid var(--color-border-strong);border-radius:5px;padding:0 2px;height:28px}.zoom-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:3px;color:var(--color-fg-muted);cursor:pointer;flex-shrink:0}.zoom-btn:hover{background:var(--color-action-secondary-hover);color:var(--color-fg-default)}.zoom-level{min-width:42px;text-align:center;background:transparent;border:none;color:var(--color-fg-muted);font-size:11px;font-family:monospace;cursor:pointer;padding:0 2px;border-radius:3px}.zoom-level:hover{background:var(--color-action-secondary-hover);color:var(--color-fg-default)}.component-label{font-size:11px;background-color:var(--color-bg-surface-2);padding:3px 8px;border-radius:3px;white-space:nowrap;margin-top:5px;text-align:center;color:var(--color-fg-muted)}.wire-mode-banner{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:100;background:color-mix(in srgb,var(--color-action-primary) 92%,transparent);color:var(--color-fg-on-action);padding:8px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:13px;box-shadow:0 2px 10px #00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;pointer-events:auto}.wire-mode-banner button{background:color-mix(in srgb,var(--color-fg-default) 20%,transparent);color:var(--color-fg-on-action);border:1px solid color-mix(in srgb,var(--color-fg-default) 40%,transparent);border-radius:4px;padding:4px 14px;cursor:pointer;font-size:12px;font-weight:600;transition:background .15s}.wire-mode-banner button:hover{background:color-mix(in srgb,var(--color-fg-default) 35%,transparent)}.physical-mode-overlay{position:absolute;inset:0;z-index:90;pointer-events:none;background:color-mix(in srgb,var(--color-bg-canvas) 35%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition:opacity .2s ease}@media(max-width:768px){.canvas-header{height:42px;padding:0 6px}.canvas-header-left,.canvas-header-right{gap:4px}.canvas-serial-btn{padding:0 6px;font-size:0}.canvas-serial-btn svg{width:22px;height:22px}.add-component-btn{padding:0 8px;font-size:0}.add-component-btn svg{width:18px;height:18px}.board-selector{font-size:11px;max-width:90px;padding:4px 20px 4px 6px}.zoom-controls,.component-count{display:none}.wire-mode-banner{font-size:12px;padding:6px 12px;gap:8px;bottom:8px}}.canvas-wifi-badge,.canvas-ble-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:4px;cursor:default;vertical-align:middle}.canvas-wifi-badge svg,.canvas-ble-badge svg{display:block}.canvas-wifi-initializing,.canvas-wifi-connected{color:var(--color-feedback-warning)}.canvas-wifi-got_ip{color:var(--color-feedback-success)}.canvas-wifi-disconnected{color:var(--color-fg-subtle)}.canvas-wifi-clickable{cursor:pointer!important;transition:transform .2s,filter .2s}.canvas-wifi-clickable:hover{transform:scale(1.15);filter:drop-shadow(0 0 5px currentColor)}.canvas-wifi-clickable:active{transform:scale(.95)}.canvas-ble-initialized{color:var(--color-action-primary-hover)}.canvas-ble-advertising{color:#6366f1}.selection-action-bar button:hover{background:var(--color-bg-surface-2)!important;border-color:var(--color-border-strong)!important}.selection-action-bar button:active{transform:scale(.97)}.selection-action-bar button:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:1px}@media(max-width:520px){.selection-action-bar .selection-action-bar__label{display:none}}.network-status-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px 0 3px;border:none;border-radius:4px;background:color-mix(in srgb,var(--color-bg-surface-1) 85%,transparent);color:var(--network-pill-color, var(--color-fg-default));font:inherit;font-size:12px;font-weight:500;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:default;transition:opacity .2s ease}.network-status-pill-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:16px;padding:0 3px;border-radius:2px;background:color-mix(in srgb,var(--network-pill-color, var(--color-fg-default)) 20%,transparent);border:1px solid var(--network-pill-color, var(--color-fg-default));font-size:11px;font-weight:700}.network-status-pill-text{font-size:12px}.network-status-pill--pending{cursor:pointer}.network-status-pill--pending:hover:not(:disabled){filter:brightness(1.1)}.network-status-pill:disabled{opacity:1;cursor:default}.network-status-pill--pending:disabled{opacity:.7;cursor:wait}.simulator-status-bar{display:flex;align-items:center;justify-content:space-between;height:30px;min-height:30px;padding:0 8px;background:var(--color-bg-surface-3);color:var(--color-fg-default);font-size:13px;-webkit-user-select:none;user-select:none;flex-shrink:0;overflow:hidden}.simulator-status-bar-left,.simulator-status-bar-right{display:flex;align-items:center;gap:2px;overflow:hidden}.spice-summary-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px 0 3px;border-radius:4px;background:color-mix(in srgb,var(--color-bg-surface-1) 85%,transparent);color:var(--spice-pill-color, var(--color-feedback-warning));font-family:monospace;white-space:nowrap}.spice-summary-pill-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:16px;padding:0 3px;border-radius:2px;background:color-mix(in srgb,var(--spice-pill-color, var(--color-feedback-warning)) 20%,transparent);border:1px solid var(--spice-pill-color, var(--color-feedback-warning));font-size:11px;font-weight:700}.spice-summary-pill-text{font-size:12px}.spice-info-toggle{appearance:none;border:none;cursor:pointer;font:inherit;padding:0 10px 0 3px;transition:background-color .15s ease,opacity .15s ease}.spice-info-toggle:hover{background:color-mix(in srgb,var(--spice-pill-color, var(--color-feedback-warning)) 18%,transparent)}.spice-info-toggle:focus-visible{outline:1px solid var(--spice-pill-color, var(--color-feedback-warning));outline-offset:1px}.spice-info-toggle[aria-pressed=false]{opacity:.7}.spice-info-toggle .spice-summary-pill-badge{border:none}.my-projects-overlay{position:fixed;inset:0;z-index:100003;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:my-projects-fade-in .15s ease}.my-projects-dialog{position:relative;width:1200px;max-width:95vw;height:720px;max-height:90vh;display:flex;flex-direction:column;background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:8px;box-shadow:0 24px 64px #0009;animation:my-projects-slide-in .2s ease;overflow:hidden}.my-projects-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-bg-canvas);border-bottom:1px solid var(--color-bg-surface-2);flex-shrink:0}.my-projects-title{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--color-fg-default);text-transform:uppercase;line-height:1.3}.my-projects-title svg{width:18px;height:18px;color:var(--color-feedback-warning);flex-shrink:0}.my-projects-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-fg-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.my-projects-close:hover{background:var(--color-bg-surface-2);color:var(--color-fg-default)}.my-projects-body{flex:1;overflow-y:auto;padding:18px}.my-projects-body::-webkit-scrollbar{width:6px}.my-projects-body::-webkit-scrollbar-track{background:var(--color-bg-canvas)}.my-projects-body::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:3px}.my-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.my-projects-card{position:relative;display:flex;flex-direction:column;background:var(--color-bg-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-md, 12px);overflow:hidden;transition:border-color .15s ease,transform .1s ease}.my-projects-card:hover{border-color:var(--color-action-primary-active)}.my-projects-card-main{flex:1 1 auto;display:flex;flex-direction:column;padding:0;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer}.my-projects-card-thumb{aspect-ratio:16 / 10;background:var(--color-bg-surface-1);display:flex;align-items:center;justify-content:center;overflow:hidden}.my-projects-card-thumb img{width:100%;height:100%;object-fit:cover}.my-projects-card-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-fg-muted)}.my-projects-card-body{padding:12px;display:flex;flex-direction:column;gap:4px}.my-projects-card-name{font-size:14px;font-weight:600;color:var(--color-fg-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-projects-card-rename-input{width:100%;padding:4px 8px;font-size:14px;font-weight:600;color:var(--color-fg-default);background:var(--color-bg-surface-1);border:1px solid var(--color-action-primary);border-radius:6px;outline:none}.my-projects-card-rename-error{display:block;margin-top:4px;font-size:11px;font-weight:400;color:var(--color-feedback-error);white-space:normal}.my-projects-card-desc{font-size:12px;line-height:1.4;color:var(--color-fg-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:text}.my-projects-card-desc-empty{color:var(--color-fg-subtle);font-style:italic}.my-projects-card-rename-input--desc{font-size:12px;font-weight:400}.my-projects-card-meta{margin-top:auto;padding-top:6px;font-size:11px;color:var(--color-fg-subtle)}.my-projects-card-delete{position:absolute;top:8px;right:8px;z-index:1;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:color-mix(in srgb,var(--color-bg-surface-1) 85%,transparent);border:none;border-radius:6px;color:var(--color-fg-muted);cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,color .15s ease}.my-projects-card:hover .my-projects-card-delete,.my-projects-card-delete:focus-visible{opacity:1}.my-projects-card-delete:hover{background:var(--color-feedback-error);color:var(--color-fg-default)}.my-projects-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:240px;color:var(--color-fg-muted);text-align:center}.my-projects-empty-hint{font-size:13px;color:var(--color-fg-subtle)}.my-projects-error{color:var(--color-feedback-error)}.my-projects-retry{padding:6px 16px;font-size:13px;font-weight:500;color:var(--color-fg-on-action);background:var(--color-action-primary);border:1px solid var(--color-action-primary);border-radius:6px;cursor:pointer;transition:opacity .15s ease}.my-projects-retry:hover{opacity:.85}.my-projects-spinner{width:28px;height:28px;border:2px solid var(--color-border-default);border-top-color:var(--color-action-primary-active);border-radius:50%;animation:my-projects-spin .8s linear infinite}@keyframes my-projects-spin{to{transform:rotate(360deg)}}@keyframes my-projects-fade-in{0%{opacity:0}to{opacity:1}}@keyframes my-projects-slide-in{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.my-projects-grid{grid-template-columns:1fr}}.landing{min-height:100vh;background:var(--color-bg-canvas);color:var(--color-fg-default);font-family:var(--font);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.landing-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 40px;height:52px;background:color-mix(in srgb,var(--color-bg-canvas) 85%,transparent);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--color-border-default)}.landing-nav-brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;color:var(--color-fg-default);letter-spacing:-.3px;font-family:var(--font)}.landing-nav-brand svg{width:20px;height:20px;color:var(--color-action-primary)}.landing-nav-links{display:flex;align-items:center;gap:4px}.nav-link{display:flex;align-items:center;gap:6px;padding:5px 12px;color:var(--color-fg-muted);text-decoration:none;font-size:13px;font-weight:400;border-radius:var(--radius-pill);transition:color .2s,background .2s}.nav-link svg{width:15px;height:15px}.nav-link:hover{color:var(--color-fg-default);background:var(--color-action-secondary)}.nav-btn-primary{padding:6px 16px;background:var(--color-action-primary);color:var(--color-fg-on-action);text-decoration:none;font-size:13px;font-weight:500;border-radius:var(--radius-pill);transition:background .2s,filter .2s}.nav-btn-primary:hover{filter:brightness(1.1)}.nav-auth-skeleton{width:80px;height:28px;background:var(--color-bg-surface-3);border-radius:var(--radius-pill);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);border:1px solid var(--color-border-default);border-radius:var(--radius-pill);padding:4px 12px 4px 6px;cursor:pointer;color:var(--color-fg-default);font-size:13px;font-weight:400;transition:background .2s}.user-menu-trigger:hover{background:color-mix(in srgb,var(--color-fg-default) 10%,transparent)}.user-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-avatar-initials{display:flex;align-items:center;justify-content:center;background:var(--color-action-primary);color:var(--color-fg-on-action);font-size:11px;font-weight:600}.user-avatar-lg{width:36px;height:36px;font-size:15px}.user-menu-name{font-size:13px;font-weight:500;color:var(--color-fg-default);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 8px);background:color-mix(in srgb,var(--color-bg-surface-2) 95%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--color-border-strong);border-radius:var(--radius);min-width:210px;z-index:200;box-shadow:0 12px 40px #0009;overflow:hidden}.user-menu-header{display:flex;align-items:center;gap:12px;padding:16px 16px 12px}.user-menu-uname{font-size:14px;font-weight:600;color:var(--color-fg-default)}.user-menu-email{font-size:11.5px;color:var(--color-fg-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.user-menu-divider{height:1px;background:var(--color-border-default)}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;color:var(--color-fg-muted);font-size:13px;text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s,color .15s}.user-menu-item:hover{background:color-mix(in srgb,var(--color-fg-default) 6%,transparent);color:var(--color-fg-default)}.user-menu-signout{color:var(--color-feedback-error)}.user-menu-signout:hover{background:color-mix(in srgb,var(--color-feedback-error) 8%,transparent);color:var(--color-feedback-error)}.landing-hero{display:grid;grid-template-columns:1fr;align-items:stretch;gap:0;min-height:calc(100vh - 52px);width:100%;max-width:none;margin:0;padding:0;overflow:hidden}.hero-left{display:flex;flex-direction:column;justify-content:center;gap:0;padding:80px 60px 80px 80px}.hero-eyebrow{margin:0 0 20px;font-size:12px;font-weight:500;color:var(--color-action-primary);letter-spacing:.4px;line-height:1.5;text-transform:uppercase}.hero-title{margin:0 0 20px;font-size:clamp(40px,5vw,72px);font-weight:600;line-height:1.06;letter-spacing:-2px;color:var(--color-fg-default)}.hero-accent{background:linear-gradient(135deg,var(--color-action-primary) 0%,var(--color-action-primary-subtle) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{margin:0 0 36px;font-size:17px;line-height:1.7;color:var(--color-fg-muted);max-width:460px;font-weight:400}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:32px}.cta-primary{display:flex;align-items:center;gap:8px;padding:12px 26px;background:var(--color-action-primary);color:var(--color-fg-on-action);text-decoration:none;font-size:15px;font-weight:500;border-radius:var(--radius-pill);transition:filter .2s,transform .2s;border:none;letter-spacing:-.1px}.cta-primary svg{width:16px;height:16px}.cta-primary:hover{filter:brightness(1.12);transform:scale(1.02)}.cta-secondary{display:flex;align-items:center;gap:8px;padding:12px 26px;background:var(--color-action-secondary);border:none;color:var(--color-fg-default);text-decoration:none;font-size:15px;font-weight:500;border-radius:var(--radius-pill);transition:background .2s,transform .2s;letter-spacing:-.1px}.cta-secondary svg{width:16px;height:16px}.cta-secondary:hover{background:var(--color-action-secondary-hover);transform:scale(1.02)}.hero-trust-line{margin:6px 0 0;font-size:11.5px;font-weight:400;color:var(--color-fg-subtle);letter-spacing:.02em}.hero-specs{margin:0;font-family:var(--mono);font-size:11.5px;font-weight:400;color:var(--color-fg-muted);line-height:1.8}.spec-pill{display:inline}.spec-pill+.spec-pill:before{content:" · ";color:var(--color-fg-subtle)}.spec-sep{display:none}.landing-section{padding:100px 80px;max-width:1240px;margin:0 auto}.landing-section-alt{max-width:100%;background:var(--color-bg-surface-2);padding:100px 0}.landing-section-alt .section-header,.landing-section-alt .features-grid{max-width:1240px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px}.section-header{margin-bottom:52px}.section-label{display:inline-flex;align-items:center;font-family:var(--font);font-size:12px;font-weight:500;color:var(--color-action-primary);letter-spacing:.4px;text-transform:uppercase;margin-bottom:14px}.section-title{margin:0 0 14px;font-size:clamp(28px,3.5vw,52px);font-weight:700;letter-spacing:-1.5px;color:var(--color-fg-default);line-height:1.07}.section-sub{margin:0;font-size:17px;font-weight:400;color:var(--color-fg-muted);max-width:520px;line-height:1.7}.board-group{margin-bottom:64px}.board-group-header{display:flex;align-items:center;gap:14px;margin-bottom:24px}.board-group-engine{display:inline-flex;align-items:center;padding:4px 12px;background:var(--grp-color, var(--color-action-primary));color:var(--color-fg-on-action);border:none;border-radius:var(--radius-pill);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.4px;white-space:nowrap}.board-group-label{font-family:var(--font);font-size:15px;font-weight:400;color:var(--color-fg-muted);letter-spacing:-.1px}.boards-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:16px}.board-card-sm{background:var(--color-bg-surface-1);border-radius:16px;padding:20px 14px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .32s cubic-bezier(.34,1.46,.64,1),box-shadow .32s ease;cursor:default;position:relative}.board-card-sm:hover{transform:scale(1.035);box-shadow:0 12px 40px #0000008c}.board-name-sm{font-family:var(--font);font-size:13px;font-weight:600;color:var(--color-fg-default);text-align:center;line-height:1.35;letter-spacing:-.2px}.board-chip-sm{font-size:11px;font-family:var(--mono);color:var(--color-fg-subtle);text-align:center;margin-top:-6px;line-height:1.4}.board-img-box{width:100%;height:110px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.board-img-box img{max-width:90px;max-height:110px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(0,0,0,.5))}.board-img-box .board-svg{max-width:110px;max-height:100px;width:auto;height:auto}.board-img-sm{width:80px;height:auto;max-height:110px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.45))}.board-svg-thumb{width:80px;height:110px;display:block;overflow:hidden;flex-shrink:0;filter:drop-shadow(0 4px 12px rgba(0,0,0,.45))}.board-svg-thumb>svg{width:100%;height:100%;display:block}.board-img-tall{max-height:140px}.boards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.board-card{background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius);padding:28px 16px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;transition:border-color .25s,box-shadow .25s;position:relative}.board-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.board-svg{width:100%;max-width:210px;height:auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}.board-element-wrap{overflow:hidden;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));flex-shrink:0}.board-element-uno{width:200px;height:147px}.board-element-uno>wokwi-arduino-uno{display:block;transform:scale(.73);transform-origin:top left}.board-element-nano{width:200px;height:79px}.board-element-nano>wokwi-arduino-nano{display:block;transform:scale(1.18);transform-origin:top left}.board-element-mega{width:200px;height:99px}.board-element-mega>wokwi-arduino-mega{display:block;transform:scale(.515);transform-origin:top left}.board-card-sm .board-element-uno{width:120px;height:88px;overflow:hidden}.board-card-sm .board-element-uno>wokwi-arduino-uno{display:block;transform:scale(.44);transform-origin:top left}.board-card-sm .board-element-nano{width:120px;height:48px;overflow:hidden}.board-card-sm .board-element-nano>wokwi-arduino-nano{display:block;transform:scale(.71);transform-origin:top left}.board-card-sm .board-element-mega{width:120px;height:59px;overflow:hidden}.board-card-sm .board-element-mega>wokwi-arduino-mega{display:block;transform:scale(.31);transform-origin:top left}.board-card-sm .board-element-esp32{width:60px;height:112px;overflow:hidden}.board-card-sm .board-element-esp32>wokwi-esp32-devkit-v1{display:block;transform:scale(.56);transform-origin:top left}.board-info{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;border-top:1px solid var(--color-border-default);padding-top:14px}.board-name{font-size:13.5px;font-weight:600;color:var(--color-fg-default);letter-spacing:-.2px}.board-chip{font-size:11px;font-family:var(--mono);color:var(--color-fg-subtle)}.board-badge{display:inline-block;margin-top:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:10px;font-weight:600;font-family:var(--mono);letter-spacing:.4px}.board-element-esp32{width:105px;height:200px;overflow:hidden;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));flex-shrink:0}.board-element-esp32>wokwi-esp32-devkit-v1{display:block;transform:scale(.98);transform-origin:top left}.board-img-wrap{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}.board-img-pi3{width:180px;height:auto;max-height:130px;object-fit:contain}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-card{background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:20px;padding:36px 30px 32px;display:flex;flex-direction:column;transition:border-color .25s,transform .28s,box-shadow .28s}.feature-card:hover{border-color:var(--color-border-strong);transform:translateY(-4px);box-shadow:0 16px 48px #00000073}.feature-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-action-primary) 12%,transparent);border-radius:12px;margin-bottom:22px;color:var(--color-action-primary);flex-shrink:0}.feature-icon svg{width:22px;height:22px}.feature-title{margin:0 0 10px;font-size:17px;font-weight:600;color:var(--color-fg-default);letter-spacing:-.4px}.feature-desc{margin:0;font-size:14px;line-height:1.75;color:var(--color-fg-muted);font-weight:400}.landing-support{background:var(--color-bg-canvas);padding:100px 40px}.support-content{max-width:580px;margin:0 auto;text-align:center;background:var(--color-bg-surface-1);border-radius:28px;padding:64px 48px}.support-icon{display:flex;justify-content:center;margin-bottom:24px;color:var(--color-action-primary)}.support-icon svg{width:36px;height:36px}.support-title{margin:0 0 12px;font-size:clamp(24px,2.8vw,38px);font-weight:700;letter-spacing:-1px;color:var(--color-fg-default)}.support-sub{margin:0 0 36px;font-size:15px;line-height:1.75;color:var(--color-fg-muted);font-weight:400}.support-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.support-btn{display:flex;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:500;border-radius:var(--radius-pill);text-decoration:none;transition:filter .2s,transform .2s;letter-spacing:-.2px}.support-btn:hover{filter:brightness(1.12);transform:scale(1.025)}.support-btn-gh{background:var(--color-action-secondary);color:var(--color-fg-default);border:none}.support-btn-pp{background:#ba4e00;color:var(--color-fg-on-action);border:none}.support-btn svg{width:16px;height:16px;flex-shrink:0}.landing-footer{padding:40px 80px;border-top:1px solid var(--color-border-default);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;background:var(--color-bg-canvas)}.footer-brand{display:flex;align-items:center;gap:8px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--color-fg-muted);letter-spacing:-.2px}.footer-brand svg{width:16px;height:16px;color:var(--color-action-primary)}.footer-links{display:flex;gap:28px}.footer-links a{color:var(--color-fg-subtle);text-decoration:none;font-size:13px;font-weight:400;transition:color .2s}.footer-links a:hover{color:var(--color-fg-default)}.footer-copy{font-size:12px;line-height:1.7;color:var(--color-fg-subtle);margin:0 auto;max-width:680px;width:100%;text-align:center;font-family:var(--mono)}.footer-copy a{color:var(--color-fg-subtle);text-decoration:none;transition:color .2s}.footer-copy a:hover{color:var(--color-fg-muted)}@media(max-width:1024px){.hero-left{padding:72px 40px 72px 48px}.landing-section{padding:80px 48px}.landing-section-alt .section-header,.landing-section-alt .features-grid{padding-left:48px;padding-right:48px}.features-grid{grid-template-columns:repeat(2,1fr)}.landing-footer{padding:32px 48px}}@media(max-width:900px){.landing-hero{min-height:auto}.hero-left,.landing-section,.landing-support{padding:64px 32px}.landing-section-alt .section-header,.landing-section-alt .features-grid{padding-left:32px;padding-right:32px}.landing-footer{padding:32px}}@media(max-width:600px){.landing-nav{padding:0 20px}.landing-nav-links .nav-link:not(:last-child){display:none}.hero-left,.landing-section,.landing-support{padding:52px 20px}.landing-section-alt .section-header,.landing-section-alt .features-grid{padding-left:20px;padding-right:20px}.features-grid{grid-template-columns:1fr}.landing-footer{padding:28px 20px;flex-direction:column;align-items:flex-start}.hero-ctas{flex-direction:column}.cta-primary,.cta-secondary{justify-content:center}}.landing-licensing .section-header{margin-bottom:36px}.licensing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:960px;margin:0 auto;padding:0 24px}.licensing-card{background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:20px;padding:32px 30px;display:flex;flex-direction:column;gap:12px;transition:border-color .16s ease,transform .16s ease}.licensing-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.licensing-card-badge{align-self:flex-start;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--color-action-primary) 18%,transparent);color:var(--color-action-primary);border:1px solid color-mix(in srgb,var(--color-action-primary) 30%,transparent)}.licensing-card-badge-commercial{background:color-mix(in srgb,var(--color-feedback-warning) 16%,transparent);color:var(--color-feedback-warning);border-color:color-mix(in srgb,var(--color-feedback-warning) 30%,transparent)}.licensing-card-title{margin:4px 0 0;font-size:19px;font-weight:600;color:var(--color-fg-default)}.licensing-card-desc{margin:0;font-size:14px;line-height:1.65;color:var(--color-fg-subtle);flex:1}.licensing-card-link{margin-top:8px;align-self:flex-start;font-size:13px;font-weight:500;color:var(--color-action-primary);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .16s ease}.licensing-card-link:hover{border-bottom-color:var(--color-action-primary)}@media(max-width:720px){.licensing-grid{grid-template-columns:1fr;padding:0 16px}.licensing-card{padding:24px 22px}}.landing-ai .section-header{margin-bottom:36px}.ai-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto;padding:0 24px}.ai-card{background:linear-gradient(180deg,color-mix(in srgb,var(--color-action-primary) 7%,transparent),color-mix(in srgb,var(--color-fg-default) 3%,transparent));border:1px solid color-mix(in srgb,var(--color-action-primary) 18%,transparent);border-radius:18px;padding:28px 26px}.ai-card-title{margin:0 0 8px;font-size:17px;font-weight:600;color:var(--color-fg-default)}.ai-card-desc{margin:0;font-size:14px;line-height:1.65;color:var(--color-fg-subtle)}@media(max-width:900px){.ai-grid{grid-template-columns:1fr;padding:0 16px}}.landing-pricing .section-header{margin-bottom:40px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto;padding:0 24px;align-items:stretch}.pricing-card{position:relative;background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:20px;padding:32px 28px;display:flex;flex-direction:column;transition:border-color .16s ease,transform .16s ease}.pricing-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.pricing-card-featured{border-color:color-mix(in srgb,var(--color-action-primary) 55%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--color-action-primary) 10%,transparent),var(--color-bg-surface-1))}.pricing-card-badge{position:absolute;top:-11px;right:22px;background:var(--color-action-primary);color:var(--color-fg-on-action);font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;padding:4px 10px;border-radius:999px}.pricing-card-name{font-size:13px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--color-fg-subtle);margin-bottom:8px}.pricing-card-price{display:flex;align-items:baseline;gap:4px;margin-bottom:4px}.pricing-card-amount{font-size:36px;font-weight:600;letter-spacing:-1px;color:var(--color-fg-default)}.pricing-card-period{font-size:14px;color:var(--color-fg-subtle)}.pricing-card-tagline{margin:8px 0 18px;font-size:13px;line-height:1.55;color:var(--color-fg-subtle)}.pricing-card-features{list-style:none;padding:0;margin:0 0 22px;flex:1}.pricing-card-features li{position:relative;padding:6px 0 6px 22px;font-size:14px;line-height:1.5;color:var(--color-fg-default)}.pricing-card-features li:before{content:"✓";position:absolute;left:0;color:var(--color-action-primary);font-weight:600}.pricing-card-cta{display:inline-block;text-align:center;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .16s ease,color .16s ease}.pricing-card-cta-primary{background:var(--color-action-primary);color:var(--color-fg-on-action)}.pricing-card-cta-primary:hover{background:var(--color-action-primary-active)}.pricing-card-cta-secondary{background:transparent;color:var(--color-fg-default);border:1px solid var(--color-border-strong)}.pricing-card-cta-secondary:hover{border-color:color-mix(in srgb,var(--color-fg-default) 35%,transparent)}@media(max-width:900px){.pricing-grid{grid-template-columns:1fr;padding:0 16px}.pricing-card{padding:26px 22px}}.start-hero,.start-create-section,.start-template-section{--start-gutter: 80px}.start-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px var(--start-gutter) 40px;background:var(--color-bg-canvas)}.start-hero-content{max-width:100%;width:100%}.start-hero-title{margin:0 0 12px;font-size:clamp(32px,4vw,52px);font-weight:600;line-height:1.1;letter-spacing:-1.5px;color:var(--color-fg-default)}.start-hero-subtitle{margin:0 0 40px;font-size:17px;color:var(--color-fg-muted);line-height:1.5}.start-hero-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}.start-action-btn{display:flex;align-items:center;gap:16px;padding:24px 28px;background:var(--color-bg-surface-3);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:all .2s ease;color:inherit;position:relative}.start-action-btn:hover{border-color:var(--color-action-primary);background:color-mix(in srgb,var(--color-action-primary) 6%,transparent);transform:translateY(-2px)}.start-action-btn.active{border-color:var(--color-action-primary);background:color-mix(in srgb,var(--color-action-primary) 10%,transparent);box-shadow:0 0 0 1px var(--color-action-primary)}.start-action-btn:disabled{cursor:not-allowed;filter:grayscale(100%) opacity(.55);transform:none}.start-action-btn:disabled:hover{border-color:var(--color-border-default);background:var(--color-bg-surface-3);transform:none}.start-action-btn:disabled:hover .start-action-arrow{transform:none;color:var(--color-fg-muted)}.start-action-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius);background:color-mix(in srgb,var(--color-action-primary) 12%,transparent);color:var(--color-action-primary);flex-shrink:0}.start-action-text{display:flex;flex-direction:column;gap:4px;flex:1}.start-action-title{font-size:16px;font-weight:600;color:var(--color-fg-default)}.start-action-desc{font-size:13px;color:var(--color-fg-muted)}.start-action-arrow{color:var(--color-fg-muted);transition:transform .2s,color .2s;flex-shrink:0}.start-action-btn:hover .start-action-arrow{transform:translate(4px);color:var(--color-action-primary)}.start-blank-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:32px}@media(max-width:640px){.start-blank-row{grid-template-columns:1fr}}.start-blank-card{display:flex;align-items:center;gap:20px;padding:24px 28px;background:var(--color-bg-surface-3);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.start-blank-card:hover{border-color:var(--color-action-primary);background:color-mix(in srgb,var(--color-action-primary) 6%,transparent);transform:translateY(-2px)}.start-blank-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius);background:color-mix(in srgb,var(--color-action-primary) 12%,transparent);color:var(--color-action-primary);flex-shrink:0}.start-blank-info{display:flex;flex-direction:column;gap:4px;flex:1}.start-blank-title{font-size:16px;font-weight:600;color:var(--color-fg-default);margin:0}.start-blank-desc{font-size:13px;color:var(--color-fg-muted);margin:0}.start-blank-arrow{color:var(--color-fg-muted);transition:transform .2s,color .2s;flex-shrink:0}.start-blank-card:hover .start-blank-arrow{transform:translate(4px);color:var(--color-action-primary)}.start-boards-section{margin-top:8px}.start-boards-heading{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--color-fg-default);margin:0 0 20px}.start-boards-heading svg{color:var(--color-action-primary)}.start-board-card{cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}.start-board-card:hover:not(.board-card-disabled){transform:translateY(-4px);border-color:var(--color-action-primary);box-shadow:0 8px 24px #ea580c1f}.board-card-disabled{filter:grayscale(100%) opacity(.55);-webkit-user-select:none;user-select:none;cursor:not-allowed}.board-group-coming-soon{margin-left:8px;padding:2px 8px;background:color-mix(in srgb,var(--color-fg-default) 8%,transparent);border-radius:var(--radius-pill, 999px);font-size:11px;font-weight:600;letter-spacing:.4px;color:var(--color-fg-muted);text-transform:uppercase}.board-group-emulator-missing{margin-left:8px;padding:4px 12px;background:color-mix(in srgb,var(--color-feedback-error) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-feedback-error) 25%,transparent);border-radius:var(--radius-pill, 999px);font-size:13px;font-weight:600;letter-spacing:.4px;color:var(--color-feedback-error);text-transform:uppercase}.board-group-emulator-missing-action{cursor:pointer;transition:opacity .15s ease-in-out}.board-group-emulator-missing-action:hover{opacity:.85}.board-group-install-progress{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--color-fg-muted)}.board-group-install-progress-action{cursor:pointer;padding:2px 8px;background:none;border:1px solid color-mix(in srgb,var(--color-fg-muted) 35%,transparent);border-radius:var(--radius-pill, 999px);transition:opacity .15s ease-in-out}.board-group-install-progress-action:hover{opacity:.85}.board-group-install-error{margin-left:8px;display:inline-flex;align-items:center;gap:4px;min-width:0;font-size:11px;color:var(--color-feedback-error);max-width:420px}.board-group-install-error-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-group-install-error-dismiss{flex:0 0 auto;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:4px;background:transparent;color:inherit;font-size:13px;line-height:1;cursor:pointer}.board-group-install-error-dismiss:hover{background:color-mix(in srgb,var(--color-feedback-error) 20%,transparent)}.board-group-loading{margin-left:8px;color:var(--grp-color, var(--color-fg-muted))}.board-group-disabled .boards-row,.board-group-plan-blocked .boards-row{filter:grayscale(100%) opacity(.65)}.board-group-plan-upgrade{margin-left:8px;padding:4px 14px;background:var(--color-action-primary);border:1px solid var(--color-action-primary);border-radius:var(--radius-pill, 999px);font-size:13px;font-weight:600;letter-spacing:.4px;color:#fff;cursor:pointer;transition:opacity .15s ease-in-out}.board-group-plan-upgrade:hover{opacity:.85}.board-card-loading{position:relative}.board-card-loading-overlay{position:absolute;top:6px;right:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);border-radius:50%;color:var(--color-fg-on-action);pointer-events:none}.board-card-spinner{animation:board-card-spin 1s linear infinite}.start-preparing-overlay{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:1;pointer-events:auto;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#0a0a0c8c}.start-preparing-overlay.hiding{opacity:0;transition:opacity .3s ease;pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#0a0a0c8c}.start-preparing-text{font-size:14px;color:var(--color-fg-muted, #a0a0a5);letter-spacing:.02em}.start-card-hints{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:100000}.start-card-hint{padding:10px 16px;border-radius:6px;font-size:13px;font-weight:500;max-width:360px;background:var(--color-bg-surface-3);color:var(--color-action-primary-subtle);border:1px solid var(--color-action-primary-subtle);animation:start-card-hint-in .2s ease}@keyframes start-card-hint-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes board-card-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.start-template-section .examples-gallery{padding:0}.start-create-section,.start-template-section{padding:40px var(--start-gutter) 60px;max-width:100%;margin:0}@media(max-width:768px){.start-hero-actions{grid-template-columns:1fr}.start-action-btn{padding:20px}.start-blank-row{grid-template-columns:1fr}.start-blank-card{padding:20px}.start-create-section,.start-template-section{padding:24px 20px 40px}}.start-create-section .boards-row{grid-template-columns:repeat(5,1fr);gap:20px}.start-create-section .board-card-sm{padding:26px 18px 22px;gap:12px;border-radius:18px}.start-create-section .board-img-box{height:140px}.start-create-section .board-img-box img{max-width:120px;max-height:140px}.start-create-section .board-img-sm{width:110px;max-height:140px}.start-create-section .board-svg-thumb{width:110px;height:140px}.start-create-section .board-name-sm{font-size:14px}.start-create-section .board-chip-sm{font-size:12px}.start-hero{padding:40px var(--start-gutter) 24px}.start-hero-title{font-size:clamp(30px,3.8vw,48px);margin-bottom:12px}.start-hero-subtitle{margin-bottom:28px;font-size:15px;line-height:1.6}.start-hero-actions{gap:16px}.start-action-btn{padding:18px 22px;gap:16px;min-height:clamp(76px,13vh,102px)}.start-action-icon{width:48px;height:48px}.start-action-icon svg{width:28px;height:28px}.start-action-title{font-size:16px}.start-action-desc{font-size:13px}.start-create-section{padding:16px var(--start-gutter) 0}.start-create-section .section-header{margin-bottom:24px}.start-create-section .section-label{margin-bottom:10px;font-size:12px}.start-create-section .section-title{font-size:clamp(24px,3vw,40px);line-height:1.15}.start-template-section{padding:16px var(--start-gutter) 0}.start-template-section .section-header{margin-bottom:24px}.start-template-section .section-label{margin-bottom:10px;font-size:12px}.start-template-section .section-title{font-size:clamp(24px,3vw,40px);line-height:1.15}.start-template-section .examples-gallery{min-height:auto}.start-mine-section{padding-bottom:40px}.start-blank-row{gap:16px;margin-bottom:0}.start-blank-card{padding:14px 22px;gap:12px;min-height:clamp(76px,13vh,102px)}.start-blank-icon{width:44px;height:44px}.start-blank-icon svg{width:26px;height:26px}.start-blank-title{font-size:16px}.start-blank-desc{font-size:13px;line-height:1.4}.start-boards-section{margin-top:clamp(52px,calc(6vh + 20px),84px)}.start-boards-heading{margin-bottom:16px;font-size:15px;scroll-margin-top:40px}.board-group-header{padding:10px 0;margin-bottom:10px}.boards-row{gap:12px;margin-bottom:16px}@media(max-width:1200px){.start-create-section .boards-row{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.start-create-section .boards-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.start-create-section .boards-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:1100px){.start-hero-actions{gap:12px}.start-action-btn{padding:16px 14px;gap:10px}.start-action-icon{width:36px;height:36px}.start-action-icon svg{width:20px;height:20px}.start-action-arrow{display:none}}.save-status-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10000;pointer-events:auto}.save-status-modal{display:flex;flex-direction:column;justify-content:center;width:min(529px,calc(100vw - 32px));min-height:355px;padding:24px;background:var(--color-bg-surface-1);color:var(--color-fg-muted);border-radius:var(--radius-lg, 16px);box-shadow:0 12px 40px #00000073;text-align:center;pointer-events:auto}.save-status-body{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:24px}.save-status-icon{flex-shrink:0}.save-status-spin{animation:save-status-spin 1s linear infinite;color:var(--accent, var(--color-action-primary))}.save-status-success{color:var(--color-feedback-success)}.save-status-error{color:var(--color-feedback-error)}.save-status-message{margin:0;font-size:16px;line-height:1.45;word-break:break-word}.save-status-actions{display:flex;justify-content:center}.save-status-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,transform .05s ease}.save-status-btn:hover{filter:brightness(1.1)}.save-status-btn:active{transform:scale(.98)}.save-status-btn-cancel{background:var(--color-feedback-error);color:var(--color-fg-on-action)}.save-status-btn-close{background:var(--accent, var(--color-action-primary));color:var(--color-fg-on-action)}@keyframes save-status-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.user-menu-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:100%}.user-menu-btn{overflow:hidden;background:transparent;color:var(--color-fg-muted)}.user-menu-btn:hover,.user-menu-btn--open{background:var(--color-action-primary);color:var(--color-fg-on-action, #fff)}.user-menu-btn:hover{opacity:.9}.user-menu-avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-menu-avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:transparent;color:currentColor}.user-menu-btn--open{background-color:color-mix(in srgb,var(--color-action-primary) 80%,transparent)}.user-menu-popover{width:276px;transform:translateY(-50%);background:var(--color-bg-surface-1, #1e1e1e);border:1px solid var(--color-border-strong, #333);border-radius:10px;box-shadow:var(--shadow-popover, 0 12px 40px rgba(0, 0, 0, .45));z-index:99999;overflow:hidden;animation:user-menu-fadeIn .12s ease}@keyframes user-menu-fadeIn{0%{opacity:0;transform:translateY(-50%) translate(-6px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.user-menu-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--color-border-default, #333)}.user-menu-header-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--color-action-primary, var(--color-action-primary));color:var(--color-fg-on-action, #fff)}.user-menu-header-avatar img{display:block;width:100%;height:100%;object-fit:cover}.user-menu-header-info{min-width:0;display:flex;flex-direction:column;gap:2px}.user-menu-header-name{font-size:14px;font-weight:600;color:var(--color-fg-default, #f0f0f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-header-email{font-size:12px;color:var(--color-fg-muted, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-section{padding:8px 0;border-bottom:1px solid var(--color-border-default, #333)}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;border:none;background:transparent;color:var(--color-fg-default, #f0f0f0);font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease}.user-menu-item:hover{background:var(--color-bg-surface-3, rgba(255, 255, 255, .05))}.user-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-top:1px solid var(--color-border-default, #333)}.user-menu-logout{display:flex;align-items:center;gap:6px;padding:6px 10px;border:none;border-radius:6px;background:transparent;color:var(--color-feedback-error, #ff453a);font-size:12px;font-weight:500;text-align:left;cursor:pointer;transition:background .15s ease}.user-menu-logout:hover{background:color-mix(in srgb,var(--color-feedback-error) 8%,transparent)}.user-menu-actions{display:flex;align-items:center;gap:4px}.user-menu-icon-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-fg-muted, #888);cursor:pointer;transition:background .15s ease,color .15s ease}.user-menu-icon-btn:hover{background:var(--color-bg-surface-3, rgba(255, 255, 255, .05));color:var(--color-fg-default, #f0f0f0)}.user-menu-language-btn{width:auto;padding:0 6px}.user-menu-locale-code{font-size:13px;font-weight:600;letter-spacing:.3px}.user-menu-icon-btn--frozen,.user-menu-icon-btn--frozen:hover{filter:grayscale(1);opacity:.4;cursor:not-allowed;background:transparent;color:var(--color-fg-muted, #888)}.user-menu-item--campaign{min-height:52.5px;color:var(--color-action-primary, #3b82f6);font-weight:600}.user-menu-item--campaign:hover{background:color-mix(in srgb,var(--color-action-primary, #3b82f6) 12%,transparent)}.user-menu-campaign-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--color-feedback-error, #ef4444);flex-shrink:0}.save-choice-overlay{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:save-choice-fade-in .15s ease-out}.save-choice-dialog{position:relative;width:min(529px,calc(100vw - 32px));min-height:355px;padding:24px;background:var(--color-bg-surface-1);border-radius:var(--radius-lg, 16px);box-shadow:0 20px 48px #00000080;animation:save-choice-scale-in .15s ease-out}.save-choice-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--color-fg-default);line-height:1.3}.save-choice-subtitle{margin:0 0 20px;font-size:14px;line-height:1.5;color:var(--color-fg-muted)}.save-choice-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.save-choice-card-wrapper{position:relative;display:flex;aspect-ratio:1 / 1}.save-choice-card{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px 12px;background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-md, 12px);color:var(--color-fg-default);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.save-choice-card:hover{background:var(--color-bg-surface-2);border-color:var(--color-action-primary-active)}.save-choice-card:active{transform:scale(.98)}.save-choice-card svg{color:var(--color-action-primary-active)}.save-choice-card-title{font-size:14px;font-weight:600}.save-choice-card-desc{font-size:12px;line-height:1.4;color:var(--color-fg-muted);text-align:center}.save-choice-card-saveas{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;color:var(--color-action-primary-active);background:var(--color-bg-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm, 6px);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.save-choice-card-saveas--corner{position:absolute;top:8px;right:8px;z-index:1}.save-choice-card-saveas:hover{background:var(--color-bg-surface-2);border-color:var(--color-action-primary-active);color:var(--color-fg-default)}.save-choice-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-fg-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.save-choice-close:hover{background:var(--color-bg-surface-2);color:var(--color-fg-default)}@keyframes save-choice-fade-in{0%{opacity:0}to{opacity:1}}@keyframes save-choice-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(max-width:480px){.save-choice-options{grid-template-columns:1fr}}.save-cloud-overlay{position:fixed;inset:0;z-index:100002;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);animation:save-cloud-fade-in .15s ease-out}.save-cloud-dialog{position:relative;width:min(420px,calc(100vw - 32px));padding:24px;background:var(--color-bg-surface-1);border-radius:var(--radius-lg, 16px);box-shadow:0 20px 48px #00000080;animation:save-cloud-scale-in .15s ease-out}.save-cloud-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-fg-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.save-cloud-close:hover{background:var(--color-bg-surface-2);color:var(--color-fg-default)}.save-cloud-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.save-cloud-header svg{color:var(--color-action-primary-active)}.save-cloud-title{margin:0;font-size:18px;font-weight:600;color:var(--color-fg-default);line-height:1.3}.save-cloud-form{display:flex;flex-direction:column;gap:16px}.save-cloud-textarea{min-height:80px;resize:vertical;font-family:inherit}.save-cloud-error{margin:0;font-size:13px;color:var(--color-feedback-error)}.save-cloud-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}@keyframes save-cloud-fade-in{0%{opacity:0}to{opacity:1}}@keyframes save-cloud-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.notif-wrapper{display:inline-flex}.notif-btn--open{color:var(--color-fg-default)!important;background:color-mix(in srgb,var(--color-fg-default) 8%,transparent)}.notif-btn{--notif-icon-corner-inset: 6px}.notif-dot{position:absolute;top:calc(var(--notif-icon-corner-inset, 6px) - 6px + 5px);right:calc(var(--notif-icon-corner-inset, 6px) - 6px + 5px);width:12px;height:12px;border-radius:50%;background:var(--color-feedback-error);border:none;box-sizing:border-box}.notif-popover{z-index:99999;width:320px;max-height:min(70vh,440px);display:flex;flex-direction:column;background:var(--color-bg-surface-1);color:var(--color-fg-default);border:1px solid var(--color-border-default);border-radius:12px;box-shadow:0 12px 40px #00000059;overflow:hidden;animation:notif-fade-in .12s ease-out}@keyframes notif-fade-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.notif-popover-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--color-border-default)}.notif-popover-title{font-size:14px;font-weight:600}.notif-popover-badge{font-size:11px;color:var(--color-fg-muted);background:var(--color-bg-surface-2);padding:2px 8px;border-radius:999px}.notif-popover-list{overflow-y:auto;padding:6px}.notif-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 12px;color:var(--color-fg-muted);font-size:13px;text-align:center}.notif-item{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;text-align:left;transition:background .12s ease}.notif-item:hover{background:var(--color-bg-surface-2)}.notif-item--unread .notif-item-title{font-weight:600}.notif-cat{flex:0 0 auto;width:8px;height:8px;border-radius:50%}.notif-cat--version{background:var(--color-action-primary-hover)}.notif-cat--news{background:var(--color-feedback-success)}.notif-cat--general{background:var(--color-fg-muted)}.notif-item-body{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.notif-item-title{font-size:13px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-item-time{font-size:11px;color:var(--color-fg-muted)}.notif-item-unread-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--color-feedback-error)}.notif-view-all{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:11px;border:0;border-top:1px solid var(--color-border-default);background:transparent;color:var(--color-fg-default);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease}.notif-view-all:hover{background:var(--color-bg-surface-2)}.notif-campaign-dot{position:absolute;top:calc(var(--notif-icon-corner-inset, 6px) - 4px);right:calc(var(--notif-icon-corner-inset, 6px) - 4px);width:8px;height:8px;border-radius:50%;background:var(--color-action-primary, #3b82f6);border:none;box-sizing:border-box;animation:notif-campaign-pulse 1.6s ease-in-out infinite}.notif-dot~.notif-campaign-dot{top:5px;right:17px}@keyframes notif-campaign-pulse{0%,to{opacity:1}50%{opacity:.45}}.info-modal-frame{width:880px;height:600px}.info-header-icon{display:inline-flex;color:var(--color-action-primary);flex-shrink:0}.info-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.info-tabs{display:flex;flex-direction:row;gap:4px;padding:0 18px;background:var(--color-bg-surface-1);border-bottom:1px solid var(--color-border-default);flex-shrink:0}.info-tab{display:inline-flex;align-items:center;gap:8px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-fg-muted);font-size:13px;font-weight:500;letter-spacing:.03em;cursor:pointer;padding:12px 14px;transition:color .15s,border-color .15s,background .15s}.info-tab:hover{color:var(--color-fg-default);background:color-mix(in srgb,var(--color-fg-default) 4%,transparent)}.info-tab.active{color:var(--color-action-primary);border-bottom-color:var(--color-action-primary)}.info-tab:disabled{opacity:.45;cursor:not-allowed;color:var(--color-fg-subtle);border-bottom-color:transparent;background:transparent}.info-tab-count{min-width:20px;padding:1px 7px;border-radius:999px;background:var(--color-action-primary);color:var(--color-bg-canvas);font-size:11px;font-weight:700;text-align:center}.info-content{flex:1;min-height:0;padding:16px 20px;overflow-y:auto}.info-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.info-card{position:relative;padding:14px 16px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-surface-1);cursor:pointer;transition:border-color .15s,background .15s}.info-card:hover{background:var(--color-bg-surface-2);border-color:var(--color-border-default)}.info-card--unread{border-left:3px solid var(--color-action-primary)}.info-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.info-cat{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.info-cat--version{background:color-mix(in srgb,var(--color-action-primary) 14%,transparent);color:var(--color-action-primary)}.info-cat--news{background:color-mix(in srgb,var(--color-feedback-success) 14%,transparent);color:var(--color-feedback-success)}.info-cat--general{background:color-mix(in srgb,var(--color-fg-muted) 16%,transparent);color:var(--color-fg-muted)}.info-card-time{font-size:12px;color:var(--color-fg-muted)}.info-card-title{margin:0 0 6px;font-size:15px;font-weight:600;line-height:1.35;color:var(--color-fg-default)}.info-card-body{margin:0;font-size:13px;line-height:1.55;color:var(--color-fg-muted);white-space:pre-wrap}.info-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.info-action{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--color-border-default);border-radius:4px;background:transparent;color:var(--color-fg-default);font-size:12px;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.info-action:hover{background:var(--color-bg-surface-2);color:var(--color-fg-default)}.info-action--link:hover{border-color:var(--color-action-primary);color:var(--color-action-primary)}.info-action--danger{margin-left:auto;color:var(--color-feedback-error)}.info-action--danger:hover{background:color-mix(in srgb,var(--color-feedback-error) 12%,transparent);border-color:color-mix(in srgb,var(--color-feedback-error) 40%,transparent);color:var(--color-feedback-error)}.settings-modal-footer .settings-btn-confirm,.settings-modal-footer .settings-btn-cancel{display:inline-flex;align-items:center;gap:6px}.left-icon-toolbar{display:flex;flex-direction:column;align-items:center;width:50px;flex-shrink:0;background:var(--color-bg-surface-1);border-right:1px solid var(--color-border-default);padding:8px 0;z-index:90;overflow:hidden}.toolbar-top-group{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.toolbar-bottom-group{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;margin-top:auto;padding:12px 0;border-top:1px solid var(--color-border-default)}.toolbar-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--color-fg-muted);border-radius:6px;cursor:pointer;transition:color .15s ease,background-color .15s ease;position:relative;padding:0}.toolbar-btn:hover{color:var(--color-fg-default);background-color:color-mix(in srgb,var(--color-fg-default) 8%,transparent)}.toolbar-btn--highlight:hover,.toolbar-btn--highlight.toolbar-btn--active{color:var(--color-fg-on-action);background-color:var(--color-action-primary)}.toolbar-btn--tans:hover,.toolbar-btn--tans.toolbar-btn--active{box-shadow:0 0 0 1px var(--color-action-primary)}.toolbar-btn:active{transform:scale(.95)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.toolbar-btn--active{color:var(--color-fg-default)}.toolbar-btn--active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:24px;background:var(--color-action-primary);border-radius:0 2px 2px 0}.toolbar-ai-icon{font-size:15px;font-weight:800;letter-spacing:.5px;font-family:var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);line-height:1;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:var(--color-fg-default);color:var(--color-bg-surface-1)}.toolbar-btn--highlight:hover .toolbar-ai-icon,.toolbar-btn--highlight.toolbar-btn--active .toolbar-ai-icon{background:transparent;border-color:transparent;color:var(--color-fg-on-action)}.toolbar-tans-icon{width:36.4px;height:36.4px;object-fit:contain;display:block}.toolbar-tans-eyes{position:relative}.toolbar-tans-eye{width:100%;height:100%;object-fit:contain;display:block}.toolbar-tans-eye--right,.toolbar-tans-eye--left{position:absolute;inset:0;opacity:0}.toolbar-tans-eye--center{animation:tans-eye-idle-center 3.6s linear infinite}.toolbar-tans-eye--right{animation:tans-eye-idle-right 3.6s linear infinite}@keyframes tans-eye-idle-center{0%{opacity:1;animation-timing-function:steps(1,end)}8.333%{opacity:0;animation-timing-function:steps(1,end)}16.667%,to{opacity:1}}@keyframes tans-eye-idle-right{0%{opacity:0;animation-timing-function:steps(1,end)}8.333%{opacity:1;animation-timing-function:steps(1,end)}16.667%,to{opacity:0}}.toolbar-btn:hover .toolbar-tans-eye--center{animation:tans-eye-center 1.2s linear infinite}.toolbar-btn:hover .toolbar-tans-eye--right{animation:tans-eye-right 1.2s linear infinite}.toolbar-btn:hover .toolbar-tans-eye--left{animation:tans-eye-left 1.2s linear infinite}@keyframes tans-eye-center{0%{opacity:1;animation-timing-function:steps(1,end)}25%{opacity:0;animation-timing-function:steps(1,end)}50%{opacity:1;animation-timing-function:steps(1,end)}75%,to{opacity:0}}@keyframes tans-eye-right{0%{opacity:0;animation-timing-function:steps(1,end)}25%{opacity:1;animation-timing-function:steps(1,end)}50%,to{opacity:0}}@keyframes tans-eye-left{0%{opacity:0;animation-timing-function:steps(1,end)}75%{opacity:1;animation-timing-function:steps(1,end)}to{opacity:0}}.toolbar-btn[title]:hover:after{content:attr(title);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--color-bg-surface-2);color:var(--color-fg-default);font-size:12px;padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;border:1px solid var(--color-border-strong);z-index:1000;opacity:0;animation:toolbar-tooltip-fade .15s ease .3s forwards}@keyframes toolbar-tooltip-fade{to{opacity:1}}@media(max-width:768px){.left-icon-toolbar{display:none}}
