/* XBS Platform — Enterprise-grade Investment UI */
:root {
    --bg-primary: #080b12;
    --bg-sidebar: #0c1019;
    --bg-card: #111620;
    --bg-hover: #161c28;
    --bg-input: #0d1117;
    --text-primary: #e6e8f0;
    --text-secondary: #bcc4d8;
    --text-muted: #b0b8d0;
    --accent: #5b8def;
    --accent-hover: #7aa5ff;
    --accent-dim: rgba(91,141,239,.12);
    --success: #3dd68c;
    --warning: #f5b342;
    --danger: #f0655a;
    --green: #34d399;
    --red: #f87171;
    --border: #1c2130;
    --radius: 6px;
    --sidebar-w: 220px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;
    background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.6;
    display:flex;overflow:hidden;
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
/* Sidebar */
.sidebar{
    width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-sidebar);
    border-right:1px solid var(--border);display:flex;flex-direction:column;
    overflow-y:auto;height:100vh;position:sticky;top:0;z-index:10;
}
.sidebar-brand{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.brand-icon{width:32px;height:32px;background:var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px}
.brand-text{font-size:15px;font-weight:600;color:var(--text-primary)}
.brand-sub{font-size:11px;color:var(--text-muted)}
.sidebar-nav{flex:1;padding:8px 0}
.nav-section{padding:4px 0}
.nav-section-title{padding:8px 20px 4px;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-weight:600}
.nav-item{display:flex;align-items:center;gap:8px;padding:6px 20px;font-size:13px;color:var(--text-secondary);border-left:2px solid transparent;transition:all .15s}
.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}
.nav-item.active{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent)}
.nav-icon{font-size:8px}
.sidebar-footer{padding:12px 20px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--border)}
/* Main */
.main-wrap{flex:1;overflow-y:auto;height:100vh;display:flex;flex-direction:column}
.top-bar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:48px;border-bottom:1px solid var(--border);background:var(--bg-sidebar)}
.breadcrumb{font-size:13px;color:var(--text-secondary)}
.breadcrumb span{color:var(--text-primary);font-weight:600}
.user-badge{font-size:12px;color:var(--success)}
.page-content{flex:1;padding:20px 24px;max-width:1200px;width:100%}
/* Typography */
.page-title{font-size:22px;font-weight:700;margin-bottom:4px;color:var(--text-primary)}
.page-subtitle{font-size:13px;color:var(--text-muted);margin-bottom:16px}
.text-muted{color:var(--text-muted);font-size:13px}
.text-secondary{color:var(--text-secondary);font-size:13px}
/* Cards */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px;color:var(--text-primary)}
.card-header{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
/* Stats */
.stat-card{text-align:center;padding:20px 16px}
.stat-value{font-size:28px;font-weight:700;color:var(--accent)}
.stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px}
/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .15s;text-decoration:none}
.btn:hover{background:var(--bg-hover);color:var(--text-primary)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);color:#fff}
/* Forms */
.form-group{margin-bottom:12px}
.form-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:4px}
.form-input{width:100%;padding:7px 10px;font-size:14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:inherit}
.form-input:focus{outline:none;border-color:var(--accent)}
select.form-input{cursor:pointer}
/* Tables */
.info-table{width:100%;font-size:13px}
.info-table td{padding:5px 8px;border-bottom:1px solid var(--border)}
.info-table td:first-child{color:var(--text-muted);width:100px}
table{width:100%;font-size:13px;border-collapse:collapse}
th,td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border)}
th{color:var(--text-muted);font-weight:600;font-size:12px}
/* Lists */
.list-item{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.list-item:last-child{border-bottom:none}
/* Flash */
.flash-messages{margin-bottom:12px}
.flash{padding:8px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:4px}
.flash-success{background:rgba(61,214,140,.12);color:var(--success);border:1px solid rgba(61,214,140,.25)}
.flash-error{background:rgba(240,101,90,.12);color:var(--danger);border:1px solid rgba(240,101,90,.25)}
/* Checkbox */
.checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;margin-bottom:12px}
.checkbox-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;padding:4px 0}
.checkbox-item input[type=checkbox]{accent-color:var(--accent)}
/* Dim items */
.dim-item{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.03)}
.dim-score{font-weight:600;color:var(--accent)}
.dim-confidence{font-size:11px;color:var(--text-muted);min-width:24px;text-align:right}
/* Problem / Recommendation */
.problem-item,.rec-item{padding:4px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.03)}
.problem-item{color:var(--warning)}
/* Responsive */
@media(max-width:768px){
    .sidebar{display:none}
    .page-content{padding:12px}
    .card-grid{grid-template-columns:1fr}
}
/* Search bar */
.search-bar{display:flex;gap:8px;align-items:center}
.search-input{padding:6px 10px;font-size:14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);flex:1;min-width:200px}
.search-input:focus{outline:none;border-color:var(--accent)}
/* Phase progress */
.phase-steps{display:flex;gap:0;margin-bottom:16px}
.phase-step{flex:1;text-align:center;padding:12px 8px;background:var(--bg-card);border:1px solid var(--border);font-size:13px;position:relative}
.phase-step:first-child{border-radius:var(--radius) 0 0 var(--radius)}
.phase-step:last-child{border-radius:0 var(--radius) var(--radius) 0}
.phase-step.active{background:var(--accent-dim);border-color:var(--accent)}
.phase-step.completed{background:rgba(61,214,140,.08);border-color:var(--success)}
.phase-step .step-num{font-size:20px;font-weight:700}
.phase-step .step-label{font-size:11px;color:var(--text-muted);margin-top:2px}
/* Result card */
.result-item{padding:6px 0;font-size:13px;display:flex;justify-content:space-between}
.result-key{color:var(--text-muted)}
.result-val{font-weight:600}
/* === Print Styles === */
@media print {
  @page { size: A4 portrait; margin: 12mm; }
  html, body { height: auto !important; overflow: visible !important; background: #fff !important; color: #000 !important; font-size: 11px; line-height: 1.5; }
  /* Hide chrome: nav, sidebar, top bar, buttons */
  nav, .sidebar, .sidebar-footer, aside, .top-bar, .top-right, .breadcrumb,
  .nav-section-title, .nav-item, .flash-messages, .mermaid-toolbar,
  .fullscreen-overlay, .no-print, .btn,
  script, style, .mermaid-wrapper .mermaid-toolbar { display: none !important; }
  /* Full-width main */
  .main-wrap { margin-left: 0 !important; padding: 0 !important; width: 100% !important; height: auto !important; overflow: visible !important; }
  .page-content { padding: 0 !important; max-width: 100% !important; overflow: visible !important; }
  /* Cards: allow natural page breaks */
  .card { border: 1px solid #ccc !important; box-shadow: none !important; break-inside: auto; page-break-inside: auto; background: #fff !important; margin-bottom: 6px !important; }
  .card-header { background: #f0f0f0 !important; color: #000 !important; font-size: 13px; font-weight: 700; }
  .card-grid { grid-template-columns: 1fr 1fr !important; gap: 6px !important; break-inside: auto; page-break-inside: auto; }
  /* Titles */
  .page-title { font-size: 18px; color: #000 !important; margin-bottom: 4px; }
  .page-subtitle { font-size: 11px; color: #555 !important; }
  h1, h2 { font-size: 14px; color: #000 !important; }
  h3 { font-size: 12px; color: #000 !important; margin: 8px 0 4px; }
  h4 { font-size: 11px; color: #000 !important; }
  /* Tables: allow breaking */
  .help-table { font-size: 10px; break-inside: auto; page-break-inside: auto; }
  .help-table th { background: #e0e0e0 !important; color: #000 !important; font-size: 10px; }
  .help-table td, .help-table th { border-color: #999 !important; color: #000 !important; padding: 3px 6px; }
  .help-table tr { break-inside: avoid; page-break-inside: avoid; }
  /* Lists and text */
  .tips { background: #f5f5f5 !important; border-left-color: #999 !important; color: #000 !important; font-size: 10px; padding: 6px 10px; }
  ol, ul { font-size: 10px; line-height: 1.6; }
  p { font-size: 10px; }
  canvas { max-width: 100% !important; max-height: 300px !important; }
  a { color: #000 !important; text-decoration: underline; }
  /* Section breaks */
  .help-section { break-inside: auto; page-break-inside: auto; }
  .help-section h2 { color: #000 !important; border-bottom-color: #999 !important; }
  .arch-layer { color: #000 !important; border-left: 3px solid #999 !important; background: #f5f5f5 !important; font-size: 10px; break-inside: avoid; page-break-inside: avoid; }
  .arch-layer .layer-desc, .arch-layer .layer-num { color: #555 !important; }
  /* Result items */
  .result-item, .result-key, .result-val { color: #000 !important; font-size: 10px; }
  .problem-item, .rec-item { color: #000 !important; font-size: 10px; }
  .dim-item, .dim-score, .dim-confidence { color: #000 !important; }
  /* Utilities */
  .print-only { display: block !important; }
  .stat-card { text-align: center !important; min-width: auto !important; }
  .stat-value { font-size: 14px !important; }
  .stat-label { font-size: 9px !important; }
}
.print-only { display: none; }

/* H038 生态中心样式外置 (2026-08-26 首批) */
.eco-s-1 { align-self:center;font-size:13px;color:var(--accent) }
.eco-s-7 { background:rgba(52,211,153,0.24) }
.eco-s-0 { display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;align-items:center }
.eco-s-8 { font-size:10px;color:var(--text-muted) }
.eco-s-12 { margin-left:10px }
.eco-s-3 { margin-left:auto;font-size:11px;color:var(--text-muted) }
.eco-s-2 { margin-left:auto;padding:3px 10px;border-radius:10px;background:rgba(248,113,113,.15);border:1px solid var(--red);color:var(--red);font-size:11px;font-weight:700 }
.eco-s-14 { margin-right:10px }
.eco-s-10 { padding:10px;color:var(--text-muted) }
.eco-s-6 { padding:6px }
.eco-s-9 { padding:6px;border-bottom:1px solid var(--border) }
.eco-s-16 { padding:6px;border-bottom:1px solid var(--border);max-width:400px;word-break:break-all }
.eco-s-15 { padding:8px 0 0;font-size:12px }
.eco-s-13 { padding:8px 0;font-size:13px }
.eco-s-11 { padding:6px;border-bottom:1px solid var(--border);font-family:monospace }
.eco-s-5 { text-align:left;color:var(--text-muted) }
.eco-s-4 { width:100%;border-collapse:collapse;font-size:12px }
/* eco-jinja-0 dynamic: padding:6px;border-bottom:1px solid var(--border);border-left:6px solid {{ 'var(--green)' if n.online else 'var(--red)' }} */
/* eco-jinja-1 dynamic: color:{{ 'var(--green)' if n.online else 'var(--red)' }};margin-right:6px */
/* eco-jinja-2 dynamic: display:inline-block;padding:3px 10px;border-radius:10px;font-weight:700;font-size:12px;background:{{ 'var(--green)' if n.online else 'var(--red)' }};color:#ffffff */
/* eco-jinja-3 dynamic: background:{{ 'rgba(52,211,153,.15)' if n.contribute else 'rgba(248,113,113,.15)' }};color:{{ 'var(--green)' if n.contribute else 'var(--red)' }} */
/* eco-jinja-4 dynamic: color:{{ 'var(--green)' if item.delta > 0 else 'var(--red)' }} */

/* H038 生态中心动态条件类 (2026-08-26) */
.eco-row { padding:6px;border-bottom:1px solid var(--border) }
.eco-l-ok { border-left:6px solid var(--green) }
.eco-l-bad { border-left:6px solid var(--red) }
.eco-dot { margin-right:6px }
.eco-ok { color:var(--green) }
.eco-bad { color:var(--red) }
.eco-badge { display:inline-block;padding:3px 10px;border-radius:10px;font-weight:700;font-size:12px;color:#fff }
.eco-bg-ok { background:var(--green) }
.eco-bg-bad { background:var(--red) }
.eco-tag-ok { background:rgba(52,211,153,.15);color:var(--green) }
.eco-tag-bad { background:rgba(248,113,113,.15);color:var(--red) }
.eco-delta { }
.eco-tag { }

/* H038 partial 片段样式 (2026-08-27 收尾): partials/enterprise_context 被多页 include,
   其 st_ 类合并进全局 style.css 保证父页面渲染生效 */
.st_fa3e1c7d2e{margin-bottom:12px}
.st_14113d4b54{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.st_d4ac97086f{color:#059669}
.st_908c641a5c{color:#6b7280}
.st_6723e0d4d6{font-size:12px;color:var(--text-muted)}
.st_0691a1f301{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;padding:8px;min-width:260px}
