:root {
  --brand: #16a34a;
  --brand-dark: #15803d;
  --brand-deep: #14532d;
  --brand-light: #dcfce7;
  --brand-soft: #f0fdf4;
  --accent: #f59e0b;
  --accent-light: #fef3c7;
  --ink: #1f2937;
  --ink-soft: #374151;
  --muted: #6b7280;
  --line: #e5e7eb;
  --surface: #ffffff;
  --bg: #f7faf8;
  --danger: #dc2626;
  --info: #2563eb;
  --warning: #d97706;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.14);
  --radius: 14px;
  --radius-sm: 9px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--brand-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4 { line-height: 1.3; margin: 0 0 0.5em; font-weight: 700; }
p { margin: 0 0 1em; }

.container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 780px; }

/* —— 按钮 —— */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px; border-radius: 999px; border: none;
  font-size: 15px; font-weight: 600; cursor: pointer; font-family: inherit;
  transition: all .18s ease; text-decoration: none; line-height: 1.2;
}
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.btn-primary { background: var(--brand); color: #fff; box-shadow: 0 6px 18px rgba(22, 163, 74, .28); }
.btn-primary:hover { background: var(--brand-dark); }
.btn-ghost { background: #fff; color: var(--brand-dark); border: 1.5px solid var(--line); }
.btn-ghost:hover { border-color: var(--brand); background: var(--brand-soft); }
.btn-outline { background: transparent; color: var(--brand); border: 1.5px solid var(--brand); }
.btn-outline:hover { background: var(--brand-soft); }
.btn-lg { padding: 14px 30px; font-size: 16px; }
.btn-sm { padding: 7px 14px; font-size: 13px; }
.btn-danger { background: #fff; color: var(--danger); border: 1.5px solid #fecaca; }
.btn-danger:hover { background: #fef2f2; border-color: var(--danger); }
.btn-block { width: 100%; justify-content: center; }

/* —— 顶部导航 —— */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .86); backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 64px; }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 20px; color: var(--ink); }
.brand:hover { text-decoration: none; }
.brand-logo {
  width: 36px; height: 36px; border-radius: 10px; flex: none;
  background: linear-gradient(135deg, #22c55e, #0d9488);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px;
}
.brand small { display: block; font-size: 11px; color: var(--muted); font-weight: 500; }
.nav-links { display: flex; gap: 6px; }
.nav-links a {
  padding: 8px 16px; border-radius: 999px; color: var(--ink-soft);
  font-size: 14.5px; font-weight: 500; transition: all .15s;
}
.nav-links a:hover { background: var(--brand-soft); color: var(--brand-dark); text-decoration: none; }
.nav-links a.active { background: var(--brand-soft); color: var(--brand-dark); }

/* —— Hero —— */
.hero {
  position: relative; overflow: hidden;
  background: radial-gradient(1200px 500px at 20% -10%, #d3f9d8, transparent),
              radial-gradient(900px 500px at 90% 0%, #ccfbf1, transparent),
              var(--brand-soft);
  padding: 72px 0 60px;
}
.hero-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; }
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: 6px 14px; font-size: 13px; color: var(--brand-dark); font-weight: 600;
}
.hero h1 { font-size: 44px; letter-spacing: -0.5px; margin: 18px 0 14px; }
.hero h1 .hl { color: var(--brand); }
.hero p.lead { font-size: 18px; color: var(--ink-soft); max-width: 520px; }
.hero-actions { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 32px; margin-top: 40px; }
.hero-stat .num { font-size: 28px; font-weight: 800; color: var(--brand-dark); }
.hero-stat .label { font-size: 13px; color: var(--muted); }
.hero-visual {
  position: relative;
  background: #fff; border-radius: 20px; padding: 24px;
  box-shadow: var(--shadow-lg); border: 1px solid var(--line);
}
.hero-visual h3 { font-size: 15px; color: var(--muted); font-weight: 600; }
.hero-badge {
  position: absolute; top: -16px; right: 24px;
  background: var(--accent); color: #fff; font-weight: 700; font-size: 13px;
  padding: 6px 14px; border-radius: 999px; box-shadow: 0 6px 16px rgba(245, 158, 11, .4);
}

/* —— 区块 —— */
.section { padding: 72px 0; }
.section-alt { background: #fff; }
.section-head { text-align: center; max-width: 640px; margin: 0 auto 44px; }
.section-head .kicker { color: var(--brand-dark); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.section-head h2 { font-size: 32px; margin: 8px 0 12px; }
.section-head p { color: var(--muted); font-size: 16px; }
.section-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 40px; }
.section-top .section-head { margin: 0; text-align: left; }

/* —— 功能卡片 —— */
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 30px 26px; transition: all .2s ease; position: relative; overflow: hidden;
}
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #d1e7d8; }
.feature-icon {
  width: 52px; height: 52px; border-radius: 14px; font-size: 26px;
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.feature-card h3 { font-size: 20px; }
.feature-card p { color: var(--muted); font-size: 14.5px; }
.feature-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.tag {
  font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand-dark);
}
.tag-warm { background: var(--accent-light); color: #92400e; }

/* —— 测评列表 —— */
.assessment-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.assessment-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px; display: flex; flex-direction: column; gap: 12px; cursor: pointer;
  transition: all .18s;
}
.assessment-card:hover { border-color: var(--brand); box-shadow: var(--shadow); transform: translateY(-3px); }
.assessment-card .num-badge {
  width: 34px; height: 34px; border-radius: 10px; background: var(--brand-soft);
  color: var(--brand-dark); font-weight: 800; display: flex; align-items: center; justify-content: center;
}
.assessment-card h3 { font-size: 18px; margin: 0; }
.assessment-card .sub { color: var(--muted); font-size: 13.5px; }
.assessment-card .meta { display: flex; gap: 12px; font-size: 12.5px; color: var(--muted); }
.assessment-card .cta { margin-top: auto; color: var(--brand-dark); font-weight: 600; font-size: 14px; }

/* —— 直播卡片 —— */
.live-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.live-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; cursor: pointer; transition: all .18s;
}
.live-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.live-cover {
  height: 160px; position: relative; overflow: hidden;
}
.video-cover-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:linear-gradient(145deg,#e7f0ec,#cbded5);color:#527065;font-size:12px;font-weight:700;letter-spacing:.16em}.video-cover-placeholder svg{width:46px;height:46px;fill:none;stroke:#78998b;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cover-video{background:#0b1713;pointer-events:none}
.live-cover .cover-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.live-cover .play {
  position: absolute; z-index: 3; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center;
  color: var(--ink); font-size: 20px; box-shadow: var(--shadow);
}
.live-cover .featured-flag {
  position: absolute; z-index: 3; top: 12px; left: 12px; background: var(--accent); color: #fff;
  font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}
.live-body { padding: 18px; }
.live-body h3 { font-size: 16.5px; margin-bottom: 8px; line-height: 1.4; }
.live-guest { font-size: 13px; color: var(--ink-soft); margin-bottom: 10px; }
.live-guest b { color: var(--ink); }
.live-meta { display: flex; gap: 14px; font-size: 12.5px; color: var(--muted); }

/* —— 表单 —— */
.field { margin-bottom: 18px; }
.field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 7px; }
.input, .textarea, .select {
  width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--radius-sm);
  font-size: 15px; font-family: inherit; color: var(--ink); background: #fff; transition: border-color .15s;
}
.input:focus, .textarea:focus, .select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-light); }
.textarea { min-height: 110px; resize: vertical; }
.hint { font-size: 12.5px; color: var(--muted); margin-top: 5px; }

/* —— 卡片 —— */
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.card + .card { margin-top: 20px; }
.card h3 { font-size: 17px; }
.card h4 { font-size: 15px; color: var(--ink-soft); }

/* —— 测评流程 —— */
.progress-wrap { margin-bottom: 28px; }
.progress-info { display: flex; justify-content: space-between; font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.progress-bar { height: 8px; background: var(--line); border-radius: 999px; overflow: hidden; }
.progress-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #0d9488); border-radius: 999px; transition: width .3s ease; }
.question-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; }
.question-index { font-size: 13px; color: var(--brand-dark); font-weight: 700; margin-bottom: 10px; }
.question-text { font-size: 21px; font-weight: 600; line-height: 1.5; margin-bottom: 26px; }
.options-list { display: flex; flex-direction: column; gap: 10px; }
.option-btn {
  display: flex; align-items: center; gap: 12px; text-align: left;
  padding: 15px 18px; border: 1.5px solid var(--line); border-radius: var(--radius-sm);
  background: #fff; cursor: pointer; font-size: 15.5px; font-family: inherit; transition: all .15s;
}
.option-btn:hover { border-color: var(--brand); background: var(--brand-soft); }
.option-btn.selected { border-color: var(--brand); background: var(--brand-light); font-weight: 600; }
.option-dot { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line); flex: none; transition: all .15s; }
.option-btn.selected .option-dot { border-color: var(--brand); background: var(--brand); box-shadow: inset 0 0 0 3px #fff; }
.question-nav { display: flex; justify-content: space-between; margin-top: 26px; }

/* —— 报告 —— */
.report-hero {
  background: linear-gradient(135deg, var(--brand-deep), #0d9488);
  color: #fff; border-radius: var(--radius); padding: 30px; margin-bottom: 24px;
}
.report-hero .rname { font-size: 24px; font-weight: 800; margin-bottom: 8px; }
.report-hero p { color: rgba(255,255,255,.92); margin: 0; font-size: 15.5px; }
.report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.radar-box { display: flex; align-items: center; justify-content: center; }
.rank-list { display: flex; flex-direction: column; gap: 12px; }
.rank-item { display: grid; grid-template-columns: 92px 1fr 44px; align-items: center; gap: 12px; }
.rank-item .rlabel { font-size: 13.5px; color: var(--ink-soft); text-align: right; }
.rank-bar { height: 16px; background: var(--line); border-radius: 999px; overflow: hidden; }
.rank-bar-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #0d9488); border-radius: 999px; }
.rank-item .rscore { font-size: 14px; font-weight: 700; color: var(--ink); }
.analysis-card { border-left: 4px solid var(--brand); }
.analysis-card .dim-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.analysis-card .dim-head h3 { margin: 0; font-size: 19px; }
.analysis-card .dim-head .en { color: var(--muted); font-size: 13px; }
.aspect-item { padding: 14px 0; border-bottom: 1px solid var(--line); }
.aspect-item:last-child { border-bottom: none; }
.aspect-item .aspect-label { font-weight: 700; color: var(--brand-dark); font-size: 14px; margin-bottom: 5px; }
.aspect-item .aspect-text { color: var(--ink-soft); font-size: 14.5px; }

.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th, .table td { padding: 11px 12px; text-align: left; border-bottom: 1px solid var(--line); }
.table th { color: var(--muted); font-weight: 600; font-size: 12.5px; background: #fafbfa; }
.table tr:hover td { background: #fafcfa; }
.badge {
  display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600;
}
.badge-green { background: var(--brand-light); color: var(--brand-deep); }
.badge-gray { background: #f3f4f6; color: var(--muted); }
.badge-amber { background: var(--accent-light); color: #92400e; }
.badge-blue { background: #dbeafe; color: #1e40af; }
.badge-red { background: #fee2e2; color: #991b1b; }
.badge-purple { background: #ede9fe; color: #5b21b6; }

.arrow-up2 { color: var(--brand); font-weight: 800; }
.arrow-up { color: var(--brand); font-weight: 700; }
.arrow-down { color: #f97316; font-weight: 700; }
.arrow-down2 { color: var(--danger); font-weight: 800; }
.arrow-mid { color: var(--muted); }

.callout { background: var(--accent-light); border: 1px solid #fde68a; border-radius: var(--radius-sm); padding: 14px 18px; font-size: 14px; color: #78350f; }
.callout-soft { background: var(--brand-soft); border: 1px solid var(--brand-light); border-radius: var(--radius-sm); padding: 14px 18px; font-size: 14px; color: var(--brand-deep); }
.center { text-align: center; }
.muted { color: var(--muted); }
.mt-0 { margin-top: 0; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mb-0 { margin-bottom: 0; }

/* —— 柚子助手悬浮窗 —— */
.chat-fab {
  position: fixed; right: 26px; bottom: 26px; z-index: 90;
  width: 60px; height: 60px; border-radius: 50%; border: none; cursor: pointer;
  background: linear-gradient(135deg, #22c55e, #0d9488); color: #fff; font-size: 26px;
  box-shadow: 0 10px 28px rgba(13, 148, 136, .4); display: flex; align-items: center; justify-content: center;
  transition: transform .15s;
}
.chat-fab:hover { transform: scale(1.06); }
.chat-panel {
  position: fixed; right: 26px; bottom: 98px; z-index: 95;
  width: 380px; max-width: calc(100vw - 32px); height: 560px; max-height: calc(100vh - 130px);
  background: #fff; border-radius: 18px; border: 1px solid var(--line);
  box-shadow: var(--shadow-lg); display: none; flex-direction: column; overflow: hidden;
}
.chat-panel.open { display: flex; }
.chat-head {
  padding: 16px 18px; background: linear-gradient(135deg, #16a34a, #0d9488); color: #fff;
  display: flex; align-items: center; justify-content: space-between;
}
.chat-head .title { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.chat-head .title .dot { width: 9px; height: 9px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,.3); }
.chat-head small { display: block; font-weight: 400; font-size: 11.5px; opacity: .85; }
.chat-feedback { background: transparent; border: none; color: #fff; cursor: pointer; font-size: 13px; opacity: .9; }
.chat-feedback:hover { opacity: 1; text-decoration: underline; }
.chat-body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; background: var(--bg); }
.msg { max-width: 82%; padding: 11px 14px; border-radius: 14px; font-size: 14px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.msg.assistant { background: #fff; border: 1px solid var(--line); border-top-left-radius: 4px; align-self: flex-start; }
.msg.user { background: var(--brand); color: #fff; border-top-right-radius: 4px; align-self: flex-end; }
.msg .typing { display: inline-block; }
.chat-input { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); background: #fff; }
.chat-input input {
  flex: 1; padding: 11px 14px; border: 1.5px solid var(--line); border-radius: 999px;
  font-size: 14px; font-family: inherit;
}
.chat-input input:focus { outline: none; border-color: var(--brand); }
.chat-send { width: 42px; height: 42px; border-radius: 50%; border: none; background: var(--brand); color: #fff; cursor: pointer; font-size: 18px; flex: none; }
.chat-send:disabled { opacity: .5; cursor: not-allowed; }

/* —— Modal —— */
.modal-mask {
  position: fixed; inset: 0; z-index: 100; background: rgba(15,23,42,.5);
  display: none; align-items: center; justify-content: center; padding: 24px;
}
.modal-mask.open { display: flex; }
.modal {
  background: #fff; border-radius: 18px; width: 100%; max-width: 640px; max-height: 90vh;
  overflow-y: auto; box-shadow: var(--shadow-lg);
}
.modal-lg { max-width: 860px; }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: #fff; z-index: 2; }
.modal-head h3 { margin: 0; font-size: 18px; }
.modal-close { background: none; border: none; font-size: 24px; color: var(--muted); cursor: pointer; line-height: 1; }
.modal-body { padding: 24px; }
.video-wrap { border-radius: var(--radius-sm); overflow: hidden; background: #000; }
.video-wrap video { width: 100%; display: block; }

/* —— 页脚 —— */
.footer { background: var(--brand-deep); color: rgba(255,255,255,.85); padding: 48px 0 32px; }
.footer .brand { color: #fff; margin-bottom: 12px; }
.footer a { color: rgba(255,255,255,.85); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); margin-top: 32px; padding-top: 20px; font-size: 13px; color: rgba(255,255,255,.6); }

/* —— 后台管理 —— */
.admin-body { background: #f2f5f3; }
.admin-shell { display: flex; min-height: 100vh; }
.admin-side {
  width: 230px; flex: none; background: #0f2e1f; color: #fff;
  display: flex; flex-direction: column; padding: 20px 14px;
}
.admin-side .brand { color: #fff; padding: 6px 10px 20px; }
.admin-side .brand small { color: rgba(255,255,255,.6); }
.side-link {
  display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 10px;
  color: rgba(255,255,255,.75); font-size: 14.5px; cursor: pointer; margin-bottom: 4px; transition: all .15s;
}
.side-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.side-link.active { background: var(--brand); color: #fff; }
.side-link .ic { font-size: 17px; }
.side-footer { margin-top: auto; }
.admin-main { flex: 1; padding: 28px 32px; min-width: 0; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px; }
.admin-topbar h1 { font-size: 24px; margin: 0; }
.admin-toolbar { display: flex; align-items: center; gap: 12px; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px; margin-bottom: 26px; }
.stat-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; }
.stat-card .snum { font-size: 30px; font-weight: 800; color: var(--brand-dark); }
.stat-card .slabel { font-size: 13px; color: var(--muted); margin-top: 4px; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.panel-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.panel-head h2 { margin: 0; font-size: 17px; }
.panel-body { padding: 8px 0; }
.filter-row { display: flex; gap: 10px; align-items: center; }
.filter-row .input, .filter-row .select { width: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th, .admin-table td { padding: 13px 20px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.admin-table th { color: var(--muted); font-weight: 600; font-size: 12.5px; background: #fafbfa; white-space: nowrap; }
.admin-table tr:hover td { background: #fafcfa; }
.row-actions { display: flex; gap: 8px; }
.link-btn { background: none; border: none; color: var(--brand-dark); cursor: pointer; font-size: 13.5px; font-weight: 600; padding: 0; font-family: inherit; }
.link-btn:hover { text-decoration: underline; }
.link-btn.danger { color: var(--danger); }
.status-badge { display: inline-flex; align-items: center; gap: 6px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; }
.empty-state { text-align: center; padding: 60px 20px; color: var(--muted); }
.empty-state .big { font-size: 44px; margin-bottom: 12px; }

/* —— 登录页 —— */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: radial-gradient(900px 500px at 50% -10%, #d3f9d8, transparent), var(--brand-soft); padding: 24px; }
.login-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 40px 36px; width: 100%; max-width: 400px; box-shadow: var(--shadow-lg); }
.login-card .brand { justify-content: center; margin-bottom: 6px; }
.login-card .sub { text-align: center; color: var(--muted); font-size: 14px; margin-bottom: 24px; }

/* —— 提示条 —— */
.toast {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-80px);
  background: var(--ink); color: #fff; padding: 12px 22px; border-radius: 999px;
  font-size: 14px; z-index: 200; transition: transform .3s ease; box-shadow: var(--shadow-lg); max-width: 90vw;
}
.toast.show { transform: translateX(-50%) translateY(0); }
.toast.success { background: var(--brand-dark); }
.toast.error { background: var(--danger); }

/* —— 响应式 —— */
@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-visual { display: none; }
  .feature-grid, .assessment-list, .live-grid { grid-template-columns: 1fr; }
  .report-grid { grid-template-columns: 1fr; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-shell { flex-direction: column; }
  .admin-side { width: 100%; flex-direction: row; align-items: center; flex-wrap: wrap; }
  .admin-side .brand { padding: 6px 16px 6px 6px; }
  .side-footer { margin-top: 0; margin-left: auto; }
  .hero h1 { font-size: 32px; }
  .section-top { flex-direction: column; align-items: flex-start; }
}

/* —— 导航用户区 —— */
.nav-user { display: inline-flex; align-items: center; gap: 4px; }
.nav-user > a { padding: 8px 16px; border-radius: 999px; color: var(--ink-soft); font-size: 14.5px; font-weight: 500; }
.nav-user > a:hover { background: var(--brand-soft); color: var(--brand-dark); text-decoration: none; }
.nav-user #userInfo { align-items: center; gap: 4px; }
.nav-user-name { padding: 8px 14px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-dark); font-size: 14.5px; }
.nav-user-name b { font-weight: 700; }
.nav-logout { color: var(--muted); }
.nav-logout:hover { color: var(--danger); }

/* —— 登录 / 注册 —— */
.auth-tabs { display: flex; gap: 6px; margin-bottom: 20px; background: var(--bg); border-radius: 999px; padding: 4px; }
.auth-tab {
  flex: 1; border: none; background: transparent; padding: 9px 0; border-radius: 999px;
  font-size: 14.5px; font-weight: 600; color: var(--muted); cursor: pointer; font-family: inherit;
}
.auth-tab.active { background: #fff; color: var(--brand-dark); box-shadow: var(--shadow-sm); }

/* —— 测评完成标记 —— */
.done-flag { margin-top: auto; color: var(--brand-dark); font-weight: 600; font-size: 14px; }
.progress-track { height: 10px; background: var(--line); border-radius: 999px; overflow: hidden; max-width: 360px; margin: 0 auto; }
.progress-track-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #0d9488); border-radius: 999px; transition: width .3s ease; }

/* —— 合并报告 —— */
.report-section-head {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 20px 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
}
.report-section-head h2 { margin: 0; font-size: 20px; }
.report-section-head .muted { font-size: 14px; }
.rsec-num {
  width: 30px; height: 30px; border-radius: 50%; background: var(--brand); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex: none;
}
.report-intro { color: var(--ink-soft); font-size: 15px; margin: 14px 4px 18px; }
.merge-elements { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.merge-chip {
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28);
  border-radius: 12px; padding: 10px 18px; text-align: left;
}
.merge-chip span { display: block; font-size: 12px; opacity: .85; }
.merge-chip b { font-size: 15px; }
.report-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.report-nav-item {
  padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line);
  color: var(--ink-soft); font-size: 13.5px; font-weight: 600;
}
.report-nav-item:hover { border-color: var(--brand); color: var(--brand-dark); text-decoration: none; }

/* —— 后台封面上传 —— */
.cover-upload { border: 1.5px dashed var(--line); border-radius: var(--radius-sm); padding: 16px; }
.cover-preview { width: 100%; max-width: 320px; border-radius: 8px; margin-bottom: 12px; }
.cover-upload-actions { display: flex; gap: 8px; }

/* —— 柚子助手全屏页 —— */
.assistant-body { background: var(--bg); height: 100vh; }
.assistant-shell { display: flex; flex-direction: column; height: 100vh; max-width: 860px; margin: 0 auto; }
.assistant-header {
  display: flex; align-items: center; gap: 16px; padding: 14px 22px;
  background: #fff; border-bottom: 1px solid var(--line);
}
.assistant-title { display: flex; align-items: center; gap: 12px; flex: 1; }
.assistant-title b { font-size: 17px; }
.assistant-title small { display: block; font-size: 12px; color: var(--muted); }
.assistant-avatar {
  width: 42px; height: 42px; border-radius: 12px; flex: none;
  background: linear-gradient(135deg, #22c55e, #0d9488); display: flex; align-items: center; justify-content: center;
  font-size: 22px;
}
.assistant-back { color: var(--muted); font-size: 14px; font-weight: 600; }
.assistant-back:hover { color: var(--brand-dark); text-decoration: none; }
.assistant-tagline { font-size: 12.5px; color: var(--brand-dark); background: var(--brand-soft); padding: 5px 12px; border-radius: 999px; font-weight: 600; }
.assistant-chat {
  flex: 1; overflow-y: auto; padding: 24px 22px; display: flex; flex-direction: column; gap: 14px;
  background:
    radial-gradient(800px 300px at 50% -10%, #dcfce7, transparent),
    var(--bg);
}
.assistant-chat .msg { max-width: 76%; }
.assistant-input-bar { display: flex; gap: 10px; padding: 16px 22px; background: #fff; border-top: 1px solid var(--line); }
.assistant-input-bar input {
  flex: 1; padding: 13px 18px; border: 1.5px solid var(--line); border-radius: 999px;
  font-size: 15px; font-family: inherit;
}
.assistant-input-bar input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-light); }
.assistant-send { width: 48px; height: 48px; border-radius: 50%; border: none; background: var(--brand); color: #fff; cursor: pointer; font-size: 20px; flex: none; }
.assistant-send:disabled { opacity: .5; cursor: not-allowed; }

/* —— 对话轮次限制 —— */
.chat-remain { padding: 0 16px 10px; font-size: 12px; color: var(--muted); text-align: center; background: #fff; }
.assistant-header-right { display: flex; align-items: center; gap: 10px; }
.assistant-new {
  border: 1px solid var(--line); background: #fff; color: var(--ink-soft);
  padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit;
}
.assistant-new:hover { border-color: var(--brand); color: var(--brand-dark); }
code { background: #f3f4f6; padding: 1px 6px; border-radius: 5px; font-size: 12.5px; color: #334155; }

/* —— 示例问题气泡 —— */
.sample-chips { align-self: flex-start; display: flex; flex-direction: column; gap: 8px; max-width: 92%; }
.sample-chip {
  text-align: left; max-width: 100%;
  background: #fff; border: 1px solid var(--line); color: var(--ink-soft);
  padding: 9px 14px; border-radius: 14px; border-top-left-radius: 4px;
  font-size: 13.5px; cursor: pointer; font-family: inherit; line-height: 1.5;
  transition: all .15s;
}
.sample-chip:hover { border-color: var(--brand); color: var(--brand-dark); background: var(--brand-soft); }

/* —— 直播分类 tab（行业 / 地区 / 岗位） —— */
.live-tabs { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
.live-tab-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.live-tab-label { font-size: 13px; font-weight: 700; color: var(--ink-soft); min-width: 34px; }
.live-tab {
  border: 1px solid var(--line); background: #fff; color: var(--ink-soft);
  font-size: 13px; font-weight: 600; padding: 6px 14px; border-radius: 999px;
  cursor: pointer; font-family: inherit; transition: all .15s;
}
.live-tab:hover { border-color: var(--brand); color: var(--brand-dark); }
.live-tab.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.live-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.tag-gray { background: #f3f4f6; color: var(--muted); }

/* —— 问卷分页与测评报告 —— */
.survey-progress-card { margin: 22px 0 16px; padding: 18px 20px; background: rgba(255,255,255,.97); border: 1px solid #d8ebe0; border-radius: 18px; box-shadow: 0 12px 30px rgba(20,83,45,.10); backdrop-filter: blur(10px); }
.survey-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.survey-progress-head > div:first-child { display: grid; gap: 2px; }
.survey-progress-head small { color: var(--muted); font-size: 12px; font-weight: 600; }
.survey-progress-head strong { font-size: 17px; color: var(--brand-deep); }
.survey-progress-percent { color: var(--brand-dark); font-size: 28px; line-height: 1; font-weight: 800; }
.survey-progress-percent small { color: inherit; font-size: 14px; margin-left: 2px; }
.survey-progress-track { height: 12px; margin-top: 14px; overflow: hidden; border-radius: 999px; background: #e8f3ec; box-shadow: inset 0 1px 2px rgba(20,83,45,.08); }
.survey-progress-track span { display: block; height: 100%; min-width: 0; border-radius: inherit; background: linear-gradient(90deg,#22c55e 0%,#14b8a6 70%,#0d9488 100%); box-shadow: 0 0 12px rgba(20,184,166,.35); transition: width .35s ease; }
.survey-progress-meta { display: flex; justify-content: space-between; gap: 16px; margin-top: 7px; color: var(--muted); font-size: 12px; }
.survey-pager span { color: var(--muted); font-size: 14px; }
.survey-back-top { position: fixed; right: 26px; bottom: 108px; z-index: 30; display: flex; align-items: center; gap: 7px; padding: 10px 14px; border: 1px solid #cae7d4; border-radius: 999px; background: rgba(255,255,255,.96); color: var(--brand-dark); box-shadow: 0 10px 30px rgba(20,83,45,.16); font-weight: 700; cursor: pointer; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .2s ease,transform .2s ease,background .2s ease; }
.survey-back-top.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.survey-back-top:hover { background: var(--brand-soft); }
.survey-back-top b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 16px; }
.survey-pager { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 26px; }
.report-page { background: linear-gradient(180deg, var(--brand-soft), #fff 360px); }
.report-hero { margin: 24px 0; padding: 42px; border-radius: 24px; background: linear-gradient(135deg,#064e3b,#0d9488); color: #fff; box-shadow: var(--shadow-lg); }
.report-hero h1 { font-size: 38px; margin: 10px 0 16px; }
.report-hero p { font-size: 17px; line-height: 1.8; max-width: 760px; }
.report-hero small { opacity: .8; }
.report-kicker { display: inline-block; padding: 6px 12px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; }
.report-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 26px; margin: 18px 0; box-shadow: var(--shadow-sm); }
.report-card h2 { margin: 0 0 20px; font-size: 22px; }
.report-top-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 14px; }
.report-top-item { padding: 18px; border-radius: 14px; background: var(--brand-soft); }
.report-top-item span { font-size: 12px; color: var(--brand-dark); font-weight: 800; }
.report-top-item h3 { margin: 8px 0 2px; }
.report-top-item strong, .report-category-grid strong { color: var(--brand-dark); font-size: 22px; }
.report-top-item p, .report-dimension p, .report-conflicts p { color: var(--muted); line-height: 1.65; margin-bottom: 0; }
.report-category-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.report-category-grid > div { display: grid; gap: 5px; padding: 16px; background: #f8faf9; border-radius: 12px; }
.report-category-grid span { color: var(--muted); }
.report-dimension { padding: 14px 0; border-bottom: 1px solid var(--line); }
.report-dimension:last-child { border: 0; }
.report-dimension-head { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; }
.report-dimension-head span { color: var(--muted); font-size: 13px; }
.report-bar { height: 10px; border-radius: 999px; background: #edf2ef; overflow: hidden; margin-top: 9px; }
.report-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg,#22c55e,#0d9488); }
.report-conflicts article { padding: 14px 0; border-top: 1px solid var(--line); }
.report-disclaimer { text-align: center; color: var(--muted); font-size: 13px; margin: 22px; }
.report-dimension p { font-size: 14px; }
@media (max-width: 767px) { .survey-pager { flex-wrap: wrap; } .survey-back-top { right: 14px; bottom: 88px; padding: 9px; } .survey-back-top span { display: none; } .report-hero { padding: 26px 22px; } .report-hero h1 { font-size: 30px; } .report-category-grid { grid-template-columns: 1fr; } }

/* —— 后台结果详情：横向排名条（标签列自适应，避免遮挡小标题） —— */
.rank-item-admin { display: grid; grid-template-columns: minmax(120px, 1fr) 1.5fr 44px; align-items: center; gap: 12px; }
.rank-item-admin .rlabel { font-size: 13.5px; color: var(--ink-soft); text-align: right; overflow-wrap: break-word; line-height: 1.35; }
.rank-item-admin .rscore { font-size: 14px; font-weight: 700; color: var(--ink); }
.mrg-sec { margin: 22px 0 10px; font-size: 15px; font-weight: 800; color: var(--ink); }

/* —— 后台学员测评结果分组卡片 —— */
.stu-list { padding: 14px 14px 2px; display: flex; flex-direction: column; gap: 14px; }
.stu-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.stu-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #fafbfa; flex-wrap: wrap; }
.stu-id { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.stu-id b { font-size: 15.5px; }
.stu-id .muted { font-size: 13px; }
.stu-card-actions { display: flex; align-items: center; gap: 10px; }
.stu-card-body { padding: 4px 18px; }
.stu-result-row { display: grid; grid-template-columns: 170px 1fr 130px auto; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.stu-result-row:last-child { border-bottom: none; }
.stu-result-row.is-empty { opacity: .55; }
.stu-summary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stu-time { text-align: right; }

@media (max-width: 900px) {
  .stu-result-row { grid-template-columns: 1fr; gap: 6px; }
  .stu-time { text-align: left; }
}

/* Nuxt 页面与无评分流程适配，沿用 demo 的颜色和组件。 */
button, input, textarea, select { font: inherit; }
.nav-login {border:0;background:var(--brand);color:#fff;padding:9px 18px;border-radius:999px;cursor:pointer;white-space:nowrap}
.nav-user {display:flex;align-items:center;gap:10px;color:var(--text);font-size:14px}.nav-logout {border:1px solid var(--line);background:#fff;color:var(--muted);padding:7px 12px;border-radius:999px;cursor:pointer}.login-form {display:grid;gap:10px}.login-form label {font-weight:700;margin-top:4px}.login-form .input {width:100%;box-sizing:border-box}.btn-block {width:100%;margin-top:8px}
.video-card-button,.survey-card-button {text-align:left;color:inherit;font:inherit;width:100%;cursor:pointer}
.video-card-button {padding:0}
.survey-card-button .btn {text-align:center}
.journey-step {display:flex;gap:16px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}
.journey-step>span {font-size:26px;font-weight:800;color:var(--brand)}
.journey-step h3 {margin:0 0 4px;color:var(--ink);font-size:18px}.journey-step p {margin:0;color:var(--muted);font-size:14px}
.collection-pagination {display:flex;gap:20px;align-items:center;justify-content:center;margin-top:30px}
.footer-feedback {border:0;background:transparent;color:#fff;text-decoration:underline;margin-left:20px;cursor:pointer}
.career-chat {background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}
.chat-toolbar {display:flex;align-items:center;gap:12px;flex-wrap:wrap}.chat-toolbar h2 {font-size:22px;margin:0;flex:1}
.conversation {min-height:300px;max-height:55vh;overflow-y:auto;padding:24px 0}.chat-welcome {text-align:center;padding:28px 0}.chat-welcome .big {font-size:50px}.chat-welcome .btn {margin:5px}
.conversation-message {padding:14px 18px;margin:12px 0;border-radius:14px;background:var(--brand-soft)}.conversation-message.user {background:#f3f4f6;margin-left:40px}.conversation-message p {white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
.chat-compose {display:flex;gap:12px;align-items:flex-end}.chat-compose textarea {flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical}.chat-disclaimer {font-size:12px;color:var(--muted);margin:12px 0 0}
.chat-panel.open {display:flex;bottom:100px;max-width:calc(100vw - 24px);max-height:calc(100vh - 140px);overflow:auto}.chat-panel .career-chat {border:0;width:100%;padding:20px}.chat-panel .chat-toolbar h2 {font-size:17px}.chat-panel .conversation {min-height:160px;max-height:32vh}.floating-close {position:absolute;right:6px;top:2px;border:0;background:#fff;color:var(--muted);font-size:22px;z-index:2;cursor:pointer}
.inline-error {color:#b91c1c}.question-block {border:0;border-bottom:1px solid var(--line);padding:24px 0;margin:0}.question-block legend {font-weight:700;font-size:18px}.answer-option {display:flex;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin:8px 0;cursor:pointer}.answer-option:has(input:checked) {border-color:var(--brand);background:var(--brand-soft)}.required-mark {color:#b91c1c}.survey-progress {width:100%;accent-color:var(--brand)}
.placeholder-page {padding:72px 0}.text-link {color:var(--brand-dark)}
:focus-visible {outline:3px solid #10b981;outline-offset:3px}
@media(max-width:767px){.nav-inner {flex-wrap:wrap;gap:14px}.nav-links {flex-wrap:wrap;gap:4px}.nav-links a {font-size:13px;padding:7px 10px}.hero-inner {grid-template-columns:1fr}.hero h1 {font-size:34px}.hero {padding:40px 0}.section {padding:42px 0}.section-top {align-items:flex-start;flex-direction:column}.assessment-list,.live-grid {grid-template-columns:1fr}.chat-compose {flex-wrap:wrap}.chat-compose textarea {flex-basis:100%}.collection-pagination {gap:10px}.modal {max-width:calc(100vw - 24px)}.chat-panel .career-chat {padding:18px}.brand {font-size:20px}}

/* 2026 求职陪跑视觉系统 */
:root{--brand:#0b6b4b;--brand-dark:#064833;--brand-deep:#043527;--brand-light:#dff3eb;--brand-soft:#f3f9f6;--ink:#10241d;--ink-soft:#3f514a;--muted:#72817b;--line:#dfe8e4;--bg:#f7faf8;--shadow:0 18px 60px rgba(7,50,36,.1);--shadow-lg:0 28px 80px rgba(7,50,36,.16);--radius:16px;--font:"Inter","SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif}
body{background:#fff;color:var(--ink);letter-spacing:.01em}.container{max-width:1200px;padding:0 32px}.nav{height:72px;display:flex;align-items:center;background:rgba(255,255,255,.94);border-color:#edf2ef;backdrop-filter:blur(18px)}.nav-inner{height:72px}.brand{font-family:"Noto Serif SC","Songti SC",serif;font-size:20px;gap:12px}.brand small{font-family:var(--font);font-size:10px;letter-spacing:.06em}.brand-symbol{position:relative;display:inline-block;width:34px;height:38px;flex:none}.brand-symbol i{position:absolute;display:block;width:15px;height:28px;background:linear-gradient(155deg,#11835d,#064833);border-radius:100% 0 100% 0;transform:rotate(-28deg);left:3px;top:2px}.brand-symbol i+ i{left:17px;top:8px;transform:rotate(28deg) scale(.86);background:linear-gradient(155deg,#4cab7c,#0b6b4b)}.nav-links{align-items:center;gap:10px}.nav-links a{padding:9px 14px;font-weight:600;color:#43554e}.nav-links a.active{background:transparent;color:var(--brand-dark);box-shadow:inset 0 -2px var(--brand)}.nav-login{background:transparent;color:var(--brand-dark);border:1px solid var(--brand);padding:9px 22px}.btn{border-radius:7px;padding:12px 23px}.btn-primary{background:var(--brand-dark);box-shadow:none}.btn-primary:hover{background:#073d2d}.btn-ghost{border-color:#cfdcd6;color:var(--brand-dark)}
.premium-hero{min-height:600px;background:#f7f8f5 url('/images/career-hero-v1.png') center/cover no-repeat;display:flex;align-items:center}.premium-hero-inner{width:100%}.premium-hero-copy{width:48%;padding:72px 0}.premium-hero h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:58px;font-weight:700;line-height:1.18;letter-spacing:-.035em;margin:0 0 28px;color:#082d23}.premium-hero p{max-width:540px;font-size:18px;line-height:1.9;color:#4c5f58}.premium-text-link{font-weight:700;margin-left:10px;padding:13px}.premium-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:42px}.premium-section-head h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:36px;line-height:1.35;margin:0 0 12px}.premium-section-head p{color:var(--muted);margin:0;font-size:16px}.premium-section-head>a:not(.btn){font-weight:700;white-space:nowrap}.premium-assessment{padding:88px 0}.assessment-list{gap:26px}.assessment-card{padding:0;border-radius:8px;border-color:#dbe5e0;min-height:365px;box-shadow:none;align-items:stretch;overflow:hidden;background:#fff}.assessment-card:hover{transform:translateY(-5px);border-color:#9bbcaf;box-shadow:0 24px 50px rgba(7,50,36,.1)}.survey-visual{display:block;width:100%;height:116px;object-fit:cover;flex:none}.survey-card-content{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:11px;padding:24px 26px}.assessment-card .num-badge{background:transparent;color:#8aa196;width:auto;height:auto;font-family:Georgia,serif;font-size:15px}.assessment-card h3{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px}.assessment-card .sub{font-size:14px;line-height:1.7}.survey-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;width:100%;margin-top:auto}.assessment-card .meta{margin:0}.assessment-card .btn{display:flex;border-radius:50%;font-size:0;width:44px;height:44px;padding:0;justify-content:center;align-self:flex-end;flex:none}.assessment-card .btn:after{content:'→';font-size:18px}.premium-video-section{padding:88px 0;background:linear-gradient(120deg,#edf5f1,#f9fbfa)}.premium-video-section .premium-section-head h2{font-size:38px}.live-tabs{padding:18px 0;border-top:1px solid #d8e4de;border-bottom:1px solid #d8e4de}.live-grid{gap:18px}.live-card{border-radius:8px;border:0;background:#fff;box-shadow:0 10px 30px rgba(8,56,40,.08)}.live-cover{height:210px}.live-body{padding:20px}.play{width:46px!important;height:46px!important}.premium-ai-section{display:grid;grid-template-columns:1.06fr .94fr;min-height:510px;background:#fff}.premium-ai-art{display:flex;align-items:center;justify-content:center;padding:60px;background:linear-gradient(135deg,#dcebe3,#f7f5ed)}.ai-art-window{width:min(540px,100%);background:#fff;border:1px solid rgba(7,56,40,.12);box-shadow:0 30px 70px rgba(6,54,39,.18);border-radius:12px;padding:34px;display:flex;gap:24px}.ai-art-window b{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px}.ai-art-window p{margin:10px 0 0;color:var(--muted);line-height:1.8}.premium-ai-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:70px clamp(40px,8vw,130px)}.premium-ai-copy h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:40px;line-height:1.35}.premium-ai-copy p{font-size:17px;color:var(--muted);line-height:1.9;max-width:540px}.footer{background:#073b2c;padding:48px 0 28px}.section-head .kicker{display:none}.section>.container>.section-head{margin-top:18px}.section-head h1,.section-head h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:42px}

/* 全屏 AI 工作区 */
.chat-page-body{margin:0;overflow:hidden;background:#f7faf8}.ai-workspace{height:100vh;display:grid;grid-template-columns:282px minmax(0,1fr);background:#fff;color:var(--ink)}.ai-sidebar{display:flex;flex-direction:column;min-width:0;background:#f4f8f6;border-right:1px solid var(--line);padding:24px 16px 18px}.ai-brand{display:flex;align-items:center;gap:11px;padding:0 10px 22px;color:var(--ink)}.ai-brand:hover{text-decoration:none}.ai-brand b,.ai-brand small{display:block}.ai-brand b{font-family:"Noto Serif SC","Songti SC",serif;font-size:19px}.ai-brand small{color:var(--muted);font-size:11px}.ai-new-chat{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:48px;border:0;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;cursor:pointer}.ai-new-chat svg,.ai-history-item svg,.ai-composer button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ai-history-head{display:flex;justify-content:space-between;padding:28px 10px 10px;color:var(--muted);font-size:12px;font-weight:700}.ai-history{flex:1;overflow:auto}.ai-sidebar-note{padding:12px 10px;color:var(--muted);font-size:13px;line-height:1.6}.ai-history-item{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) 22px;gap:10px;align-items:center;width:100%;padding:12px 10px;border:0;border-radius:9px;background:transparent;text-align:left;color:var(--ink-soft);cursor:pointer}.ai-history-item:hover{background:#e8f1ed}.ai-history-item.active{background:#dceee6;color:var(--brand-dark)}.ai-history-item>span:nth-child(2){min-width:0}.ai-history-item b,.ai-history-item small{display:block}.ai-history-item b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-history-item small{margin-top:3px;color:var(--muted);font-size:10px}.history-delete{font-size:18px;opacity:0;text-align:center}.ai-history-item:hover .history-delete{opacity:.75}.ai-sidebar-footer{display:flex;align-items:center;gap:10px;padding:15px 10px 0;border-top:1px solid var(--line)}.ai-user-avatar,.ai-message-avatar{display:grid;place-items:center;border-radius:50%;background:var(--brand-dark);color:#fff;font-weight:700}.ai-user-avatar{width:34px;height:34px}.ai-sidebar-footer b,.ai-sidebar-footer small{display:block}.ai-sidebar-footer b{font-size:13px}.ai-sidebar-footer small{color:var(--muted);font-size:10px}.ai-main{display:grid;grid-template-rows:72px minmax(0,1fr) auto;min-width:0;height:100vh;background:#fff}.ai-topbar{display:flex;align-items:center;gap:18px;padding:0 34px;border-bottom:1px solid var(--line)}.ai-topbar>div:first-child{min-width:0;flex:1}.ai-topbar h1{margin:0;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-topbar p{margin:2px 0 0;color:var(--muted);font-size:11px}.ai-status{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.ai-status span{width:7px;height:7px;border-radius:50%;background:#25a671;box-shadow:0 0 0 3px #dff3eb}.ai-home-link{border-left:1px solid var(--line);padding-left:18px;font-size:13px;font-weight:700}.ai-conversation{overflow-y:auto;padding:38px max(34px,calc((100% - 860px)/2)) 30px;scroll-behavior:smooth}.ai-welcome{max-width:820px;margin:7vh auto 0;text-align:center}.ai-orbit-logo{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 24px;border-radius:20px;background:#edf6f2}.ai-welcome h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:34px;margin:0 0 14px}.ai-welcome>p{max-width:620px;margin:0 auto;color:var(--muted);font-size:16px}.ai-suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:38px;text-align:left}.ai-suggestions button{display:grid;grid-template-columns:36px 1fr;column-gap:10px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;transition:.18s}.ai-suggestions button:hover{border-color:#92b8a8;box-shadow:0 14px 34px rgba(8,64,45,.09);transform:translateY(-2px)}.ai-suggestions button>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:800}.ai-suggestions b{font-size:14px}.ai-suggestions small{margin-top:4px;color:var(--muted);line-height:1.45}.ai-message{display:flex;gap:14px;max-width:850px;margin:0 auto 28px}.ai-message.user{flex-direction:row-reverse}.ai-message-avatar{width:36px;height:36px;flex:none;font-size:11px}.ai-message.assistant .ai-message-avatar{background:#e1f1ea;color:var(--brand-dark)}.ai-message-content{max-width:76%}.ai-message-content strong{display:block;margin-bottom:7px;font-size:12px;color:var(--muted)}.ai-message-content p{margin:0;padding:14px 17px;border:1px solid var(--line);border-radius:4px 14px 14px 14px;background:#fff;white-space:pre-wrap;line-height:1.8}.ai-message.user .ai-message-content{text-align:right}.ai-message.user .ai-message-content p{background:#e5f3ed;border-color:#d2e8de;border-radius:14px 4px 14px 14px;text-align:left}.ai-thinking{display:flex;align-items:center;gap:5px;padding:14px 17px;border:1px solid var(--line);border-radius:4px 14px 14px 14px}.ai-thinking i{width:6px;height:6px;border-radius:50%;background:#56a987;animation:aiPulse 1.2s infinite}.ai-thinking i:nth-child(2){animation-delay:.15s}.ai-thinking i:nth-child(3){animation-delay:.3s}.ai-thinking span{margin-left:7px;color:var(--muted);font-size:13px}@keyframes aiPulse{50%{opacity:.25;transform:translateY(-2px)}}.ai-composer-wrap{padding:14px max(34px,calc((100% - 900px)/2)) 24px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 22%)}.ai-error{margin:0 0 8px;color:#b42318;font-size:13px}.ai-composer{border:1px solid #cddbd5;border-radius:15px;background:#fff;box-shadow:0 14px 40px rgba(7,50,36,.1);overflow:hidden}.ai-composer textarea{display:block;width:100%;min-height:62px;max-height:150px;padding:18px 20px 8px;border:0;outline:0;resize:none;color:var(--ink);font-size:15px;line-height:1.6}.ai-compose-bottom{display:flex;align-items:center;padding:8px 10px 10px 20px;color:var(--muted);font-size:11px}.ai-count{margin-left:auto;margin-right:10px}.ai-composer button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer}.ai-composer button:disabled{opacity:.4;cursor:not-allowed}.ai-workspace.is-compact{display:block;height:100%;min-height:0}.ai-workspace.is-compact .ai-main{height:100%;grid-template-rows:58px minmax(0,1fr) auto}.ai-workspace.is-compact .ai-topbar{padding:0 20px}.ai-workspace.is-compact .ai-conversation{padding:18px}.ai-workspace.is-compact .ai-welcome{margin:10px auto}.ai-workspace.is-compact .ai-welcome h2{font-size:23px}.ai-workspace.is-compact .ai-welcome>p{font-size:13px}.ai-workspace.is-compact .ai-suggestions{grid-template-columns:1fr;margin-top:20px}.ai-workspace.is-compact .ai-suggestions button{padding:12px}.ai-workspace.is-compact .ai-composer-wrap{padding:10px}.ai-workspace.is-compact .ai-message-content{max-width:82%}
@media(max-width:900px){.premium-hero{min-height:560px;background-position:62% center}.premium-hero-copy{width:60%}.premium-hero h1{font-size:46px}.premium-ai-section{grid-template-columns:1fr}.premium-ai-art{min-height:360px}.ai-workspace{grid-template-columns:230px}.ai-suggestions{grid-template-columns:1fr}.ai-welcome{margin-top:2vh}}
@media(max-width:680px){.container{padding:0 20px}.nav{height:auto}.nav-inner{height:auto;padding-top:12px;padding-bottom:12px}.brand small{display:none}.premium-hero{min-height:620px;background-position:70% center}.premium-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 62%,rgba(255,255,255,.2))}.premium-hero{position:relative}.premium-hero-inner{position:relative}.premium-hero-copy{width:100%;padding:60px 0}.premium-hero h1{font-size:40px}.premium-section-head{align-items:flex-start;flex-direction:column}.premium-section-head h2,.premium-ai-copy h2{font-size:31px}.premium-ai-copy{padding:52px 24px}.premium-ai-art{padding:32px 20px}.ai-workspace{display:block}.ai-sidebar{display:none}.ai-topbar{padding:0 18px}.ai-conversation{padding:24px 18px}.ai-welcome h2{font-size:29px}.ai-suggestions{grid-template-columns:1fr}.ai-composer-wrap{padding:10px 14px 16px}.ai-home-link{padding-left:10px}.ai-status{display:none}.ai-message-content{max-width:84%}}

/* 悬浮 AI 窗口：三档尺寸，滚动仅保留在对话内容区。 */
.chat-panel.open{display:flex;overflow:hidden;max-width:none;max-height:none;transition:width .22s ease,height .22s ease,bottom .22s ease;border-radius:16px}
.chat-panel.size-0{width:420px;height:560px}
.chat-panel.size-1{width:min(620px,calc(100vw - 52px));height:min(720px,calc(100vh - 124px))}
.chat-panel.size-2{width:min(920px,calc(100vw - 52px));height:min(820px,calc(100vh - 48px));bottom:24px}
.floating-chat-controls{position:absolute;z-index:8;right:12px;top:12px;display:flex;align-items:center;gap:5px;padding:3px;border:1px solid #dce7e2;border-radius:9px;background:rgba(255,255,255,.94);box-shadow:0 5px 16px rgba(7,50,36,.08);backdrop-filter:blur(10px)}
.floating-chat-controls button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--brand-dark);font-size:17px;line-height:1;cursor:pointer}
.floating-chat-controls button:hover:not(:disabled){background:var(--brand-soft)}
.floating-chat-controls button:disabled{opacity:.28;cursor:not-allowed}
.floating-chat-controls span{min-width:18px;color:var(--muted);font-size:11px;text-align:center}
.floating-chat-controls .floating-close{position:static;color:#75847e;font-size:20px}
.chat-panel .ai-workspace,.chat-panel .ai-main{width:100%;min-width:0;max-width:100%;overflow:hidden}
.chat-panel .ai-topbar{padding-right:150px}
.chat-panel .ai-conversation{overflow-x:hidden}
.chat-panel .ai-message,.chat-panel .ai-message-content,.chat-panel .ai-message-content p{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.chat-panel .ai-compose-bottom>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-panel.size-1 .ai-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}
.chat-panel.size-2 .ai-suggestions{grid-template-columns:repeat(3,minmax(0,1fr))}
.chat-panel.size-2 .ai-workspace.is-compact .ai-conversation{padding:30px max(28px,calc((100% - 760px)/2))}
.chat-panel.size-2 .ai-workspace.is-compact .ai-composer-wrap{padding:12px max(28px,calc((100% - 800px)/2)) 18px}

/* 问卷报告：强化信息层级和结果可读性。 */
.report-page{padding-top:54px;background:radial-gradient(circle at 88% 4%,rgba(117,186,154,.2),transparent 28%),linear-gradient(180deg,#f1f8f4 0,#fff 520px)}
.report-page .container.narrow{max-width:1040px}
.report-page>.container>.text-link{display:inline-flex;align-items:center;padding:8px 0;font-weight:700}
.report-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;min-height:310px;margin:22px 0 14px;padding:54px 58px;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:linear-gradient(135deg,#053b2c 0%,#086047 58%,#168263 100%);box-shadow:0 28px 70px rgba(4,53,39,.2)}
.report-hero:before{content:'';position:absolute;inset:auto -70px -120px auto;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.report-hero-copy{position:relative;z-index:1}
.report-hero h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:44px;line-height:1.25;margin:18px 0}
.report-hero p{max-width:680px;font-size:16px;line-height:1.9}
.report-hero-mark{position:relative;display:grid;place-items:center;width:180px;height:180px;justify-self:end;border:1px solid rgba(255,255,255,.22);border-radius:50%}
.report-hero-mark span,.report-hero-mark i{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.report-hero-mark span{width:128px;height:128px}.report-hero-mark i{width:74px;height:74px;background:rgba(255,255,255,.08)}
.report-hero-mark b{position:relative;font:700 12px/1 var(--font);letter-spacing:.22em}
.report-actions{display:flex;justify-content:flex-end;gap:10px;margin:0 0 24px}
.report-card{padding:34px 36px;margin:20px 0;border-color:#e0eae5;border-radius:20px;box-shadow:0 14px 42px rgba(6,62,44,.07)}
.report-section-title{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}
.report-section-title>span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;background:#e5f3ed;color:var(--brand-dark);font:800 12px/1 var(--font)}
.report-section-title h2{margin:0 0 5px;font-family:"Noto Serif SC","Songti SC",serif;font-size:25px}
.report-section-title p{margin:0;color:var(--muted);font-size:13px}
.report-top-grid{gap:16px}
.report-top-item{position:relative;min-height:190px;padding:24px;border:1px solid #dceae3;border-radius:16px;background:linear-gradient(145deg,#f4faf7,#fff)}
.report-top-item:first-child{background:linear-gradient(145deg,#dff2e9,#f8fcfa);border-color:#bcdccc}
.report-top-item>span{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff}
.report-top-item h3{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px}
.report-top-item strong{display:block;margin-top:6px;font-size:26px}
.report-category-grid>div{padding:20px;border:1px solid #e3ece7;background:#fafcfb}
.report-category-grid>div strong{margin-top:5px}
.report-dimension{padding:20px 0}
.report-dimension-head b{font-size:16px}.report-dimension-head strong{color:var(--brand-dark);font-size:17px}
.report-bar{height:8px;margin-top:12px;background:#eaf1ed}.report-bar i{background:linear-gradient(90deg,#0b6b4b,#49aa7e)}
.report-conflicts{border-color:#eadfc9;background:#fffdf8}.report-conflicts .report-section-title>span{background:#f5ead4;color:#8a5b16}
.report-disclaimer{max-width:760px;margin:30px auto 12px;line-height:1.7}
@media(max-width:760px){.chat-panel.size-0,.chat-panel.size-1,.chat-panel.size-2{right:8px;bottom:86px;width:calc(100vw - 16px);height:min(680px,calc(100vh - 104px));border-radius:14px}.chat-panel .ai-topbar{padding-left:16px;padding-right:132px}.chat-panel .ai-topbar p,.chat-panel .ai-status{display:none}.chat-panel.size-1 .ai-suggestions,.chat-panel.size-2 .ai-suggestions{grid-template-columns:1fr}.floating-chat-controls{right:8px;top:11px}.report-page{padding-top:30px}.report-hero{grid-template-columns:1fr;min-height:0;padding:36px 26px}.report-hero h1{font-size:34px}.report-hero-mark{display:none}.report-actions{justify-content:stretch}.report-actions .btn{flex:1;padding:11px 10px;text-align:center}.report-card{padding:26px 20px}.report-top-grid,.report-category-grid{grid-template-columns:1fr}.report-dimension-head{grid-template-columns:1fr auto}.report-dimension-head span{grid-row:2;grid-column:1/3}.report-section-title h2{font-size:22px}}
@media(min-width:521px) and (max-width:760px){.chat-panel.size-1 .ai-suggestions,.chat-panel.size-2 .ai-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-panel .ai-workspace.is-compact .ai-welcome{margin:0 auto}.chat-panel .ai-workspace.is-compact .ai-orbit-logo{width:56px;height:56px;margin-bottom:14px}.chat-panel .ai-workspace.is-compact .ai-suggestions{margin-top:14px}.chat-panel .ai-workspace.is-compact .ai-suggestions button{padding:10px}}
