:root{
  --bg:#f3f7fb;
  --surface:#ffffff;
  --line:#d8e3ec;
  --ink:#1f2f3d;
  --ink-soft:#5b6f80;
  --blue:#0e5f9d;
  --green:#1f7d4d;
  --orange:#b56610;
  --teal:#0f7f7b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font:14px/1.5 "Segoe UI","Calibri",Arial,sans-serif;
  background:
    radial-gradient(circle at 8% 0,#dceaf8 0,transparent 34%),
    radial-gradient(circle at 100% 10%,#dff3e8 0,transparent 28%),
    var(--bg);
}
a{color:var(--blue)}
.container{width:min(1200px,93vw);margin:0 auto}
.topbar{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(243,247,251,.93);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(6px);
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
}
.topbar-tools{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--ink);
}
.brand-logo{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid #bfd4e4;
  background:#fff;
}
.brand-mark{
  width:34px;height:34px;border-radius:10px;
  background:linear-gradient(145deg,#0e5f9d,#1f8ccc);
  color:#fff;display:grid;place-items:center;
  font:700 13px "Bahnschrift","Segoe UI",sans-serif;
}
.brand strong{display:block;font:700 17px "Bahnschrift","Trebuchet MS","Segoe UI",sans-serif}
.brand small{display:block;font-size:11px;color:var(--ink-soft)}
.main-menu,.section-menu{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.main-menu a,.section-menu a{
  text-decoration:none;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:700;
}
.main-menu a.is-active,.section-menu a.is-active{
  border-color:#88b8da;
  background:#eaf4fd;
  color:var(--blue);
}
.section-menu{padding:0 0 10px}
.top-search{
  display:flex;
  align-items:center;
  gap:6px;
}
.top-search input{
  width:min(280px,42vw);
  border:1px solid #c0d1df;
  border-radius:9px;
  padding:8px 10px;
  font:12px/1.2 "Segoe UI","Calibri",Arial,sans-serif;
  background:#fff;
  color:var(--ink);
}
.top-search input:focus{
  outline:none;
  border-color:#81b0d1;
  box-shadow:0 0 0 3px rgba(14,95,157,.12);
}
.top-search button{
  border:1px solid #9ec0d8;
  border-radius:9px;
  padding:8px 10px;
  background:#eaf4fc;
  color:#0e5f9d;
  font:700 12px/1 "Segoe UI","Calibri",Arial,sans-serif;
  cursor:pointer;
}
.top-print{
  border:1px solid #a8c8de;
  border-radius:9px;
  padding:8px 10px;
  background:#fff;
  color:#0d5f99;
  font:700 12px/1 "Segoe UI","Calibri",Arial,sans-serif;
  cursor:pointer;
}
.hero{
  margin:18px 0 12px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
  box-shadow:0 8px 24px rgba(19,40,62,.08);
}
.hero h1{
  margin:0;
  font:700 clamp(24px,2.5vw,34px) "Bahnschrift","Trebuchet MS","Segoe UI",sans-serif;
}
.hero p{
  margin:8px 0 0;
  color:var(--ink-soft);
}
.grid{
  display:grid;
  gap:12px;
}
.report-grid{
  display:grid;
  gap:12px;
}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.report-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  box-shadow:0 8px 24px rgba(19,40,62,.08);
}
.panel h2,.panel h3{
  margin:0 0 8px;
  font-family:"Bahnschrift","Trebuchet MS","Segoe UI",sans-serif;
}
.panel-sub{font-size:12px;color:var(--ink-soft);margin-top:-2px}
.stat-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.stat-card .label{font-size:11px;color:var(--ink-soft)}
.stat-card .value{font:700 25px/1 "Bahnschrift","Trebuchet MS","Segoe UI",sans-serif;margin:5px 0}
.stat-card .note{font-size:12px;color:#486177}

.chip-row{display:flex;gap:6px;flex-wrap:wrap}
.chip{
  padding:5px 8px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:11px;
  font-weight:700;
}
.chip.c-9001{background:#e5f1fb;border-color:#bfd8ec;color:var(--blue)}
.chip.c-14001{background:#e3f3ea;border-color:#bcdeca;color:var(--green)}
.chip.c-45001{background:#f8ecde;border-color:#ebcfb1;color:var(--orange)}
.chip.c-ims{background:#def4f2;border-color:#b8e2df;color:var(--teal)}
.chip.c-generic{background:#edf4f8;border-color:#d1dde8;color:#3b5b71}

.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.doc-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:10px;
  display:grid;
  gap:8px;
}
.doc-card header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.doc-card h3{
  margin:0;
  font-size:14px;
  line-height:1.35;
  word-break:break-word;
}
.doc-card .type{
  font-size:11px;
  font-weight:800;
  border:1px solid #d2dde8;
  background:#eff4f8;
  color:#355972;
  border-radius:8px;
  padding:4px 7px;
  white-space:nowrap;
}
.meta-row{display:flex;gap:8px;flex-wrap:wrap}
.meta-item{font-size:11px;color:#5a7183}
.path{
  font-size:11px;
  color:#688196;
  border-top:1px dashed #dce6ee;
  padding-top:7px;
  word-break:break-all;
}
.doc-card footer{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  border:1px solid #a8c8de;
  border-radius:9px;
  background:#fff;
  color:#0d5f99;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  padding:7px 10px;
}
.btn.btn-primary{
  background:#eaf4fc;
}

.filter-row{
  display:grid;
  gap:9px;
  grid-template-columns:minmax(250px,1.4fr) repeat(4,minmax(120px,1fr));
  margin-bottom:10px;
}
.filter{
  display:grid;
  gap:4px;
}
.filter label{
  font-size:11px;
  font-weight:700;
  color:var(--ink-soft);
  text-transform:uppercase;
  letter-spacing:.25px;
}
.filter input,.filter select{
  width:100%;
  border:1px solid #c3d2de;
  border-radius:9px;
  background:#fff;
  color:var(--ink);
  padding:9px 10px;
  outline:none;
}
.filter input:focus,.filter select:focus{
  border-color:#81b0d1;
  box-shadow:0 0 0 3px rgba(14,95,157,.12);
}
.result-head{
  display:flex;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
  font-size:12px;
  color:#486177;
  margin-bottom:8px;
}
.empty{
  border:1px dashed #b9cad8;
  border-radius:11px;
  background:#f6fafd;
  color:#4c667b;
  padding:14px;
  font-size:13px;
}

.cat-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:7px;
}
.cat-list li{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  font-size:12px;
}

.timeline{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.timeline li{
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  padding:9px 11px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:9px;
  align-items:center;
}
.timeline .year{
  min-width:52px;
  text-align:center;
  padding:5px 4px;
  border:1px solid #bbd4e7;
  border-radius:8px;
  background:#eaf4fb;
  color:#11507f;
  font-weight:700;
  font-size:12px;
}
.timeline .title{font-size:13px;font-weight:700}
.timeline .meta{font-size:11px;color:#5a7184}

.doc-frame{
  width:100%;
  height:72vh;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.converted-viewer{
  border:1px solid #d3dee8;
  border-radius:11px;
  overflow:hidden;
  background:#fff;
}
.converted-viewer iframe,
.converted-viewer object{
  width:100%;
  min-height:72vh;
  border:0;
}
.chart-card{
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:#fff;
}
.chart-card h3{
  margin:0 0 8px;
  font-size:14px;
}
.chart-svg{
  width:100%;
  height:auto;
  border:1px solid #d8e4ef;
  border-radius:10px;
  background:#fff;
}
.chart-axis-label{
  fill:#60788d;
  font:11px "Segoe UI","Calibri",Arial,sans-serif;
}
.chart-legend-label{
  fill:#304c63;
  font:11px "Segoe UI","Calibri",Arial,sans-serif;
}
.table-wrap{
  width:100%;
  overflow:auto;
  border:1px solid #d8e3ec;
  border-radius:10px;
  background:#fff;
}
.data-table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}
.data-table thead th{
  position:sticky;
  top:0;
  background:#ecf4fb;
  color:#21455f;
  font:700 12px "Segoe UI","Calibri",Arial,sans-serif;
}
.data-table th,.data-table td{
  border-bottom:1px solid #deeaF2;
  padding:8px 9px;
  vertical-align:top;
  text-align:left;
  font-size:12px;
}
.data-table tbody tr:nth-child(even){
  background:#f8fbfe;
}
.insight-list{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:7px;
}
.insight-list li{
  font-size:13px;
  color:#2f475b;
}
.recommend-list{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:7px;
}
.recommend-list li{
  font-size:13px;
  color:#2f475b;
}
.badge{
  display:inline-block;
  padding:4px 7px;
  border:1px solid #b8d2e5;
  border-radius:999px;
  background:#edf6fd;
  color:#15527f;
  font-size:11px;
  font-weight:700;
}
.quote-list{
  display:grid;
  gap:10px;
}
.quote-list blockquote{
  margin:0;
  padding:10px 12px;
  border-left:4px solid #84afd0;
  border:1px solid #d2e2ef;
  border-radius:9px;
  background:#f6fbff;
  font-size:13px;
  color:#2b4358;
}

.footer{
  margin-top:16px;
  padding:14px 0 26px;
  color:#587185;
  font-size:12px;
  text-align:center;
}

@media (max-width:1080px){
  .grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-grid.cols-2{grid-template-columns:1fr}
  .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:920px){
  .doc-grid{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr}
  .topbar-inner{align-items:flex-start}
  .topbar-tools{width:100%;justify-content:flex-start}
  .top-search{width:100%}
  .top-search input{width:100%}
}
@media (max-width:640px){
  .grid.cols-4,.grid.cols-3,.grid.cols-2,.filter-row{grid-template-columns:1fr}
  .report-grid.cols-3,.report-grid.cols-2{grid-template-columns:1fr}
  .main-menu a,.section-menu a{padding:7px 9px}
}

@media print{
  body{
    background:#fff;
  }
  .topbar,
  .footer,
  .top-search,
  .top-print,
  .btn{
    display:none !important;
  }
  .container{
    width:100%;
    margin:0;
  }
  .hero,
  .panel,
  .stat-card,
  .chart-card{
    box-shadow:none;
    border-color:#d7e2ec;
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .hero{
    margin:0 0 10px;
  }
}
