/* ============================================
   深圳金融商会 AIOS — 明德AI 全链路操作系统
   设计系统 v2：深海军蓝侧边栏 · 金融金点缀 · SVG 图标 · 8px 间距节奏
   ============================================ */

:root {
  /* 品牌色 */
  --navy-900:#0b1633; --navy-800:#0f1e4d; --navy-700:#13244D; --navy-600:#1a2b6b;
  --blue:#2356EC; --blue-light:#4a73ff; --blue-soft:#eef3ff;
  --gold:#C9A961; --gold-light:#e8d39a; --gold-soft:#faf3e2;
  --green:#25B58A; --green-soft:#e6f7f1;
  --purple:#8841E9; --purple-soft:#f3edff;
  --rose:#e11d48; --rose-soft:#fdeef1;
  --orange:#f59e0b; --orange-soft:#fff6e8;

  /* 中性色 */
  --bg:#f4f6fb; --surface:#ffffff; --surface-2:#f8fafc;
  --border:#e6eaf3; --border-strong:#d8deea;
  --text:#16233f; --text-2:#5a6b8c; --text-3:#94a3c0;

  /* 语义 */
  --success:#10b981; --warning:#f59e0b; --danger:#ef4444; --info:#3b82f6;

  /* 尺寸 */
  --r-sm:8px; --r:12px; --r-lg:16px;
  --shadow-sm:0 1px 2px rgba(15,30,77,.05);
  --shadow:0 4px 14px rgba(15,30,77,.07);
  --shadow-lg:0 12px 32px rgba(15,30,77,.12);
  --sidebar-w:232px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; }
body {
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--text); font-size:14px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:0; background:none; }
ul,ol { list-style:none; }
.mono { font-family:"SF Mono","DIN Alternate",ui-monospace,monospace; font-variant-numeric:tabular-nums; }
.svg { display:inline-flex; flex:none; }

/* ============ 应用骨架 ============ */
.app { display:flex; min-height:100vh; }

/* ============ 侧边栏 ============ */
.sidebar {
  width:var(--sidebar-w); position:fixed; left:0; top:0; bottom:0; z-index:50;
  background:linear-gradient(180deg,var(--navy-800) 0%,var(--navy-900) 100%);
  color:#c9d4ea; display:flex; flex-direction:column; overflow-y:auto;
}
.sidebar .logo { display:flex; align-items:center; gap:11px; padding:20px 20px 18px; }
.sidebar .logo-mark {
  width:38px; height:38px; border-radius:10px; flex:none;
  background:linear-gradient(135deg,var(--blue) 0%,var(--gold) 100%);
  display:grid; place-items:center; font-weight:800; font-size:15px; color:#fff; letter-spacing:-.5px;
}
.sidebar .logo-text { font-size:14.5px; font-weight:700; color:#fff; line-height:1.25; }
.sidebar .logo-text small { display:block; font-size:10px; font-weight:400; color:#7d8db0; letter-spacing:.06em; margin-top:2px; }
.sidebar .nav-group { padding:6px 12px; }
.sidebar .nav-group-title { font-size:10.5px; font-weight:700; letter-spacing:.12em; color:#5c6f96; padding:14px 10px 6px; text-transform:uppercase; }
.sidebar .nav-item {
  display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:9px;
  font-size:13.5px; font-weight:500; color:#b9c5dc; transition:.16s; position:relative; margin-bottom:2px;
}
.sidebar .nav-item:hover { background:rgba(255,255,255,.06); color:#fff; }
.sidebar .nav-item.active { background:rgba(35,86,236,.22); color:#fff; font-weight:600; }
.sidebar .nav-item.active::before {
  content:''; position:absolute; left:-12px; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--gold),var(--gold-light));
}
.sidebar .nav-item .svg { color:currentColor; opacity:.85; }
.sidebar .nav-item .badge { margin-left:auto; font-size:10px; font-weight:700; background:var(--gold); color:var(--navy-900); padding:1px 7px; border-radius:99px; }
.sidebar .nav-item .badge.blue { background:var(--blue); color:#fff; }
.sidebar .foot { margin-top:auto; padding:14px 20px; border-top:1px solid rgba(255,255,255,.08); font-size:10.5px; color:#5c6f96; line-height:1.7; }

/* ============ 主区 ============ */
.main { flex:1; margin-left:var(--sidebar-w); min-width:0; display:flex; flex-direction:column; }
.topbar {
  height:60px; background:var(--surface); border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:16px; padding:0 28px; position:sticky; top:0; z-index:40;
}
.topbar .crumb { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-3); }
.topbar .crumb a { color:var(--text-3); }
.topbar .crumb a:hover { color:var(--blue); }
.topbar .crumb .sep { color:var(--border-strong); }
.topbar .crumb b { color:var(--text); font-weight:600; }
.topbar .search {
  margin-left:auto; width:280px; height:38px; background:var(--surface-2);
  border:1px solid var(--border); border-radius:9px; display:flex; align-items:center; gap:8px; padding:0 12px; color:var(--text-3);
}
.topbar .search input { border:0; outline:0; background:none; flex:1; font-size:13px; color:var(--text); }
.topbar .search input::placeholder { color:var(--text-3); }
.topbar .icon-btn { width:38px; height:38px; border-radius:9px; display:grid; place-items:center; color:var(--text-2); position:relative; transition:.15s; }
.topbar .icon-btn:hover { background:var(--surface-2); color:var(--text); }
.topbar .icon-btn .dot { position:absolute; top:8px; right:8px; width:7px; height:7px; border-radius:50%; background:var(--rose); border:2px solid #fff; }
.topbar .user { display:flex; align-items:center; gap:10px; padding-left:16px; border-left:1px solid var(--border); }
.topbar .avatar { width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,var(--navy-700),var(--blue)); color:#fff; display:grid; place-items:center; font-size:13px; font-weight:700; }
.topbar .user .uname { font-size:13px; font-weight:600; line-height:1.2; }
.topbar .user .urole { font-size:11px; color:var(--text-3); }
.ai-trigger { height:38px; margin-left:auto; padding:0 15px; border-radius:99px; background:linear-gradient(135deg,var(--blue),var(--purple)); color:#fff; font-size:13px; font-weight:600; display:flex; align-items:center; gap:7px; box-shadow:0 4px 14px rgba(35,86,236,.25); flex:none; }
.ai-trigger:hover { box-shadow:0 6px 20px rgba(35,86,236,.4); }
.ai-trigger .ti { width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.22); display:grid; place-items:center; font-size:11px; font-weight:800; }

.content { padding:24px 28px 48px; }

/* ============ 页头 ============ */
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.page-head .pt { font-size:20px; font-weight:700; letter-spacing:-.3px; }
.page-head .ps { font-size:12.5px; color:var(--text-3); margin-top:4px; }
.page-head .actions { display:flex; gap:8px; flex:none; }

/* ============ 按钮 ============ */
.btn { height:36px; padding:0 16px; border-radius:8px; font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:7px; transition:.15s; border:1px solid transparent; }
.btn-primary { background:var(--blue); color:#fff; }
.btn-primary:hover { background:var(--blue-light); }
.btn-default { background:var(--surface); color:var(--text); border-color:var(--border-strong); }
.btn-default:hover { border-color:var(--blue); color:var(--blue); }
.btn-gold { background:var(--gold); color:var(--navy-900); }
.btn-gold:hover { background:var(--gold-light); }
.btn-ghost { background:transparent; color:var(--blue); }
.btn-sm { height:30px; padding:0 12px; font-size:12px; }

/* ============ 卡片 ============ */
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:20px; }
.card + .card { margin-top:16px; }
.card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.card-head h3 { font-size:15px; font-weight:700; }
.card-head .sub { font-size:12px; color:var(--text-3); }
.card-head .link { font-size:12px; color:var(--blue); font-weight:600; }
.grid { display:grid; gap:16px; }
.grid-2 { grid-template-columns:1fr 1fr; }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }
.g-2-1 { grid-template-columns:2fr 1fr; }
.g-1-2 { grid-template-columns:1fr 2fr; }
.mt-16 { margin-top:16px; } .mb-16 { margin-bottom:16px; }

/* ============ KPI ============ */
.kpis { display:grid; gap:16px; margin-bottom:16px; }
.kpis.k4 { grid-template-columns:repeat(4,1fr); }
.kpis.k5 { grid-template-columns:repeat(5,1fr); }
.kpi {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:16px 18px; position:relative; overflow:hidden;
}
.kpi .k-label { font-size:12px; color:var(--text-2); display:flex; align-items:center; gap:6px; }
.kpi .k-value { font-size:26px; font-weight:800; letter-spacing:-.03em; margin:8px 0 4px; }
.kpi .k-value small { font-size:13px; font-weight:600; color:var(--text-3); margin-left:3px; }
.kpi .k-foot { font-size:11.5px; display:flex; align-items:center; gap:7px; }
.kpi .k-foot .up { color:var(--success); font-weight:700; }
.kpi .k-foot .down { color:var(--danger); font-weight:700; }
.kpi .k-foot .meta { color:var(--text-3); }
.kpi .k-ic { position:absolute; right:14px; top:14px; width:34px; height:34px; border-radius:9px; display:grid; place-items:center; }
.kpi .k-ic.blue { background:var(--blue-soft); color:var(--blue); }
.kpi .k-ic.gold { background:var(--gold-soft); color:var(--gold); }
.kpi .k-ic.green { background:var(--green-soft); color:var(--green); }
.kpi .k-ic.purple { background:var(--purple-soft); color:var(--purple); }
.kpi .k-ic.rose { background:var(--rose-soft); color:var(--rose); }

/* ============ 标签 ============ */
.tag { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:99px; font-size:11px; font-weight:600; }
.tag-blue { background:var(--blue-soft); color:var(--blue); }
.tag-gold { background:var(--gold-soft); color:#a8842a; }
.tag-green { background:var(--green-soft); color:var(--green); }
.tag-purple { background:var(--purple-soft); color:var(--purple); }
.tag-rose { background:var(--rose-soft); color:var(--rose); }
.tag-gray { background:var(--surface-2); color:var(--text-2); }

/* ============ 表格 ============ */
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl th { text-align:left; padding:10px 14px; background:var(--surface-2); color:var(--text-2); font-weight:600; font-size:12px; border-bottom:1px solid var(--border); white-space:nowrap; }
.tbl td { padding:13px 14px; border-bottom:1px solid var(--border); color:var(--text); }
.tbl tr:last-child td { border-bottom:0; }
.tbl tr:hover td { background:var(--surface-2); }
.tbl .num { font-family:"SF Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums; }

/* ============ 进度条 ============ */
.bar { height:6px; border-radius:99px; background:var(--surface-2); overflow:hidden; }
.bar i { display:block; height:100%; border-radius:99px; background:var(--blue); }
.bar.gold i { background:var(--gold); }
.bar.green i { background:var(--green); }
.bar.purple i { background:var(--purple); }
.bar.danger i { background:var(--danger); }

/* ============ 列表项 ============ */
.row-item { display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); }
.row-item:last-child { border-bottom:0; }
.row-item .rk { width:26px; height:26px; border-radius:7px; display:grid; place-items:center; font-size:12px; font-weight:800; color:var(--text-3); background:var(--surface-2); flex:none; }
.row-item:nth-child(1) .rk { background:var(--gold-soft); color:#a8842a; }
.row-item:nth-child(2) .rk { background:#eef1f6; color:#7a8aa3; }
.row-item:nth-child(3) .rk { background:#f2e8d8; color:#b08a4a; }
.row-item .ri-main { flex:1; min-width:0; }
.row-item .ri-name { font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.row-item .ri-sub { font-size:11.5px; color:var(--text-3); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.row-item .ri-val { font-family:"SF Mono",ui-monospace,monospace; font-weight:700; color:var(--blue); font-size:14px; flex:none; }

/* ============ Feed ============ */
.feed { display:flex; flex-direction:column; }
.feed-item { display:flex; gap:11px; padding:11px 0; border-bottom:1px solid var(--border); font-size:13px; }
.feed-item:last-child { border-bottom:0; }
.feed-item .f-ic { width:30px; height:30px; border-radius:8px; flex:none; display:grid; place-items:center; }
.feed-item .f-ic.blue { background:var(--blue-soft); color:var(--blue); }
.feed-item .f-ic.gold { background:var(--gold-soft); color:#a8842a; }
.feed-item .f-ic.green { background:var(--green-soft); color:var(--green); }
.feed-item .f-ic.purple { background:var(--purple-soft); color:var(--purple); }
.feed-item .f-ic.rose { background:var(--rose-soft); color:var(--rose); }
.feed-item .f-body { flex:1; min-width:0; }
.feed-item .f-title { color:var(--text); }
.feed-item .f-title b { color:var(--blue); }
.feed-item .f-sub { font-size:11.5px; color:var(--text-3); margin-top:2px; }
.feed-item .f-time { font-size:11px; color:var(--text-3); white-space:nowrap; }

/* ============ 提示条 ============ */
.alert { padding:11px 14px; border-radius:10px; font-size:12.5px; display:flex; align-items:flex-start; gap:9px; border:1px solid transparent; }
.alert + .alert { margin-top:10px; }
.alert .svg { margin-top:1px; }
.alert.info { background:var(--blue-soft); color:#1e40af; border-color:#dbe6ff; }
.alert.success { background:var(--green-soft); color:#166534; border-color:#ccefe2; }
.alert.warn { background:var(--orange-soft); color:#92400e; border-color:#ffe4bf; }
.alert.gold { background:var(--gold-soft); color:#8a6a1f; border-color:#f0e2bd; }

/* ============ 图表区 ============ */
.chart-box { width:100%; }
.chart-box svg { width:100%; height:auto; display:block; }
.legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; }
.legend .lg { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--text-2); }
.legend .lg i { width:9px; height:9px; border-radius:3px; flex:none; }

/* ============ 小程序 phone ============ */
.phone-stage { display:flex; justify-content:center; gap:40px; flex-wrap:wrap; }

/* ============ 欢迎/登录页 ============ */
.welcome-layer {
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(1000px 600px at 80% -10%,rgba(35,86,236,.22),transparent 55%),
    radial-gradient(800px 500px at -5% 105%,rgba(201,169,97,.14),transparent 55%),
    linear-gradient(140deg,#0b1633 0%,#13244D 55%,#0b1633 100%);
  transition:opacity .45s ease, visibility .45s;
}
.welcome-layer.hide { opacity:0; visibility:hidden; pointer-events:none; }
.welcome-card { width:440px; max-width:92vw; text-align:center; color:#fff; animation:wlIn .5s ease; }
@keyframes wlIn { from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none} }
.wl-brand { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:22px; }
.wl-brand .wl-logo { width:56px; height:56px; border-radius:15px; background:linear-gradient(135deg,var(--blue),var(--gold)); display:grid; place-items:center; font-size:24px; font-weight:800; color:#fff; box-shadow:0 12px 32px rgba(201,169,97,.35); }
.wl-brand .wl-x { font-size:22px; color:var(--gold); font-weight:300; }
.wl-brand .wl-logo2 { width:56px; height:56px; border-radius:15px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); display:grid; place-items:center; font-size:13px; font-weight:800; color:var(--gold-light); letter-spacing:.5px; }
.welcome-card h1 { font-size:24px; font-weight:800; letter-spacing:-.3px; line-height:1.3; }
.welcome-card .wl-sub { font-size:14px; color:#b9c5dc; margin-top:12px; }
.welcome-card .wl-tagline { font-size:13px; color:var(--gold-light); margin-top:6px; letter-spacing:.06em; }
.wl-form { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:24px; margin-top:28px; text-align:left; backdrop-filter:blur(10px); }
.wl-form .field { margin-bottom:14px; }
.wl-form .field label { display:block; font-size:12px; color:#b9c5dc; margin-bottom:6px; }
.wl-form .field .f-ctl { display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:9px; padding:0 13px; height:42px; }
.wl-form .field .f-ctl .svg { color:#7d8db0; }
.wl-form .field input { background:none; border:0; outline:0; flex:1; color:#fff; font-size:13.5px; font-family:inherit; }
.wl-form .field input::placeholder { color:#5c6f96; }
.wl-enter { width:100%; height:44px; border-radius:9px; background:linear-gradient(135deg,var(--blue),var(--gold)); color:#fff; font-size:15px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:8px; margin-top:6px; transition:.2s; }
.wl-enter:hover { box-shadow:0 8px 24px rgba(201,169,97,.35); transform:translateY(-1px); }
.wl-foot { margin-top:22px; font-size:11px; color:#5c6f96; letter-spacing:.1em; }

/* ============ 模态框 ============ */
.modal-mask { position:fixed; inset:0; z-index:900; background:rgba(11,22,51,.52); display:none; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(2px); }
.modal-mask.show { display:flex; }
.modal { width:540px; max-width:94vw; max-height:88vh; overflow-y:auto; background:var(--surface); border-radius:16px; box-shadow:var(--shadow-lg); animation:mdIn .25s ease; }
@keyframes mdIn { from{opacity:0; transform:translateY(14px) scale(.98)} to{opacity:1; transform:none} }
.modal-head { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--border); }
.modal-head h3 { font-size:16px; font-weight:700; display:flex; align-items:center; gap:9px; }
.modal-head h3 .m-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; }
.modal-head .m-close { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; color:var(--text-3); font-size:18px; }
.modal-head .m-close:hover { background:var(--surface-2); color:var(--text); }
.modal-body { padding:20px 22px; }
.modal-foot { display:flex; justify-content:flex-end; gap:10px; padding:16px 22px; border-top:1px solid var(--border); }
.field { margin-bottom:15px; }
.field label { display:block; font-size:12.5px; font-weight:600; color:var(--text-2); margin-bottom:7px; }
.field input,.field select,.field textarea { width:100%; height:40px; padding:0 12px; border:1px solid var(--border-strong); border-radius:9px; font-size:13px; color:var(--text); font-family:inherit; background:var(--surface); outline:none; transition:.15s; }
.field textarea { height:auto; padding:10px 12px; resize:vertical; min-height:76px; line-height:1.6; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,86,236,.1); }
.ai-gen-box { background:linear-gradient(135deg,var(--blue-soft),var(--purple-soft)); border:1px solid #dbe6ff; border-radius:12px; padding:14px 16px; margin-top:14px; position:relative; }
.ai-gen-box .ag-label { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; color:var(--purple); margin-bottom:8px; }
.ai-gen-box .ag-label .ai-ic { width:20px; height:20px; border-radius:6px; background:linear-gradient(135deg,var(--blue),var(--purple)); color:#fff; display:grid; place-items:center; font-size:10px; font-weight:800; }
.ai-gen-box .ag-text { font-size:12.5px; color:var(--text-2); line-height:1.8; }
.ai-gen-box .ag-load { display:inline-block; width:14px; height:14px; border:2px solid var(--blue); border-top-color:transparent; border-radius:50%; animation:spin .7s linear infinite; vertical-align:-2px; margin-right:6px; }
@keyframes spin { to{transform:rotate(360deg)} }

/* ============ AI 多金 抽屉 ============ */
.chat-mask { position:fixed; inset:0; z-index:940; background:rgba(11,22,51,.35); display:none; }
.chat-mask.show { display:block; }
.chat-drawer { position:fixed; right:0; top:0; bottom:0; width:390px; max-width:94vw; z-index:950; background:var(--surface); display:flex; flex-direction:column; transform:translateX(105%); transition:transform .3s cubic-bezier(.2,.7,.3,1); box-shadow:-16px 0 48px rgba(11,22,51,.2); }
.chat-drawer.show { transform:none; }
.chat-head { display:flex; align-items:center; gap:12px; padding:18px 20px; background:linear-gradient(120deg,var(--navy-800),var(--navy-700)); color:#fff; }
.chat-head .ch-avatar { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--gold)); display:grid; place-items:center; font-size:13px; font-weight:800; flex:none; }
.chat-head .ch-name { font-size:15px; font-weight:800; }
.chat-head .ch-status { font-size:11px; color:#b9c5dc; margin-top:2px; display:flex; align-items:center; gap:6px; }
.chat-head .ch-status .ch-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px rgba(37,181,138,.25); }
.chat-head .ch-close { margin-left:auto; width:30px; height:30px; border-radius:8px; display:grid; place-items:center; color:#b9c5dc; font-size:20px; }
.chat-head .ch-close:hover { background:rgba(255,255,255,.12); color:#fff; }
.chat-body { flex:1; overflow-y:auto; padding:18px 16px; display:flex; flex-direction:column; gap:12px; background:var(--bg); }
.msg { max-width:82%; padding:11px 14px; border-radius:14px; font-size:13px; line-height:1.65; animation:mdIn .25s ease; }
.msg.ai { align-self:flex-start; background:var(--surface); border:1px solid var(--border); border-bottom-left-radius:4px; color:var(--text); }
.msg.ai .m-avatar { display:inline-flex; width:20px; height:20px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--gold)); color:#fff; font-size:9px; align-items:center; justify-content:center; font-weight:800; margin-right:7px; vertical-align:-3px; }
.msg.user { align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:4px; }
.msg .m-action { display:block; margin-top:8px; font-size:12px; font-weight:700; color:var(--blue); cursor:pointer; }
.msg.ai .m-action { color:var(--purple); }
.chat-quick { display:flex; gap:7px; padding:10px 14px; overflow-x:auto; background:var(--surface); border-top:1px solid var(--border); scrollbar-width:none; }
.chat-quick::-webkit-scrollbar { display:none; }
.cq { flex:none; font-size:12px; font-weight:600; padding:7px 13px; border-radius:99px; background:var(--surface-2); border:1px solid var(--border); color:var(--text-2); cursor:pointer; transition:.15s; white-space:nowrap; }
.cq:hover { border-color:var(--blue); color:var(--blue); background:var(--blue-soft); }
.chat-input { display:flex; gap:8px; padding:14px; background:var(--surface); border-top:1px solid var(--border); }
.chat-input input { flex:1; height:40px; padding:0 14px; border:1px solid var(--border-strong); border-radius:99px; font-size:13px; color:var(--text); font-family:inherit; outline:none; }
.chat-input input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,86,236,.1); }

/* ============ 响应式 ============ */
@media (max-width:1280px) {
  .kpis.k4,.kpis.k5 { grid-template-columns:repeat(2,1fr); }
  .g-2-1,.g-1-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .sidebar { display:none; }
  .main { margin-left:0; }
  .topbar .search { display:none; }
  .chat-drawer { width:100vw; }
}
