:root{
  --bg:#f4f6fb; --panel:#ffffff; --ink:#1f2733; --muted:#6b7686;
  --line:#e3e8f0; --brand:#1f5eff; --brand-d:#1340c4; --accent:#0aa66e;
  --warn:#c8761a; --danger:#d8443c; --soft:#eef3ff;
  --radius:12px; --shadow:0 2px 10px rgba(20,40,90,.06);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 18px;background:linear-gradient(90deg,#133a8e,#1f5eff);color:#fff;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:8px}
.logo{font-weight:800;letter-spacing:.5px;font-size:20px}
.brand-sub{font-size:13px;opacity:.85}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{border:none;background:rgba(255,255,255,.15);color:#fff;padding:8px 14px;border-radius:20px;
  cursor:pointer;font-size:14px;transition:.15s}
.tab:hover{background:rgba(255,255,255,.28)}
.tab.active{background:#fff;color:var(--brand-d);font-weight:700}
.content{padding:18px;max-width:1180px;margin:0 auto}
.panel{display:none;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.panel.active{display:block}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:10px}
.panel-head h2{margin:0;font-size:18px}
.hint{color:var(--muted);font-size:12.5px}
.row{display:flex;align-items:center;gap:10px}
.row.between{justify-content:space-between}
.row.wrap{flex-wrap:wrap;margin:10px 0}
.gap{gap:10px}
.btn{border:none;background:var(--brand);color:#fff;padding:9px 14px;border-radius:8px;cursor:pointer;font-size:14px}
.btn:hover{background:var(--brand-d)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.ghost{background:var(--soft);color:var(--brand-d)}
.btn.ghost:hover{background:#dde8ff}
.btn.danger{background:var(--danger)}
.filebtn{display:inline-flex;align-items:center;gap:6px;background:var(--soft);color:var(--brand-d);
  padding:9px 14px;border-radius:8px;cursor:pointer;font-size:14px}
.filebtn:hover{background:#dde8ff}
.inp{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;background:#fff;color:var(--ink)}
.inp.grow{flex:1;min-width:200px}
.inp.small{width:120px}
textarea.raw{width:100%;min-height:120px;border:1px solid var(--line);border-radius:8px;padding:11px;
  font-size:14px;resize:vertical;margin:8px 0;font-family:inherit}
.minutes-out{border:1px solid var(--line);border-radius:8px;padding:14px;min-height:160px;background:#fcfdff;margin-top:6px}
.minutes-out:focus{outline:2px solid var(--soft)}
.status{color:var(--muted);font-size:13px}
.banner{padding:10px 12px;border-radius:8px;margin:8px 0;font-size:13px}
.banner.warn{background:#fff4e2;border:1px solid #f0d29a;color:#8a5a12}
.banner.info{background:#eef3ff;border:1px solid #cdddff;color:var(--brand-d)}
.trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.trip-right .map{width:100%;height:520px;border-radius:10px;border:1px solid var(--line);background:#eef1f6}
.client-list{list-style:none;padding:0;margin:12px 0}
.client-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:#fcfdff}
.client-list .idx{background:var(--brand);color:#fff;border-radius:50%;width:22px;height:22px;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.client-list .meta{font-size:12px;color:var(--muted)}
.client-list .del{cursor:pointer;color:var(--danger);border:none;background:none;font-size:16px}
.route-plan{margin-top:10px;font-size:13.5px}
.route-plan .seg{border-left:3px solid var(--brand);padding:6px 0 6px 12px;margin:8px 0}
.route-plan .mode{display:inline-block;background:var(--soft);color:var(--brand-d);border-radius:6px;padding:1px 8px;font-size:12px;margin-left:6px}
.board-out{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:14px}
.card{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fcfdff;position:relative}
.card .tag{font-size:11px;padding:2px 8px;border-radius:10px;color:#fff;display:inline-block}
.card .tag.opportunity{background:var(--accent)}
.card .tag.competitor{background:var(--danger)}
.card .tag.market{background:var(--brand)}
.card .tag.folder{background:#7a3ff2}
.card .body{max-height:170px;overflow:auto;margin-top:8px;font-size:12.5px;color:var(--ink);background:#fafbff;border:1px solid var(--line);border-radius:8px;padding:8px;line-height:1.6}
.card h4{margin:8px 0 4px;font-size:15px}
.card .line{font-size:12.5px;color:var(--muted)}
.card .rm{position:absolute;top:8px;right:10px;cursor:pointer;color:var(--danger);border:none;background:none;font-size:15px}
.settings-box{font-size:14px;line-height:1.9}
.settings-box code{background:var(--soft);padding:1px 6px;border-radius:5px}
.settings-form{align-items:flex-end;margin:10px 0}
.field{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px;min-width:200px}
.field .inp{width:100%}
.field .inp::placeholder{font-size:12.5px}
.trip-search{margin:4px 0 2px}
.tips{list-style:none;margin:0 0 10px;padding:0;max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.tips li{padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.tips li:last-child{border-bottom:none}
.tips li:hover{background:var(--soft)}
.saved-box{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.saved-list{list-style:none;margin:8px 0 0;padding:0}
.saved-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;flex-wrap:wrap}
.saved-list .mi{display:flex;flex-direction:column}
.saved-list .acts{display:flex;gap:6px}
.saved-list .acts button,.hist-list button{border:1px solid var(--brand);background:#fff;color:var(--brand-d);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:12px}
.saved-list .acts button:hover,.hist-list button:hover{background:var(--brand);color:#fff}
.hist-results{margin-top:14px}
.hist-list{list-style:none;margin:6px 0 14px;padding:0}
.hist-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;flex-wrap:wrap}
.empty{color:var(--muted);font-size:13px;padding:6px 2px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:16px}
/* 电子纸资讯工作台内嵌 */
.epaper-embed{border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:12px 0;background:var(--panel)}
.epaper-frame{width:100%;height:72vh;border:1px solid var(--line);border-radius:10px;margin-top:6px;background:#0b1020}

/* 出差规划新组件 */
.trip-form{margin:6px 0 14px}
.trip-block{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px;background:#fcfdff}
.blk-label{display:block;font-weight:700;font-size:13.5px;margin-bottom:8px;color:var(--ink)}
.picked{margin-top:8px;font-size:13px;min-height:20px}
.picked-on{font-weight:600;color:var(--accent)}
.muted{color:var(--muted);font-size:12.5px}
.recents-box{border:1px dashed var(--brand);border-radius:10px;padding:10px 12px;margin-bottom:12px;background:var(--soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{border:1px solid var(--brand);background:#fff;color:var(--brand-d);border-radius:16px;padding:6px 12px;cursor:pointer;font-size:13px}
.chip:hover{background:var(--brand);color:#fff}
.tips li{display:block}
.tip-main{padding:2px 0}
.tip-acts{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.mini{border:1px solid var(--brand);background:#fff;color:var(--brand-d);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:12px}
.mini:hover{background:var(--brand);color:#fff}
.btn.primary{background:var(--accent);font-weight:700}
.btn.primary:hover{background:#088a5b}

/* 移动端响应式（手机/平板友好，触控优先） */
@media(max-width:860px){
  .topbar{padding:8px 12px}
  .tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;gap:6px;-webkit-overflow-scrolling:touch}
  .tab{white-space:nowrap;flex:none;padding:8px 13px;font-size:13px}
  .content{padding:12px}
  .panel{padding:14px}
  .panel-head h2{font-size:16px}
  .inp,.btn,.filebtn{font-size:16px;min-height:44px}
  .row.gap.wrap .inp,.row.gap.wrap .btn,.row.gap.wrap .filebtn{flex:1 1 100%}
  .trip-grid{grid-template-columns:1fr}
  .trip-right .map{height:340px;order:-1}
  .trip-left{order:2}
  .epaper-frame{height:68vh}
}
@media(max-width:480px){
  .trip-right .map{height:300px}
  .epaper-frame{height:60vh}
}
