diff --git a/docs/plans/2026-03-07-script-view-mobile-optimization.md b/docs/plans/2026-03-07-script-view-mobile-optimization.md
new file mode 100644
index 0000000..5c4da52
--- /dev/null
+++ b/docs/plans/2026-03-07-script-view-mobile-optimization.md
@@ -0,0 +1,177 @@
+# ScriptView 移动端优化设计
+
+## 概述
+
+优化剧本生成器页面(ScriptView.vue),使其与原型图保持一致,同时确保移动端屏幕适配。
+
+## 问题分析
+
+### 1. 布局差异
+| 区域 | 原型图 | 当前实现 | 差异 |
+|------|--------|----------|------|
+| 参数区域 | grid-cols-2 并排 | 上下堆叠 | 布局结构不同 |
+| NPC 容器 | p-4 (16rpx) | p-6 (24rpx) | padding 过大 |
+| 主容器 | rounded-[2rem] | rounded-2xl/3xl | 圆角偏小 |
+
+### 2. 字体尺寸过大
+| 元素 | 原型图 | 当前 | 建议调整 |
+|------|--------|------|----------|
+| label | 10px (~18rpx) | 16rpx | → 17rpx |
+| input | 11px (~20rpx) | 22rpx | → 19rpx |
+| npc-input | 10px (~18rpx) | 20rpx | → 18rpx |
+| param-option | 10px (~18rpx) | 18rpx | 保持 |
+| param-label | 9px (~16rpx) | 16rpx | 保持 |
+
+### 3. 间距问题
+| 元素 | 原型图 | 当前 | 建议调整 |
+|------|--------|------|----------|
+| 主容器 padding | p-6 (24rpx) | 32rpx | → 24rpx |
+| NPC 容器 padding | p-4 (16rpx) | 24rpx | → 16rpx |
+| 卡片间距 | space-y-6 (24rpx) | 24rpx | 保持 |
+| 参数选项 gap | gap-1.5 (6rpx) | 8rpx | → 6rpx |
+
+## 设计方案
+
+### 1. 参数区域布局重构
+
+**当前结构:**
+```vue
+
+
+ 叙事风格
+ ...
+
+
+
+
+ 故事篇幅
+ ...
+
+
+```
+
+**新结构(并排):**
+```vue
+
+
+ 叙事风格
+ ...
+
+
+ 故事篇幅
+ ...
+
+
+```
+
+**CSS:**
+```css
+.params-container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 16rpx;
+ margin-bottom: 24rpx;
+}
+
+.param-group {
+ display: flex;
+ flex-direction: column;
+ gap: 8rpx;
+ min-width: 0; /* 防止内容溢出 */
+}
+
+.param-options {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 6rpx;
+}
+
+.param-option {
+ padding: 6rpx 12rpx;
+ font-size: 17rpx;
+ white-space: nowrap; /* 防止文字换行 */
+}
+```
+
+### 2. 移动端适配策略
+
+**小屏幕适配(<375px 宽度):**
+- 参数区域保持并排,但减小 option 的 padding
+- 使用 `min-width: 0` 和 `overflow: hidden` 防止溢出
+- NPC 表单三列改为两列(极小屏幕)
+
+**媒体查询模拟(rpx 已自动适配):**
+```css
+/* 默认并排布局 */
+.params-container {
+ grid-template-columns: 1fr 1fr;
+}
+
+/* 超小屏幕堆叠 */
+@media (max-width: 320px) {
+ .params-container {
+ grid-template-columns: 1fr;
+ }
+
+ .npc-form {
+ grid-template-columns: 1fr 1fr;
+ }
+}
+```
+
+### 3. 尺寸优化表
+
+| 元素 | 原尺寸 | 新尺寸 | 说明 |
+|------|--------|--------|------|
+| `.glass-card-main` padding | 32rpx | 24rpx | 匹配原型 p-6 |
+| `.glass-card-main` border-radius | 48rpx | 56rpx | 接近 2rem |
+| `.glass-input` height | 72rpx | 68rpx | 更紧凑 |
+| `.glass-input` font-size | 22rpx | 19rpx | 匹配原型 11px |
+| `.label` font-size | 16rpx | 17rpx | 匹配原型 10px |
+| `.npc-container` padding | 24rpx | 16rpx | 匹配原型 p-4 |
+| `.npc-input` height | 64rpx | 60rpx | 更紧凑 |
+| `.npc-input` font-size | 20rpx | 18rpx | 匹配原型 10px |
+| `.param-option` padding | 8rpx 16rpx | 6rpx 12rpx | 匹配原型 |
+| `.param-option` font-size | 18rpx | 17rpx | 更精致 |
+| `.param-options` gap | 8rpx | 6rpx | 更紧凑 |
+
+### 4. 输入框溢出预防
+
+```css
+.glass-input, .glass-picker {
+ width: 100%;
+ max-width: 100%; /* 防止超出父容器 */
+ box-sizing: border-box; /* 包含 padding 和 border */
+ padding: 0 16rpx; /* 减小侧边 padding */
+}
+
+.npc-form {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+ gap: 10rpx; /* 减小 gap */
+}
+
+.npc-input, .npc-picker {
+ min-width: 0; /* 允许缩小 */
+}
+```
+
+## 修改文件
+
+- `mini-program/src/pages/main/ScriptView.vue`
+
+## 验收标准
+
+- [ ] 参数区域(叙事风格、故事篇幅)左右并排显示
+- [ ] 所有输入框在 iPhone SE(320px 宽度)下不溢出
+- [ ] 字体尺寸视觉上更接近原型图的精致感
+- [ ] NPC 容器 padding 紧凑,不浪费空间
+- [ ] 主容器圆角接近原型图的 rounded-[2rem]
+- [ ] 整体布局紧凑,与原型图视觉一致
+
+## 移动端适配测试设备
+
+- iPhone SE (320px × 568px)
+- iPhone 12 mini (375px × 812px)
+- iPhone 12/13/14 (390px × 844px)
+- iPhone Plus/Max (428px × 926px)