diff --git a/src/App.vue b/src/App.vue
index 9d2fb68..2d6db0f 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,21 +1,216 @@
-
+
+
+
+
+
+
+
diff --git a/src/views/site/lib/site-urls.ts b/src/views/site/lib/site-urls.ts
index 81db988..6f66492 100644
--- a/src/views/site/lib/site-urls.ts
+++ b/src/views/site/lib/site-urls.ts
@@ -1,18 +1,93 @@
-export function officialAppHomeUrl() {
+import type { Router } from 'vue-router';
+import { armOfficialLoginFlip } from '@/utils/page-transition-flag';
+
+function preferMobilePortal() {
const ua = navigator.userAgent || '';
- const mobile = /MicroMessenger|Android|iPhone|iPod|iPad|Mobile/i.test(ua);
- return new URL(mobile ? '/h5' : '/home/workplace', window.location.origin).toString();
+ return /MicroMessenger|Android|iPhone|iPod|iPad|Mobile/i.test(ua);
+}
+
+export function officialAppHomeUrl() {
+ return new URL(
+ preferMobilePortal() ? '/h5' : '/home/workplace',
+ window.location.origin,
+ ).toString();
+}
+
+export function officialLoginLocation(dest?: string) {
+ const path = preferMobilePortal() ? '/h5/login' : '/login';
+ const query: Record = { from: 'official-site' };
+ if (dest) query.dest = dest;
+ return { path, query };
}
export function officialLoginUrl(dest?: string) {
- const ua = navigator.userAgent || '';
- const mobile = /MicroMessenger|Android|iPhone|iPod|iPad|Mobile/i.test(ua);
- const url = new URL(mobile ? '/h5/login' : '/login', window.location.origin);
- url.searchParams.set('from', 'official-site');
- if (dest) url.searchParams.set('dest', dest);
+ const { path, query } = officialLoginLocation(dest);
+ const url = new URL(path, window.location.origin);
+ Object.entries(query).forEach(([key, value]) => {
+ url.searchParams.set(key, value);
+ });
return url.toString();
}
+/** 同域 SPA 进登录;普通左键走翻页,修饰键仍允许新标签打开 */
+export function goOfficialLogin(
+ router: Router,
+ dest?: string,
+ event?: MouseEvent,
+) {
+ if (event) {
+ if (event.defaultPrevented) return false;
+ if (
+ event.button !== 0 ||
+ event.metaKey ||
+ event.ctrlKey ||
+ event.shiftKey ||
+ event.altKey
+ ) {
+ return false;
+ }
+ event.preventDefault();
+ }
+
+ const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (!reduceMotion) {
+ armOfficialLoginFlip();
+ }
+
+ // 先确保登录分包就绪,再开翻页,避免顶栏进度条干等
+ void (async () => {
+ try {
+ if (preferMobilePortal()) {
+ await import('@/views/h5/customer-center/login/index.vue');
+ } else {
+ await import('@/views/login/index.vue');
+ }
+ } catch {
+ /* ignore:仍继续跳转 */
+ }
+ await router.push(officialLoginLocation(dest));
+ })();
+ return true;
+}
+
+/** 从已有 login URL 解析 dest 后 SPA 跳转 */
+export function goOfficialLoginFromHref(
+ router: Router,
+ href: string,
+ event?: MouseEvent,
+) {
+ try {
+ const url = new URL(href, window.location.origin);
+ if (url.origin !== window.location.origin) return false;
+ if (url.pathname !== '/login' && url.pathname !== '/h5/login') return false;
+ if (url.searchParams.get('from') !== 'official-site') return false;
+ const dest = url.searchParams.get('dest') || undefined;
+ return goOfficialLogin(router, dest, event);
+ } catch {
+ return false;
+ }
+}
+
export function warmupOfficialLogin() {
const warmed = document.documentElement.dataset.omsLoginWarm;
if (warmed) return;
@@ -28,16 +103,22 @@ export function warmupOfficialLogin() {
prefetch.rel = 'prefetch';
prefetch.href = url;
document.head.appendChild(prefetch);
+ // 预拉取登录分包,翻页进入时少等 chunk
+ void import('@/views/login/index.vue');
} catch {
/* ignore */
}
}
export function officialTrackLoginUrl(number?: string) {
- const ua = navigator.userAgent || '';
- const mobile = /MicroMessenger|Android|iPhone|iPod|iPad|Mobile/i.test(ua);
- const url = new URL(mobile ? '/h5/login' : '/login', window.location.origin);
- url.searchParams.set('redirect', mobile ? '/h5/orders' : '/home/workplace');
+ const url = new URL(
+ preferMobilePortal() ? '/h5/login' : '/login',
+ window.location.origin,
+ );
+ url.searchParams.set(
+ 'redirect',
+ preferMobilePortal() ? '/h5/orders' : '/home/workplace',
+ );
if (number) url.searchParams.set('track', number);
return url.toString();
}
diff --git a/src/views/site/lib/site-welcome.ts b/src/views/site/lib/site-welcome.ts
index dbcfc27..3fe5bbb 100644
--- a/src/views/site/lib/site-welcome.ts
+++ b/src/views/site/lib/site-welcome.ts
@@ -4,7 +4,6 @@ export const WELCOME_COPY = {
titleShort: 'IDE. Logistics advisor',
titleRest: ' Your cross-border logistics advisor',
titleRestShort: ' Logistics advisor',
- sub: 'US, EU and Southeast Asia parcels. List rates after you register. One advisor through to delivery.',
placeholder: 'e.g. 5 kg general cargo to the US, how many days?',
sendLabel: 'Ask',
human: 'Talk to an advisor',
@@ -18,6 +17,8 @@ export const WELCOME_COPY = {
statsAria: 'Service highlights',
composeLead: 'Where are you shipping? Pick a destination, or ask below.',
destAria: 'Pick a destination',
+ groupFulfill: 'Shipping',
+ groupGrowth: 'Benefits',
partnerTag: 'Partners',
partnerAria: 'Connected platforms and carriers',
trustIcp: '粤ICP备2025463970号-2',
@@ -29,7 +30,6 @@ export const WELCOME_COPY = {
titleShort: 'IDE.跨境物流顾问',
titleRest: '您身边的跨境物流顾问',
titleRestShort: '跨境物流顾问',
- sub: '中小卖家也能按线路看一口价。不砍价、不拉大群,一个人从报价跟到签收。',
placeholder: '例如:发美国普货,5kg,要几天',
sendLabel: '提问',
human: '联系顾问',
@@ -43,6 +43,8 @@ export const WELCOME_COPY = {
statsAria: '服务数据',
composeLead: '发到哪?点目的地看线路,或直接提问。',
destAria: '选择目的地',
+ groupFulfill: '履约',
+ groupGrowth: '权益',
partnerTag: '合作伙伴',
partnerAria: '对接平台与服务商',
trustIcp: '粤ICP备2025463970号-2',
@@ -97,6 +99,7 @@ export const SITE_INTENTS = [
{
id: 'track',
icon: 'track',
+ followup: false,
en: {
title: 'Where is my parcel?',
hint: 'Sign in to see live scans from pickup to delivery',
@@ -108,6 +111,20 @@ export const SITE_INTENTS = [
label: '这票货从揽收到派送卡在哪',
},
},
+ {
+ id: 'warehouse',
+ icon: 'track',
+ en: {
+ title: 'Warehouse fulfillment',
+ hint: 'Inbound, pick & pack — ship when orders land',
+ label: 'I need warehouse dropshipping',
+ },
+ zh: {
+ title: '仓储代发',
+ hint: '入仓拣货打包,订单来了就发出去',
+ label: '我要仓储一件代发',
+ },
+ },
{
id: 'hard',
icon: 'hard',
@@ -207,43 +224,49 @@ export const HOME_DOORS = [
id: 'hard',
icon: 'hard',
intentId: 'hard' as const,
- zh: { title: '带电、别人不接也能问', hint: '先帮你看出得去的线路,再谈税。' },
- en: { title: 'Battery or declined cargo', hint: 'We find a lane that can leave, then the tax path.' },
+ primary: true,
+ zh: { title: '敏感难发', hint: '先帮你看出得去的线路,再谈税。' },
+ en: { title: 'Sensitive cargo', hint: 'We find a lane that can leave, then the tax path.' },
},
{
- id: 'track',
+ id: 'warehouse',
icon: 'track',
- intentId: 'track' as const,
- zh: { title: '货到哪了', hint: '登录后看揽收到派送的真实节点。' },
- en: { title: 'Where is my parcel?', hint: 'Sign in to see scans from pickup to delivery.' },
+ intentId: 'warehouse' as const,
+ primary: true,
+ zh: { title: '仓储代发', hint: '入仓拣货打包,订单来了就发出去。' },
+ en: { title: 'Warehouse fulfillment', hint: 'Inbound, pick & pack — ship when orders land.' },
},
{
id: 'clearance',
icon: 'clearance',
intentId: 'compliance' as const,
- zh: { title: '出口报关 / 退税', hint: '正式报关、退税,或没有专票怎么出。' },
- en: { title: 'Export paperwork', hint: 'Declaration, VAT refund, or shipping without invoices.' },
+ primary: true,
+ zh: { title: '报关退税', hint: '正式报关、退税,或没有专票怎么出。' },
+ en: { title: 'Customs & VAT', hint: 'Declaration, refund, or shipping without invoices.' },
},
{
id: 'member',
icon: 'growth',
intentId: 'member' as const,
- zh: { title: '会员成长体系', hint: '近 12 个月发货积分定级,基础运费最高 95 折。' },
- en: { title: 'Member growth', hint: 'Rolling 12-month shipping points — up to 95% on base freight.' },
+ primary: false,
+ zh: { title: '会员成长', hint: '近 12 个月发货积分定级,基础运费最高 95 折。' },
+ en: { title: 'Member tiers', hint: '12-month shipping points — up to 95% on base freight.' },
},
{
id: 'invite',
icon: 'coin',
intentId: 'invite' as const,
+ primary: false,
zh: { title: '邀新分成', hint: '好友派送成功,你拿运费余额 + 20 元券。' },
- en: { title: 'Invite & earn', hint: 'When friends deliver, you get freight credit + a ¥20 coupon.' },
+ en: { title: 'Invite & earn', hint: 'Friends deliver → freight credit + ¥20 coupon.' },
},
{
id: 'newcomer',
icon: 'coupon',
intentId: 'newcomer' as const,
- zh: { title: '新人注册福利', hint: '注册送券:首单、备货、第二单都有。' },
- en: { title: 'New-seller coupons', hint: 'Sign up for first-ship, stock-up, and second-ship coupons.' },
+ primary: false,
+ zh: { title: '新人福利', hint: '注册送券:首单、备货、第二单都有。' },
+ en: { title: 'New-seller deals', hint: 'Coupons for first ship, stock-up, and second ship.' },
},
] as const;
diff --git a/src/views/site/styles/ai-advisor.css b/src/views/site/styles/ai-advisor.css
index 5350591..a9dedc2 100644
--- a/src/views/site/styles/ai-advisor.css
+++ b/src/views/site/styles/ai-advisor.css
@@ -55,7 +55,7 @@
--ai-routes-panel-w: 1080px;
--ai-acrylic-bg: rgba(255, 255, 255, 0.32);
--ai-acrylic-bg-primary: color-mix(in srgb, var(--ai-gold-soft) 42%, rgba(255, 255, 255, 0.38));
- /* Ocean glass — cool tint aligned with GradientWaves */
+ /* Soft fills — cool tint aligned with GradientWaves */
--ai-glass-fill: linear-gradient(
165deg,
color-mix(in srgb, var(--ai-sky) 10%, rgba(255, 255, 255, 0.46)) 0%,
@@ -83,6 +83,21 @@
color-mix(in srgb, var(--ai-border) 55%, transparent) 82%,
transparent 100%
);
+ /* 厚纸拟物(欢迎页 / 对话 / 侧栏共用) */
+ --ai-dock-radius: 28px;
+ --ai-dock-radius-inner: 22px;
+ --ai-chip-radius: 999px;
+ --ai-paper: #fffcf8;
+ --ai-paper-edge: color-mix(in srgb, var(--ai-border) 78%, #c4b8a6);
+ --ai-paper-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
+ 0 8px 6px -6px rgba(40, 32, 20, 0.1),
+ 0 18px 32px -16px rgba(40, 32, 20, 0.16);
+ --ai-paper-shadow-lift:
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 10px 8px -6px rgba(40, 32, 20, 0.12),
+ 0 22px 40px -14px rgba(2, 62, 138, 0.12);
+ --ai-trust-bar-h: 56px;
}
body.command-home {
@@ -270,9 +285,10 @@ body.command-home #navbar .site-nav-dock a {
body.command-home .site-nav-dock__slider.is-ready {
transition:
- left 0.42s cubic-bezier(0.32, 0.72, 0, 1),
- width 0.42s cubic-bezier(0.32, 0.72, 0, 1),
- opacity 0.2s ease;
+ left 0.4s cubic-bezier(0.22, 1, 0.36, 1),
+ width 0.4s cubic-bezier(0.22, 1, 0.36, 1),
+ opacity 0.22s ease;
+ will-change: left, width;
}
body.command-home #navbar li.site-nav-dock:hover > a,
@@ -302,7 +318,9 @@ body.command-home #navbar .site-nav-dock a {
white-space: nowrap;
background: transparent;
box-shadow: none;
- transition: color 0.22s ease;
+ transition:
+ color 0.28s var(--ai-ease, cubic-bezier(0.22, 1, 0.36, 1)),
+ transform 0.28s var(--ai-ease, cubic-bezier(0.22, 1, 0.36, 1));
}
body.command-home #navbar .site-nav-dock a::after {
@@ -313,7 +331,7 @@ body.command-home #navbar .site-nav-dock a {
color: var(--ai-text);
border-color: transparent;
background: transparent;
- transform: none;
+ transform: translateY(-0.5px);
}
body.command-home #navbar .site-nav-dock a.active,
@@ -349,7 +367,7 @@ body.command-home #navbar .site-nav-dock a {
}
body.command-home #navbar .site-nav-dock a.is-active .site-nav-dock__icon {
- animation: h5-dock-icon-pop 0.42s cubic-bezier(0.22, 1.35, 0.36, 1);
+ animation: h5-dock-icon-pop 0.36s var(--ai-ease, cubic-bezier(0.22, 1, 0.36, 1));
}
body.command-home .site-nav-dock__label {
@@ -512,13 +530,12 @@ body.command-home #navbar .site-nav-dock a {
@keyframes h5-dock-icon-pop {
0% {
- transform: scale(0.88);
- }
- 70% {
- transform: scale(1.08);
+ transform: scale(0.94);
+ opacity: 0.72;
}
100% {
transform: scale(1);
+ opacity: 1;
}
}
@@ -683,8 +700,8 @@ body.command-home #ai-advisor-shell {
background:
radial-gradient(ellipse 78% 52% at 50% -8%, rgba(255, 255, 255, 0.92), transparent 58%),
radial-gradient(ellipse 48% 42% at 8% 36%, rgba(255, 255, 255, 0.42), transparent 68%),
- radial-gradient(ellipse 44% 40% at 92% 48%, rgba(18, 24, 32, 0.035), transparent 70%),
- radial-gradient(ellipse 70% 48% at 50% 108%, rgba(18, 24, 32, 0.045), transparent 60%),
+ radial-gradient(ellipse 44% 40% at 92% 48%, rgba(18, 24, 32, 0.03), transparent 70%),
+ radial-gradient(ellipse 70% 48% at 50% 108%, rgba(92, 122, 154, 0.04), transparent 60%),
var(--ai-bg);
}
@@ -698,7 +715,7 @@ body.command-home #ai-advisor-shell {
radial-gradient(ellipse 46% 38% at 28% 24%, rgba(255, 255, 255, 0.55), transparent 70%),
radial-gradient(ellipse 42% 36% at 74% 32%, rgba(255, 255, 255, 0.35), transparent 72%),
radial-gradient(ellipse 50% 42% at 58% 78%, rgba(255, 255, 255, 0.22), transparent 74%),
- radial-gradient(ellipse 40% 34% at 18% 72%, rgba(18, 24, 32, 0.035), transparent 70%);
+ radial-gradient(ellipse 40% 34% at 18% 72%, rgba(18, 24, 32, 0.03), transparent 70%);
opacity: 0.9;
}
@@ -1057,13 +1074,11 @@ body.command-home .ai-stage-map--eu {
.ai-msg-row--assistant .ai-msg-bubble {
position: relative;
isolation: isolate;
- border: 1px solid var(--ai-border);
- background: var(--ai-glass-panel);
- backdrop-filter: blur(18px) saturate(175%);
- -webkit-backdrop-filter: blur(18px) saturate(175%);
- box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.98),
- 0 0 0 1px var(--ai-glass-hairline);
+ border: 1px solid var(--ai-paper-edge);
+ background: var(--ai-paper);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow: var(--ai-paper-shadow);
}
.ai-composer {
@@ -1072,12 +1087,12 @@ body.command-home .ai-stage-map--eu {
overflow: hidden;
min-height: 88px;
padding: 16px 16px 16px 24px;
- border-radius: 20px;
- border: 1px solid var(--ai-glass-border);
- background: var(--ai-glass-fill);
- backdrop-filter: var(--ai-glass-blur);
- -webkit-backdrop-filter: var(--ai-glass-blur);
- box-shadow: var(--ai-glass-shadow);
+ border-radius: var(--ai-dock-radius);
+ border: 1px solid var(--ai-paper-edge);
+ background: var(--ai-paper);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow: var(--ai-paper-shadow);
transition:
border-color 0.2s var(--ai-ease),
background 0.2s var(--ai-ease),
@@ -1085,34 +1100,17 @@ body.command-home .ai-stage-map--eu {
}
.ai-composer::before {
- content: '';
- position: absolute;
- inset: 0;
- z-index: 0;
- border-radius: inherit;
- pointer-events: none;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, transparent 44%);
- opacity: 0.7;
- mix-blend-mode: soft-light;
+ display: none;
}
.ai-composer:focus-within {
- border-color: rgba(255, 255, 255, 0.94);
- background: var(--ai-glass-fill-strong);
+ border-color: color-mix(in srgb, var(--ai-action) 22%, var(--ai-paper-edge));
+ background: #fffefb;
+ box-shadow: var(--ai-paper-shadow-lift);
}
.ai-msg-row--assistant .ai-msg-bubble:not(:has(.ai-card))::before {
- content: '';
- position: absolute;
- inset: 0;
- z-index: 0;
- border-radius: inherit;
- pointer-events: none;
- background:
- linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0) 40%),
- radial-gradient(92% 72% at 10% -8%, rgba(255, 255, 255, 0.95), transparent 58%);
- mix-blend-mode: screen;
- opacity: 0.9;
+ display: none;
}
.ai-composer > .ai-composer-form,
@@ -1141,7 +1139,7 @@ body.command-home .ai-stage-map--eu {
content: none;
}
-/* 工具栏 / 快捷芯片 — 极简磨砂玻璃(与意图卡片、导航坞一致) */
+/* 工具栏 / 快捷芯片 — 暖纸面(与首页目的地芯片一致) */
.ai-sidebar-toggle,
.ai-new-chat-ghost,
.ai-new-chat-btn,
@@ -1149,15 +1147,18 @@ body.command-home .ai-stage-map--eu {
.ai-history-item {
position: relative;
isolation: isolate;
- border: 1px solid rgba(255, 255, 255, 0.72);
- background: var(--ai-acrylic-bg);
- backdrop-filter: blur(28px) saturate(160%);
- -webkit-backdrop-filter: blur(28px) saturate(160%);
- box-shadow: none;
+ border: 1px solid var(--ai-paper-edge);
+ background: linear-gradient(180deg, #fffefb 0%, var(--ai-bg-soft) 100%);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
+ 0 3px 8px rgba(40, 32, 20, 0.06);
transition:
border-color 0.2s var(--ai-ease),
background 0.2s var(--ai-ease),
- color 0.2s var(--ai-ease);
+ color 0.2s var(--ai-ease),
+ box-shadow 0.2s var(--ai-ease);
}
.ai-sidebar-toggle::before,
@@ -1242,8 +1243,11 @@ body.command-home .ai-stage-map--eu {
.ai-sidebar-toggle:hover,
.ai-new-chat-ghost:hover {
color: var(--ai-action);
- border-color: rgba(255, 255, 255, 0.92);
- background: rgba(255, 255, 255, 0.44);
+ border-color: color-mix(in srgb, var(--ai-action) 24%, var(--ai-paper-edge));
+ background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 6px 14px rgba(40, 32, 20, 0.08);
}
.ai-sidebar-toggle:hover i,
@@ -1253,20 +1257,23 @@ body.command-home .ai-stage-map--eu {
.ai-history-sidebar {
position: fixed;
- top: var(--ai-header-h);
- left: 0;
- bottom: 0;
+ top: calc(var(--ai-header-h) + 10px);
+ left: 12px;
+ bottom: calc(var(--ai-trust-bar-h) + 10px);
z-index: 20;
- width: min(280px, 86vw);
+ width: min(268px, calc(86vw - 24px));
display: flex;
flex-direction: column;
- padding: 16px 12px 20px;
- border-right: 1px solid rgba(255, 255, 255, 0.55);
- background: color-mix(in srgb, var(--ai-bg) 90%, var(--ai-surface));
- backdrop-filter: blur(28px) saturate(160%);
- -webkit-backdrop-filter: blur(28px) saturate(160%);
- box-shadow: none;
- transform: translateX(-105%);
+ padding: 16px 12px 16px;
+ border-radius: var(--ai-dock-radius);
+ border: 1px solid color-mix(in srgb, var(--ai-paper-edge) 65%, transparent);
+ background: color-mix(in srgb, var(--ai-paper) 72%, transparent);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.55),
+ 0 10px 28px -12px rgba(40, 32, 20, 0.12);
+ transform: translateX(calc(-100% - 16px));
transition: transform 0.28s var(--ai-ease);
}
@@ -1861,17 +1868,64 @@ body.command-home .ai-stage-map--eu {
display: flex;
flex-wrap: wrap;
align-items: center;
- justify-content: space-between;
gap: 8px 12px;
}
.ai-routes-meta {
margin: 0;
+ flex-shrink: 0;
font-size: 0.76rem;
font-weight: 650;
color: var(--ai-text-3);
}
+.ai-routes-pager {
+ display: inline-flex;
+ flex-shrink: 0;
+ align-items: center;
+ gap: 4px;
+}
+
+.ai-routes-pager__btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 28px;
+ height: 28px;
+ margin: 0;
+ padding: 0;
+ border-radius: 8px;
+ border: 1px solid var(--ai-border-soft);
+ background: color-mix(in srgb, #fff 78%, var(--ai-bg));
+ color: var(--ai-text-2);
+ font-size: 1rem;
+ font-weight: 600;
+ line-height: 1;
+ cursor: pointer;
+}
+
+.ai-routes-pager__btn:hover:not(:disabled) {
+ color: var(--ai-action);
+ border-color: color-mix(in srgb, var(--ai-action) 35%, #fff);
+ background: color-mix(in srgb, var(--ai-action) 8%, #fff);
+}
+
+.ai-routes-pager__btn:disabled {
+ opacity: 0.4;
+ cursor: not-allowed;
+}
+
+.ai-routes-pager__label {
+ min-width: 3.2em;
+ padding: 0 4px;
+ text-align: center;
+ font-size: 0.76rem;
+ font-weight: 700;
+ color: var(--ai-text-2);
+ font-variant-numeric: tabular-nums;
+ white-space: nowrap;
+}
+
.ai-routes-sticky {
margin-left: auto;
min-height: 32px;
@@ -1932,11 +1986,13 @@ body.command-home .ai-stage-map--eu {
display: flex;
flex-direction: column;
gap: 8px;
+ min-width: 0;
min-height: 0;
padding: 14px 16px;
border-radius: 16px;
border: 1px solid var(--ai-border-soft);
background: color-mix(in srgb, #fff 78%, var(--ai-bg));
+ overflow: hidden;
}
.ai-route-card__head {
@@ -2028,13 +2084,6 @@ body.command-home .ai-stage-map--eu {
font-weight: 800;
}
-.ai-route-card__cargo {
- margin: 0;
- font-size: 0.76rem;
- line-height: 1.35;
- color: var(--ai-text-3);
-}
-
.ai-route-card__desc {
margin: 0;
font-size: 0.8rem;
@@ -2066,16 +2115,20 @@ body.command-home .ai-stage-map--eu {
.ai-route-card__actions {
display: flex;
- flex-wrap: wrap;
+ flex-wrap: nowrap;
align-items: center;
justify-content: flex-end;
- gap: 8px;
+ gap: 6px;
+ width: 100%;
+ min-width: 0;
margin-top: auto;
padding-top: 4px;
+ box-sizing: border-box;
}
.ai-route-card__ask {
display: inline-flex;
+ flex-shrink: 0;
align-items: center;
justify-content: center;
width: 28px;
@@ -2120,7 +2173,25 @@ body.command-home .ai-stage-map--eu {
filter: brightness(1.06);
}
-.ai-route-card__reg,
+.ai-route-card__reg {
+ display: inline-flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: center;
+ min-height: 28px;
+ max-width: calc(100% - 34px);
+ padding: 0 4px;
+ border: 0;
+ background: none;
+ color: var(--ai-text-3);
+ font-size: 0.78rem;
+ font-weight: 600;
+ line-height: 1.2;
+ white-space: nowrap;
+ text-decoration: none;
+ cursor: pointer;
+}
+
.ai-routes-ghost {
display: inline-flex;
align-items: center;
@@ -2177,29 +2248,6 @@ body.command-home .ai-stage-map--eu {
margin-top: 4px;
}
-.ai-routes-more {
- grid-column: 1 / -1;
- display: flex;
- justify-content: center;
- padding: 4px 0 8px;
-}
-
-.ai-routes-more__btn {
- min-height: 36px;
- padding: 0 18px;
- border-radius: 999px;
- border: 1px solid color-mix(in srgb, var(--ai-action) 30%, #fff);
- background: color-mix(in srgb, var(--ai-action) 8%, #fff);
- color: var(--ai-action);
- font-size: 0.84rem;
- font-weight: 700;
- cursor: pointer;
-}
-
-.ai-routes-more__btn:hover {
- background: color-mix(in srgb, var(--ai-action) 14%, #fff);
-}
-
.ai-routes-skeleton {
width: min(100%, 420px);
height: 72px;
@@ -2257,9 +2305,12 @@ body.command-home .ai-stage-map--eu {
}
.ai-new-chat-btn:hover {
- border-color: rgba(255, 255, 255, 0.92);
- background: rgba(255, 255, 255, 0.44);
+ border-color: color-mix(in srgb, var(--ai-action) 24%, var(--ai-paper-edge));
+ background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
color: var(--ai-action);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 6px 14px rgba(40, 32, 20, 0.08);
}
.ai-new-chat-btn:hover i {
@@ -2301,8 +2352,11 @@ body.command-home .ai-stage-map--eu {
.ai-history-item:hover,
.ai-history-item.is-active {
- border-color: rgba(255, 255, 255, 0.92);
- background: rgba(255, 255, 255, 0.44);
+ border-color: color-mix(in srgb, var(--ai-action) 24%, var(--ai-paper-edge));
+ background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 6px 14px rgba(40, 32, 20, 0.08);
}
.ai-history-item.is-active .ai-history-item__title {
@@ -2447,11 +2501,11 @@ body.command-home #navbar .site-nav-avatar:hover {
z-index: 2;
display: flex;
flex-direction: column;
- gap: 16px;
+ gap: 28px;
width: 100%;
max-width: var(--ai-content-max);
margin-inline: auto;
- margin-top: -48px;
+ margin-top: -36px;
border: none;
border-radius: 0;
background: transparent;
@@ -2466,7 +2520,7 @@ body.command-home #navbar .site-nav-avatar:hover {
z-index: 1;
width: 100%;
margin: 0;
- padding: 20px 22px 18px;
+ padding: 8px 8px 4px;
border: none;
border-radius: 0;
background: transparent;
@@ -2482,7 +2536,7 @@ body.command-home #navbar .site-nav-avatar:hover {
.ai-welcome-title {
width: auto;
max-width: 100%;
- margin: 0 auto 14px;
+ margin: 0 auto 0;
font-size: clamp(1.55rem, 2.2vw + 0.85rem, 2.65rem);
font-weight: 800;
letter-spacing: -0.03em;
@@ -2524,159 +2578,211 @@ body.command-home #navbar .site-nav-avatar:hover {
color: var(--ai-sky);
}
-.ai-welcome__foot {
+.ai-welcome__meta {
display: flex;
align-items: center;
- justify-content: space-between;
- gap: 16px 24px;
margin-top: 22px;
padding-top: 18px;
- border-top: none;
- background-image: var(--ai-hairline);
- background-repeat: no-repeat;
- background-position: top center;
- background-size: 100% 1px;
+ border-top: 1px solid var(--ai-border);
}
.ai-welcome__command {
- padding: 0 4px 4px;
+ padding: 0 2px 8px;
border-top: none;
background: transparent;
+ display: flex;
+ flex-direction: column;
+ gap: 26px;
+}
+
+/* 提问区:纯色纸面,圆角对齐 dock */
+.ai-welcome-compose-panel {
+ position: relative;
+ margin: 0;
+ padding: 20px 20px 18px;
+ border-radius: var(--ai-dock-radius);
+ border: 1px solid var(--ai-paper-edge);
+ background: var(--ai-paper);
+ box-shadow: var(--ai-paper-shadow);
+}
+
+.ai-welcome-compose-panel .ai-welcome-cta-link {
+ position: absolute;
+ top: 18px;
+ right: 20px;
+ z-index: 1;
+}
+
+.ai-welcome-compose-panel .ai-welcome-compose__lead {
+ padding-right: 5.5em;
+}
+
+.ai-welcome-cta-link {
+ flex-shrink: 0;
+ padding: 0;
+ border: none;
+ background: none;
+ color: var(--ai-action);
+ font-size: 0.84rem;
+ font-weight: 600;
+ letter-spacing: 0.01em;
+ text-decoration: none;
+ white-space: nowrap;
+ transition: color 0.18s var(--ai-ease);
+}
+
+.ai-welcome-cta-link:hover,
+.ai-welcome-cta-link:focus {
+ color: var(--ai-sky-hover);
+ text-decoration: underline;
+ text-underline-offset: 3px;
+}
+
+.ai-intent-section {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+}
+
+.ai-intent-group__label {
+ margin: 0 0 10px 2px;
+ font-size: 0.75rem;
+ font-weight: 700;
+ letter-spacing: 0.06em;
+ color: var(--ai-text-3);
+}
+
+.ai-intent-grid--primary {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+}
+
+.ai-intent-grid--growth {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ai-welcome__command .ai-intent-grid {
- gap: 10px 14px;
- margin-top: 4px;
- padding-top: 18px;
- border-top: none;
- background-image: var(--ai-hairline);
- background-repeat: no-repeat;
- background-position: top center;
- background-size: 100% 1px;
+ gap: 12px 14px;
+ margin: 0;
+ padding: 0;
+ background: none;
}
-/* 首页意图卡片 — 半透明玻璃,折射全页明暗(无额外色块) */
+/* 首页意图卡:厚纸拟物,主路径略更厚实 */
.ai-welcome__command .ai-intent-door {
overflow: hidden;
- border: 1px solid var(--ai-glass-border);
- border-radius: 20px;
+ border: 1px solid var(--ai-paper-edge);
+ border-radius: var(--ai-dock-radius);
padding: 14px 14px;
- background: var(--ai-glass-fill);
- backdrop-filter: var(--ai-glass-blur);
- -webkit-backdrop-filter: var(--ai-glass-blur);
- box-shadow: var(--ai-glass-shadow);
+ background:
+ linear-gradient(165deg, #fffefb 0%, var(--ai-paper) 55%, #f6f0e7 100%);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow: var(--ai-paper-shadow);
transition:
- border-color 0.22s var(--ai-ease),
- background 0.22s var(--ai-ease),
- box-shadow 0.22s var(--ai-ease),
- transform 0.22s var(--ai-ease);
+ border-color 0.2s var(--ai-ease),
+ background 0.2s var(--ai-ease),
+ box-shadow 0.2s var(--ai-ease),
+ transform 0.2s var(--ai-ease);
}
.ai-welcome__command .ai-intent-door::before {
display: block;
- opacity: 0.55;
- mix-blend-mode: soft-light;
- background:
- linear-gradient(
- 180deg,
- color-mix(in srgb, var(--ai-sky) 14%, rgba(255, 255, 255, 0.55)) 0%,
- rgba(255, 255, 255, 0) 42%
- ),
- radial-gradient(
- 92% 72% at 10% -8%,
- rgba(255, 255, 255, 0.7),
- transparent 58%
- );
+ opacity: 1;
+ mix-blend-mode: normal;
+ animation: none;
+ background: linear-gradient(
+ 180deg,
+ rgba(255, 255, 255, 0.65) 0%,
+ rgba(255, 255, 255, 0) 36%
+ );
+ pointer-events: none;
}
.ai-welcome__command .ai-intent-door::after {
- display: block;
- opacity: 0.42;
- filter: blur(16px);
- background: radial-gradient(
- circle at 36% 36%,
- color-mix(in srgb, var(--ai-sky) 22%, rgba(255, 255, 255, 0.65)),
- rgba(255, 255, 255, 0.08) 46%,
- transparent 72%
- );
+ display: none;
}
.ai-welcome__command .ai-intent-door__icon {
display: inline-flex;
align-items: center;
justify-content: center;
- width: 48px;
- height: 48px;
+ width: 40px;
+ height: 40px;
+ flex-shrink: 0;
border: none;
background: transparent;
box-shadow: none;
}
+.ai-welcome__command .ai-intent-door__icon .ai-icon--illus {
+ width: 40px;
+ height: 40px;
+}
+
.ai-welcome__command .ai-intent-door.is-primary {
position: relative;
- padding: 18px 16px 18px 18px;
- background: var(--ai-glass-fill-strong);
- border-color: color-mix(in srgb, var(--ai-sky) 22%, rgba(255, 255, 255, 0.82));
- box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.9),
- inset 0 -1px 0 color-mix(in srgb, var(--ai-sky) 14%, transparent),
- 0 14px 34px rgba(2, 62, 138, 0.08),
- 0 0 0 1px rgba(2, 62, 138, 0.05);
+ padding: 16px 15px;
+ border-radius: var(--ai-dock-radius);
+ background:
+ linear-gradient(165deg, #ffffff 0%, var(--ai-paper) 48%, #f3ebe0 100%);
+ border-color: color-mix(in srgb, var(--ai-action) 14%, var(--ai-paper-edge));
+ box-shadow: var(--ai-paper-shadow-lift);
}
.ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__icon {
- width: 52px;
- height: 52px;
+ width: 44px;
+ height: 44px;
background: transparent;
border: none;
box-shadow: none;
}
.ai-welcome__command .ai-intent-door.is-primary .ai-icon--illus {
- width: 48px;
- height: 48px;
-}
-
-.ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__title {
- color: var(--ai-action);
+ width: 42px;
+ height: 42px;
}
.ai-welcome__command .ai-intent-door:hover {
- border-color: color-mix(in srgb, var(--ai-sky) 28%, rgba(255, 255, 255, 0.88));
- background:
- linear-gradient(
- 165deg,
- color-mix(in srgb, var(--ai-sky) 14%, rgba(255, 255, 255, 0.52)) 0%,
- rgba(255, 255, 255, 0.22) 50%,
- color-mix(in srgb, var(--ai-action) 10%, rgba(255, 255, 255, 0.34)) 100%
- );
- box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.92),
- 0 14px 32px rgba(2, 62, 138, 0.08),
- 0 0 0 1px rgba(2, 62, 138, 0.05);
- transform: translateY(-1px);
+ border-color: color-mix(in srgb, var(--ai-action) 22%, var(--ai-paper-edge));
+ box-shadow: var(--ai-paper-shadow-lift);
+ transform: translateY(-2px);
}
.ai-welcome__command .ai-intent-door.is-primary:hover {
- background:
- linear-gradient(
- 145deg,
- color-mix(in srgb, var(--ai-sky) 16%, rgba(255, 255, 255, 0.6)) 0%,
- color-mix(in srgb, var(--ai-action) 10%, rgba(255, 255, 255, 0.32)) 100%
- );
- border-color: color-mix(in srgb, var(--ai-sky) 30%, rgba(255, 255, 255, 0.9));
+ border-color: color-mix(in srgb, var(--ai-action) 28%, var(--ai-paper-edge));
box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.94),
- 0 16px 36px rgba(2, 62, 138, 0.09),
- 0 0 0 1px rgba(2, 62, 138, 0.055);
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 12px 10px -6px rgba(40, 32, 20, 0.14),
+ 0 26px 44px -12px rgba(2, 62, 138, 0.14);
}
.ai-welcome__command .ai-intent-door__title {
+ font-size: 0.94rem;
font-weight: 700;
- letter-spacing: -0.01em;
+ letter-spacing: -0.015em;
+ line-height: 1.28;
+ color: var(--ai-action);
+}
+
+.ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__title {
+ font-size: 0.98rem;
+ font-weight: 800;
+ color: var(--ai-action);
}
.ai-welcome__command .ai-intent-door__hint {
+ font-size: 0.76rem;
+ line-height: 1.4;
+ color: var(--ai-text-3);
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ line-clamp: 2;
+ overflow: hidden;
+}
+
+.ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__hint {
+ font-size: 0.78rem;
color: var(--ai-text-2);
}
@@ -2686,19 +2792,19 @@ body.command-home #navbar .site-nav-avatar:hover {
display: flex;
justify-content: center;
width: 100%;
- margin: -8px 0 -12px;
+ margin: -4px 0 -18px;
pointer-events: none;
}
.ai-welcome-plane img {
position: relative;
z-index: 2;
- width: min(680px, 58vw);
+ width: min(520px, 46vw);
height: auto;
display: block;
- filter: drop-shadow(0 16px 36px rgba(var(--ai-sky-rgb), 0.13));
+ filter: drop-shadow(0 14px 30px rgba(var(--ai-sky-rgb), 0.12));
transform-origin: 50% 60%;
- animation: aiPlaneIn 2.4s cubic-bezier(0.22, 1, 0.36, 1) both;
+ animation: aiPlaneIn 1.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes aiPlaneIn {
@@ -2712,45 +2818,36 @@ body.command-home #navbar .site-nav-avatar:hover {
}
}
-.ai-welcome__actions {
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- gap: 8px;
- flex-shrink: 0;
+@media (prefers-reduced-motion: reduce) {
+ .ai-welcome-plane img {
+ animation: none;
+ }
}
-body.command-home a.ai-welcome-cta,
-body.command-home a.ai-welcome-cta:visited,
-body.command-home a.ai-welcome-cta:hover,
-body.command-home a.ai-welcome-cta:focus {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- flex-shrink: 0;
- min-height: 40px;
- padding: 0 22px;
+.ai-welcome__meta .ai-welcome-stats--compact {
+ flex: 1;
+ min-width: 0;
margin: 0;
- border-radius: 999px;
- background: var(--ai-action);
- color: #fff;
- font-size: 0.88rem;
- font-weight: 700;
- letter-spacing: 0.02em;
- text-decoration: none;
- box-shadow: 0 8px 22px rgba(var(--ai-action-rgb), 0.22);
- transition:
- background 0.2s var(--ai-ease),
- transform 0.15s var(--ai-ease),
- box-shadow 0.2s var(--ai-ease);
+ padding: 0;
+ background: none;
}
-body.command-home a.ai-welcome-cta:hover,
-body.command-home a.ai-welcome-cta:focus {
- background: var(--ai-action-hover);
- color: #fff;
- transform: translateY(-1px);
- box-shadow: 0 10px 26px rgba(var(--ai-action-rgb), 0.28);
+.ai-welcome-stats--compact .ai-welcome-stats__item {
+ padding: 0 10px;
+ gap: 3px;
+}
+
+.ai-welcome-stats--compact .ai-welcome-stats__value {
+ font-size: clamp(0.92rem, 0.45vw + 0.75rem, 1.12rem);
+}
+
+.ai-welcome-stats--compact .ai-welcome-stats__label {
+ font-size: 0.64rem;
+}
+
+.ai-welcome-stats--compact .ai-welcome-stats__item + .ai-welcome-stats__item::before {
+ height: 26px;
+ background: color-mix(in srgb, var(--ai-action) 16%, var(--ai-border));
}
.ai-welcome-human {
@@ -2911,9 +3008,10 @@ body.command-home a.ai-welcome-cta:focus {
left: 0;
top: 50%;
width: 1px;
- height: 26px;
+ height: 28px;
transform: translateY(-50%);
- background: color-mix(in srgb, var(--ai-border) 85%, transparent);
+ /* 与统计数字海军蓝同族,略抬对比 */
+ background: color-mix(in srgb, var(--ai-action) 22%, var(--ai-border));
}
.ai-welcome-stats__value {
@@ -3340,7 +3438,7 @@ body.command-home a.ai-welcome-cta:focus {
.ai-msg-bubble {
max-width: min(680px, 90%);
padding: 12px 16px;
- border-radius: 16px;
+ border-radius: var(--ai-dock-radius-inner);
font-size: 0.94rem;
line-height: 1.6;
}
@@ -3402,18 +3500,18 @@ body.command-home a.ai-welcome-cta:focus {
40% { opacity: 1; transform: scale(1); }
}
-/* Cards inside assistant replies — 极简磨砂玻璃 */
+/* Cards inside assistant replies — 厚纸面 */
.ai-card {
position: relative;
isolation: isolate;
overflow: hidden;
padding: 18px 18px 16px;
- border-radius: 20px;
- border: 1px solid rgba(255, 255, 255, 0.72);
- background: var(--ai-acrylic-bg);
- backdrop-filter: blur(28px) saturate(160%);
- -webkit-backdrop-filter: blur(28px) saturate(160%);
- box-shadow: none;
+ border-radius: var(--ai-dock-radius-inner);
+ border: 1px solid var(--ai-paper-edge);
+ background: var(--ai-paper);
+ backdrop-filter: none;
+ -webkit-backdrop-filter: none;
+ box-shadow: var(--ai-paper-shadow);
}
.ai-card::before,
@@ -3471,8 +3569,8 @@ body.command-home a.ai-welcome-cta:focus {
padding: 10px 12px;
border-radius: var(--ai-radius-sm);
text-align: left;
- border: 1px solid rgba(255, 255, 255, 0.55);
- background: transparent;
+ border: 1px solid var(--ai-paper-edge);
+ background: color-mix(in srgb, var(--ai-bg-soft) 70%, #fff);
box-shadow: none;
}
@@ -3603,9 +3701,12 @@ body.command-home a.ai-welcome-cta:focus {
}
.ai-followup-chip:hover {
- border-color: rgba(255, 255, 255, 0.92);
- background: rgba(255, 255, 255, 0.44);
+ border-color: color-mix(in srgb, var(--ai-action) 24%, var(--ai-paper-edge));
+ background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
color: var(--ai-action);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 6px 14px rgba(40, 32, 20, 0.08);
}
.ai-followup-chip:disabled {
@@ -3617,6 +3718,7 @@ body.command-home a.ai-welcome-cta:focus {
color: #fff;
border-color: var(--ai-action);
background: var(--ai-action);
+ box-shadow: 0 6px 14px color-mix(in srgb, var(--ai-action) 22%, transparent);
}
.ai-followup-chip--routes:hover {
@@ -3625,14 +3727,9 @@ body.command-home a.ai-welcome-cta:focus {
background: var(--ai-action);
}
-.ai-welcome-compose {
- margin: 0;
- padding: 2px 2px 4px;
-}
-
.ai-welcome-compose__lead {
- margin: 0 0 10px;
- padding: 0 4px;
+ margin: 0 0 12px;
+ padding: 0;
font-size: 0.9rem;
font-weight: 600;
letter-spacing: 0;
@@ -3645,37 +3742,44 @@ body.command-home a.ai-welcome-cta:focus {
display: flex;
flex-wrap: wrap;
gap: 8px;
- margin: 0 0 8px;
- padding: 0 2px;
+ margin: 0 0 14px;
+ padding: 0;
}
.ai-home-dest {
min-height: 34px;
- padding: 0 14px;
- border-radius: 999px;
- border: 1px solid var(--ai-glass-border);
- background: color-mix(in srgb, var(--ai-sky) 8%, rgba(255, 255, 255, 0.38));
+ padding: 0 16px;
+ border-radius: var(--ai-chip-radius, 999px);
+ border: 1px solid var(--ai-paper-edge, var(--ai-border));
+ background: linear-gradient(180deg, #fffefb 0%, var(--ai-bg-soft) 100%);
box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.7),
- 0 4px 12px rgba(2, 62, 138, 0.04);
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
+ 0 3px 8px rgba(40, 32, 20, 0.06);
color: var(--ai-text-2);
font-size: 0.86rem;
- font-weight: 650;
+ font-weight: 600;
cursor: pointer;
transition:
color 0.18s var(--ai-ease),
border-color 0.18s var(--ai-ease),
background 0.18s var(--ai-ease),
- box-shadow 0.18s var(--ai-ease);
+ box-shadow 0.18s var(--ai-ease),
+ transform 0.15s var(--ai-ease);
}
.ai-home-dest:hover {
color: var(--ai-action);
- border-color: color-mix(in srgb, var(--ai-sky) 32%, rgba(255, 255, 255, 0.78));
- background: color-mix(in srgb, var(--ai-sky) 12%, rgba(255, 255, 255, 0.55));
+ border-color: color-mix(in srgb, var(--ai-action) 24%, var(--ai-paper-edge, var(--ai-border)));
+ background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%);
box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.85),
- 0 6px 16px rgba(2, 62, 138, 0.07);
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
+ 0 6px 14px rgba(40, 32, 20, 0.08);
+ transform: translateY(-1px);
+}
+
+.ai-home-dest:active {
+ transform: translateY(0);
+ box-shadow: inset 0 1px 2px rgba(90, 70, 40, 0.08);
}
.ai-home-price-hint {
@@ -3686,24 +3790,56 @@ body.command-home a.ai-welcome-cta:focus {
color: var(--ai-text-3);
}
-.ai-composer-wrap.is-welcome .ai-composer {
- min-height: 72px;
- padding: 12px 14px 12px 18px;
- border-radius: 16px;
- border-color: var(--ai-glass-border);
- background: var(--ai-glass-fill);
- backdrop-filter: var(--ai-glass-blur);
- -webkit-backdrop-filter: var(--ai-glass-blur);
- box-shadow: var(--ai-glass-shadow);
+/* 首页提问槽:浅灰内凹(挂在真实存在的 slot 上) */
+.ai-composer-slot--welcome .ai-composer {
+ min-height: 56px;
+ padding: 12px 12px 12px 18px;
+ border-radius: 26px;
+ border: none !important;
+ outline: none;
+ background: #e8ecf1 !important;
+ backdrop-filter: none !important;
+ -webkit-backdrop-filter: none !important;
+ box-shadow: inset 0 3px 10px rgba(15, 23, 42, 0.14) !important;
+ transition:
+ background 0.18s var(--ai-ease),
+ box-shadow 0.18s var(--ai-ease);
}
-.ai-composer-wrap.is-welcome .ai-composer::before {
- opacity: 0.55;
- background: linear-gradient(
- 180deg,
- color-mix(in srgb, var(--ai-sky) 12%, rgba(255, 255, 255, 0.5)) 0%,
- rgba(255, 255, 255, 0) 40%
- );
+.ai-composer-slot--welcome .ai-composer::before,
+.ai-composer-slot--welcome .ai-composer::after {
+ display: none !important;
+}
+
+.ai-composer-slot--welcome .ai-composer:focus-within {
+ border: none !important;
+ outline: none;
+ background: #dde3ea !important;
+ box-shadow: inset 0 4px 12px rgba(15, 23, 42, 0.16) !important;
+}
+
+.ai-composer-slot--welcome .ai-composer-input {
+ color: var(--ai-text);
+}
+
+.ai-composer-slot--welcome .ai-composer-input::placeholder {
+ color: var(--ai-text-3);
+}
+
+.ai-composer-slot--welcome .ai-composer-send {
+ width: 40px;
+ height: 40px;
+ font-size: 1.1rem;
+ box-shadow: none;
+}
+
+.ai-composer-slot--welcome .ai-composer-send i {
+ font-size: 1rem;
+}
+
+.ai-composer-slot--welcome .ai-composer-send.is-empty {
+ background: #cfd6de;
+ color: #7a8490;
}
.ai-composer-dock {
@@ -3806,7 +3942,7 @@ body.command-home a.ai-welcome-cta:focus {
}
.ai-composer-wrap.is-docked .ai-composer {
- box-shadow: var(--ai-glass-shadow);
+ box-shadow: var(--ai-paper-shadow);
}
.ai-composer__caustic,
@@ -4094,36 +4230,59 @@ body.command-home a.ai-welcome-cta:focus {
.ai-welcome__command .ai-intent-door.is-primary {
padding: 16px 14px;
- border-radius: 20px;
+ border-radius: var(--ai-dock-radius, 28px);
}
.ai-welcome__command .ai-intent-door {
- border-radius: 20px;
+ border-radius: var(--ai-dock-radius, 28px);
}
.ai-welcome-plane img {
- width: min(520px, 78vw);
+ width: min(420px, 52vw);
+ }
+
+ .ai-intent-grid--primary,
+ .ai-intent-grid--growth {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .ai-intent-grid--primary .ai-intent-door:last-child {
+ grid-column: 1 / -1;
}
}
@media (max-width: 780px) {
- .ai-welcome__foot {
- flex-direction: column;
- align-items: stretch;
- gap: 12px;
- }
-
- .ai-welcome-stats {
+ .ai-welcome__meta {
justify-content: center;
}
- .ai-welcome__actions {
- align-items: center;
- width: 100%;
+ .ai-welcome-stats--compact {
+ justify-content: center;
}
- .ai-welcome-cta {
- width: 100%;
+ .ai-welcome-compose-panel .ai-welcome-compose__lead {
+ padding-right: 0;
+ padding-top: 4px;
+ }
+
+ .ai-welcome-compose-panel .ai-welcome-cta-link {
+ top: 14px;
+ right: 16px;
+ font-size: 0.8rem;
+ }
+
+ .ai-intent-grid--growth {
+ display: flex;
+ gap: 10px;
+ overflow-x: auto;
+ padding-bottom: 4px;
+ scroll-snap-type: x proximity;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .ai-intent-grid--growth .ai-intent-door {
+ flex: 0 0 min(78vw, 260px);
+ scroll-snap-align: start;
}
}
@@ -4177,17 +4336,24 @@ body.command-home a.ai-welcome-cta:focus {
height: min(68%, 160px);
}
- .ai-welcome__foot {
- flex-direction: column;
- align-items: stretch;
- }
-
- .ai-welcome-stats-block {
- width: 100%;
+ .ai-welcome-plane {
+ display: none;
}
.ai-welcome__stack {
- margin-top: -20px;
+ margin-top: 4px;
+ }
+
+ .ai-welcome-stats--compact .ai-welcome-stats__item:nth-child(n + 3) {
+ display: none;
+ }
+
+ .ai-intent-grid--primary {
+ grid-template-columns: 1fr;
+ }
+
+ .ai-intent-grid--primary .ai-intent-door:last-child {
+ grid-column: auto;
}
.ai-partner-marquee {
@@ -4397,7 +4563,7 @@ body.command-home .ai-welcome-plane img {
}
body.command-home .ai-history-sidebar {
- background: #fff;
+ background: color-mix(in srgb, var(--ai-paper) 72%, transparent);
}
body.command-home .ai-history-backdrop {