:root{color:#172033;background:#f4f6fb;font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100vh}body{margin:0;min-width:320px;overflow:hidden}button,select,input,textarea{font:inherit}button{min-height:36px;border:1px solid #cfd9e8;border-radius:6px;padding:0 14px;background:#fff;color:#18243a;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}button:hover{border-color:#2d6cdf}button:disabled{color:#7d8899;cursor:not-allowed;background:#edf2f8}.portalLanding{width:100%;min-height:100vh;display:flex;align-items:stretch;overflow:auto;background-color:#172033;background-position:center;background-size:cover;color:#fff}.portalHero{width:min(1120px,100%);min-height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:32px;padding:clamp(24px,5vw,64px)}.portalBrand{display:inline-flex;align-items:center;gap:10px;width:fit-content;min-width:0;color:#ffffffe0;font-size:15px;font-weight:700}.portalBrandText{display:grid;gap:2px;min-width:0}.portalBrandText strong{font-size:15px;line-height:1.1}.portalBrandText span{color:#ffffffb3;font-size:12px;font-weight:600;line-height:1.2}.portalBrand img{width:38px;height:38px;display:block;object-fit:contain}.portalCopy{align-self:center;max-width:620px;display:grid;gap:14px}.portalEyebrow,.portalLead,.portalActionText span{margin:0;color:#ffffffc2}.portalEyebrow{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:0}.portalCopy h1{margin:0;color:#fff;font-size:clamp(44px,7vw,84px);line-height:.95;letter-spacing:0}.portalLead{max-width:520px;font-size:clamp(18px,2vw,24px);line-height:1.5}.portalActions{width:min(760px,100%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portalAction{min-height:104px;display:grid;grid-template-columns:48px minmax(0,1fr) 28px;align-items:center;gap:14px;padding:18px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1f;color:#fff;text-decoration:none;box-shadow:0 18px 46px #0000003d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.portalAction:hover,.portalAction:focus-visible{border-color:#ffffff9e;background:#ffffff2e;transform:translateY(-2px)}.portalAction:focus-visible{outline:3px solid rgba(255,255,255,.36);outline-offset:3px}.portalActionIcon{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;color:#0f172a}.portalAction-maker .portalActionIcon{background:#67e8f9}.portalAction-schedule .portalActionIcon{background:#fbbf24}.portalActionText{min-width:0;display:grid;gap:4px}.portalActionText strong{overflow-wrap:anywhere;font-size:clamp(18px,2vw,22px);line-height:1.2}.portalActionText span{font-size:14px;line-height:1.35}.portalActionArrow{justify-self:end;color:#ffffffd6}@media(max-width:720px){.portalHero{gap:24px;padding:22px}.portalCopy{align-self:end}.portalActions{grid-template-columns:minmax(0,1fr)}.portalAction{min-height:92px}}.aiToBlockDetachedBlock{filter:grayscale(1) saturate(.15);opacity:.62;transition:filter .12s ease,opacity .12s ease}.appShell{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;overflow:hidden}.authShell{align-items:center;justify-content:center;padding:24px;overflow:auto}.authPanel{width:min(420px,100%);display:grid;gap:16px;grid-template-columns:minmax(0,1fr);padding:24px;border:1px solid #d7deea;border-radius:8px;background:#fff;box-shadow:0 16px 42px #18243a1f}.brand.authBrand{grid-area:auto;min-width:0;margin-bottom:4px}.brand.authBrand .brandMark{flex:0 0 auto}.authPanel>button[type=submit],.authError{width:100%}.authField{display:grid;gap:6px;color:#4f5f75;min-width:0}.authField input,.projectControls input,.projectControls select{width:100%;min-height:38px;border:1px solid #b4bece;border-radius:6px;padding:0 10px;background:#fff;color:#172033}.authError{margin:0;color:#b42318}.topbar{min-height:58px;padding:9px 16px;display:grid;grid-template-columns:minmax(300px,.5fr) minmax(0,1.5fr);grid-template-areas:"brand project";align-items:center;gap:7px 12px;background:#f8fafc;border-bottom:1px solid #dce5f1}.brand{grid-area:brand;display:flex;align-items:center;gap:9px;min-width:0}.brandCopy{flex:0 0 auto;min-width:0}.brandMark{width:38px;height:38px;border-radius:7px;display:grid;place-items:center;overflow:hidden;background:transparent}.brandMark img{width:35px;height:35px;display:block;object-fit:contain}.brand h1{margin:0;font-size:17px;line-height:1.1}.brand p{margin:1px 0 0;color:#6b7890;font-size:12px;line-height:1.2}.brandStatus{min-width:0;max-width:min(220px,18vw);margin-left:24px;padding:5px 10px;overflow:hidden;border:1px solid #d1deef;border-radius:6px;background:#eef5ff;color:#253653;font-size:12px;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.projectControls{min-width:0;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px}.projectHeaderArea{grid-area:project;min-width:0;display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:7px 12px}.projectHeaderArea .projectControls{flex:0 1 auto}.projectTitleCombo{position:relative;flex:0 1 auto;min-width:272px;height:38px;display:grid;grid-template-columns:minmax(0,260px) 34px;align-items:stretch;overflow:hidden;border:1px solid #b4bece;border-radius:6px;background:#fff}.projectTitleCombo:focus-within{border-color:#2d6cdf;box-shadow:0 0 0 2px #2d6cdf29}.projectControls .projectPickerSelect,.projectControls .projectTitleInput{width:100%;min-height:0;border:0;border-radius:0;background:transparent}.projectControls .projectPickerSelect{position:absolute;inset:0 0 0 auto;width:34px;height:100%;opacity:0;cursor:pointer}.projectControls .projectPickerSelect:disabled{cursor:default}.projectPickerTrigger{display:inline-flex;align-items:center;justify-content:center;border-left:1px solid #d7deea;color:#4b5b73;pointer-events:none}.projectControls .projectTitleInput{min-width:0}.projectControlsAnonymous{color:#5a687c;font-size:12px}.headerStatusMeta{flex:1 1 auto;min-width:0;justify-content:flex-start;flex-wrap:nowrap;gap:9px;padding-left:12px;border-left:1px solid #d7deea;overflow:hidden;white-space:nowrap}.headerStatusMeta span{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}@media(max-width:1180px){.topbar{grid-template-columns:minmax(270px,.44fr) minmax(0,1.56fr)}.brandStatus{max-width:150px;margin-left:18px}.projectTitleCombo{min-width:260px;grid-template-columns:minmax(0,1fr) 34px}.projectHeaderArea{gap:7px 10px}.headerStatusMeta{gap:7px;padding-left:10px}}.topbar button,.topbar input,.topbar select{min-height:34px;font-size:13px}.topbar button{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.topbar button svg{flex:0 0 auto;color:#2d6cdf}.topbar .dangerButton svg{color:#b42318}.topbar .ghostButton{background:#fff}.projectFileControls{grid-area:files;justify-self:end;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.adminPanel{flex:0 1 auto;min-height:0;max-height:min(68vh,calc(100vh - 126px));display:grid;gap:12px;padding:14px 18px;border-bottom:1px solid #d7deea;background:#f8fafc;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.libraryPanel{flex:0 1 auto;display:grid;gap:10px;padding:12px 18px;border-bottom:1px solid #d7deea;background:#f7fbf8}.libraryPanelCollapsed{place-items:center;gap:0;min-height:18px;padding:1px 0;background:#f4f7fb}.libraryCollapseButton{width:22px;height:16px;min-height:16px;padding:0;display:inline-grid;place-items:center;border:0;border-radius:4px;background:transparent;color:#4f6483}.libraryCollapseButton:hover{background:#e7eef8;color:#1f5fd0}.libraryPanelExpandedToggle{place-self:center;margin:-8px 0 -4px}.libraryMiniGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.libraryFeedbackRow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border:1px solid #d7e6d8;border-radius:8px;background:#fff;color:#263750;font-size:13px}.communityPanel{flex:0 1 auto;min-height:0;max-height:min(46vh,calc(100vh - 136px));display:grid;gap:10px;padding:14px 18px;border-bottom:1px solid #d7deea;background:#f4f8fb;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.communityPanelActions,.communityProjectActions,.communityPublishBar{display:flex;align-items:center;gap:8px}.communityPublishBar{flex-wrap:wrap}.communityPublishBar input{flex:1 1 320px;min-height:38px;min-width:180px;border:1px solid #b4bece;border-radius:6px;padding:0 10px;background:#fff;color:#172033}.communityNotice{margin:0;padding:9px 11px;border:1px solid #bfd0e6;border-radius:8px;background:#eef4fb;color:#263750;font-size:13px}.communityProjectList{display:grid;gap:8px}.communityProjectRow{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.communityProjectInfo{min-width:0;display:grid;gap:4px}.communityProjectInfo strong{min-width:0;color:#263750;overflow-wrap:anywhere}.communityProjectInfo span,.communityProjectInfo p,.communityEmpty{margin:0;color:#66758d;font-size:13px;line-height:1.35}.communityProjectInfo p{color:#405066;overflow-wrap:anywhere}.communityProjectActions{justify-content:flex-end;flex-wrap:wrap}.communityPageShell{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;overflow:auto;background:#eef3fb;color:#18243a;scrollbar-gutter:stable}.communityTopbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;min-height:72px;padding:12px 20px;background:#2f6ff1;color:#fff;box-shadow:0 8px 24px #0f2c7a33}.communityBrand{display:flex;align-items:center;gap:10px;min-width:196px}.communityBrandMark{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#ffffff29;color:#fff;font-weight:800;box-shadow:inset 0 1px #ffffff47}.communityBrandText{display:grid;gap:2px}.communityBrandText strong{font-size:18px;line-height:1.1}.communityBrandText span{font-size:12px;opacity:.86}.communityTopbarNav{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.communityTopbarNavItem{flex:0 0 auto;font-size:14px;color:#ffffffe0}.communityTopbarNavItemActive{font-weight:700;color:#fff}.communityTopbarActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.communitySearchBar{display:flex;align-items:stretch;min-width:min(560px,42vw);max-width:640px;height:38px;border:1px solid rgba(255,255,255,.22);border-radius:10px;overflow:hidden;background:#ffffff24}.communitySearchScope{flex:0 0 auto;background:#fffffff0}.communitySearchScope select{width:100%;height:100%;border:0;padding:0 12px;background:transparent;color:#30466e;outline:none}.communitySearchInputWrap{flex:1 1 auto;display:flex;align-items:center;gap:8px;min-width:0;padding:0 12px;color:#ffffffe6}.communitySearchInputWrap input{flex:1 1 auto;min-width:0;border:0;padding:0;background:transparent;color:inherit;outline:none}.communitySearchInputWrap input::placeholder{color:#ffffffbd}.communityPrimaryButton,.communityGhostButton{display:inline-flex;align-items:center;gap:8px;min-height:38px;border-radius:10px;padding:0 14px;font-weight:600}.communityPrimaryButton{border:0;background:#ff9f43;color:#fff}.communityPrimaryButton:hover{background:#ff8e21}.communityGhostButton{border:1px solid rgba(255,255,255,.28);background:#ffffff1a;color:#fff}.communityGhostButton:hover{border-color:#ffffff75;background:#ffffff29}.communityUserChip{display:flex;align-items:center;gap:10px;min-width:0;padding-left:4px}.communityUserAvatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#ffffff29;color:#fff;font-size:12px;font-weight:700}.communityUserMeta{display:grid;gap:2px;min-width:0}.communityUserMeta strong,.communityUserMeta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.communityUserMeta strong{font-size:14px}.communityUserMeta span{font-size:12px;opacity:.84}.communityHeaderBand{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:24px 28px 18px;background:#fff;border-bottom:1px solid #dce4f2}.communitySectionTitle{display:grid;gap:8px}.communitySectionTitle h1{margin:0;font-size:42px;line-height:1}.communitySectionTitle p{margin:0;font-size:14px;color:#66758d}.communityFeedTabs{display:flex;align-items:end;gap:20px;overflow-x:auto;scrollbar-width:none}.communityFeedTabs::-webkit-scrollbar{display:none}.communityFeedTab{min-height:44px;border:0;border-radius:0;padding:0 4px 12px;background:transparent;color:#55637b;font-size:18px;font-weight:600;border-bottom:3px solid transparent}.communityFeedTab:hover{border-color:transparent;color:#2d6cdf}.communityFeedTabActive{color:#2d6cdf;border-bottom-color:#2d6cdf}.communityPublishStrip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 28px 8px}.communityPublishIntro{display:grid;gap:4px;min-width:0}.communityPublishIntro strong{font-size:16px}.communityPublishIntro span{color:#66758d;font-size:13px}.communityPublishControls{display:flex;align-items:center;gap:10px;flex:1 1 auto;justify-content:flex-end}.communityPublishControls input{flex:1 1 340px;min-width:220px;min-height:40px;border:1px solid #c8d2e2;border-radius:10px;padding:0 12px;background:#fff;color:#18243a}.communityPublishButton,.communityRefreshButton{min-height:40px;border-radius:10px}.communityPublishButton{border:0;background:#2f6ff1;color:#fff;font-weight:700}.communityPublishButton:hover{background:#275fce}.communityRefreshButton{width:40px;padding:0;display:inline-grid;place-items:center;border:1px solid #c8d2e2;background:#fff;color:#2d3f60}.communityNoticeBand{margin:10px 28px 0;padding:10px 14px;border-radius:10px;border:1px solid #d4e0f4;background:#eef4ff;color:#2d456f;font-size:13px}.communityGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:24px;padding:22px 28px 28px;align-items:start}.communityProjectCard{min-width:0;display:grid;gap:0;border:1px solid #dbe4f1;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 12px 28px #18243a14}.communityProjectCover{position:relative;min-height:222px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:14px;color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.12) 0 22%,transparent 22% 100%),linear-gradient(160deg,rgba(255,255,255,.08),transparent 55%),var(--community-cover-bg, #2142b6)}.communityProjectCover:before{content:"";position:absolute;inset:-10% auto auto -12%;width:52%;aspect-ratio:1;border-radius:18px;background:#ffffff24;transform:rotate(-12deg)}.communityProjectCover:after{content:"";position:absolute;right:-6%;bottom:-16%;width:46%;aspect-ratio:1;border-radius:18px;border:1px solid rgba(255,255,255,.16);background:#ffffff12;transform:rotate(14deg)}.communityProjectCoverHeader,.communityProjectCoverFooter{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.communityProjectCoverTag,.communityProjectCoverBadge,.communityProjectCoverDevice{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.communityProjectCoverTag{background:#ffffffeb;color:#2142b6}.communityProjectCoverBadge{background:#ffffff24;color:#fff}.communityProjectCoverBody{position:relative;z-index:1;display:grid;gap:10px;max-width:72%}.communityProjectCoverTitle{font-size:20px;font-weight:800;line-height:1.06;overflow-wrap:anywhere}.communityProjectCoverDevice{width:fit-content;background:#ffffff24;color:#fff}.communityProjectCoverFooter{font-size:12px;color:#ffffffe6}.communityProjectCoverAccent{position:absolute;inset:auto 16px 16px auto;width:72px;height:72px;border-radius:18px;background:radial-gradient(circle at 30% 30%,var(--community-cover-soft, #fff1db),transparent 36%),linear-gradient(135deg,rgba(255,255,255,.12),transparent);opacity:.86;transform:rotate(12deg);z-index:0}.communityProjectBody{display:grid;gap:12px;padding:14px}.communityProjectTitleRow{display:flex;align-items:start;justify-content:space-between;gap:12px}.communityProjectTitleRow h3{margin:0;min-width:0;font-size:17px;line-height:1.28;overflow-wrap:anywhere}.communityProjectModePill{flex:0 0 auto;min-height:26px;padding:0 10px;border-radius:999px;display:inline-flex;align-items:center;background:#eef4ff;color:#2d5ccf;font-size:12px;font-weight:700}.communityProjectDescription{margin:0;color:#55637b;font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.communityDescriptionEditor{display:grid;gap:10px}.communityDescriptionTextarea{width:100%;min-height:96px;resize:vertical;border:1px solid #cfd9e8;border-radius:8px;padding:10px 12px;background:#fff;color:#172033;line-height:1.55}.communityDescriptionTextarea:focus{outline:none;border-color:#2d6cdf;box-shadow:0 0 0 3px #2d6cdf1f}.communityDescriptionEditorActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.communityDescriptionEditorHint{margin-right:auto;color:#6b7890;font-size:12px}.communityEditButton,.communityDescriptionSaveButton,.communityDescriptionCancelButton{min-height:36px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600}.communityEditButton{border:1px solid #b9c9e5;background:#fff;color:#26406e}.communityEditButton:hover{border-color:#2d6cdf}.communityDescriptionSaveButton{border:1px solid #b9d9c8;background:#f1fbf4;color:#21613d}.communityDescriptionCancelButton{border:1px solid #cfd9e8;background:#fff;color:#405066}.communityProjectMeta{display:flex;flex-wrap:wrap;gap:8px 12px;color:#6b7890;font-size:12px}.communityProjectMeta span{display:inline-flex;align-items:center;gap:6px}.communityProjectActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.communityImportButton,.communityDeleteButton{min-height:36px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600}.communityImportButton{border:1px solid #b9c9e5;background:#fff;color:#26406e}.communityImportButton:hover{border-color:#2d6cdf}.communityDeleteButton{border:1px solid #f2b4b4;background:#fff5f5;color:#b42318}.communityDeleteButton:hover{border-color:#ef7f7f}.communityReactionButton{min-height:36px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:1px solid #d5deec;background:#fff;color:#405066;font-size:13px;font-weight:600}.communityReactionButtonActive{border-color:#f2b06d;background:#fff4e8;color:#a84c10}.communityReactionButtonActive svg{fill:currentColor}.adminPageShell{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;overflow:auto;background:#f3f6fb;color:#172033}.adminPageTopbar{position:sticky;top:0;z-index:10;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid #d7deea;background:#fff}.adminPageBrand{display:flex;align-items:center;gap:10px;min-width:0}.adminPageBrand h1{margin:0;font-size:20px}.adminPageBrand p{margin:2px 0 0;color:#6b7890;font-size:13px}.adminPageActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.adminPageActions button,.adminPageActions select,.adminPageSection button{min-height:36px;display:inline-flex;align-items:center;gap:6px}.adminPageActions select,.adminAdjustmentForm select,.adminAdjustmentForm input,.adminRuleCard input{min-height:36px;border:1px solid #b4bece;border-radius:6px;padding:0 10px;background:#fff;color:#172033}.adminPageNotice{margin:14px 20px 0;padding:10px 12px;border:1px solid #bfd0e6;border-radius:8px;background:#eef4fb;color:#263750}.adminMetricsGrid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;padding:18px 20px 0}.adminMetricCard,.adminPageSection{border:1px solid #d7deea;border-radius:8px;background:#fff}.adminMetricCard{display:grid;gap:8px;padding:16px}.adminMetricIcon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:#edf4ff;color:#2d6cdf}.adminMetricCard span{color:#6b7890;font-size:13px}.adminMetricCard strong{color:#18243a;font-size:26px;line-height:1.1}.adminPageSection{display:grid;gap:14px;margin:16px 20px 0;padding:16px}.adminTrendChart{min-height:240px;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));align-items:end;gap:10px}.adminTrendColumn{min-width:0;display:grid;gap:6px;text-align:center;color:#66758d;font-size:12px}.adminTrendBarTrack{height:150px;display:flex;align-items:end;border-radius:7px;background:#edf2f8;overflow:hidden}.adminTrendBar{width:100%;display:block;border-radius:7px 7px 0 0;background:#2d6cdf}.adminTrendColumn strong{min-height:18px;color:#263750;font-size:12px}.adminTrendColumn em{font-style:normal}.adminDataTable{display:grid;gap:6px}.adminDataTableHeader,.adminDataTableRow{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(120px,1fr));gap:10px;align-items:center}.adminLeaderboardTable .adminDataTableHeader,.adminLeaderboardTable .adminDataTableRow{grid-template-columns:minmax(180px,1.4fr) repeat(5,minmax(90px,.8fr))}.adminLibraryAttemptsTable .adminDataTableHeader,.adminLibraryAttemptsTable .adminDataTableRow,.adminBoardTable .adminDataTableHeader,.adminBoardTable .adminDataTableRow{grid-template-columns:minmax(160px,1.2fr) repeat(3,minmax(90px,.8fr))}.adminConversationsTable .adminDataTableHeader,.adminConversationsTable .adminDataTableRow{grid-template-columns:minmax(110px,.8fr) minmax(140px,1fr) minmax(90px,.7fr) minmax(260px,2fr)}.adminDataTableHeader{padding:8px 12px;border-radius:6px;background:#eef3fb;color:#4f5f75;font-size:12px;font-weight:700}.adminDataTableRow{padding:10px 12px;border:1px solid #e1e8f3;border-radius:8px;background:#fff;color:#2f3d52}.adminDataTableRow span{min-width:0;overflow-wrap:anywhere}.adminDataTableRow strong{display:inline-flex;align-items:center;gap:6px;color:#172033}.adminDataTableRow small{display:block;margin-top:2px;color:#718096}.adminEmptyState{margin:0;padding:18px;color:#66758d;text-align:center}.adminRuleGrid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px}.adminRuleCard{display:grid;gap:8px;padding:14px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.adminRuleCard span{color:#263750;font-weight:700}.adminRuleCard small{color:#718096}.adminAdjustmentForm{display:grid;grid-template-columns:minmax(180px,1fr) 120px minmax(240px,2fr) auto;gap:10px;align-items:center}.communityEmptyState{grid-column:1 / -1;min-height:280px;display:grid;place-items:center;gap:10px;padding:28px;border:1px dashed #cfd9e8;border-radius:12px;background:#ffffffb8;color:#5a687c;text-align:center}.communityEmptyState strong{color:#24344f;font-size:18px}.communityEmptyState span{font-size:13px}.communityEmptyStateIcon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#e9f0ff;color:#2d6cdf}.adminCreateForm{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(120px,1fr) 130px auto;gap:8px}.adminAiModels{display:grid;gap:10px;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.adminAiModels h3{margin:0;font-size:15px}.adminAiModelForm{display:grid;gap:8px;padding:8px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafc}.adminAiModelFormMain,.adminAiModelCardMain{display:grid;gap:8px;align-items:center}.adminAiModelFormMain{grid-template-columns:minmax(120px,1fr) 150px minmax(180px,1.3fr) minmax(130px,1fr) minmax(140px,1fr) auto auto}.adminAiModelCardMain{grid-template-columns:minmax(120px,1fr) 150px minmax(180px,1.3fr) minmax(130px,1fr) minmax(140px,1fr) auto auto auto auto}.adminAiModelList{display:grid;gap:8px}.adminAiModelCard{display:grid;gap:10px;padding:8px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafc}.adminAiModelFormStrategy,.adminAiModelCardStrategy{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:center}.adminAiModelFormFooter{display:flex;justify-content:flex-end}.adminAiModelOverview{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.adminAiModelSummaryCard{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #d8e1ee;border-radius:8px;background:#fbfcfe}.adminAiModelSummaryCard div:first-child{min-width:0;display:grid;gap:3px}.adminAiModelSummaryCard strong{min-width:0;color:#263750;overflow-wrap:anywhere}.adminAiModelSummaryCard span{min-width:0;color:#66758d;font-size:12px;overflow-wrap:anywhere}.adminAiModelSummaryBadges{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:130px}.adminAiModelBadge{min-height:22px;display:inline-flex;align-items:center;padding:2px 7px;border:1px solid #cbd8e8;border-radius:999px;background:#eef4fb;color:#405066;font-size:11px;font-weight:700;line-height:1.2}.adminAiModelBadgeSuccess{border-color:#2f6ff147;background:#eef4ff;color:#2d5ccf}.adminAiModelBadgeWarning{border-color:#c7802057;background:#fff7e6;color:#8a5a00}.adminAiModelBadgeMuted{border-color:#d5deeb;background:#eef2f7;color:#718098}.adminAiModelBadgeDefault{border-color:#9db9ed;background:#eaf2ff;color:#2459a6}.adminAiModelRoutes{display:grid;gap:6px;padding-top:2px}.adminAiModelRoutes summary{min-height:36px;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #d8e1ee;border-radius:8px;background:#fff;color:#263750;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.adminAiModelRoutes summary::-webkit-details-marker{display:none}.adminAiModelRoutes summary::marker{content:""}.adminAiModelRoutes summary:after{content:"";width:8px;height:8px;margin-left:0;border-right:1.5px solid #718098;border-bottom:1.5px solid #718098;transform:rotate(45deg);transition:transform .14s ease}.adminAiModelRoutes[open] summary:after{transform:rotate(-135deg)}.adminAiModelRoutes summary strong{margin-left:auto;color:#66758d;font-size:12px}.adminAiModelRoutesBody{display:grid;gap:6px;padding-top:7px}.adminAiModelRouteList{display:grid;gap:6px}.adminAiModelRouteRow{display:grid;grid-template-columns:minmax(180px,1fr) 110px auto auto;gap:8px;align-items:center}.adminInlineField{min-height:36px;display:flex;align-items:center;gap:6px;color:#405066;font-size:13px;white-space:nowrap}.adminInlineField span{flex:0 0 auto}.adminHint{margin:0;color:#66758d;font-size:13px}.adminCheckboxLabel{min-height:36px;display:inline-flex;align-items:center;gap:6px;color:#405066;font-size:13px;white-space:nowrap}.adminCreateForm input,.adminCreateForm select,.adminAiModelForm input,.adminAiModelForm select,.adminAiModelCard input,.adminAiModelCard select,.adminUserActions input{min-height:38px;border:1px solid #b4bece;border-radius:6px;padding:0 10px;background:#fff;color:#172033}.adminCheckboxLabel input,.adminInlineField input[type=checkbox]{min-height:auto;width:auto;padding:0}.adminInlineField input[type=number]{width:96px}.adminNotice{margin:0;padding:9px 11px;border:1px solid #bfd0e6;border-radius:8px;background:#eef4fb;color:#263750;font-size:13px}.adminFormWarning{margin:0;padding:8px 10px;border:1px solid #f0c46d;border-radius:8px;background:#fff7e6;color:#7a4b00;font-size:13px}.adminUserList{display:grid;gap:8px}.adminUserRow{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#fff}.adminUserIdentity,.adminUserActions{min-width:0}.adminUserIdentity{display:grid;gap:3px}.adminUserIdentity span{color:#66758d;font-size:13px}.adminUserActions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.adminUserActions input{width:140px}.dangerButton{border-color:#f2b5af;color:#b42318;background:snow}.dangerButton:hover{border-color:#d92d20}.toolbar{grid-area:toolbar;width:100%;padding-top:5px;border-top:1px solid #e2e8f2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.toolbarMainControls{min-width:0;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.selectField{display:flex;align-items:center;gap:8px;color:#43536b;font-size:12px;font-weight:700}.selectField select,.serialControls select,.serialControls input,.serialComposer select,.serialComposer input,.chatComposer textarea{border:1px solid #b4bece;border-radius:6px;background:#fff;color:#172033}.selectField select{min-height:34px;padding:0 12px;min-width:190px}.viewControls{display:flex;align-items:center;gap:6px;justify-self:end;padding-left:10px;border-left:1px solid #d7deea}.iconToggle{width:38px;min-width:38px;padding:0;display:grid;place-items:center;border-color:#c9d8e8;background:#fff;color:#2d6cdf}.iconToggle svg{fill:none;color:currentColor}.iconToggleActive{border-color:#b9c9e5;background:linear-gradient(180deg,#f7fbff,#eef4ff);color:#2d6cdf;box-shadow:inset 0 0 0 1px #2d6cdf14,0 1px 2px #1831540f}.iconToggleActive:hover{border-color:#8fb2ef;background:#e3edff}.statusBand{min-height:36px;padding:7px 16px;display:flex;align-items:center;justify-content:flex-end;gap:8px;background:#e8f0fb;border-bottom:1px solid #d2dfed;color:#21304a}.statusBand strong{min-width:0;flex:1 1 auto;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;font-size:13px}.statusBand span{color:#53647a;font-size:12px}.statusMeta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;color:#53647c;font-size:12px}.studioFrame{--ai-sidebar-width: clamp(340px, 29vw, 424px);flex:1;min-height:0;display:grid;grid-template-columns:var(--ai-sidebar-width) minmax(0,1fr);align-items:stretch;gap:18px;padding:16px 18px 18px;background:#f4f6fb}.studioFrameCollapsed{--ai-sidebar-width: 70px}.aiSidebar,.studioMain,.studioPanel,.tabPage,.aiSidebarPanel,.serialPagePanel{min-width:0;min-height:0}.aiSidebar{display:flex;height:100%}.aiSidebarPanel{width:100%;height:100%;max-height:100%;display:flex;flex-direction:column;gap:10px;padding:13px;border:1px solid #dce5f1;border-radius:10px;background:linear-gradient(180deg,#fff,#f8fbff);color:#21304a;box-shadow:0 12px 28px #18315414;overflow:hidden}.aiSidebarHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.aiSidebarTitle{min-width:0;display:flex;align-items:center;gap:8px;color:#2d6cdf}.aiSidebarHeader h2{margin:0;color:#20314b;font-size:16px;line-height:1.2}.aiSidebarMeta{display:flex;flex-wrap:wrap;gap:6px}.aiSidebarChip{min-height:24px;padding:0 8px;border:1px solid #d9e4f0;border-radius:999px;display:inline-flex;align-items:center;background:#f3f7fc;color:#45566f;font-size:11px}.aiSidebarRail{width:100%;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;gap:14px;padding:12px 10px;border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#21304a;box-shadow:0 12px 26px #18315414}.aiSidebarRailButton{width:100%;min-height:40px;padding:0;border:1px solid #d6e0ec;border-radius:8px;background:#f7fafc;color:#2d6cdf}.aiSidebarRailButton:hover{border-color:#aac4e4;background:#eef5ff}.aiSidebarRailButtonMuted{color:#65758c}.aiSidebarRailLabel{display:grid;justify-items:center;gap:8px;width:100%;text-align:center}.aiSidebarRailLabel strong{color:#20314b;font-size:1rem;line-height:1.1}.aiSidebarRailLabel span{color:#65758c;font-size:12px;line-height:1.3}.studioMain{display:flex;flex-direction:column;gap:8px;min-width:0}.studioTabBar{min-width:0;display:flex;align-items:center;gap:8px}.studioTabs{display:inline-flex;flex-wrap:wrap;flex:0 0 auto;gap:4px;width:fit-content;max-width:100%;padding:4px;border:1px solid #d8e2ef;border-radius:8px;background:#eef3f9}.studioTabActions{flex:1 1 auto;min-width:min(480px,100%);display:flex;align-items:center;flex-wrap:wrap;gap:5px 7px}.studioActionGroup{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.studioActionGroup+.studioActionGroup{padding-left:7px;border-left:1px solid #d7deea}.compactActionButton{min-height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:6px;font-size:12px;line-height:1;white-space:nowrap}.compactActionButton svg{flex:0 0 auto;color:#2d6cdf}.compactActionButton span{min-width:0;overflow:hidden;text-overflow:ellipsis}.studioTabButton{min-height:30px;border:0;border-radius:6px;padding:0 10px;background:transparent;color:#516275;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.studioTabButton:hover{border-color:transparent;background:#2f6ff114}.studioTabButtonActive,.studioTabButtonActive:hover{background:#fff;color:#1f3f6f;box-shadow:0 1px 2px #18243a14}.studioPanel{flex:1;min-height:0}.programmingWorkbench{height:100%;border:1px solid #dbe5f1;border-radius:8px;overflow:hidden;background:#f5f8fc}.serialPagePanel,.tabPage{height:100%}.serialPagePanel{display:flex;flex-direction:column;border:1px solid #d7deea;border-radius:10px;background:#f8fafc;overflow:hidden}.serialMonitorShell{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px;overflow:hidden}.serialControlGrid{display:grid;grid-template-columns:minmax(140px,190px) auto minmax(0,1fr);gap:10px;align-items:end}.serialBaudField{max-width:190px}.serialField{min-width:0;display:grid;gap:6px}.serialField span{color:#4f6076;font-size:12px;font-weight:600}.serialField select,.serialField input,.serialComposer input,.serialComposer select{min-width:0;min-height:40px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#fff;color:#20314b}.serialConnectButton{min-height:40px;min-width:72px;padding:0 16px;border:1px solid #2f6ff1;border-radius:8px;background:linear-gradient(180deg,#3f7af4,#2f6ff1);color:#fff;font-weight:700;white-space:nowrap}.serialConnectButtonActive{border-color:#ea7a6a;background:linear-gradient(180deg,#ff927f,#f45d4a)}.serialAdvancedSettings{flex-shrink:0;border:1px solid #d2dceb;border-radius:8px;background:#fff}.serialAdvancedGrid{display:grid;grid-template-columns:repeat(5,minmax(96px,1fr)) auto minmax(170px,auto);gap:10px;align-items:end;padding:10px 12px 12px}.serialAdvancedStats{grid-column:span 2;min-height:40px;display:inline-flex;align-items:center;gap:10px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#f8fafc;color:#607089;font-size:12px;font-weight:700;white-space:nowrap}.serialAdvancedSearchBox{grid-column:span 5}.serialToolbar{display:grid;grid-template-columns:auto auto auto auto auto;gap:10px;align-items:center;justify-content:start;align-self:end}.serialAdvancedButton{min-height:40px}.serialToolbar .ghostButton{min-height:40px;border-radius:8px}.serialInlineCheck{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#fff;color:#52647c;white-space:nowrap}.serialInlineCheck input{margin:0}.serialSearchBox{min-height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#fff;color:#97a6ba}.serialSearchBox svg{flex-shrink:0}.serialSearchBox .serialSearchInput{border:0;border-radius:0;background:transparent;padding:0;height:auto}.serialTerminal{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.serialTerminalActions{position:absolute;top:10px;right:10px;z-index:1;display:inline-flex;gap:8px}.serialTerminalButton{min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0f;color:#e8f2ff;display:inline-flex;align-items:center;gap:6px}.serialTerminalButton:hover:not(:disabled){border-color:#7da8ff73;background:#7da8ff1f}.tabPage{display:flex;flex-direction:column}.workbench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);background:#f4f6fb}.workbench.hasCodePane{grid-template-columns:minmax(0,1fr) var(--code-pane-resizer-width, 10px) minmax(320px,var(--code-pane-width, 520px))}.workbench.hasSerialPane{grid-template-rows:minmax(0,1fr) var(--bottom-dock-resizer-height, 10px) minmax(0,var(--serial-pane-height, 320px))}.workspacePane,.codeDock,.bottomDock{min-width:0;min-height:0}.programmingActionBar{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border-bottom:1px solid #dbe5f1;background:#f8fbff}.programmingActionBar button{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 12px}.programmingBoardSelect{flex:0 1 330px;min-width:250px}.programmingBoardSelect select{flex:1 1 auto;min-width:0}.programmingActionBar .viewControls{justify-self:auto;margin-left:0;padding-left:10px}.programmingActionBar .iconToggle{width:38px;min-width:38px;padding:0;display:grid;gap:0}.workspacePane{position:relative;overflow:hidden;background:#f5f8fc}.workbench.hasCodePane .workspacePane{border-right:0}.workspaceView{position:absolute;top:0;right:0;bottom:0;left:0;min-width:0;min-height:0}.workspaceViewActive{visibility:visible;pointer-events:auto}.workspaceViewHidden{visibility:hidden;pointer-events:none}.blocklyPane{background:#f5f8fc}.blocklySurface{width:100%;height:100%;min-height:0}.codeEditorPanel,.codePanel,.serialPanel,.logPanel{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px}.dockPanel{padding:14px;background:#f7f9fc}.codeEditorPanel{padding:12px;background:#f5f8fc}.panelTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.panelTitleRow h2{margin:0;font-size:15px;color:#263750}.panelHeadingGroup{min-width:0}.panelActions{display:flex;align-items:center;gap:8px}.panelCaption{color:#73849b;font-size:12px}.syncNotice{margin:4px 0 0;font-size:12px}.syncNoticeNeutral{color:#7a5a00}.syncNoticeSuccess{color:#0f7a5f}.syncNoticeError{color:#b42318}.codeEditor{flex:1;min-height:0;width:100%;resize:none;border:1px solid #d2dae7;border-radius:6px;padding:14px;background:#f8fafc;color:#1f2937;font:13px/1.55 Cascadia Code,Consolas,Liberation Mono,Menlo,monospace}.codeWorkspace{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.codeDiffCount,.codeReviewMeta span{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:#eaf1f8;color:#3b4b60;font-size:11px;font-weight:700;line-height:1.2}.codeWorkspaceEditor{flex:1 1 320px;min-height:220px;overflow:hidden;border:1px solid #d7e1ec;border-radius:6px;background:#f3f6fb}.codeWorkspaceEditor .cm-editor{height:100%}.codeWorkspaceBottom{flex:0 0 clamp(150px,23vh,230px);min-height:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:10px}.codeDiffPanel,.codeReviewPanel{min-width:0;min-height:0;overflow:hidden;border:1px solid #d8e1ee;border-radius:6px;background:#fff}.codeWorkspaceSubhead{display:flex;align-items:center;gap:8px;padding:9px 11px}.codeWorkspaceSubhead h3{margin:0;color:#263750;font-size:13px}.codeWorkspaceSubhead>span{margin-left:auto;color:#718098;font-size:11px}.chatCodeSection{min-width:0;min-height:0}.chatCodeSection>.codeWorkspaceSubhead{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.chatCodeSection>.codeWorkspaceSubhead::-webkit-details-marker{display:none}.chatCodeSection>.codeWorkspaceSubhead::marker{content:""}.chatCodeSection>.codeWorkspaceSubhead:after{content:"";width:8px;height:8px;margin-top:-2px;border-right:1.5px solid #718098;border-bottom:1.5px solid #718098;transform:rotate(45deg);transition:transform .14s ease;flex:0 0 auto}.chatCodeSection[open]>.codeWorkspaceSubhead{border-bottom:1px solid #e7edf5}.chatCodeSection[open]>.codeWorkspaceSubhead:after{transform:rotate(-135deg)}.codeDiffList,.codeReviewBody{flex:1;min-height:0;overflow:auto}.codeDiffList{padding:8px;background:#101827}.codeDiffLine{display:grid;grid-template-columns:18px 44px minmax(0,1fr);align-items:start;gap:8px;min-height:24px;padding:3px 8px;border-left:3px solid transparent;color:#d8e4ef;font:12px/1.45 Cascadia Code,Consolas,Liberation Mono,Menlo,monospace}.codeDiffLine code{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.codeDiffLineNumber,.codeDiffMarker{color:#95a6bd;font-weight:700;text-align:right;-webkit-user-select:none;user-select:none}.codeDiffLineAdded{border-left-color:#22c55e;background:#22c55e26}.codeDiffLineAdded .codeDiffMarker{color:#86efac}.codeDiffLineRemoved{border-left-color:#ef4444;background:#ef444426}.codeDiffLineRemoved .codeDiffMarker{color:#fca5a5}.codeReviewBody{padding:10px 11px}.codeReviewMessage{margin:0 0 8px;color:#263750;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.codeReviewMeta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.codeReviewSection{padding:8px 0;border-top:1px solid #edf1f7}.codeReviewSection strong{display:block;margin-bottom:5px;color:#263750;font-size:12px}.codeReviewSection ul{margin:0;padding-left:17px;color:#4b5c73;font-size:12px;line-height:1.45}.codeReviewSection li{overflow-wrap:anywhere}.codeReviewSectionSuccess strong{color:#0f7a5f}.codeReviewSectionWarning strong{color:#9a6400}.codeReviewSectionDanger strong{color:#b42318}.codeWorkspaceEmpty{margin:0;padding:12px;color:#8ca0b6;font-size:12px;line-height:1.4}.codeDock{height:100%;min-height:0;display:flex;width:100%;overflow:hidden;background:#f8fafc}.codePaneResizeHandle{min-width:0;min-height:0;display:flex;align-items:stretch;justify-content:center;cursor:col-resize;background:#eef3f9;border-left:1px solid #dbe5f1;border-right:1px solid #dbe5f1;-webkit-user-select:none;user-select:none;touch-action:none}.codePaneResizeHandle:focus-visible{outline:2px solid #2d6cdf;outline-offset:-2px}.codePaneResizeGrip{width:3px;height:100%;border-radius:999px;background:transparent;transition:background-color .12s ease}.codePaneResizeHandle:hover .codePaneResizeGrip,.codePaneResizeHandle:focus-visible .codePaneResizeGrip{background:#8ca1bb}.codeDock .codePanel pre{border-color:#d7e0ed;background:#f8fafc;color:#1f2937}.codePanel pre,.serialEntries{flex:1;min-height:0;margin:0;overflow:auto;border:1px solid #d2dae7;border-radius:6px;padding:12px;background:#111827;color:#d6f5ea;font:13px/1.55 Cascadia Code,Consolas,Liberation Mono,Menlo,monospace;white-space:pre-wrap}.serialEntries{display:flex;flex-direction:column;gap:8px;height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.serialEntriesEmpty{align-items:center;justify-content:center;color:#9fb0c5}.bottomDockResizeHandle{grid-column:1 / -1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;cursor:row-resize;background:#f3f6fb;-webkit-user-select:none;user-select:none;touch-action:none}.bottomDockResizeHandle:focus-visible{outline:2px solid #2d6cdf;outline-offset:-2px}.bottomDockResizeGrip{width:min(180px,24%);height:4px;border-radius:999px;background:#bcc8d9;transition:background-color .12s ease}.bottomDockResizeHandle:hover .bottomDockResizeGrip,.bottomDockResizeHandle:focus-visible .bottomDockResizeGrip{background:#8ca1bb}.bottomDock{grid-column:1 / -1;height:100%;max-height:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);min-height:0;overflow:hidden;background:#f8fafc}.serialPanel{border-right:1px solid #d7deea;overflow:hidden}.serialControls,.serialComposer,.chatComposer{display:grid;grid-template-columns:1fr auto;gap:8px}.serialControls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;flex-shrink:0}.serialControlsConnection{grid-template-columns:repeat(5,minmax(0,1fr)) auto}.serialControlsMeta{grid-template-columns:auto auto auto minmax(180px,1fr);align-items:center}.serialControls select,.serialControls input,.serialComposer select,.serialComposer input{min-height:36px;padding:0 10px}.serialToggleGroup{display:inline-flex;align-items:center;gap:6px}.serialToggleGroup .ghostButton{min-width:64px}.serialComposer{grid-template-columns:minmax(0,1fr) auto auto 110px auto;flex-shrink:0;align-items:center}.serialFloatingLayer{position:fixed;z-index:45}.serialFloatingPanel{width:min(760px,calc(100vw - 36px));height:min(560px,calc(100vh - 136px));min-width:min(520px,calc(100vw - 36px));min-height:min(420px,calc(100vh - 136px));display:flex;flex-direction:column;border:1px solid #cbd6e5;border-radius:8px;background:#f8fafc;box-shadow:0 22px 54px #0c23423d;overflow:hidden}.serialFloatingHeader{flex-shrink:0;padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #d7deea;background:#f1f6fb;cursor:grab;-webkit-user-select:none;user-select:none}.serialFloatingHeader:active{cursor:grabbing}.serialFloatingHeader h2{margin:0;color:#263750;font-size:15px}.serialFloatingBody{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;padding:14px;overflow:hidden}.serialSearchInput{width:100%;min-width:0}.serialAutoSendToggle{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#fff;color:#6b7c93;white-space:nowrap}.serialAutoSendToggle input{margin:0}.serialIntervalInput{width:100%}.serialEntryTime{font-variant-numeric:tabular-nums}.serialEntry{border:1px solid #1f2937;border-radius:6px;padding:10px;background:#0f172aeb}.serialEntryHeader{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#9fb0c5;font-size:12px}.serialEntryBadge{min-width:36px;padding:0 6px;border-radius:999px;text-align:center;font-size:11px;font-weight:600;line-height:20px}.serialEntryBadgeRX{background:#0f766e47;color:#7de2d1}.serialEntryBadgeTX{background:#3b82f63d;color:#93c5fd}.serialEntryBadgeSYS{background:#94a3b833;color:#d8e1ef}.serialEntryMeta{margin-left:auto}.serialEntryBody{color:#d6f5ea;white-space:pre-wrap;word-break:break-word}.serialEntryTX .serialEntryBody{color:#dbeafe}.serialEntrySYS .serialEntryBody{color:#e2e8f0}.serialEntryError .serialEntryBody{color:#fca5a5}.serialTerminal .serialEntries{flex:1;min-height:0;margin:0;overflow:auto;border:1px solid #162033;border-radius:10px;padding:18px 14px;background:linear-gradient(180deg,#121d31,#0b1320);color:#d8e8ff;font:13px/1.55 Cascadia Code,Consolas,Liberation Mono,Menlo,monospace;white-space:pre-wrap;overscroll-behavior:contain}.serialTerminal .serialEntry{border:0;border-radius:0;padding:0;background:transparent;color:inherit;display:grid;grid-template-columns:82px 46px minmax(0,1fr);gap:14px;align-items:start}.serialTerminal .serialEntryTime{color:#9db4d1}.serialTerminal .serialEntryBadge{min-width:0;justify-self:start}.serialTerminal .serialEntryBody{color:#d9ebff}.serialTerminal .serialEntryTX .serialEntryBody{color:#b8d7ff}.serialTerminal .serialEntrySYS .serialEntryBody{color:#e8eef7}.serialTerminal .serialEntryError .serialEntryBody{color:#ffb0b0}.serialTerminal .serialEntriesEmpty{align-items:center;justify-content:center;color:#9fb0c5}.serialMonitorShell .serialComposer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.serialMonitorShell .serialComposer input,.serialMonitorShell .serialComposer select{width:100%}.serialIntervalWrap{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #d2dceb;border-radius:8px;background:#fff;color:#6b7c93;white-space:nowrap}.serialIntervalWrap input{width:78px;border:0;padding:0;min-height:0;background:transparent;text-align:right}.serialMonitorShell .serialComposer button[type=submit]{min-height:40px;padding:0 16px}.logPanel{overflow:hidden}.logList{flex:1;min-height:0;overflow:auto;margin:0;padding:0;color:#3c4d65;font-size:13px;line-height:1.45}.logLine+.logLine{margin-top:6px}.emptyText{margin:0;color:#718096}.ghostButton{min-height:30px;padding:0 10px;border-color:#d2dae7;background:transparent;color:#52647c;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.ghostButtonActive{border-color:#2d6cdf;background:#2d6cdf1f;color:#1d3f72}.dangerGhostButton{border-color:#efb8b8;color:#9f2f2f}body.serialResizeActive,body.serialResizeActive *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}body.codePaneResizeActive,body.codePaneResizeActive *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.serialWindowDragActive,body.serialWindowDragActive *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.serialMatch{padding:0;background:#facc153d;color:inherit}.aiFloatingLayer{position:fixed;z-index:40}.aiBubble{width:58px;min-width:58px;height:58px;min-height:58px;border:0;border-radius:999px;padding:0;background:#2f6ff1;color:#fff;font-size:18px;font-weight:800;box-shadow:0 14px 30px #2f6ff138}.aiBubble:hover{border-color:transparent;background:#275fce}.aiFloatingPanel{width:min(360px,calc(100vw - 32px));height:min(720px,calc(100vh - 24px));display:flex;flex-direction:column;border:1px solid #d7deea;border-radius:8px;background:#fff;box-shadow:0 18px 36px #0c23422e;overflow:hidden}.aiModelPicker{margin-top:2px;padding:0 0 7px;border-bottom:1px solid #e4ebf3;background:transparent}.aiModelPicker select{width:100%;min-height:36px;border:1px solid #d6e0ec;border-radius:7px;padding:0 12px;background:#fff;color:#20314b;font-size:12px}.aiModelPicker select:hover:not(:disabled){border-color:#aac4e4;background:#fbfdff}.aiModelPicker select:focus-visible{outline:2px solid rgba(47,111,241,.24);outline-offset:1px}.aiModelPicker select:disabled{color:#7d8899;background:#edf2f8}.aiModelPicker select option{background:#fff;color:#172033}.aiFloatingHeader{padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#f1f6fb;border-bottom:1px solid #d7deea;cursor:grab;-webkit-user-select:none;user-select:none}.aiFloatingHeader:active{cursor:grabbing}.aiFloatingHeader h2{margin:0;font-size:15px;color:#263750}.aiFloatingHeader p{margin:2px 0 0;font-size:12px;color:#73849b}.aiHeaderActions{display:flex;align-items:center;gap:6px}.closeButton{width:30px;min-width:30px;min-height:30px;padding:0;border-color:transparent;background:transparent;color:#52647c;line-height:1;display:grid;place-items:center}.closeButton:hover{border-color:transparent;color:#21304a}.aiClearButton{min-height:30px;padding:0 10px;background:#fff;color:#52647c}.aiClearButton svg{color:#2d6cdf}.knowledgeOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:grid;place-items:center;padding:28px;background:#121c2d6b}.knowledgeDialog{width:min(860px,calc(100vw - 42px));max-height:min(860px,calc(100vh - 42px));display:flex;flex-direction:column;border:1px solid #cbd6e5;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0c234247;overflow:hidden}.knowledgeDialogEmbedded{width:100%;max-height:none;height:100%;border-radius:10px}.knowledgeHeader{padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #d7deea;background:#f7fafc}.knowledgeEyebrow{display:block;margin-bottom:4px;color:#2d6cdf;font-size:12px;font-weight:700}.knowledgeHeader h2{margin:0;color:#172033;font-size:22px;line-height:1.25}.knowledgeHeader p{margin:5px 0 0;color:#60718a;font-size:13px}.knowledgeActions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.knowledgeActions button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.knowledgeHeaderAside{display:flex;align-items:flex-start;justify-content:flex-end;gap:12px}.knowledgeHeaderLesson{align-items:center;background:radial-gradient(circle at 18% 0%,rgba(45,108,223,.08),transparent 34%),#fbfcff}.knowledgeLessonBrand{min-width:0;display:flex;align-items:center;gap:12px}.knowledgeLessonIcon{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#5d9dfb,#2d6cdf);color:#fff;box-shadow:0 10px 22px #2d6cdf38}.knowledgeLessonProgress{width:164px;display:grid;gap:8px}.knowledgeLessonProgressLabel{justify-self:end;display:inline-flex;align-items:center;gap:5px;border:1px solid #dbe7fb;border-radius:8px;padding:5px 9px;background:#f1f6ff;color:#263b63;font-size:12px;font-weight:800;line-height:1}.knowledgeLessonProgressLabel svg{color:#2d6cdf}.knowledgeLessonProgressTrack{height:5px;border-radius:999px;background:#dce8fb;overflow:hidden}.knowledgeLessonProgressTrack span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2d6cdf,#72a7ff)}.knowledgeBody{min-height:0;overflow:auto;padding:20px;background:#f3f6fa}.knowledgeLessonShell{min-height:100%;border:1px solid #dbe4f0;border-radius:10px;background:#fff;box-shadow:inset 0 1px #ffffffe0}.knowledgeLessonGrid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:16px}.knowledgeLessonColumn{min-width:0;display:flex;flex-direction:column;border:1px solid #d8e3f2;border-radius:10px;padding:16px;background:#fff}.knowledgeLessonColumnNew{border-color:#bdebd1;background:linear-gradient(135deg,#23c57e17,#ffffffbd 64%),#f4fff8}.knowledgeLessonColumnReview{border-color:#c9ddff;background:linear-gradient(135deg,#2d6cdf17,#ffffffc7 64%),#f4f8ff}.knowledgeLessonColumnTask{border-color:#dcf;background:linear-gradient(135deg,#7c44e71a,#ffffffc7 64%),#fcf7ff}.knowledgeLessonColumnTitle{display:flex;align-items:center;gap:8px;margin-bottom:16px}.knowledgeLessonColumnTitle h3{margin:0;color:#172033;font-size:17px;line-height:1.2}.knowledgeLessonColumnNew .knowledgeLessonColumnTitle h3,.knowledgeLessonColumnNew .knowledgeLessonColumnIcon{color:#15945d}.knowledgeLessonColumnReview .knowledgeLessonColumnTitle h3,.knowledgeLessonColumnReview .knowledgeLessonColumnIcon{color:#2d6cdf}.knowledgeLessonColumnTask .knowledgeLessonColumnTitle h3,.knowledgeLessonColumnTask .knowledgeLessonColumnIcon{color:#7c44e7}.knowledgeLessonColumnIcon{display:inline-grid;place-items:center;width:22px;height:22px}.knowledgeLessonBadge{margin-left:4px;border-radius:999px;padding:3px 8px;background:#20b970;color:#fff;font-size:11px;font-weight:900;line-height:1}.knowledgeLessonPoints{display:grid;gap:14px}.knowledgeLessonPoint{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start}.knowledgeLessonNumber{width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#dbf8e9;color:#116b45;font-size:13px;font-weight:900}.knowledgeLessonColumnReview .knowledgeLessonNumber{background:#dfeaff;color:#2d6cdf}.knowledgeLessonPoint h4{margin:2px 0 5px;color:#172033;font-size:14px;line-height:1.25}.knowledgeLessonPoint p{margin:0;color:#3c4d64;font-size:13px;line-height:1.52}.knowledgeLessonCode{display:inline-block;max-width:100%;margin-top:7px;border:1px solid #e0e7f0;border-radius:5px;padding:3px 6px;background:#ffffffdb;color:#172033;font-family:Consolas,SFMono-Regular,monospace;font-size:12px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.knowledgeLessonTip,.knowledgeLessonReview{margin-top:14px;display:flex;align-items:flex-start;gap:7px;border:1px solid #f2d68a;border-radius:8px;padding:10px 12px;background:#fff8e8;color:#6c4a0a;font-size:12px;line-height:1.45}.knowledgeLessonReview{display:block;border-color:#c9ddff;background:#f5f9ff;color:#2f4365}.knowledgeLessonReview strong{color:#2d6cdf}.knowledgeLessonTaskBlock{margin-bottom:18px}.knowledgeLessonTaskBlock h4,.knowledgeLessonTaskBox h4{margin:0 0 8px;color:#7c44e7;font-size:14px}.knowledgeLessonTaskBlock p{margin:0;color:#3c4d64;font-size:13px;line-height:1.55}.knowledgeLessonSteps{margin:0;padding-left:20px;color:#303f56;font-size:13px;line-height:1.7}.knowledgeLessonSteps li{padding-left:2px}.knowledgeLessonTaskBox{margin-top:14px;border:1px solid #d8c9ff;border-radius:9px;padding:13px 14px;background:#ffffffad;color:#3c4d64}.knowledgeLessonTaskBox p{margin:0;font-family:Consolas,SFMono-Regular,Microsoft YaHei,sans-serif;font-size:12px;line-height:1.65}.knowledgeLessonPrimaryButton{width:100%;min-height:44px;margin-top:14px;border:0;border-radius:8px;background:linear-gradient(135deg,#8c4cf4,#6d35d4);color:#fff;box-shadow:0 12px 24px #6d35d43d;font-weight:900}.knowledgeLessonPrimaryButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 28px #6d35d447}.wiringOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:56;display:grid;place-items:center;padding:24px;background:#121c2d6b}.wiringDialog{width:min(1180px,calc(100vw - 36px));max-height:min(860px,calc(100vh - 36px));display:flex;flex-direction:column;border:1px solid #cbd6e5;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0c234247;overflow:hidden}.wiringDialogEmbedded{width:100%;max-height:none;height:100%;border-radius:10px}.wiringHeader{padding:16px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #d7deea;background:#f7fafc}.wiringHeader h2{margin:0;color:#172033;font-size:22px;line-height:1.25}.wiringHeader p{margin:5px 0 0;color:#60718a;font-size:13px}.wiringBody{min-height:0;overflow:auto;padding:16px;background:#edf1f7}.wiringLayout{min-height:560px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:14px}.wiringPreview{position:relative;min-width:0;min-height:540px;border:1px solid #d2dae7;border-radius:8px;background:linear-gradient(#e1e7ef 1px,transparent 1px),linear-gradient(90deg,#e1e7ef 1px,transparent 1px),#f8fafc;background-size:22px 22px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.wiringPreview:after{content:attr(data-zoom);position:absolute;right:12px;bottom:10px;z-index:1;padding:4px 8px;border:1px solid rgba(148,163,184,.48);border-radius:6px;background:#f8fafcdb;color:#475569;font-size:12px;line-height:1;pointer-events:none}.wiringPreview.is-panning{cursor:grabbing}.wiringPreview svg{display:block;width:100%;min-width:900px;height:100%;min-height:540px}.wiringWireRoute,.wiringWireLabel,.wiringPinMarker{cursor:pointer}.wiringWire{fill:none;stroke-width:5.8;stroke-linecap:round;stroke-linejoin:round;opacity:.96;transition:opacity .14s ease,stroke-width .14s ease,filter .14s ease}.wiringWireCasing{fill:none;stroke:#ffffffc7;stroke-width:10.8;stroke-linecap:round;stroke-linejoin:round;transition:opacity .14s ease,stroke-width .14s ease}.wiringPreview.has-wire-selection .wiringWireRoute.is-muted .wiringWire{stroke:#94a3b8;opacity:.16}.wiringPreview.has-wire-selection .wiringWireRoute.is-muted .wiringWireCasing{opacity:.08}.wiringPreview.has-wire-selection .wiringWireRoute.is-selected .wiringWire{stroke-width:7.4;opacity:1;filter:drop-shadow(0 0 7px rgba(14,165,233,.42))}.wiringPreview.has-wire-selection[data-density=dense] .wiringWireRoute.is-selected .wiringWire{stroke-width:6.6}.wiringPreview.has-wire-selection .wiringWireRoute.is-selected .wiringWireCasing{stroke-width:12.8;opacity:.92}.wiringPreview[data-density=dense] .wiringWire{stroke-width:4.8}.wiringPreview[data-density=dense] .wiringWireCasing{stroke-width:8.4}.wiringWireLabelBg{fill:#fff;stroke:#111827;stroke-width:1.7;transition:opacity .14s ease,fill .14s ease,stroke .14s ease}.wiringWireLabelText{fill:#111827;font-size:17px;font-weight:760;letter-spacing:0;pointer-events:none;text-anchor:middle;transition:opacity .14s ease,fill .14s ease}.wiringPreview.has-wire-selection .wiringWireLabel.is-muted{opacity:.2}.wiringPreview.has-wire-selection .wiringWireLabel.is-selected .wiringWireLabelBg{fill:#e0f2fe;stroke:#0369a1}.wiringPreview.has-wire-selection .wiringWireLabel.is-selected .wiringWireLabelText{fill:#075985}.wiringPartTitle,.wiringPartPinLabel,.wiringPinGuideText{text-anchor:middle;font-weight:740;letter-spacing:0;pointer-events:none;paint-order:stroke}.wiringPartTitle{fill:#172033;font-size:17px;stroke:#fffffff5;stroke-width:3.2px}.wiringPartPinLabel{fill:#18212f;font-size:13px;stroke:#fffffff0;stroke-width:3px}.wiringPinBankLabel{font-size:12px;font-weight:760;stroke-width:2.6px}.wiringPinGuideLine{stroke:#334155;stroke-width:1.35;opacity:.42}.wiringPinGuideText{fill:#0f172a;font-size:15px;stroke:#fffffff2;stroke-width:3.4px}.wiringLead{stroke:#64748b;stroke-width:5.5;stroke-linecap:round}.wiringResistorBody{fill:#ead7a2;stroke:#9a6b22;stroke-width:1.4}.wiringComponentBody{fill:#fff;stroke:#334155;stroke-width:2}.wiringUnoPcbShadow{fill:#0f172a33;filter:blur(9px)}.wiringUnoPcbEdge{fill:none;stroke:#05405b94;stroke-width:.34;pointer-events:none}.wiringPartShadowPlate{stroke:#3341552e;stroke-width:1.5}.wiringBoardPart .wiringPartShadowPlate{fill:#0f172a14}.wiringComponentPart .wiringPartShadowPlate{fill:#ffffffc2}.wiringWokwiPartWrap{width:100%;height:100%;overflow:hidden;background:transparent}.wiringWokwiElement{display:block;transform-origin:0 0}.wiringBoardSocketRail{fill:#111827;stroke:#0f172ae0;stroke-width:1.2}.wiringBoardSocketOuter{fill:#111827;stroke:#e5edf3;stroke-width:1.1}.wiringBoardSocketInner{fill:#f8fafc;stroke:#111827;stroke-width:.8}.wiringComponentPinLine{stroke:#334155;stroke-width:1.4;opacity:.62}.wiringPinBankTick,.wiringPinBankRail,.wiringPinBankRailTick{opacity:.42}.wiringPinMarker{fill:#fafafa;stroke:#111827;stroke-width:2.2;transition:opacity .14s ease,fill .14s ease,stroke .14s ease,stroke-width .14s ease}.wiringPreview.has-wire-selection .wiringPinMarker.is-muted{opacity:.18}.wiringPreview.has-wire-selection .wiringPinMarker.is-selected{fill:#e0f2fe;stroke:#0369a1;stroke-width:3.4}.wiringSteps{min-width:0;max-height:560px;overflow:auto;padding:14px;border:1px solid #d2dae7;border-radius:8px;background:#fff}.wiringSteps h3{margin:0 0 10px;font-size:15px}.wiringStepList{margin:0;padding-left:20px;color:#334155;line-height:1.55}.wiringStepList li+li{margin-top:8px}.wiringStepList li{padding-left:2px}.wiringStepList li.is-muted{color:#94a3b8}.wiringStepList li.is-selected{color:#075985}.wiringStepButton{width:100%;margin:0;padding:2px 4px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;line-height:1.55;text-align:left;cursor:pointer}.wiringStepButton:hover,.wiringStepList li.is-selected .wiringStepButton{background:#e0f2fe}.wiringStepButton:focus-visible{outline:2px solid #0284c7;outline-offset:2px}.wiringStepButton:disabled{cursor:default}.wiringIssueBox{margin-bottom:12px;padding:10px 12px;border:1px solid #f0c46d;border-radius:8px;background:#fff7e6;color:#7a4b00}.wiringIssueBoxError{border-color:#f4a7a1;background:#fff1f0;color:#a62116}.wiringIssueBox p{margin:4px 0 0}.wiringJsonDetails{margin-top:14px}.wiringJsonDetails pre{max-height:230px;overflow:auto;padding:10px;border-radius:6px;background:#0f172a;color:#e2e8f0;font-size:12px}.wiringEmpty{min-height:220px;display:grid;place-items:center;color:#64748b}.knowledgeState,.knowledgeError{margin-bottom:14px;border:1px solid #cbd6e5;border-radius:8px;padding:12px 14px;background:#fff}.knowledgeState{display:grid;gap:3px;color:#52647c}.knowledgeState strong{color:#21304a}.knowledgeError{border-color:#c2414157;background:#fff5f5;color:#9b2c2c}.knowledgeSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.knowledgeSummary div{min-width:0;border:1px solid #d7deea;border-radius:8px;padding:10px 12px;background:#fff}.knowledgeSummary span{display:block;color:#60718a;font-size:12px}.knowledgeSummary strong{display:block;margin-top:4px;color:#21304a;overflow-wrap:anywhere}.knowledgeLead{margin-bottom:16px;border-left:4px solid #1f7a6d;border-radius:8px;padding:12px 14px;background:#fff;color:#263750}.knowledgeLead p{margin:0}.knowledgeLead p+p{margin-top:6px}.knowledgeSections{display:flex;flex-direction:column;gap:14px}.knowledgeSection{border:1px solid #d7deea;border-radius:8px;background:#fff;overflow:hidden}.knowledgeSectionTitle{padding:14px 16px;border-bottom:1px solid #e1e7f0;background:#fbfcfe}.knowledgeSectionTitle h3{margin:0;color:#17324d;font-size:17px}.knowledgeSectionTitle p{margin:5px 0 0;color:#60718a;font-size:13px}.knowledgeItems{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.knowledgeItem{min-width:0;padding:14px 16px;border-top:1px solid #edf1f7}.knowledgeItem:nth-child(1),.knowledgeItem:nth-child(2){border-top:0}.knowledgeItem:nth-child(odd){border-right:1px solid #edf1f7}.knowledgeItem h4{margin:0 0 6px;color:#21304a;font-size:14px}.knowledgeItem p{margin:0;color:#3e4f66;font-size:13px;line-height:1.55}.knowledgeCodeRefs{display:grid;gap:6px;margin-top:10px}.knowledgeCodeRefs code{display:block;border:1px solid #d7deea;border-radius:6px;padding:6px 8px;background:#f5f8fb;color:#25364d;font-family:Consolas,SFMono-Regular,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.chatList{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;background:#f9fbfe}.chatBubble{max-width:94%;border-radius:10px;padding:9px 11px;font-size:13px;line-height:1.5;border:1px solid transparent}.chatBubbleContent{white-space:pre-wrap}.chatMeta{margin-top:6px;display:flex;flex-direction:column;gap:4px}.chatMetaBadge{width:fit-content;min-height:20px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;font-size:10px;font-weight:700}.chatMetaBadgedeepseek{background:#2f6ff11f;color:#2d5ccf}.chatMetaBadgemimo{background:#2563eb1f;color:#2459a6}.chatMetaBadgeopenai_compatible{background:#3b82f61f;color:#2459a6}.chatMetaText{color:#5d6f86;font-size:11px}.chatTimings{width:fit-content;display:inline-flex;flex-wrap:wrap;gap:6px;color:#34435a;font-size:11px;font-weight:700}.chatTimings span{min-height:20px;padding:2px 7px;border:1px solid #d6dfeb;border-radius:999px;background:#ffffffd1}.chatReasoning,.chatWorkflow{border:1px solid #d8e3ef;border-radius:8px;background:#fff}.chatReasoning summary,.chatWorkflow summary{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 8px;cursor:pointer;list-style:none;color:#24364d;font-size:12px;font-weight:600;-webkit-user-select:none;user-select:none}.chatReasoning summary::-webkit-details-marker,.chatWorkflow summary::-webkit-details-marker{display:none}.chatReasoning summary::marker,.chatWorkflow summary::marker{content:""}.chatReasoning summary:after,.chatWorkflow summary:after{content:"";width:8px;height:8px;margin-top:-2px;margin-left:auto;border-right:1.5px solid #7a8ba3;border-bottom:1.5px solid #7a8ba3;transform:rotate(45deg);transition:transform .14s ease;flex:0 0 auto}.chatReasoning[open] summary,.chatWorkflow[open] summary{border-bottom:1px solid #edf2f7}.chatReasoning[open] summary:after,.chatWorkflow[open] summary:after{transform:rotate(-135deg)}.chatReasoningBody,.chatWorkflowBody{padding:0 8px 8px;color:#34465b;font-size:11px;line-height:1.45;white-space:pre-wrap}.chatWorkflowPanel{padding:0 8px 8px;color:#334155;font-size:11px}.chatWorkflowHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding-bottom:6px}.chatWorkflowHeader strong,.chatWorkflowSection h4{display:block;color:#24364d;font-size:11px}.chatWorkflowHeader span{display:block;margin-top:2px;color:#5d6f86;font-size:10px}.chatWorkflowArtifacts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:45%}.chatWorkflowArtifacts span{min-height:18px;padding:1px 5px;border:1px solid #d1ddea;border-radius:999px;background:#f8fbfe;color:#405066;font-size:10px}.chatWorkflowMetrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px}.chatWorkflowMetric{min-width:0;padding:6px 7px;border:1px solid #d8e3ef;border-radius:8px;background:#fff}.chatWorkflowMetric span{display:block;color:#5d6f86;font-size:10px}.chatWorkflowMetric strong{display:block;margin-top:2px;color:#21304a;font-size:11px;overflow-wrap:anywhere}.chatWorkflowMetric-success,.chatWorkflowSection-success{border-color:#2f6ff147;background:#eef4ffb8}.chatWorkflowMetric-warning,.chatWorkflowSection-warning{border-color:#c7802059;background:#fff7edb8}.chatWorkflowMetric-danger,.chatWorkflowSection-danger{border-color:#c2414157;background:#fef2f2c2}.chatWorkflowSections{display:flex;flex-direction:column;gap:6px}.chatWorkflowSection{border:1px solid #d8e3ef;border-radius:8px;padding:7px;background:#fff}.chatWorkflowSection h4{margin:0 0 5px}.chatWorkflowSection ul{margin:0;padding-left:16px}.chatWorkflowSection li{margin:3px 0;overflow-wrap:anywhere}.chatWorkflowChangeDot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:999px;background:#b7c4d4}.chatWorkflowChangeDot-on{background:#2d6cdf}.chatCodeGeneration{margin-top:2px;min-width:min(620px,100%)}.chatCodeGeneration .codeWorkspaceBottom{flex:none;grid-template-columns:minmax(0,1fr);gap:8px}.chatCodeGeneration .codeDiffList{max-height:260px}.chatCodeGeneration .codeReviewBody{max-height:220px}.chatCodeGeneration .codeDiffPanel,.chatCodeGeneration .codeReviewPanel{background:#ffffffb8}.chatBubbleAssistant{align-self:flex-start;border-color:#d8e3ef;background:#f6f9fc;color:#21304a}.chatBubbleThinking{position:relative;border:1px solid rgba(47,111,241,.16);background:linear-gradient(135deg,#f1f6fdfa,#ebf2fff5)}.chatBubbleThinking:after{content:"";position:absolute;right:12px;bottom:10px;width:6px;height:6px;border-radius:999px;background:#2d6cdf;animation:thinkingPulse 1.2s ease-in-out infinite}.chatBubbleUser{align-self:flex-end;border-color:#275fce;background:#2f6ff1;color:#fff}.requirementIntakeCard{display:grid;gap:12px;min-width:min(100%,420px)}.requirementIntakeHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.requirementIntakeHeader>div{display:grid;gap:3px;min-width:0}.requirementIntakeHeader strong{font-size:14px;line-height:1.25}.requirementIntakeHeader span{color:#607086;font-size:12px;line-height:1.3}.requirementStatus{flex:0 0 auto;padding:3px 7px;border:1px solid #d7e2ef;border-radius:999px;color:#4e617a;background:#fff;font-size:11px;font-weight:700}.requirementStatusconfirmed{border-color:#8cc7a2;color:#24613a;background:#ecf8f0}.requirementStatuscancelled{border-color:#dfc38d;color:#73551f;background:#fff8e8}.requirementStatusloading{border-color:#9db7e3;color:#285696;background:#eef5ff}.requirementStatuscollecting{border-color:#b9c7d8;color:#425773;background:#f7faff}.requirementStatusready{border-color:#8cc7a2;color:#24613a;background:#ecf8f0}.requirementStatusblocked{border-color:#e1b1a8;color:#8e3929;background:#fff2ef}.requirementQuestionBlock{display:grid;gap:9px;padding:10px;border:1px solid #dce5ef;border-radius:8px;background:#fff}.requirementStepCard{display:grid;gap:10px;padding:12px;border:1px solid #bcd0ea;border-radius:8px;background:#f8fbff}.requirementStepCard h3{margin:0;color:#203657;font-size:14px;line-height:1.35}.requirementStepCard p{margin:0;color:#52647c;font-size:12px;line-height:1.5}.requirementStepProgress{color:#2d5fb8;font-size:11px;font-weight:800}.requirementOptionList{display:grid;gap:8px}.requirementOptionButton,.requirementOptionToggle{width:100%;min-width:0;border:1px solid #d5dfeb;border-radius:8px;background:#fff;color:#263853;text-align:left}.requirementOptionButton{display:grid;gap:4px;padding:9px 10px;cursor:pointer}.requirementOptionButton:hover:not(:disabled){border-color:#8fb1df;background:#f7fbff}.requirementOptionButton:disabled{cursor:not-allowed;opacity:.58}.requirementOptionButton strong,.requirementOptionToggle strong{font-size:12px;line-height:1.35}.requirementOptionButton span,.requirementOptionToggle small{color:#5a6f89;font-size:11px;line-height:1.4}.requirementOptionToggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:8px;padding:9px 10px}.requirementOptionToggle input{margin-top:2px}.requirementOptionToggle span{display:grid;gap:3px}.requirementDecisionList{display:flex;flex-wrap:wrap;gap:6px}.requirementDecision{padding:3px 7px;border:1px solid #d5dfeb;border-radius:999px;background:#fff;color:#536782;font-size:11px;line-height:1.35}.requirementDecisionaccepted{border-color:#98cda7;background:#eef8f1;color:#28633d}.requirementDecisionrejected{border-color:#e1b1a8;background:#fff2ef;color:#8e3929}.requirementField,.requirementPinField{display:grid;gap:5px;min-width:0}.requirementField span,.requirementPinField span{color:#536782;font-size:12px;font-weight:700}.requirementField select,.requirementField input,.requirementField textarea,.requirementPinField select{width:100%;min-width:0;min-height:34px;border:1px solid #d5dfeb;border-radius:6px;background:#fbfdff;color:#21304a;font:inherit}.requirementField textarea{resize:vertical;min-height:82px;padding:8px 9px;line-height:1.45}.requirementPinGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.requirementModeLine{display:flex;flex-wrap:wrap;gap:6px}.requirementModeLine span,.requirementNotes span{padding:3px 7px;border-radius:999px;background:#f0f4f8;color:#52647c;font-size:11px;line-height:1.35}.requirementWarning{margin:0;color:#9b3b26;font-size:12px;line-height:1.45}.requirementSummary{display:grid;gap:5px;color:#304158;font-size:12px;line-height:1.45}.requirementSummary div{overflow-wrap:anywhere}.requirementNotes{display:flex;flex-wrap:wrap;gap:6px}.requirementActions{display:flex;justify-content:flex-end;gap:8px}.requirementPrimaryButton{min-height:32px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-color:#2f6ff1;background:#2f6ff1;color:#fff;white-space:nowrap}.requirementPrimaryButton:disabled{border-color:#c9d3e0;background:#e4ebf3;color:#7b8796;cursor:not-allowed}@keyframes thinkingPulse{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}.chatComposer{padding:0 12px 12px;grid-template-columns:minmax(0,1fr);gap:8px;flex-shrink:0}.chatModeToggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chatModeButton{min-width:0;min-height:48px;padding:8px 10px;display:grid;align-content:center;gap:2px;border-color:#d6e0ec;background:#fff;color:#334862;text-align:left}.chatModeButton:hover:not(:disabled){border-color:#aac4e4;background:#f8fbff}.chatModeButton strong{min-width:0;font-size:12px;line-height:1.2}.chatModeButton span{min-width:0;color:#6b7c90;font-size:11px;line-height:1.2;overflow-wrap:anywhere}.chatModeButton:disabled{border-color:#d6e0ec;background:#e8eef7;color:#6f7e90;cursor:not-allowed;opacity:1}.chatModeButton:disabled span{color:#7a8797}.chatModeButtonActive,.chatModeButtonActive:hover:not(:disabled){border-color:#2d6cdf;background:#eef5ff;color:#1d3f72}.chatModeButtonActive span{color:#4d74b6}.chatModeButtonActive:disabled{border-color:#2d6cdf;background:#eaf2ff;color:#172033}.chatModeButtonActive:disabled span{color:#172033;font-size:11px;font-weight:700}.chatComposerInput{position:relative;min-width:0}.chatComposer textarea{width:100%;resize:none;min-height:74px;padding:10px 92px 10px 12px;font-size:13px;line-height:1.45;border:1px solid #d6e0ec;border-radius:8px;background:#fff}.chatComposerActions{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:8px}.chatComposer textarea::placeholder{color:#8a97aa;opacity:1}.voiceButtonRecording{border-color:#d64d3f;background:#fff1ef;color:#8f2419}.composerIconButton{width:36px;min-width:36px;min-height:36px;padding:0;display:grid;place-items:center;border-radius:6px;line-height:1}.composerIconButton svg{width:18px;height:18px;flex:0 0 auto}.voiceButton{border-color:#d0d9e6;background:#f8fbfe;color:#36516e}.voiceButton:hover:not(:disabled){border-color:#aac4e4;background:#eef5ff}.stopAiButton{border-color:#d44d4d;background:#fff2f2;color:#8f2222}.stopAiButton:hover:not(:disabled){border-color:#b63434;background:#ffe7e7}.sendButton{border-color:#2f6ff1;background:#2f6ff1;color:#fff}.sendButton:hover:not(:disabled){border-color:#275fce;background:#275fce}.chatVoiceStatus{grid-column:1 / -1;min-height:16px;color:#5d6f86;font-size:12px;line-height:1.4}@media(max-width:980px){.topbar{grid-template-columns:1fr;grid-template-areas:"brand" "project";align-items:stretch}.projectControls,.projectHeaderArea,.projectFileControls{width:100%}.projectHeaderArea{align-items:stretch}.projectHeaderArea .projectControls{flex:1 1 auto}.projectTitleCombo{width:100%;min-width:0;grid-template-columns:minmax(0,1fr) 34px}.headerStatusMeta{min-width:0;padding-left:0;border-left:0}.brand{flex-wrap:wrap}.brandStatus{flex:1 1 220px;max-width:100%;margin-left:10px}.toolbar{grid-template-columns:1fr;padding-top:0;border-top:0}.toolbarMainControls{width:100%}.viewControls{justify-self:start;margin-left:0;padding-left:0;border-left:0}.statusBand{align-items:flex-start;flex-direction:column}.statusMeta{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:4px}.studioFrame,.studioFrameCollapsed{grid-template-columns:1fr;gap:12px;padding:12px}.aiSidebarRailLabel{grid-auto-flow:column;align-items:center}.aiSidebarRailLabel strong,.aiSidebarRailLabel span{writing-mode:initial;transform:none}.studioTabs,.studioTabBar,.studioTabActions{width:100%}.studioTabBar{flex-direction:column}.studioTabActions{min-width:0}.studioActionGroup{width:100%}.studioActionGroup+.studioActionGroup{padding-left:0;border-left:0}.compactActionButton{flex:1 1 96px}.projectControls,.adminCreateForm,.adminAiModelForm,.adminAiModelFormMain,.adminAiModelCardMain,.adminUserRow,.adminUserActions{width:100%;grid-template-columns:1fr;justify-content:stretch}.projectControls{flex-direction:column;align-items:stretch}.projectTitleCombo{width:100%}.projectFileControls{flex-direction:column;align-items:stretch}.projectFileControls button{width:100%}.adminPanel{max-height:min(72vh,calc(100vh - 148px));padding:12px}.adminPageTopbar{align-items:stretch;flex-direction:column}.adminPageActions{justify-content:flex-start}.adminMetricsGrid,.adminRuleGrid,.adminDataTableHeader,.adminDataTableRow,.adminLeaderboardTable .adminDataTableHeader,.adminLeaderboardTable .adminDataTableRow,.adminAdjustmentForm{grid-template-columns:1fr}.communityPanel{max-height:min(64vh,calc(100vh - 148px));padding:12px}.communityTopbar{flex-wrap:wrap;align-items:flex-start;gap:12px 14px}.communityBrand{min-width:0}.communityTopbarNav{order:3;width:100%;padding-bottom:2px}.communityTopbarActions{width:100%;justify-content:flex-start}.communitySearchBar{width:100%;min-width:0;max-width:none;flex:1 1 100%}.communityHeaderBand,.communityPublishStrip{align-items:flex-start;flex-direction:column}.communityHeaderBand{padding:20px 14px 14px}.communityPublishStrip{padding:14px 14px 8px}.communityNoticeBand{margin:10px 14px 0}.communitySectionTitle h1{font-size:30px}.communityFeedTabs{width:100%;gap:14px}.communityFeedTab{min-height:40px;padding-bottom:10px;font-size:16px}.communityPublishControls{width:100%;justify-content:stretch}.communityPublishControls input{min-width:0;flex:1 1 auto}.communityPublishButton{flex:1 1 auto}.communityGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding:16px 14px 20px}.communityProjectRow{grid-template-columns:1fr}.communityProjectActions{justify-content:flex-start}.communityDescriptionEditorActions{align-items:stretch}.communityDescriptionEditorHint{margin-right:0;width:100%}.communityEditButton,.communityDescriptionSaveButton,.communityDescriptionCancelButton{flex:1 1 auto}.projectControls select,.projectControls input,.adminAiModelForm input,.adminAiModelForm select,.adminAiModelCard input,.adminAiModelCard select,.adminUserActions input{width:100%}.workbench,.workbench.hasCodePane,.workbench.hasSerialPane,.workbench.hasCodePane.hasSerialPane{grid-template-columns:1fr}.workbench{grid-template-rows:minmax(420px,58vh)}.workbench.hasCodePane{grid-template-rows:minmax(420px,58vh) minmax(240px,34vh)}.workbench.hasSerialPane{grid-template-rows:minmax(420px,58vh) minmax(320px,42vh)}.workbench.hasCodePane.hasSerialPane{grid-template-rows:minmax(420px,58vh) minmax(240px,34vh) minmax(320px,42vh)}.programmingWorkbench{min-height:58vh}.chatModeToggle{grid-template-columns:1fr}.codeWorkspaceBottom{flex-basis:320px;grid-template-columns:1fr}.bottomDockResizeHandle{display:none}.workspacePane{border-right:0}.codePaneResizeHandle{display:none}.codeDock{grid-column:1;grid-row:2;border-top:1px solid #d7deea}.bottomDock{grid-column:1;grid-row:2;grid-template-columns:1fr}.workbench.hasCodePane.hasSerialPane .bottomDock{grid-row:3}.serialPanel{border-right:0;border-bottom:1px solid #d7deea}.serialControlsConnection,.serialControlsMeta,.serialControlGrid,.serialAdvancedGrid,.serialToolbar,.serialMonitorShell .serialComposer,.serialComposer{grid-template-columns:1fr}.serialBaudField{max-width:none}.serialAdvancedStats,.serialAdvancedSearchBox{grid-column:1}.serialToggleGroup{width:100%}.serialToggleGroup .ghostButton{flex:1}.aiFloatingPanel{width:min(360px,calc(100vw - 24px));height:calc(100vh - 120px)}.knowledgeOverlay{padding:12px}.knowledgeDialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.knowledgeDialogEmbedded{width:100%;max-height:none}.knowledgeHeader,.knowledgeHeaderAside{align-items:stretch;flex-direction:column}.knowledgeLessonProgress{width:100%}.knowledgeLessonProgressLabel{justify-self:start}.knowledgeActions{justify-content:flex-start}.knowledgeLessonGrid{grid-template-columns:1fr}.knowledgeLessonColumn{min-height:auto}.knowledgeSummary,.knowledgeItems{grid-template-columns:1fr}.knowledgeItem,.knowledgeItem:nth-child(odd){border-right:0}.knowledgeItem:nth-child(2){border-top:1px solid #edf1f7}.wiringOverlay{padding:12px}.wiringDialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.wiringDialogEmbedded{width:100%;max-height:none}.wiringHeader{align-items:stretch;flex-direction:column}.wiringLayout{grid-template-columns:1fr}.wiringPreview,.wiringSteps{min-height:320px;max-height:none}}@media(max-width:640px){.communityTopbar{padding:12px}.communityTopbarNav{gap:10px}.communityTopbarNavItem{font-size:13px}.communityBrandText strong{font-size:16px}.communityBrandText span{font-size:11px}.communitySectionTitle h1{font-size:26px}.communityProjectCover{min-height:196px}.communityProjectCoverBody{max-width:100%}.communityProjectCoverTitle{font-size:18px}.communityProjectCard{border-radius:10px}}
