.appHeader{position:sticky;top:0;z-index:20;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(16,24,39,.08)}.appHeaderInner{width:min(1180px,calc(100% - 40px));min-height:68px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:inline-flex;align-items:center;gap:10px;color:#111827;text-decoration:none;-webkit-user-select:none;user-select:none}.brand:hover{color:#111827}.brandMark{width:22px;height:22px;border-radius:6px;background:#2563eb;box-shadow:inset 0 -6px #0000001f}.brandText{font-size:14px;font-weight:800;letter-spacing:.12em}.navLinks{display:flex;align-items:center;gap:16px}.navLink{font-size:14px;font-weight:650;color:#334155;text-decoration:none;white-space:nowrap}.navLink:hover{color:#1d4ed8}.languageSwitch{display:inline-flex;gap:6px;padding:4px;border:1px solid rgba(16,24,39,.1);border-radius:999px;background:#eef2f7}.langBtn{appearance:none;min-width:44px;border:0;border-radius:999px;background:transparent;color:#475569;cursor:pointer;font-size:13px;font-weight:700;padding:7px 10px}.langBtn:hover{background:#2563eb14}.langBtn.active{background:#111827;color:#fff}@media(max-width:680px){.appHeaderInner{width:min(100% - 28px,1180px);min-height:auto;padding:14px 0;align-items:flex-start;flex-direction:column}.navLinks{width:100%;justify-content:space-between}}.homePage{min-height:100vh;background:#f5f7fb;color:#101827}.pageInner{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:44px 0 72px}.hero{display:grid;gap:18px;padding:40px 0 34px}.heroKicker,.sectionEyebrow{margin:0;color:#2563eb;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.heroTitle{max-width:920px;margin:0;color:#0f172a;font-size:clamp(38px,6.4vw,72px);font-weight:850;line-height:1.04}.heroCopy{max-width:760px;margin:0;color:#475569;font-size:17px;line-height:1.7}.offers{margin-top:28px}.sectionHeader{display:grid;gap:8px;margin-bottom:18px}.sectionTitle{margin:0;color:#111827;font-size:24px;line-height:1.25}.cardsRow{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.toolCard{min-height:350px;display:grid;grid-template-rows:170px 1fr;overflow:hidden;border:1px solid rgba(16,24,39,.1);border-radius:8px;background:#fff;box-shadow:0 16px 38px #10182714}.toolCard:hover{border-color:#2563eb38;box-shadow:0 18px 42px #1018271a}.cardImg{background-color:#eef4ff;background-position:center;background-repeat:no-repeat;background-size:contain;border-bottom:1px solid rgba(16,24,39,.08)}.cardVisual{position:relative;display:grid;grid-template-columns:repeat(3,76px);gap:10px;align-content:center;justify-content:center;overflow:hidden;padding:20px;background:#eef4ff}.cardVisual span,.cardVisual strong{min-height:58px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(37,99,235,.16);border-radius:8px;background:#fff;color:#2563eb;font-size:13px;font-weight:850;box-shadow:0 12px 28px #0f172a14}.cardVisual strong{position:absolute;right:22px;bottom:18px;width:54px;min-height:38px;background:#2563eb;color:#fff}.cardBody{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:18px}.cardTitle{margin:0 0 8px;color:#0f172a;font-size:19px;line-height:1.3}.cardMeta{margin:0;color:#64748b;font-size:14px;line-height:1.65}.cardActions{display:flex}.cardBtn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid rgba(37,99,235,.32);border-radius:8px;background:#2563eb;color:#fff;font-size:14px;font-weight:800;text-decoration:none}.cardBtn:hover{background:#1d4ed8;color:#fff}@media(max-width:680px){.pageInner{width:min(100% - 28px,1180px)}.pageInner{padding-top:28px}.hero{padding-top:18px}}.coursePage{min-height:100vh;background:#f5f7fb;color:#111827}.courseShell{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:34px 0 72px}.courseHero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:28px;align-items:end;margin-bottom:24px}.courseHero h1{max-width:840px;margin:10px 0 12px;color:#0f172a;font-size:clamp(34px,5vw,58px);line-height:1.05}.courseHero p{max-width:730px;margin:0;color:#475569;font-size:16px;line-height:1.7}.courseKicker{color:#2563eb!important;font-size:13px!important;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.courseHeroStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;border:1px solid rgba(17,24,39,.1);border-radius:8px;background:#fff;box-shadow:0 16px 36px #11182714}.courseHeroStats div{display:grid;gap:5px;min-width:0;padding:12px;border-radius:8px;background:#f8fbff}.courseHeroStats strong{overflow:hidden;color:#1d4ed8;font-size:22px;text-overflow:ellipsis;white-space:nowrap}.courseHeroStats span{color:#64748b;font-size:12px;font-weight:800}.courseGrid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.courseControlStack{display:grid;gap:18px}.coursePanel{border:1px solid rgba(17,24,39,.1);border-radius:8px;background:#fff;box-shadow:0 12px 30px #1118270f;padding:18px}.coursePanelHeader{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;margin-bottom:16px}.coursePanelHeader>span{min-width:36px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef2ff;color:#1d4ed8;font-size:12px;font-weight:850}.coursePanel h2{margin:0 0 4px;color:#0f172a;font-size:18px;line-height:1.3}.coursePanel p{margin:0;color:#64748b;font-size:13px;line-height:1.55}.courseField{display:grid;gap:7px;margin-top:12px;color:#334155;font-size:13px;font-weight:800}.courseField input,.questionRow textarea{width:100%;box-sizing:border-box;border:1px solid rgba(17,24,39,.14);border-radius:8px;background:#fff;color:#111827;font:inherit}.courseField input:focus,.questionRow textarea:focus{border-color:#2563eb7a;box-shadow:0 0 0 3px #2563eb1f;outline:none}.courseField input{min-height:40px;padding:0 10px}.courseDropGrid{display:grid;gap:10px}.courseDrop{display:grid;gap:8px;padding:16px;border:1px dashed rgba(37,99,235,.42);border-radius:8px;background:#f8fbff;cursor:pointer}.courseDrop:hover{border-color:#2563ebad;background:#eff6ff}.courseDrop input{width:100%;color:#475569}.courseDrop strong{color:#1d4ed8;font-size:15px}.courseDrop small,.materialItem small{color:#64748b;font-size:12px}.courseActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.courseActions button,.questionRow button{min-height:40px;border:1px solid rgba(37,99,235,.32);border-radius:8px;background:#2563eb;color:#fff;cursor:pointer;font-size:13px;font-weight:850}.courseActions button{padding:0 14px}.courseActions button:nth-child(2){background:#fff;color:#334155}.courseActions button:hover,.questionRow button:hover{background:#1d4ed8}.courseActions button:nth-child(2):hover{border-color:#2563eb47;background:#f8fbff}.courseActions button:disabled,.questionRow button:disabled{cursor:not-allowed;opacity:.55}.courseError{margin-top:10px!important;color:#b91c1c!important;font-weight:750}.materialPanel{min-width:0}.materialList{max-height:515px;display:grid;gap:8px;overflow:auto;padding-right:4px}.materialItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 12px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fbfdff}.materialItem:hover{border-color:#2563eb2e;background:#f8fbff}.materialItem div{min-width:0}.materialItem strong,.materialItem span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.materialItem strong{color:#111827;font-size:13px}.materialItem span{margin-top:3px;color:#64748b;font-size:12px}.courseEmpty{min-height:300px;display:grid;align-content:center;justify-items:center;gap:8px;padding:28px;text-align:center}.courseEmpty strong{color:#111827;font-size:18px}.outlinePanel,.askPanel{margin-top:18px}.analysisOutput{min-height:280px;overflow:auto;margin:0;padding:16px;border:1px solid rgba(17,24,39,.1);border-radius:8px;background:#fbfdff;color:#1f2937;font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.65;white-space:pre-wrap}.emptyOutput{color:#64748b}.chatLog{display:grid;gap:10px;margin-bottom:14px}.chatMessage{display:grid;gap:6px;max-width:860px;padding:12px 14px;border-radius:8px;background:#f8fafc}.chatMessage.user{margin-left:auto;background:#dbeafe}.chatMessage strong{color:#0f172a;font-size:12px}.chatMessage p{color:#1f2937;white-space:pre-wrap}.questionRow{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;align-items:stretch}.questionRow textarea{min-height:76px;resize:vertical;padding:10px 12px;line-height:1.5}.courseMuted{color:#64748b;font-size:13px}@media(max-width:980px){.courseHero,.courseGrid{grid-template-columns:1fr}}@media(max-width:680px){.courseShell{width:min(100% - 28px,1240px);padding-top:26px}.courseHero{gap:18px}.courseHeroStats{grid-template-columns:1fr}.coursePanel{padding:14px}.questionRow{grid-template-columns:1fr}}.visualPage{min-height:100vh;background:#f5f7fb;color:#111827}.visualShell{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:34px 0 72px}.visualHero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.74fr);gap:28px;align-items:end;margin-bottom:24px}.visualHero h1{max-width:780px;margin:10px 0 12px;color:#0f172a;font-size:clamp(34px,5vw,58px);line-height:1.05}.visualHero p{max-width:700px;margin:0;color:#475569;font-size:16px;line-height:1.7}.heroKicker{color:#2563eb;font-size:13px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.stepsPanel{display:grid;gap:10px;padding:14px;border:1px solid rgba(15,23,42,.1);border-radius:8px;background:#fff;box-shadow:0 16px 36px #0f172a14}.stepsPanel div{display:grid;grid-template-columns:34px 1fr;column-gap:12px;row-gap:2px;padding:10px;border-radius:8px;background:#f8fafc}.stepsPanel span{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:13px;font-weight:850}.stepsPanel strong{color:#111827;font-size:14px}.stepsPanel p{grid-column:2;margin:0;color:#64748b;font-size:13px;line-height:1.55}.workspaceGrid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.controlStack{display:grid;gap:18px}.panel{border:1px solid rgba(15,23,42,.1);border-radius:8px;background:#fff;box-shadow:0 12px 30px #0f172a0f;padding:18px}.panelHeader{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;margin-bottom:16px}.panelStep{min-width:36px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef2ff;color:#1d4ed8;font-size:12px;font-weight:850}.panel h2{margin:0 0 4px;color:#0f172a;font-size:18px;line-height:1.3}.panel p{margin:0;color:#64748b;font-size:13px;line-height:1.55}.fileDrop{display:grid;gap:8px;padding:18px;border:1px dashed rgba(37,99,235,.42);border-radius:8px;background:#f8fbff;cursor:pointer}.fileDrop input{width:100%;color:#475569}.fileDrop span{color:#1d4ed8;font-size:15px;font-weight:850}.fileDrop small{color:#64748b;font-size:12px}.fileStats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.fileStats strong,.fileStats span{max-width:100%;overflow:hidden;padding:6px 9px;border-radius:999px;background:#eef2f7;color:#334155;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.error{margin-top:10px!important;color:#b91c1c!important;font-weight:700}.chartTypeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.chartTypeGrid button{min-height:38px;border:1px solid rgba(15,23,42,.12);border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:13px;font-weight:800}.chartTypeGrid button:hover{border-color:#2563eb57;background:#f8fbff}.chartTypeGrid button.active{border-color:#2563eb;background:#2563eb;color:#fff}.fieldGrid{display:grid;gap:12px}.fieldLabel{display:grid;gap:7px;color:#334155;font-size:13px;font-weight:800}.fieldLabel select{width:100%;min-height:40px;border:1px solid rgba(15,23,42,.14);border-radius:8px;background:#fff;color:#111827;padding:0 10px}.chartPanel{min-width:0}.plotFrame{height:540px;min-width:0;overflow:hidden;border:1px solid rgba(15,23,42,.08);border-radius:8px;background:#fbfdff}.emptyState{height:100%;display:grid;align-content:center;justify-items:center;gap:8px;padding:28px;text-align:center}.emptyState strong{color:#111827;font-size:18px}.emptyState p{max-width:420px}.dataPanel{margin-top:18px}.muted{color:#64748b;font-size:13px}.tableWrap{overflow:auto;border:1px solid rgba(15,23,42,.1);border-radius:8px}.tableWrap table{width:100%;min-width:960px;border-collapse:collapse}.tableWrap th,.tableWrap td{max-width:220px;padding:10px 12px;border-bottom:1px solid rgba(15,23,42,.08);color:#334155;font-size:12px;text-align:left;vertical-align:top;white-space:nowrap}.tableWrap th{position:sticky;top:0;background:#f8fafc;color:#0f172a;font-weight:850}@media(max-width:980px){.visualHero,.workspaceGrid{grid-template-columns:1fr}.stepsPanel{max-width:none}}@media(max-width:680px){.visualShell{width:min(100% - 28px,1240px);padding-top:26px}.visualHero{gap:18px}.panel{padding:14px}.chartTypeGrid{grid-template-columns:1fr}.plotFrame{height:430px}}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#111827;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{letter-spacing:0}#root{min-height:100vh}
