/* ===== 旅伴AI 前端包 · 应用层补充样式（Vistascape 风格） =====
   依托 css/style.css（设计系统）+ css/skin.css（--vs-* 皮肤令牌）；
   本文件只放页面级布局与新增组件（登录 Hero / 统计条 / 表单网格 / 进度 / 对话流 / 徽章）。 */

/* ---------- 登录 Hero（Vistascape 定稿视觉） ---------- */
body.auth{min-height:100vh;background:#0B1220;color:#F8FAFC;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.hero{position:relative;width:100%;min-height:100vh;overflow:hidden;background:#0B1220}
.hero-bg{position:absolute;inset:0;z-index:1;background-image:linear-gradient(90deg,rgba(11,18,32,.92) 0%,rgba(11,18,32,.6) 45%,rgba(11,18,32,.25) 72%,rgba(11,18,32,.05) 100%),url('/assets/hero-background.jpg');background-size:cover;background-position:center}
.hero .brand{position:absolute;top:26px;left:8%;z-index:10;display:flex;align-items:center;gap:10px}
.hero .brand .logo{font-size:17px;font-weight:800;color:#fff;letter-spacing:.3px}
.hero .brand .mark{background:linear-gradient(135deg,#C9A25D,#A87D38)}
.hero-content{position:absolute;left:8%;top:50%;transform:translateY(-50%);z-index:10;max-width:620px;width:calc(100% - 64px);padding-right:24px}
.hero-content .tagline{margin:0 0 18px;font-size:11px;font-weight:600;letter-spacing:.18em;color:#F2A173}
.hero-content .headline{margin:0 0 16px;font-family:"Playfair Display",Georgia,"Songti SC","SimSun",serif;font-size:clamp(38px,4.6vw,64px);line-height:1.14;font-weight:500;color:#fff}
.hero-content .headline em{font-style:italic;color:#F2A173}
.hero-content .subheadline{margin:0 0 30px;max-width:450px;font-size:16px;line-height:1.7;color:rgba(248,250,252,.78)}
.login-form{display:flex;align-items:center;width:100%;max-width:560px;height:58px;padding:7px 7px 7px 22px;margin-bottom:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:9999px;backdrop-filter:blur(8px)}
.login-form:focus-within{border-color:rgba(242,161,115,.6);box-shadow:0 0 0 3px rgba(242,161,115,.18)}
.login-form input{flex:1 1 42%;min-width:0;height:100%;padding:0;border:none;outline:none;background:transparent;font-size:14px;color:#fff}
.login-form input::placeholder{color:rgba(255,255,255,.5)}
.login-form .div{flex:0 0 1px;width:1px;height:24px;background:rgba(255,255,255,.15);margin:0 14px}
.login-form .login-btn{flex:0 0 auto;height:44px;padding:0 26px;font-size:14px;font-weight:600;letter-spacing:.06em;color:#0B1220;background:#F2A173;border:none;border-radius:9999px;cursor:pointer;transition:filter .2s ease}
.login-form .login-btn:hover{filter:brightness(1.08)}
.login-form .login-btn:disabled{opacity:.6;cursor:wait}
.hero .social-proof{display:flex;align-items:center;gap:12px}
.hero .avatars{display:flex;padding-left:4px}
.hero .avatars span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:-10px;font-size:12px;font-weight:600;color:#fff;border:2px solid #fff;border-radius:9999px}
.hero .avatars span:first-child{margin-left:0}
.hero .proof-text{margin:0;font-size:13.5px;color:rgba(248,250,252,.72)}
@media(max-width:768px){
  .hero .brand{left:6%}
  .hero-content{left:6%;width:calc(100% - 48px);padding-right:0}
  .hero-bg{background-image:linear-gradient(180deg,rgba(11,18,32,.55) 0%,rgba(11,18,32,.92) 78%),url('/assets/hero-background.jpg')}
  .login-form{flex-direction:column;height:auto;align-items:stretch;gap:10px;border-radius:26px;padding:14px 16px}
  .login-form input{height:40px}
  .login-form .div{display:none}
  .login-form .login-btn{width:100%}
}

/* 运维台登录（恒暗面板） */
body.auth-ops{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0F172A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.ops-panel{width:min(420px,calc(100% - 40px));background:#111C33;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:36px 34px;color:#E2E8F0;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.ops-panel .logo{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:#fff;font-weight:800}
.ops-panel .mark{background:linear-gradient(135deg,#C9A25D,#A87D38)}
.ops-panel h1{margin:14px 0 6px;font-size:20px;color:#fff}
.ops-panel p{margin:0 0 24px;font-size:13px;color:#8FA0BC}
.ops-panel .field{margin-bottom:14px}
.ops-panel label{display:block;font-size:12px;color:#8FA0BC;margin-bottom:6px}
.ops-panel input{width:100%;height:42px;padding:0 14px;border-radius:10px;border:1px solid rgba(148,163,184,.25);background:rgba(15,23,42,.6);color:#E2E8F0;font-size:14px;outline:none;box-sizing:border-box}
.ops-panel input:focus{border-color:#C9A25D}
.ops-panel button{width:100%;height:44px;margin-top:6px;border:none;border-radius:10px;background:linear-gradient(135deg,#C9A25D,#A87D38);color:#fff;font-size:14.5px;font-weight:700;cursor:pointer}
.ops-panel button:disabled{opacity:.6;cursor:wait}
.ops-panel .back{display:block;margin-top:18px;text-align:center;font-size:12.5px;color:#8FA0BC;text-decoration:none}

/* ---------- 前台导航（f-nav） ---------- */
body.app-front{background:var(--f-bg,#F8FAFA)}
.f-nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:22px;padding:0 26px;height:60px;background:var(--f-nav,#fff);border-bottom:1px solid var(--f-line,#DDE3E3)}
.f-nav .logo{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--f-brand,#143D3D);text-decoration:none}
.f-nav .mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#C9A25D,#A87D38);color:#143D3D;font-size:14px}
.f-tabs{display:flex;gap:6px}
.f-tabs a{padding:20px 2px 17px;margin:0 10px;font-size:13.5px;color:var(--f-text-sub);text-decoration:none;border-bottom:2.5px solid transparent}
.f-tabs a:hover{color:var(--f-brand)}
.f-tabs a.on{color:var(--f-brand);font-weight:700;border-bottom-color:var(--f-brand)}
.f-user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--f-text-sub)}
.f-user .avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#C9A25D,#A87D38);color:#fff;font-size:13px;font-weight:700}
.f-user .u-menu-wrap{position:relative}
.f-user .u-menu{position:absolute;right:0;top:38px;min-width:150px;background:var(--f-card,#fff);border:1px solid var(--f-line);border-radius:12px;box-shadow:0 14px 40px rgba(20,26,26,.14);padding:6px;display:none}
.f-user .u-menu.open{display:block}
.f-user .u-menu a,.f-user .u-menu button{display:block;width:100%;text-align:left;padding:9px 12px;font-size:13px;color:var(--f-text);text-decoration:none;background:none;border:none;border-radius:8px;cursor:pointer;font-family:inherit}
.f-user .u-menu a:hover,.f-user .u-menu button:hover{background:var(--f-soft,#F0F3F3)}
.pts-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#8A6329;background:#F5EAD0;border:1px solid #EAD3A8;border-radius:999px;padding:5px 12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pts-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#C9A25D}
[data-theme="dark"] .pts-badge{color:#D9BC86;background:rgba(138,99,41,.22);border-color:rgba(217,188,134,.32)}

/* ---------- 统计条 / 卡片网格 ---------- */
.wb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.wb-stat{background:var(--f-card,#fff);border:1px solid var(--f-line);border-radius:16px;padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.wb-stat .n{font-size:25px;font-weight:800;color:#8A6329;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
[data-theme="dark"] .wb-stat .n{color:#D9BC86}
.wb-stat .l{font-size:12px;color:var(--f-text-sub)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:960px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* ---------- 表单 ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}}
.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--f-text-sub);margin-bottom:6px}
.field label .req{color:#A83939}
.field .hint{font-size:11.5px;color:var(--f-text-sub);opacity:.8;margin-top:4px}
.chip-group{display:flex;flex-wrap:wrap;gap:8px}
.chip-group .chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--f-line);border-radius:999px;background:var(--f-card);font-size:13px;color:var(--f-text-sub);cursor:pointer;user-select:none}
.chip-group .chip.on{background:#143D3D;border-color:#143D3D;color:#fff;font-weight:600}
[data-theme="dark"] .chip-group .chip.on{background:#1D4545;border-color:#2A5A5A}

/* ---------- 进度 / 任务 ---------- */
.progress{height:8px;border-radius:999px;background:var(--f-soft,#F0F3F3);overflow:hidden}
.progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2A6B5E,#3F939B);transition:width .4s ease}

/* ---------- AI 对话流（08） ---------- */
.chat-flow{display:flex;flex-direction:column;gap:12px;max-height:420px;overflow:auto;padding:4px}
.chat-msg{max-width:82%;padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.chat-msg.user{align-self:flex-end;background:#143D3D;color:#fff;border-bottom-right-radius:4px}
.chat-msg.ai{align-self:flex-start;background:var(--f-card,#fff);border:1px solid var(--f-line);border-bottom-left-radius:4px}
.chat-msg.sys{align-self:center;font-size:12px;color:var(--f-text-sub);background:var(--f-soft);border-radius:999px;padding:5px 14px}

/* ---------- 徽章 / 状态 ---------- */
.tag-ok{background:rgba(42,107,94,.12);color:#2A6B5E;border:1px solid rgba(42,107,94,.3)}
[data-theme="dark"] .tag-ok{color:#8FD0B4;background:rgba(63,191,143,.12);border-color:rgba(63,191,143,.35)}
.tag-warn{background:rgba(138,99,41,.12);color:#8A6329;border:1px solid rgba(138,99,41,.3)}
[data-theme="dark"] .tag-warn{color:#E8B34B}
.tag-err{background:rgba(168,57,57,.1);color:#A83939;border:1px solid rgba(168,57,57,.28)}
[data-theme="dark"] .tag-err{color:#E28C8C}
.empty{padding:34px 16px;text-align:center;color:var(--f-text-sub);font-size:13px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.toolbar .spacer{flex:1}

/* ---------- 海报页占位卡 ---------- */
.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.poster-card{aspect-ratio:3/5.34;border-radius:14px;border:1px solid var(--f-line);background:linear-gradient(160deg,#E7F2EE 0%,#CBE3D8 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#143D3D;font-size:12px;padding:10px;text-align:center;word-break:break-all}
[data-theme="dark"] .poster-card{background:linear-gradient(160deg,#0F2929 0%,#143D3D 100%);color:#C2D8D8}
.poster-card b{font-size:13px}

/* ---------- 主题切换浮钮 ---------- */
.theme-fab{position:fixed;right:18px;bottom:18px;z-index:60;width:38px;height:38px;border-radius:50%;border:1px solid var(--f-line);background:var(--f-card,#fff);color:var(--f-text-sub);font-size:15px;cursor:pointer;box-shadow:0 8px 24px rgba(20,26,26,.16)}

/* ---------- 补充：小号按钮（后台顶栏/行操作用） ---------- */
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:9px}
.btn-gold{background:linear-gradient(135deg,#C9A25D,#A87D38);color:#fff;border:none;box-shadow:0 4px 20px rgba(201,162,93,.25);font-weight:700}
.btn-gold:hover{filter:brightness(1.06)}

/* ---------- 补充：单元格省略（表格长值截断） ---------- */
.cell-ell{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}

/* ---------- 运维台·数据管理：数据类型 TAB（胶囊形态，参照 plan.html 版本 tabs） ---------- */
.dtype-tabs{display:flex;gap:8px;background:var(--a-card);border:1px solid var(--a-line);border-radius:13px;padding:6px;width:fit-content;max-width:100%;box-shadow:var(--shadow-sm);margin-bottom:14px}
.dtype-tabs button{
  padding:8px 17px;border-radius:9px;border:1px solid transparent;background:transparent;
  font-weight:700;font-size:13.5px;color:var(--a-text-sub);cursor:pointer;font-family:inherit;
  white-space:nowrap;flex:none;transition:.16s;
}
.dtype-tabs button:hover{color:var(--f-brand-2)}
.dtype-tabs button.on{background:var(--f-brand-grad);color:#fff;box-shadow:0 4px 12px var(--f-glow)}
@media(max-width:560px){
  .dtype-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;width:auto} /* 手机端横向滚动 */
}

/* ---------- 运维台·模型管理：模型配置卡片（全宽两行式，替代 9 列表格治错位/溢出） ---------- */
.model-cards{display:flex;flex-direction:column;gap:12px}
.model-card{border:1px solid var(--a-line);border-radius:12px;background:var(--a-card);padding:13px 16px;min-width:0;transition:border-color .15s}
.model-card:hover{border-color:var(--a-accent)}
.model-card .m-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.model-card .m-name{font-size:14px;font-weight:700}
.model-card .m-sub{display:flex;align-items:center;gap:10px 16px;margin-top:9px;flex-wrap:wrap}
.model-card .m-info{flex:1;min-width:220px;display:grid;gap:3px}
.model-card .m-mono{font-family:var(--font-mono,monospace);font-size:11.5px;color:var(--a-text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-card .m-mono .m-k{opacity:.75;margin-right:6px}
.model-card .m-acts{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
@media(max-width:560px){
  .model-card .m-info{min-width:100%} /* 信息块整行占满 → 操作按钮自然换行 */
  .model-card .m-acts{margin-left:0}
}

/* ---------- 工作台·快速开始横条 ---------- */
.wb-quick{margin-bottom:16px;padding:12px 16px}
.wb-quick-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--f-text)}
.wb-quick-link i{flex:none;font-style:normal;width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;background:var(--f-soft,#F0F3F3);color:var(--f-brand)}
.wb-quick-link b{display:block;font-size:13.5px}
.wb-quick-link small{display:block;font-size:11.5px;color:var(--f-text-sub);font-weight:400;margin-top:2px}
.wb-quick-link .go{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--f-brand);white-space:nowrap}
@media(max-width:560px){.wb-quick-link .go{display:none}}

/* ---------- 工作台·我的方案大区块（桌面表格，行高 ≥52px；≤860px 降级大卡片纵排） ---------- */
.wb-tbl{width:100%;border-collapse:collapse;font-size:13px}
.wb-tbl th{padding:10px 12px;text-align:left;font-size:12px;font-weight:600;color:var(--f-text-sub);border-bottom:1px solid var(--f-line);white-space:nowrap}
.wb-tbl td{padding:14px 12px;border-bottom:1px solid var(--f-line);vertical-align:middle}
.wb-tbl tbody tr:last-child td{border-bottom:none}
.wb-tbl tbody tr{transition:background .15s ease}
.wb-tbl tbody tr:hover{background:var(--f-soft)}
.wb-name{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--f-text);min-width:0}
.wb-name i{flex:none;font-style:normal;width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:rgba(20,61,61,.1);color:var(--f-brand)}
[data-theme="dark"] .wb-name i{background:rgba(201,162,93,.16);color:#D9BC86}
.wb-name b{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}
.wb-name small{display:block;font-size:11.5px;color:var(--f-text-sub);margin-top:2px}
.wb-quote{font-weight:800;color:#8A6329;white-space:nowrap;font-variant-numeric:tabular-nums}
[data-theme="dark"] .wb-quote{color:#D9BC86}
.wb-time{font-size:12.5px;color:var(--f-text-sub);white-space:nowrap}
.mini-link{margin-right:10px;font-size:12.5px;font-weight:600;color:var(--f-brand);text-decoration:none;white-space:nowrap}
.mini-link:hover{text-decoration:underline}
@media(max-width:860px){
  .wb-tbl thead{display:none}
  .wb-tbl,.wb-tbl tbody,.wb-tbl tr,.wb-tbl td{display:block;width:100%}
  .wb-tbl tbody tr{border:1px solid var(--f-line);border-radius:14px;padding:4px 14px;margin-bottom:12px}
  .wb-tbl tbody tr:hover{background:transparent}
  .wb-tbl td{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed var(--f-line)}
  .wb-tbl td:last-child{border-bottom:none}
  .wb-tbl td::before{content:attr(data-label);flex:none;font-size:12px;color:var(--f-text-sub)}
  .wb-name b{max-width:none}
  .wb-quote,.wb-time{white-space:normal}
}

/* ---------- 全国省-市-县三级级联选择器（单框形态，V4.1，深浅色经 --f-* 令牌自适应） ---------- */
.rp-wrap{position:relative}
.rp-input{cursor:pointer;width:100%}
.rp-wrap.rp-has .rp-input{cursor:text}
.rp-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;line-height:16px;text-align:center;border-radius:50%;font-size:13px;color:var(--f-text-sub);cursor:pointer;user-select:none;display:none}
.rp-clear:hover{background:var(--f-soft);color:var(--f-text)}
.rp-wrap.rp-has .rp-clear{display:block}
.rp-panel{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:35;max-height:280px;overflow:auto;background:var(--f-card,#fff);border:1px solid var(--f-line);border-radius:10px;box-shadow:0 14px 40px rgba(20,26,26,.16);padding:4px;display:none}
.rp-panel.open{display:block}
.rp-crumb{display:block;width:100%;text-align:left;padding:7px 10px;margin:2px 0;font-size:12px;color:var(--f-brand);background:var(--f-soft);border:0;border-radius:7px;cursor:pointer;font-family:inherit}
.rp-crumb-static{color:var(--f-text-sub);cursor:default}
.rp-crumb:not(.rp-crumb-static):hover{filter:brightness(.96)}
.rp-opt{display:block;width:100%;text-align:left;padding:8px 10px;font-size:13px;color:var(--f-text);background:transparent;border:0;border-radius:7px;cursor:pointer;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-opt:hover{background:var(--f-soft)}
.rp-opt.on{background:var(--f-soft);color:var(--f-brand);font-weight:700}
.rp-skip{color:var(--f-text-sub);font-style:italic;margin-top:2px;border-top:1px dashed var(--f-line);border-radius:0}
.rp-empty{display:block;padding:10px 8px;font-size:12px;color:var(--f-text-sub)}

/* ---------- 日期选择器（V4.2 自研弹层，替代原生 date 分段编辑） ---------- */
.dp-wrap{position:relative;display:block}
.dp-panel{position:absolute;top:calc(100% + 5px);left:0;z-index:40;width:252px;background:var(--f-card,#fff);border:1px solid var(--f-line);border-radius:12px;box-shadow:0 14px 40px rgba(20,26,26,.18);padding:10px;display:none;user-select:none}
.dp-panel.open{display:block}
.dp-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 8px}
.dp-head b{font-size:13.5px;color:var(--f-text)}
.dp-nav{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--f-text);font-size:16px;cursor:pointer}
.dp-nav:hover{background:var(--f-soft)}
.dp-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:var(--f-text-sub);padding-bottom:4px}
.dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-cell{height:30px;border:0;border-radius:7px;background:transparent;color:var(--f-text);font-size:12.5px;cursor:pointer;font-family:inherit}
.dp-cell:hover{background:var(--f-soft)}
.dp-cell.dp-blank{cursor:default;pointer-events:none}
.dp-cell.dp-off{color:var(--f-text-sub);opacity:.35;cursor:not-allowed}
.dp-cell.dp-on{background:var(--f-brand);color:#fff;font-weight:700}
.dp-cell.dp-today{box-shadow:inset 0 0 0 1.5px var(--f-brand)}
.dp-foot{display:flex;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px dashed var(--f-line);margin-top:6px}
.dp-btn{flex:1;border:0;border-radius:7px;background:var(--f-soft);color:var(--f-text);font-size:12px;padding:6px 0;cursor:pointer;font-family:inherit}
.dp-btn:hover{filter:brightness(.96)}

/* ---------- 海报参考模板卡片（第一张=不使用参考模板；选中金描边+上移） ---------- */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tpl-card{border:1px solid var(--f-line);border-radius:14px;background:var(--f-card);padding:8px;cursor:pointer;user-select:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.tpl-card:hover{border-color:var(--f-brand)}
.tpl-card:focus-visible{outline:2px solid var(--f-brand);outline-offset:2px}
.tpl-card.rec{border-color:rgba(201,162,93,.55)}
.tpl-card.on{border-color:#C9A25D;box-shadow:0 6px 18px rgba(201,162,93,.28);transform:translateY(-3px)}
.tpl-thumb{position:relative;aspect-ratio:3/4;border-radius:9px;overflow:hidden;background:var(--f-soft)}
.tpl-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.tpl-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(160deg,#E7F2EE 0%,#CBE3D8 100%);color:#143D3D;text-align:center}
[data-theme="dark"] .tpl-ph{background:linear-gradient(160deg,#0F2929 0%,#143D3D 100%);color:#C2D8D8}
.tpl-ph b{font-size:16px;font-weight:800}
.tpl-ph small{font-size:11px;opacity:.75}
.tpl-rec{position:absolute;top:8px;left:8px;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#C9A25D,#A87D38);border-radius:999px;padding:3px 9px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.tpl-ready{position:absolute;top:8px;right:8px;left:auto;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2A6B5E,#1E4F45);border-radius:999px;padding:3px 9px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.tpl-match{position:absolute;top:34px;right:8px;left:auto;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#3E7EA6,#2A5E80);border-radius:999px;padding:3px 9px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.tpl-name{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--f-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tpl-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.tpl-tags span{font-size:10.5px;color:var(--f-text-sub);background:var(--f-soft);border-radius:999px;padding:2px 7px}

/* ---------- 海报页左右分栏（>960px：左=配置固定 400px / 右=任务与产出占余宽，各自独立滚动；≤960px 纵排） ---------- */
.poster-split{display:grid;grid-template-columns:400px 1fr;gap:18px;align-items:start}
.poster-left,.poster-right{max-height:calc(100vh - 140px);overflow:auto;min-width:0}
@media(max-width:960px){
  .poster-split{grid-template-columns:1fr}
  .poster-left,.poster-right{max-height:none;overflow:visible}
}
/* 右栏空态引导卡（无历史任务、未提交时居中展示） */
.poster-empty{min-height:340px;display:flex;align-items:center;justify-content:center;text-align:center}
.poster-empty[hidden]{display:none} /* 显式兜底：类上 display:flex 会压过 UA 的 [hidden] */
.poster-empty-inner{max-width:380px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 12px}
.poster-empty-ico{width:54px;height:54px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;background:var(--f-soft,#F0F3F3);color:var(--f-brand);margin-bottom:4px}
.poster-empty-ico svg{width:27px;height:27px}
.poster-empty b{font-size:15px;color:var(--f-text)}
.poster-empty p{margin:0;font-size:13px;line-height:1.85;color:var(--f-text-sub)}

/* ---------- 工作台·快速开始三入口（新建方案 / 导入文档 / 文本复制——三种生成方案方式） ---------- */
.wb-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.wb-quick-grid .wb-quick{margin-bottom:0}
@media(max-width:1150px){.wb-quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.wb-quick-grid{grid-template-columns:1fr}}

/* ---------- AI 文档导入页（02）：大文本域 + 草稿条目行 ---------- */
.import-textarea{min-height:230px;line-height:1.8;font-size:13.5px}
.imp-sec{margin-top:18px;border-top:1px dashed var(--f-line);padding-top:14px}
.imp-sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.imp-sec-h label{font-size:13px;font-weight:600;color:var(--f-text-sub)}
.imp-add{font-size:12.5px;font-weight:600;color:var(--f-brand);cursor:pointer;padding:4px 9px;border-radius:7px;white-space:nowrap}
.imp-add:hover{background:var(--f-soft)}
.imp-row{display:grid;grid-template-columns:1fr 150px auto;gap:8px;margin-bottom:8px;align-items:center}
.imp-row .input{padding:9px 12px;font-size:13.5px}
.imp-none{font-size:12px;color:var(--f-text-sub);padding:5px 0}
@media(max-width:640px){.imp-row{grid-template-columns:1fr;gap:6px}}

/* Word / 文本共用导入确认（不对未报价项显示 0 元） */
.imp-confirm-fields{border:0;margin:0;padding:0;min-width:0}
.import-confirmation .field{display:block;min-width:0}
.import-confirmation .field>span{display:block;font-size:12.5px;font-weight:600;color:var(--f-text-sub);margin-bottom:6px}
.import-confirmation .input,.import-confirmation .select{width:100%;box-sizing:border-box}
.imp-confirm-status{padding:14px 16px;border:1px solid var(--f-line);border-radius:12px;background:var(--f-soft);color:var(--f-text);font-size:13px;line-height:1.8;margin:14px 0 18px;overflow-wrap:anywhere}
.imp-confirm-status p{margin:10px 0 0}.imp-confirm-status ul{margin:4px 0;padding-left:22px}
.imp-confirm-error{color:var(--f-danger,#A83939);background:var(--f-soft);border:1px solid currentColor;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7}
.imp-cost-row{border:1px solid var(--f-line);border-radius:12px;padding:14px;margin:10px 0;background:var(--f-card);min-width:0}
.imp-cost-row>.field{margin-bottom:10px}.imp-cost-row>.hint{margin-top:10px}
.import-confirmation .imp-sec-h h3{margin:0;font-size:14px;color:var(--f-text)}
.imp-source{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;background:var(--f-soft);color:var(--f-text-sub);padding:10px 12px;border-radius:8px;font:inherit;font-size:12px;line-height:1.8;margin:10px 0}
.import-confirmation summary{cursor:pointer;color:var(--f-text);font-size:13px}
[data-theme="dark"] .imp-confirm-error{color:#E28C8C}
