/* ============================================================
   茶小超 · AI —— 极简三页样式
   移动端优先 / App 化 / 珊瑚红→暖橙渐变主色
   ============================================================ */
:root {
  --primary: #ff6a3d;
  --primary-2: #ff9558;
  --primary-soft: #fff1ec;
  --ink: #1f2330;
  --ink-2: #5b6172;
  --ink-3: #9aa0b0;
  --line: #eef0f4;
  --bg: #f4f5f8;
  --card: #ffffff;
  --ok: #1faf6b;
  --warn: #e0a000;
  --bad: #e5484d;
  --radius: 16px;
  --shadow: 0 4px 18px rgba(31, 35, 48, 0.06);
  --shadow-2: 0 8px 28px rgba(255, 106, 61, 0.16);
  --nav-h: 64px;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }

/* —— 顶部品牌条 —— */
.topbar {
  position: sticky; top: 0; z-index: 30;
  height: 52px; display: flex; align-items: center;
  padding: 0 16px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 10px; }
.brand-logo-img {
  width: 30px; height: 30px; border-radius: 50%;
  object-fit: cover;
  box-shadow: var(--shadow-2);
  background: #fff;
}
.brand-logo-img.side-logo { width: 36px; height: 36px; }
.brand-text { font-weight: 700; font-size: 16px; letter-spacing: .3px; }

/* —— 页面容器 —— */
.page { padding: 14px 14px calc(var(--nav-h) + 28px); max-width: 720px; margin: 0 auto; }

/* —— 卡片 —— */
.card {
  background: var(--card); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px; margin-bottom: 14px;
}
.card-title { font-weight: 700; font-size: 16px; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.card-sub { color: var(--ink-3); font-size: 13px; margin: -8px 0 12px; }

/* —— Hero —— */
.hero {
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: #fff; border-radius: 20px; padding: 20px 18px; margin-bottom: 16px;
  box-shadow: var(--shadow-2);
}
.hero h1 { margin: 0 0 6px; font-size: 20px; font-weight: 800; }
.hero p { margin: 0; font-size: 13.5px; opacity: .95; line-height: 1.7; }
.hero .hero-steps { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.hero .step-pill {
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3);
  padding: 5px 11px; border-radius: 999px; font-size: 12.5px;
}

/* —— 表单 —— */
.field { margin-bottom: 12px; }
.field label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; font-weight: 600; }
.field .hint { font-weight: 400; color: var(--ink-3); font-size: 12px; }
input, select, textarea {
  width: 100%; border: 1.5px solid var(--line); background: #fbfcfe;
  border-radius: 12px; padding: 11px 12px; font-size: 15px; color: var(--ink);
  font-family: inherit; transition: border-color .15s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); background: #fff; }
textarea { resize: vertical; min-height: 84px; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* —— 按钮 —— */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: none; border-radius: 12px; padding: 12px 16px; font-size: 15px; font-weight: 700;
  cursor: pointer; width: 100%; font-family: inherit; transition: transform .08s, opacity .15s;
}
.btn:active { transform: scale(.98); }
.btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; box-shadow: var(--shadow-2); }
.btn-ghost { background: var(--primary-soft); color: var(--primary); }
.btn-danger { background: #fff; color: #c0392b; border: 1.5px solid #f2c2bc; }
.btn-danger:hover { background: #fdecea; }
.btn-line { background: #fff; color: var(--ink); border: 1.5px solid var(--line); }
.btn-sm { width: auto; padding: 8px 14px; font-size: 13.5px; border-radius: 10px; }
.btn:disabled { opacity: .55; cursor: not-allowed; }

/* —— 预设行业 chips —— */
.preset-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.preset-chip {
  border: 1.5px solid var(--line); background: #fff; color: var(--ink-2);
  padding: 7px 13px; border-radius: 999px; font-size: 13px; cursor: pointer; font-weight: 600;
  transition: all .12s;
}
.preset-chip:active, .preset-chip.on { background: var(--primary-soft); color: var(--primary); border-color: var(--primary); }

/* —— 步骤指示 —— */
.steps { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.steps .dot {
  flex: 1; height: 5px; border-radius: 999px; background: var(--line); transition: background .2s;
}
.steps .dot.active { background: linear-gradient(90deg, var(--primary), var(--primary-2)); }

/* —— 结果区 —— */
.section-h { font-weight: 700; font-size: 15px; margin: 14px 0 8px; display: flex; align-items: center; gap: 7px; }
.badge {
  display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px;
  background: var(--primary-soft); color: var(--primary);
}
.badge.ok { background: #e7f8ef; color: var(--ok); }
.badge.warn { background: #fdf3da; color: var(--warn); }
.bubble { background: #fbfcfe; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; font-size: 14px; line-height: 1.7; }
.direction {
  border: 1.5px solid var(--line); border-radius: 12px; padding: 12px; margin-bottom: 10px; cursor: pointer; transition: all .12s;
}
.direction.on { border-color: var(--primary); background: var(--primary-soft); }
.direction .d-name { font-weight: 700; }
.direction .d-desc { font-size: 13px; color: var(--ink-2); margin-top: 3px; }
.direction .d-fit { font-size: 12.5px; color: var(--ink-3); margin-top: 4px; }
.rec-tag { font-size: 11.5px; background: var(--ok); color:#fff; padding: 1px 7px; border-radius: 999px; margin-left: 6px; }

.kv { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.kv:last-child { border-bottom: none; }
.kv .k { color: var(--ink-2); }
.kv .v { font-weight: 700; }

/* 文案/分镜 */
.copy-box { background: #fff8f4; border: 1px solid #ffd9c8; border-radius: 12px; padding: 12px 14px; font-size: 14.5px; line-height: 1.8; white-space: pre-wrap; }
.shot { border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px; margin-bottom: 9px; background: #fbfcfe; }
.shot .shot-h { font-weight: 700; font-size: 13.5px; display: flex; justify-content: space-between; }
.shot .shot-sub { font-size: 12.5px; color: var(--ink-2); margin-top: 4px; }
.chip-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 6px; }
.chip { background: var(--primary-soft); color: var(--primary); font-size: 12.5px; padding: 4px 10px; border-radius: 999px; font-weight: 600; }

/* —— 知识库 Tabs —— */
.tabs { display: flex; gap: 6px; background: #fff; border-radius: 14px; padding: 5px; box-shadow: var(--shadow); margin-bottom: 14px; position: sticky; top: 56px; z-index: 20; overflow-x: auto; }
.tab {
  flex: 1; min-width: 72px; text-align: center; padding: 9px 6px; border-radius: 10px;
  font-size: 13.5px; font-weight: 600; color: var(--ink-2); cursor: pointer; white-space: nowrap;
}
.tab.on { background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; }

.note {
  background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 14px 15px; margin-bottom: 12px; cursor: pointer; border: 1px solid transparent;
}
.note:active { border-color: var(--primary); }
.note h3 { margin: 0 0 6px; font-size: 15.5px; font-weight: 700; }
.note .meta { font-size: 12px; color: var(--ink-3); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.note .ind-tag { background: var(--primary-soft); color: var(--primary); padding: 1px 8px; border-radius: 999px; font-weight: 600; }
.note .shoot-tag { font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.note .shoot-tag.hi { background: #e8f6ee; color: #1f9d55; }
.note .shoot-tag.mid { background: #fff3e0; color: #e08a00; }
.note .real-todo { font-size: 12.5px; color: #d6453d; background: #fdecea; border-left: 3px solid #d6453d; padding: 6px 9px; margin-top: 8px; border-radius: 4px; line-height: 1.5; }
.note .excerpt { font-size: 13px; color: var(--ink-2); margin-top: 7px; line-height: 1.6; }
.note .body { font-size: 13.5px; color: var(--ink); line-height: 1.75; white-space: pre-wrap; margin-top: 8px; }

/* —— 我的门店 / 列表 —— */
.store {
  display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 14px;
  box-shadow: var(--shadow); padding: 13px 14px; margin-bottom: 10px; cursor: pointer;
}
.store:active { border-color: var(--primary); }
.store .ava { width: 42px; height: 42px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; font-size: 20px; }
.store .info { flex: 1; min-width: 0; }
.store .info .nm { font-weight: 700; font-size: 15px; }
.store .info .sub { font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.store .arrow { color: var(--ink-3); }

/* —— 弹层 —— */
.sheet-mask { position: fixed; inset: 0; background: rgba(15,18,28,.45); z-index: 50; display: none; }
.sheet-mask.show { display: block; }
.sheet {
  position: fixed; left: 0; right: 0; bottom: 0; max-height: 88vh; overflow-y: auto;
  background: var(--bg); border-radius: 20px 20px 0 0; padding: 16px 14px 28px; z-index: 51;
  transform: translateY(100%); transition: transform .22s ease; max-width: 720px; margin: 0 auto;
}
.sheet.show { transform: translateY(0); }
.sheet-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.sheet-head h2 { margin: 0; font-size: 17px; }

/* —— 个人IP —— */
.ip-hero { background: linear-gradient(135deg, #ff6a3d, #ff9558); color: #fff; border-radius: 20px; padding: 18px; margin-bottom: 14px; box-shadow: var(--shadow-2); }
.ip-hero h2 { margin: 0 0 4px; font-size: 19px; }
.ip-hero .role { font-size: 13.5px; opacity: .95; }
.kpi { display: flex; gap: 8px; margin-top: 12px; }
.kpi .k { flex: 1; background: rgba(255,255,255,.16); border-radius: 12px; padding: 8px; text-align: center; }
.kpi .k b { display: block; font-size: 17px; }
.kpi .k span { font-size: 11px; opacity: .9; }

/* —— 通用 —— */
.empty { text-align: center; color: var(--ink-3); padding: 40px 20px; font-size: 14px; }
.spinner { width: 18px; height: 18px; border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; display: inline-block; animation: spin .7s linear infinite; vertical-align: -3px; }
.spinner.dark { border-color: var(--line); border-top-color: var(--primary); }
@keyframes spin { to { transform: rotate(360deg); } }
.toast {
  position: fixed; left: 50%; bottom: calc(var(--nav-h) + 18px); transform: translateX(-50%) translateY(20px);
  background: rgba(31,35,48,.92); color: #fff; padding: 10px 18px; border-radius: 999px; font-size: 13.5px;
  opacity: 0; pointer-events: none; transition: all .2s; z-index: 99; max-width: 86%; text-align: center;
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast.bad { background: rgba(229,72,77,.95); }
.divider { height: 1px; background: var(--line); margin: 14px 0; }
.muted { color: var(--ink-3); font-size: 12.5px; }
.flex-between { display: flex; justify-content: space-between; align-items: center; }

/* ============================================================
   左侧导航（桌面常驻 / 移动端抽屉）
   ============================================================ */
.hamburger {
  border: none; background: transparent; font-size: 22px; line-height: 1;
  margin-right: 10px; cursor: pointer; color: var(--ink); padding: 4px 6px; border-radius: 8px;
}
.hamburger:active { background: var(--line); }

.sidenav {
  position: fixed; top: 0; left: 0; bottom: 0; width: 232px; z-index: 60;
  background: #fff; border-right: 1px solid var(--line);
  display: flex; flex-direction: column; padding: 18px 14px;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  transform: translateX(-100%); transition: transform .22s ease;
}
.sidenav.open { transform: translateX(0); box-shadow: var(--shadow-2); }
.side-brand {
  display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px;
  margin-bottom: 22px; padding: 0 6px;
}
.side-menu { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.side-item {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px;
  font-size: 15px; font-weight: 600; color: var(--ink-2); cursor: pointer; transition: all .12s;
}
.side-item .side-ico { font-size: 19px; }
.side-item:hover { background: var(--bg); }
.side-item.active { background: var(--primary-soft); color: var(--primary); }
.side-foot { font-size: 12px; color: var(--ink-3); padding: 10px 6px 0; border-top: 1px solid var(--line); }
.side-mask { position: fixed; inset: 0; background: rgba(15,18,28,.4); z-index: 55; display: none; }
.side-mask.show { display: block; }

/* 桌面端：侧栏常驻，隐藏顶部汉堡条，页面右移 */
@media (min-width: 821px) {
  .topbar { display: none; }
  .sidenav { transform: translateX(0); box-shadow: none; }
  .page { margin-left: 232px; max-width: 860px; padding: 26px 28px 40px; }
  .tabs { position: sticky; top: 10px; }
}
/* 移动端：顶部条 + 抽屉，页面底部留白给悬浮按钮 */
@media (max-width: 820px) {
  .page { padding: 14px 14px 90px; max-width: 720px; margin: 0 auto; }
  .tabs { position: sticky; top: 56px; }
}

/* 折叠面板（我的门店：点击展开/收起） */
.collapsible-body { display: none; }
.collapsible.open .collapsible-body { display: block; }
.collapsible-head {
  cursor: pointer; user-select: none;
  display: flex; justify-content: space-between; align-items: center;
}
.collapsible-head .chev { transition: transform .2s ease; font-size: 12px; color: var(--ink-3); }
.collapsible.open .collapsible-head .chev { transform: rotate(180deg); }

/* ========== 个人知识图谱 ========== */
.kg-wrap { max-width: 960px; margin: 0 auto; }
.page-title { font-size: 20px; margin: 4px 0 6px; }
.kg-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.kg-stat {
  flex: 1 1 90px; min-width: 84px; background: var(--card);
  border: 1px solid var(--line); border-radius: 14px; padding: 12px 10px; text-align: center;
}
.kg-stat-num { font-size: 22px; font-weight: 700; }
.kg-stat-label { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.t-ip_persona { color: #7c5cff; }
.t-editing_technique { color: #2f9bff; }
.t-operation_tip { color: #ff8a3d; }
.t-viral_template { color: #ff5c8a; }
.kg-stat.t-ip_persona { border-top: 3px solid #7c5cff; }
.kg-stat.t-editing_technique { border-top: 3px solid #2f9bff; }
.kg-stat.t-operation_tip { border-top: 3px solid #ff8a3d; }
.kg-stat.t-viral_template { border-top: 3px solid #ff5c8a; }

.kg-graph-scroll { overflow-x: auto; padding-bottom: 6px; }
.kg-svg { width: 100%; min-width: 720px; display: block; }
.kg-col-label { font-size: 13px; font-weight: 600; fill: var(--ink-2); }
.kg-edge { stroke: #d8d8e6; stroke-width: 1.6; transition: opacity .15s; }
.kg-node { cursor: pointer; transition: opacity .15s; }
.kg-dot { stroke: #fff; stroke-width: 2.5; }
.kg-dot.t-ip_persona { fill: #7c5cff; }
.kg-dot.t-editing_technique { fill: #2f9bff; }
.kg-dot.t-operation_tip { fill: #ff8a3d; }
.kg-dot.t-viral_template { fill: #ff5c8a; }
.kg-node-label { font-size: 11px; fill: var(--ink-2); }

.btn.ghost { background: transparent; border: 1px solid var(--line); color: var(--ink-2); }
.btn.ghost:hover { background: var(--bg-soft); }
.btn.sm { padding: 6px 12px; font-size: 12.5px; }

.kg-query-result { margin-top: 12px; }
.kg-res-group { margin-top: 10px; }
.kg-res-title { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.kg-res-item {
  background: var(--bg-soft); border-radius: 10px; padding: 8px 12px; margin: 4px 0;
  font-size: 13.5px; border-left: 3px solid var(--line);
}

/* ========== 行业适配库 ========== */
.kit-wrap { max-width: 860px; margin: 0 auto; }
.kit-result { margin-top: 14px; }
.kit-head {
  font-size: 18px; font-weight: 800; color: var(--primary);
  padding: 4px 0 10px; border-bottom: 2px solid var(--primary-soft);
}
.kit-meta { font-size: 12.5px; color: var(--ink-3); margin: 8px 0 12px; }
.kit-meta .btn { width: auto; margin-left: 6px; }
.kit-sec {
  background: #fbfcfe; border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 10px;
}
.kit-sec-title { font-weight: 700; font-size: 14.5px; color: var(--ink); margin-bottom: 6px; }
.kit-ul { margin: 0; padding-left: 20px; }
.kit-ul li { font-size: 14px; line-height: 1.7; color: var(--ink); }
.kit-line { font-size: 13.5px; line-height: 1.7; color: var(--ink); margin: 3px 0; }
.kit-line b { color: var(--ink-2); font-weight: 700; }
.kit-conv { background: linear-gradient(180deg, #fffdf6 0%, #fff8e8 100%); border: 1px solid #f3dca0; border-radius: 12px; padding: 12px 14px; }
.kit-conv .kit-sec-title { color: #9a6a17; }
.kit-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.kit-chip {
  border: 1.5px solid var(--line); background: #fff; color: var(--ink-2);
  padding: 7px 13px; border-radius: 999px; font-size: 13px; cursor: pointer; font-weight: 600;
  transition: all .12s;
}
.kit-chip:active, .kit-chip:hover { background: var(--primary-soft); color: var(--primary); border-color: var(--primary); }

/* ========== AI 周期起号陪跑 ========== */
.inc-wrap { max-width: 860px; margin: 0 auto; }
.inc-plan { margin-top: 4px; }
.inc-overview {
  background: var(--primary-soft); border-radius: 12px; padding: 12px 14px;
  font-size: 14.5px; line-height: 1.7; color: var(--ink); font-weight: 600;
}
.inc-progress {
  display: flex; align-items: center; gap: 10px; margin-top: 12px;
}
.inc-bar {
  flex: 1; height: 10px; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--primary-2));
  transition: width .3s ease; min-width: 4px;
}
.inc-progress-num { font-size: 13px; font-weight: 700; color: var(--primary); white-space: nowrap; }
.inc-day { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; background: #fff; }
.inc-day-h { font-weight: 800; font-size: 15px; color: var(--ink); margin-bottom: 8px; display: flex; flex-direction: column; gap: 4px; }
.inc-hint {
  font-weight: 500; font-size: 12.5px; color: var(--primary);
  background: var(--primary-soft); border-radius: 8px; padding: 5px 9px; line-height: 1.5;
}
.inc-task {
  display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border-radius: 10px;
  cursor: pointer; transition: background .12s;
}
.inc-task:hover { background: #fbfcfe; }
.inc-task.done { opacity: .6; }
.inc-task.done .inc-task-body b { text-decoration: line-through; }
.inc-task input[type=checkbox] { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--primary); }
.inc-task-body { display: flex; flex-direction: column; gap: 2px; }
.inc-task-body b { font-size: 14px; color: var(--ink); }
.inc-task-detail { font-size: 12.5px; color: var(--ink-2); line-height: 1.6; }
.inc-task-note { font-size: 12px; color: var(--ok); }

.inc-day-actions { margin: 10px 0 4px; }
.inc-day-actions .btn { font-size: 13px; padding: 7px 14px; }
.inc-content { margin: 8px 0 4px; }
.inc-content-card {
  border: 1.5px dashed var(--primary); border-radius: 12px; padding: 12px 14px; margin-top: 6px;
  background: var(--primary-soft); display: flex; flex-direction: column; gap: 10px;
}
.inc-sec { font-size: 13.5px; color: var(--ink); line-height: 1.7; }
.inc-sec b { color: var(--primary); margin-right: 4px; }
.inc-sec p { margin: 4px 0 0; white-space: pre-wrap; }
.inc-shot { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: 12.5px; }
.inc-shot th, .inc-shot td { border: 1px solid var(--line); padding: 5px 7px; text-align: left; vertical-align: top; }
.inc-shot th { background: #fff; color: var(--ink-2); font-weight: 700; }
.inc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.inc-chip {
  background: #fff; border: 1.5px solid var(--line); border-radius: 999px;
  padding: 4px 11px; font-size: 12.5px; color: var(--ink-2); font-weight: 600;
}

/* 复盘联动卡片 + 大脑提示角标 */
.inc-rev { border-left: 4px solid var(--line); }
.inc-rev-warn { border-left-color: #e8a33d; background: #fff8ee; }
.inc-rev-good { border-left-color: var(--ok); background: #f1fbf3; }
.inc-rev-none { border-left-color: var(--line); }
.inc-rv-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 6px; }
.inc-rv-stat {
  background: #fff; border: 1px solid var(--line); border-radius: 10px;
  padding: 6px 12px; min-width: 72px; text-align: center;
}
.inc-rv-val { display: block; font-size: 17px; font-weight: 800; color: var(--ink); }
.inc-rv-lab { display: block; font-size: 11.5px; color: var(--ink-2); margin-top: 2px; }
.inc-rv-tip { font-size: 13.5px; line-height: 1.7; color: var(--ink); font-weight: 600; margin: 6px 0; }
.inc-rv-sigs { display: flex; flex-direction: column; gap: 4px; }
.inc-rv-sig { font-size: 12.5px; color: var(--ink-2); }
.inc-brain {
  font-size: 11.5px; font-weight: 700; color: #9a6a17;
  background: #fff1d6; border: 1px solid #f0c987; border-radius: 999px;
  padding: 2px 9px; align-self: flex-start; cursor: help;
}
.inc-rv-record { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 10px; }
.inc-rec-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; align-items: center; }
.inc-rec-form .inc-rec-in { width: auto; flex: 1 1 88px; min-width: 78px; }
.inc-rec-form .btn { width: auto; }
.inc-rec-hint { flex-basis: 100%; margin-top: 2px; }

/* 起号节奏模板 */
.inc-rhythm { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.inc-rhythm-label { font-size: 13px; color: var(--ink-2); font-weight: 600; }
.inc-rhythm-btn {
  font-size: 13px; padding: 6px 12px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--primary-soft); background: #fff; color: var(--primary);
  transition: all .15s ease;
}
.inc-rhythm-btn:hover { background: var(--primary-soft); }
.inc-rhythm-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }

/* ================= 个人IP 高变现赋能卡 ================= */
.ip-persona { background: linear-gradient(135deg,#fff1ea,#ffe6dd); border:1px solid #ffd2bf; border-radius:14px; padding:14px 16px; font-size:16px; font-weight:700; line-height:1.6; margin-bottom:6px; color:#a33b16; }
.ip-card { background:#fbfcfe; border:1px solid var(--line); border-left:4px solid #ff8a5b; border-radius:12px; padding:10px 12px; margin-bottom:2px; }
.ip-aud { border-left-color:#ff6a3d; }
.ip-mon { border-left-color:#f5a623; }
.ip-val { border-left-color:#3aa0ff; }
.ip-sys { border-left-color:#7c5cff; }
.ip-kv { display:flex; gap:10px; padding:5px 0; border-bottom:1px dashed #eef1f5; }
.ip-kv:last-child { border-bottom:none; }
.ip-kv-k { flex:0 0 96px; font-weight:700; font-size:13px; color:var(--ink-2); }
.ip-kv-v { flex:1; font-size:13.5px; line-height:1.7; }
.ip-chips-label { font-size:12.5px; color:var(--ink-3); margin:8px 0 5px; font-weight:600; }
.ip-chips { display:flex; flex-wrap:wrap; gap:6px; }
.ip-chip { background:#eaf3ff; border:1px solid #cfe2ff; color:#1f6fd6; border-radius:999px; padding:3px 10px; font-size:12.5px; }
.shot-va { font-size:11px; font-weight:700; color:#a33b16; background:#ffe6dd; border:1px solid #ffc4ad; border-radius:999px; padding:1px 8px; align-self:center; }
.ip-checks { display:flex; flex-direction:column; gap:6px; }
.ip-check { display:flex; align-items:baseline; gap:8px; font-size:13.5px; background:#fbfcfe; border:1px solid var(--line); border-radius:10px; padding:8px 11px; }
.ip-check-ico { flex:0 0 auto; }
.ip-check-t { font-weight:600; }
.ip-check-h { color:var(--ink-3); font-size:12.5px; }

/* ========== 一键成片 / 通用弹窗 ========== */
.modal {
  position: fixed; inset: 0; background: rgba(15,17,21,.55);
  display: flex; align-items: center; justify-content: center; z-index: 80; padding: 18px;
}
.modal-card {
  background: #fff; width: 100%; max-width: 640px; max-height: 86vh; overflow: auto;
  border-radius: 16px; padding: 18px 20px; box-shadow: 0 18px 50px rgba(0,0,0,.25);
}
.modal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.modal-head h3 { margin: 0; font-size: 17px; }
#renderShots .shot { background: #fbfcfe; }

/* ========== 驾驶舱 ========== */
.dash-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 14px; }
@media (max-width: 720px){ .dash-grid { grid-template-columns: 1fr; } }
.dash-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; }
.dash-card h3 { margin: 0 0 10px; font-size: 15px; color: var(--primary); }
.dash-num { font-size: 30px; font-weight: 800; color: var(--ink); }
.dash-sub { font-size: 12.5px; color: var(--ink-3); }
.dash-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px dashed #eef1f5; font-size: 13.5px; }
.dash-row:last-child { border-bottom: none; }
.dash-bar { height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--primary-2)); margin-top: 4px; }
.dash-pill { display:inline-block; padding:1px 9px; border-radius:999px; font-size:11.5px; font-weight:700; background:var(--primary-soft); color:var(--primary); border:1px solid var(--primary); }
.dash-list { max-height: 260px; overflow: auto; }

/* ========== 个人IP·不设限成长实验者 ========== */
.col-row { padding: 8px 0; border-bottom: 1px dashed #eef1f5; }
.col-row:last-child { border-bottom: none; }
.col-name { font-weight: 700; font-size: 14.5px; color: var(--ink); }
.col-ratio { color: var(--primary); margin-left: 6px; font-weight: 800; }
.col-meta { font-size: 12.5px; color: var(--ink-3); margin: 2px 0; }
.col-desc { font-size: 13px; color: #5b6470; }
.mon-row { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px dashed #eef1f5; }
.mon-row:last-child { border-bottom: none; }
.mon-ph { font-weight: 700; min-width: 96px; color: var(--ink); }
.mon-t { display: block; font-size: 12px; color: var(--primary); margin-top: 2px; }
.mon-body { font-size: 13px; color: #5b6470; line-height: 1.5; }
.swot-list { margin: 4px 0 0 18px; font-size: 13.5px; color: #2f6b3a; }
.swot-list.swot-risk { color: #c0392b; }
.ip-warn { border-left: 3px solid #e67e22; background: #fff8f1; }
.ip-route-tag { display: inline-block; padding: 3px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: var(--primary-soft); color: var(--primary); border: 1px solid var(--primary); margin-bottom: 10px; }

/* —— 个人IP 重构：人设总览 + 内容工厂 + 作战手册 —— */
.ip-hero .ip-logo { display:flex; justify-content:center; margin-bottom:8px; }
.ip-hero .ip-logo img { width:56px; height:56px; border-radius:50%; object-fit:cover; box-shadow:var(--shadow-2); }
.ip-card.overview { border-left-color: var(--primary); }
.ip-handbook { margin-top: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 4px 14px; }
.ip-handbook > summary { cursor: pointer; font-weight: 700; font-size: 15px; padding: 12px 2px; color: var(--ink); list-style: none; }
.ip-handbook > summary::-webkit-details-marker { display: none; }
.ip-handbook > summary::after { content: "▾"; float: right; color: var(--ink-3); }
.ip-handbook[open] > summary::after { content: "▴"; }
.ip-handbook[open] { padding-bottom: 14px; }

/* 内容工厂 */
.factory-bar { background: #fff7f3; border: 1px solid #ffd9c9; border-radius: 14px; padding: 12px 14px; margin: 6px 0 14px; }
.matrix { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.col-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; cursor: pointer; user-select: none; }
.col-chk input { width: auto; }
.col-chk .col-ratio { color: var(--primary); font-weight: 800; }
.col-chk .col-auto { color: var(--ink-3); font-size: 11.5px; }
.factory-actions { margin-top: 10px; }
.factory-actions .btn { width: auto; }

.shot-list { display: flex; flex-direction: column; gap: 12px; }
.shot-card { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--primary); border-radius: 14px; padding: 12px 14px; box-shadow: var(--shadow); }
.shot-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.shot-col { font-size: 12px; font-weight: 700; color: var(--primary); }
.shot-topic { font-size: 15px; font-weight: 700; color: var(--ink); }
.shot-sec { margin-top: 8px; }
.shot-sec-h { font-size: 13px; font-weight: 700; color: var(--ink-2); margin-bottom: 4px; }
.shot-say { font-size: 13.5px; line-height: 1.75; color: #3a3f4d; white-space: pre-wrap; background: #fbfcfe; border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; }

/* 平台分发设定三栏 */
.pf-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 560px) { .pf-row { grid-template-columns: 1fr; } }
.pf { border: 1px solid var(--line); border-radius: 12px; padding: 9px 11px; background: #fbfcfe; }
.pf-dy { border-top: 3px solid #161823; }
.pf-ks { border-top: 3px solid #ff5000; }
.pf-sph { border-top: 3px solid #07c160; }
.pf-h { font-weight: 800; font-size: 13.5px; margin-bottom: 5px; color: var(--ink); }
.pf-r { font-size: 12.5px; line-height: 1.6; color: #5b6172; margin: 3px 0; }
.pf-r b { color: var(--ink-2); margin-right: 4px; }

/* ========== 分组侧边导航 ========== */
.side-group { margin-top: 12px; }
.side-group:first-child { margin-top: 4px; }
.side-group-title { font-size: 11px; font-weight: 800; color: var(--ink-3); letter-spacing: 1.5px; padding: 4px 16px; }
.side-foot-tip { margin-top: 6px; font-size: 11px; }
.side-setting { margin: 0 8px; border-radius: 10px; }

/* ========== 面包屑 / Hero / 三步 ========== */
.crumb { font-size: 13px; color: var(--ink-3); padding: 14px 4px 4px; }
.crumb a { color: var(--ink-2); text-decoration: none; }
.crumb a:hover { color: var(--primary); }
.hero-home { padding: 18px 20px; }
.step-arrow { color: var(--ink-3); font-weight: 700; }

/* ========== 快捷入口 ========== */
.quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }
@media (max-width: 620px){ .quick-grid { grid-template-columns: 1fr; } }
.quick-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; text-decoration: none; color: var(--ink); box-shadow: var(--shadow); transition: .15s; }
.quick-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.quick-ico { font-size: 26px; }
.quick-t { font-weight: 800; font-size: 16px; margin-top: 8px; }
.quick-s { font-size: 12.5px; color: var(--ink-3); margin-top: 3px; }
.quick-primary { background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; border: none; }
.quick-primary .quick-s { color: rgba(255,255,255,.85); }

/* ========== 迷你驾驶舱 / 最近门店 ========== */
.dash-grid.mini { grid-template-columns: repeat(3, 1fr); margin-top: 16px; }
@media (max-width: 620px){ .dash-grid.mini { grid-template-columns: 1fr; } }
.card-more { float: right; font-size: 12.5px; color: var(--primary); text-decoration: none; font-weight: 600; }
.recent-list { display: flex; flex-direction: column; gap: 4px; }
.recent-item { display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: 10px; text-decoration: none; color: var(--ink); }
.recent-item:hover { background: var(--bg); }
.recent-item .ava { width: 36px; height: 36px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; font-size: 17px; }
.recent-item .info { flex: 1; min-width: 0; }
.recent-item .nm { font-weight: 700; font-size: 14px; }
.recent-item .sub { font-size: 12px; color: var(--ink-3); margin-top: 1px; }
.recent-item .arrow { color: var(--ink-3); }

/* ========== AI创作台 双栏布局 ========== */
.create-layout { display: grid; grid-template-columns: 420px 1fr; gap: 16px; align-items: start; }
@media (max-width: 920px){ .create-layout { grid-template-columns: 1fr; } }
.create-form { margin: 0; }
.create-result { min-width: 0; }

/* 行业模板栏 */
.industry-section { margin-bottom: 6px; }
.section-label { font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 7px; }
.ind-tag-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ind-tag { background: var(--bg); border: 1px solid var(--line); color: var(--ink-2); padding: 7px 14px; border-radius: 999px; font-size: 13.5px; font-weight: 600; cursor: pointer; user-select: none; }
.ind-tag:hover { border-color: var(--primary); color: var(--primary); }
.ind-tag.on { background: var(--primary); color: #fff; border-color: var(--primary); }
.more-btn { display: inline-block; margin-top: 8px; font-size: 12.5px; color: var(--primary); cursor: pointer; font-weight: 600; }
.ind-low { margin-top: 8px; }

/* 折叠表单分区 */
.form-sec { border: 1px solid var(--line); border-radius: 12px; margin-top: 12px; overflow: hidden; background: #fff; }
.form-sec-head { padding: 11px 14px; font-weight: 700; font-size: 14px; cursor: pointer; user-select: none; background: #fafbfc; display: flex; align-items: center; gap: 8px; }
.form-sec-body { padding: 12px 14px; border-top: 1px solid var(--line); }
.req { color: var(--bad); font-size: 12px; font-weight: 700; }
.opt { color: var(--ink-3); font-size: 12px; font-weight: 600; }
.form-hint { font-size: 12px; color: var(--ink-3); background: #f6f8fa; border-radius: 8px; padding: 7px 10px; margin-bottom: 10px; }
.btn-block { width: 100%; margin-top: 14px; }

/* Tab 结果区 */
.tab { padding: 8px 13px; border-radius: 10px; font-size: 13.5px; font-weight: 600; color: var(--ink-2); cursor: pointer; white-space: nowrap; }
.tab.on { background: var(--primary); color: #fff; }
.tab-pane { display: none; }
.tab-pane.on { display: block; }

/* 空态 */
.empty-state { background: #fff; border: 1px dashed var(--line); border-radius: var(--radius); padding: 48px 20px; text-align: center; color: var(--ink-3); font-size: 14px; }
.empty-ico { font-size: 38px; margin-bottom: 10px; }

/* ========== 门店 / 爆款 / 历史 工具栏 ========== */
.store-toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.tool-search { flex: 1; min-width: 180px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 14px; background: #fff; }
.tool-sel { padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 14px; background: #fff; }

/* 我的门店卡片 */
.store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.store-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px; box-shadow: var(--shadow); }
.store-card-top { display: flex; align-items: center; gap: 10px; }
.store-card-top .ava { width: 40px; height: 40px; border-radius: 11px; background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; font-size: 19px; }
.store-card-top .info { flex: 1; min-width: 0; }
.store-card-top .nm { font-weight: 700; font-size: 15px; }
.store-card-top .sub { font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.weight-pill { font-size: 11.5px; font-weight: 700; background: var(--primary-soft); color: var(--primary); border: 1px solid var(--primary); border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.store-card-acts { display: flex; gap: 8px; margin-top: 12px; }
.store-card-acts .btn { flex: 1; }

/* 爆款库卡片 */
.hot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.hot-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px; box-shadow: var(--shadow); }
.hot-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.hot-type { font-size: 12px; color: var(--ink-3); margin-left: auto; }
.hot-title { font-weight: 700; font-size: 15px; line-height: 1.5; }
.hot-excerpt { font-size: 13px; color: var(--ink-2); margin-top: 6px; line-height: 1.7; max-height: 66px; overflow: hidden; }
.hot-ind { font-size: 12px; color: var(--primary); margin-top: 8px; font-weight: 600; }

/* 历史方案卡片 */
.history-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.history-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px; box-shadow: var(--shadow); }
.history-top { display: flex; align-items: center; gap: 8px; }
.hist-dir { font-size: 12.5px; color: var(--primary); font-weight: 600; }
.hist-time { font-size: 12px; color: var(--ink-3); margin-left: auto; }
.hist-shop { font-weight: 700; font-size: 15px; margin-top: 8px; }
.hist-ind { font-size: 13px; color: var(--ink-3); font-weight: 400; }
.hist-preview { font-size: 13px; color: var(--ink-2); margin-top: 6px; line-height: 1.7; max-height: 60px; overflow: hidden; }
.history-acts { display: flex; gap: 8px; margin-top: 12px; }
.history-acts .btn { flex: 1; }

/* 小红书多版本卡片 */
.xhs-card { border: 1px solid var(--line, #e3e3e8); border-radius: 12px; padding: 10px 12px; margin: 10px 0; background: #fff; }
.xhs-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.xhs-style { font-weight: 700; color: var(--brand, #b5651d); font-size: 13px; }
.xhs-card .ip-card { margin: 6px 0; }

/* 图谱检索结果可点 + 语义标记 */
.kg-res-item { cursor: pointer; }
.kg-res-item:hover { background: rgba(181,101,29,.08); }
.kg-sem { color: var(--brand, #b5651d); font-weight: 600; border: 1px solid currentColor; border-radius: 999px; padding: 1px 8px; font-size: 11px; }

/* ========== 口播稿拍摄单 / 分镜表（桌面表格 + 移动端卡片化）========== */
.sb-sel {
  flex: 1 1 130px; max-width: 170px; font-size: 13.5px; padding: 7px 10px;
  border-radius: 10px; border: 1.5px solid var(--line); background: #fff; color: var(--ink);
}
.sb-table { border-collapse: collapse; width: 100%; font-size: 13px; }
.sb-table th, .sb-table td { border: 1px solid var(--line); padding: 8px 9px; text-align: left; vertical-align: top; }
.sb-table thead th {
  background: var(--primary-soft); color: var(--primary); font-weight: 700;
  white-space: nowrap; position: sticky; top: 0; z-index: 1;
}
.sb-table tbody tr:nth-child(even) { background: #fbfcfe; }
.sb-cell { color: var(--ink-2); line-height: 1.6; }
.sb-script { white-space: normal; line-height: 1.7; color: var(--ink); font-size: 13px; }
.rs-edit { width: 100%; min-height: 58px; font-size: 13px; padding: 8px; border-radius: 10px; border: 1.5px solid var(--line); background: #fbfcfe; font-family: inherit; }
.rs-edit:focus { outline: none; border-color: var(--primary); background: #fff; }

/* 窄屏（手机）：10 列表格 → 每张口播稿一张卡片，字段带标签前置，真事落点可编辑、已拍可勾 */
@media (max-width: 640px) {
  .sb-table, .sb-table tbody, .sb-table tr, .sb-table td { display: block; width: 100%; }
  .sb-table thead { display: none; }
  .sb-table tbody { display: block; }
  .sb-table tr {
    background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--primary);
    border-radius: 14px; padding: 6px 12px; margin-bottom: 12px; box-shadow: var(--shadow);
  }
  .sb-table tr:nth-child(even) { background: #fff; }
  .sb-table td {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 7px 0; border: none; border-bottom: 1px dashed var(--line); font-size: 13.5px;
  }
  .sb-table td:last-child { border-bottom: none; }
  .sb-table td::before {
    content: attr(data-label); flex: 0 0 74px; font-weight: 700; color: var(--ink-2); font-size: 12.5px;
    padding-top: 1px;
  }
  .sb-table td.sb-real { flex-direction: column; align-items: stretch; gap: 4px; }
  .sb-table td.sb-real::before { margin-bottom: 1px; }
  .sb-table td.sb-real .rs-edit { width: 100%; }
  .sb-table td[data-label="已拍"] { justify-content: flex-start; }
  .sb-table td[data-label="已拍"] input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--primary); flex: 0 0 auto; }
  .sb-sel { flex: 1 1 100%; max-width: 100%; }
}

/* 知识图谱：移动端允许横向平移（图本身不缩放，避免节点挤压） */
@media (max-width: 640px) {
  .kg-svg { min-width: 640px; }
  .kg-graph-scroll { -webkit-overflow-scrolling: touch; }
}

/* ========== 统一精品内容生成 + 作品库优化闭环 ========== */
.prod-card { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin: 10px 0; background: #fff; }
.prod-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.prod-tag { font-size: 12px; font-weight: 700; color: #fff; padding: 2px 9px; border-radius: 20px; white-space: nowrap; }
.prod-douyin { background: #2b2b2b; }
.prod-shipinhao { background: #1aad19; }
.prod-xhs { background: #ff2e4d; }
.prod-src { background: #6b4ea0; } /* 来源标签：拍摄生产台 / 口播稿 */
.src-filter { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 10px; }
.src-filter-lbl { font-size:13px; color:var(--ink-3); font-weight:600; }
.src-btn { border:1px solid var(--line); background:#fff; color:var(--ink-2); border-radius:999px; padding:4px 12px; font-size:12.5px; cursor:pointer; }
.src-btn.active { background:#6b4ea0; color:#fff; border-color:#6b4ea0; }
.prod-title { font-weight: 700; color: #2b2b2b; font-size: 15px; }
.prod-saved { font-size: 11px; color: #1aad19; margin-left: auto; }
.prod-badge { font-size: 11px; color: #b8860b; background: #fff7e0; border: 1px solid #f0d98a; padding: 1px 7px; border-radius: 20px; }
.prod-sub { font-size: 13px; color: #444; margin: 5px 0; line-height: 1.6; }
.prod-sub b { color: #6b3f1d; }
.prod-sec { background: #faf7f1; border: 1px solid #efe6d6; border-radius: 9px; padding: 9px 11px; margin: 8px 0; }
.prod-sec-h { font-weight: 700; color: #6b3f1d; font-size: 13px; margin-bottom: 6px; }
.prod-say { white-space: pre-wrap; font-size: 13px; color: #333; line-height: 1.7; background: #fff; border: 1px dashed #e2d6c2; border-radius: 8px; padding: 8px 10px; }
.prod-ul { margin: 4px 0; padding-left: 18px; }
.prod-ul li { font-size: 13px; color: #444; margin: 2px 0; }
.prod-actions { display: flex; gap: 8px; margin-top: 10px; }

/* 合规自检 footer（双盾/守则/AI标注/禁词） */
.prod-cmp { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.cmp-shield { font-size: 12.5px; line-height: 1.55; color: #9a7400; background: #fff8e1; border: 1px solid #f3e1a0; border-radius: 7px; padding: 7px 9px; }
.cmp-rule { font-size: 12.5px; color: #6b3f1d; font-weight: 600; }
.cmp-ai { font-size: 12.5px; color: #555; }
.cmp-bad { font-size: 12.5px; color: #d6453d; background: #fdecea; border: 1px solid #f4c4c0; border-radius: 7px; padding: 7px 9px; }
.cmp-warn { font-size: 12.5px; color: #b9770a; background: #fff3e0; border: 1px solid #f4d6a8; border-radius: 7px; padding: 7px 9px; }
.cmp-word { display: inline-block; background: rgba(0,0,0,.06); border-radius: 4px; padding: 0 5px; margin: 0 2px; font-weight: 600; }

/* 作品库反馈表单 */
.prod-fb { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 10px; }
.prod-fb-h { font-size: 13px; font-weight: 700; color: #6b3f1d; margin-bottom: 8px; }
.fb-url, .fb-text { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-size: 13px; font-family: inherit; margin-bottom: 8px; }
.fb-text { min-height: 64px; resize: vertical; }
.mtr-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 8px; }
.mtr { display: flex; flex-direction: column; font-size: 12px; color: #666; gap: 3px; }
.mtr-in { border: 1px solid var(--line); border-radius: 7px; padding: 6px 8px; font-size: 13px; font-family: inherit; width: 100%; box-sizing: border-box; }
.prod-fb-actions { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 640px) {
  .mtr-row { grid-template-columns: repeat(2, 1fr); }
}

/* 真实经历素材输入（解决「待你填」填什么） */
#pf_realstory { width: 100%; box-sizing: border-box; min-height: 64px; resize: vertical;
  border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; font-size: 13px; font-family: inherit; line-height: 1.6; }

/* 一键三平台：生成结果三卡同屏网格 */
#genResult { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
#genResult > .prod-card { margin: 0; }
#genResult > .empty { grid-column: 1 / -1; }
@media (max-width: 980px) { #genResult { grid-template-columns: 1fr; } }

/* 工作流指引条：读文案→拍→剪→发→回看填数据 */
.flow-strip { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.flow-step { flex: 1 1 150px; background: linear-gradient(135deg, #fbf4e9, #f3ead9);
  border: 1px solid #ecdfc8; border-radius: 10px; padding: 9px 11px; }
.flow-step b { display: block; color: #6b3f1d; font-size: 13.5px; margin-bottom: 2px; }
.flow-step span { font-size: 12px; color: #8a6d3b; }

/* 轻量驾驶舱（P2） */
.prod-dash { display:flex; flex-wrap:wrap; align-items:center; gap:14px; background:linear-gradient(135deg,#fbf4e9,#f3ead9); border:1px solid #ecdfc8; border-radius:10px; padding:12px 14px; margin:10px 0; }
.db-k { display:flex; flex-direction:column; align-items:center; min-width:64px; }
.db-k b { font-size:22px; color:#6b3f1d; font-weight:800; }
.db-k span { font-size:12px; color:#8a6d3b; }
.db-top { width:100%; font-size:12.5px; color:#8a6d3b; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.db-chip { background:#fff; border:1px solid #ecdfc8; border-radius:10px; padding:2px 8px; color:#6b3f1d; }

/* 每日数据时间序列（P1-1） */
.prod-daily { border-top:1px dashed var(--line); margin-top:10px; padding-top:10px; }
.prod-daily-h { font-size:13px; font-weight:700; color:#6b3f1d; margin-bottom:8px; }
.dy-bars { display:flex; align-items:flex-end; gap:3px; height:44px; margin-bottom:8px; overflow-x:auto; }
.dy-bar { flex:0 0 6px; background:linear-gradient(180deg,#c79a5b,#8a5a2b); border-radius:3px 3px 0 0; min-width:6px; }
.dy-list { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.dy-row { display:flex; gap:6px; align-items:center; font-size:12px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:3px 8px; color:#555; }
.dy-d { color:#8a6d3b; font-weight:600; }
.dy-v { color:#c0392b; } .dy-c { color:#d4770a; } .dy-f { color:#3a7a2a; }
.dy-form { display:flex; flex-wrap:wrap; gap:6px; align-items:flex-end; }
.dy-lbl { display:flex; flex-direction:column; font-size:11px; color:#888; gap:2px; }
.dy-in { width:54px; border:1px solid var(--line); border-radius:6px; padding:5px 6px; font-size:13px; font-family:inherit; }
.dy-date { border:1px solid var(--line); border-radius:6px; padding:5px 6px; font-size:13px; font-family:inherit; }
@media (max-width:640px){ .dy-in { width:46px; } .dy-bars { height:38px; } }


