
  :root{
    --vw-bg:#101318; --vw-panel:#171b22; --vw-line:#2a3140; --vw-text:#e8ecf2;
    --vw-muted:#9aa5b4; --vw-accent:#3b82f6; --vw-danger:#ef4444;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html,body{ height:100%; }
  body{
    background:var(--vw-bg); color:var(--vw-text);
    font:14px/1.5 "Segoe UI", system-ui, -apple-system, sans-serif;
    display:flex; flex-direction:column;
  }
  .vw-top{
    display:flex; align-items:center; gap:12px;
    padding:10px 14px; background:var(--vw-panel);
    border-bottom:1px solid var(--vw-line); flex-shrink:0;
  }
  .vw-back{
    display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:8px; flex-shrink:0;
    color:var(--vw-text); text-decoration:none; border:1px solid var(--vw-line);
    font-size:17px;
  }
  .vw-back:hover{ border-color:var(--vw-accent); color:var(--vw-accent); }
  /* Bladeren tussen de bestanden van het pakket. Zelfde vorm als de terugknop,
     zodat de balk één rij gelijke knoppen blijft. Een uitgeschakelde pijl blijft
     STAAN in plaats van te verdwijnen: springende knoppen zijn hinderlijk als je
     door twintig tekeningen klikt, en zo zie je meteen dat je aan het begin of
     het eind bent. */
  .vw-nav{
    display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:8px; flex-shrink:0;
    color:var(--vw-text); text-decoration:none; border:1px solid var(--vw-line);
    font-size:17px; background:none; cursor:pointer; font-family:inherit;
  }
  .vw-nav:hover{ border-color:var(--vw-accent); color:var(--vw-accent); }
  .vw-nav[aria-disabled="true"]{ opacity:.32; pointer-events:none; }
  .vw-teller{ font-size:12px; color:var(--vw-muted); flex-shrink:0; white-space:nowrap; }
  /* Op een smal scherm is de bestandsnaam belangrijker dan de teller. */
  @media (max-width:560px){ .vw-teller{ display:none; } }
  .vw-meta{ min-width:0; flex:1; }
  .vw-name{ font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .vw-size{ font-size:12px; color:var(--vw-muted); }
  .vw-dl{
    display:inline-flex; align-items:center; gap:7px; flex-shrink:0;
    padding:8px 14px; border-radius:8px; text-decoration:none; font-weight:600;
    background:var(--vw-accent); color:#fff; font-size:13px;
  }
  .vw-dl:hover{ filter:brightness(1.1); }
  button.vw-deel{ font:inherit; font-weight:600; font-size:13px; cursor:pointer; border:none; }
  /* [hidden] wint hier ALTIJD: sinds de lokale modus alle host-elementen van
     alle soorten tegelijk draagt, prikte elk element met een eigen
     CSS-display (zoombalken van pdf/epub: flex) door zijn hidden-attribuut
     heen — de "rare dubbele balk" bovenin (melding 17-08). */
  [hidden]{ display:none !important; }
  /* Laadbalk (melding 17-08: 'nog steeds geen laadbalk'): download toont
     een echt percentage; tijdens het parsen glijdt hij (totaal onbekend)
     terwijl de teller ernaast oploopt. */
  .vw-loadbar{ width:min(340px,70vw); height:8px; border-radius:5px;
    background:rgba(127,127,127,.3); overflow:hidden; margin-top:6px; }
  #vwLoadBarVul{ height:100%; width:0; border-radius:5px;
    background:var(--vw-accent,#3b82f6); transition:width .2s; }
  #vwLoadBarVul.onbepaald{ width:35%; transition:none;
    animation:vwGlij 1.1s linear infinite; }
  @keyframes vwGlij{ 0%{margin-left:-35%} 100%{margin-left:100%} }
  .vw-main{ flex:1; min-height:0; position:relative; overflow:auto; }
  .vw-center{ display:flex; align-items:center; justify-content:center; min-height:100%; padding:16px; }
  .vw-loading, .vw-error{
    position:absolute; inset:0; display:flex; flex-direction:column; gap:10px;
    align-items:center; justify-content:center; text-align:center; padding:24px;
    background:var(--vw-bg); z-index:5;
  }
  /* Het hidden-attribuut MOET altijd winnen van display:flex hierboven,
     anders dekt de (lege) foutbox permanent de gerenderde viewer af. */
  .vw-loading[hidden], .vw-error[hidden]{ display:none !important; }
  .vw-loading .sp{
    width:34px; height:34px; border-radius:50%;
    border:3px solid var(--vw-line); border-top-color:var(--vw-accent);
    animation:vwspin .8s linear infinite;
  }
  @keyframes vwspin{ to{ transform:rotate(360deg); } }
  .vw-error{ color:var(--vw-muted); }
  .vw-error strong{ color:var(--vw-danger); font-size:15px; }
  .vw-error a{ color:var(--vw-accent); }
  .vw-img{ max-width:100%; max-height:calc(100vh - 90px); object-fit:contain; border-radius:6px; }
  .vw-video{ max-width:100%; max-height:calc(100vh - 90px); outline:none; }
  .vw-audio-wrap{ width:min(560px, 92%); background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:14px; padding:26px; text-align:center; }
  .vw-audio-wrap audio{ width:100%; margin-top:14px; }
  .vw-audio-ico{ font-size:38px; }
  pre.vw-text{
    max-width:1000px; margin:18px auto; padding:18px 22px; overflow-x:auto;
    background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:10px;
    font:12.5px/1.6 Consolas, "JetBrains Mono", monospace; white-space:pre-wrap;
    word-break:break-word; color:#d7dee9;
  }
  .vw-zoombar{
    position:sticky; top:0; z-index:6; display:flex; align-items:center; gap:8px;
    justify-content:center; padding:8px 12px; background:var(--vw-panel);
    border-bottom:1px solid var(--vw-line);
  }
  .vw-zoombar button{
    min-width:34px; height:30px; padding:0 10px; border-radius:7px;
    border:1px solid var(--vw-line); background:transparent; color:var(--vw-text);
    cursor:pointer; font:inherit; font-size:15px; line-height:1;
  }
  .vw-zoombar button:hover{ border-color:var(--vw-accent); color:var(--vw-accent); }
  .vw-zoombar span{ min-width:52px; text-align:center; font-size:13px; color:var(--vw-muted); }
  .vw-pdfpages{ display:flex; flex-direction:column; align-items:center; gap:14px; padding:18px 10px; }
  .vw-pdfpage{ background:#fff; border-radius:4px; box-shadow:0 4px 18px rgba(0,0,0,.45); overflow:hidden; flex:none; }
  .vw-pdfpage canvas{ display:block; }
  #vw3d{ position:absolute; inset:0; }
  #vw3d canvas{ display:block; }
  /* Eigenschappenpaneel van de IFC-klik (donker: het 3D-vlak is in beide
     thema's donker). */
  .vw-elpanel{ position:absolute; top:10px; right:10px; width:min(320px, calc(100% - 20px));
    max-height:calc(100% - 20px); overflow:auto; background:rgba(17,21,28,.93);
    color:#dfe6f0; border:1px solid #2c3547; border-radius:10px; font-size:13px; z-index:5; }
  .vw-elpanel h3{ margin:0; padding:10px 34px 8px 12px; font-size:14px; }
  .vw-elpanel .sluit{ position:absolute; top:6px; right:6px; border:0; background:none;
    color:#9fb0c8; font-size:16px; cursor:pointer; padding:2px 6px; }
  .vw-elpanel .sub{ padding:0 12px 8px; color:#9fb0c8; font-size:12px; word-break:break-all; }
  .vw-elpanel table{ width:100%; border-collapse:collapse; }
  .vw-elpanel td{ padding:3px 12px; vertical-align:top; border-top:1px solid #232b3a; }
  .vw-elpanel td:first-child{ color:#9fb0c8; width:45%; word-break:break-word; }
  .vw-elpanel .pset{ padding:8px 12px 2px; font-weight:600; color:#c8d4e6;
    border-top:1px solid #2c3547; }
  .vw-elskip{ position:absolute; left:50%; transform:translateX(-50%); bottom:12px;
    background:rgba(122,74,10,.88); color:#ffe9c7; padding:6px 14px; border-radius:9px;
    font-size:12.5px; z-index:6; max-width:82%; text-align:center; }
  .vw-elhint{ position:absolute; left:10px; bottom:10px; background:rgba(17,21,28,.75);
    color:#b9c6da; padding:5px 10px; border-radius:8px; font-size:12px; z-index:4;
    pointer-events:none; }
  .vw-3dhint{
    position:absolute; left:12px; bottom:10px; z-index:4; font-size:11.5px;
    color:var(--vw-muted); background:rgba(16,19,24,.75); padding:5px 10px; border-radius:7px;
    pointer-events:none;
  }
  .vw-doc{
    background:#525659; min-height:100%; padding:20px 8px;
  }
  .vw-doc .docx-wrapper{ background:transparent !important; padding:0 !important; }
  /* PowerPoint: geen dia-namaak maar een leesbaar overzicht. Een getrouwe
     weergave van een pptx vergt een volledige layout-engine; dit toont per dia
     de tekst, het beeld en de notities in de goede volgorde -- genoeg om te
     zien wat erin zit zonder PowerPoint te openen. */
  .vw-pptx{ padding:22px 14px 40px; max-width:900px; margin:0 auto; }
  .vw-pptx .pp-dia{
    background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:10px;
    padding:16px 18px; margin:0 0 16px;
  }
  .vw-pptx .pp-nr{
    font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--vw-muted); margin:0 0 8px;
  }
  .vw-pptx .pp-titel{ font-size:1.08rem; font-weight:650; margin:0 0 10px; line-height:1.35; }
  .vw-pptx .pp-tekst{ margin:0 0 6px; line-height:1.55; white-space:pre-wrap; }
  .vw-pptx .pp-beelden{ display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 0; }
  .vw-pptx .pp-beelden img{
    max-width:100%; max-height:320px; border-radius:6px; border:1px solid var(--vw-line);
  }
  .vw-pptx .pp-notities{
    margin:12px 0 0; padding:10px 12px; border-left:3px solid var(--vw-line);
    color:var(--vw-muted); font-size:.9rem; line-height:1.5; white-space:pre-wrap;
  }
  .vw-pptx .pp-leeg{ color:var(--vw-muted); font-style:italic; }
  .vw-pptx .pp-meer{
    color:var(--vw-muted); font-size:.9rem; text-align:center; padding:8px 0 0;
  }
  .vw-sheet-tabs{
    position:sticky; top:0; z-index:4; display:flex; gap:6px; flex-wrap:wrap;
    padding:10px 14px; background:var(--vw-panel); border-bottom:1px solid var(--vw-line);
  }
  .vw-sheet-tabs button{
    padding:6px 12px; border-radius:7px; border:1px solid var(--vw-line);
    background:transparent; color:var(--vw-text); cursor:pointer; font:inherit; font-size:12.5px;
  }
  .vw-sheet-tabs button.on{ background:var(--vw-accent); border-color:var(--vw-accent); color:#fff; }
  .vw-sheet-body{ padding:14px; overflow:auto; }
  .vw-sheet-body table{ border-collapse:collapse; background:#fff; color:#111; font-size:12.5px; }
  .vw-sheet-body td, .vw-sheet-body th{ border:1px solid #c8ccd4; padding:3px 8px; white-space:nowrap; }
  /* Markdown */
  .vw-md{
    max-width:820px; margin:24px auto; padding:26px 30px; background:#fff; color:#1a1f27;
    border-radius:10px; line-height:1.65; font-size:15px;
  }
  .vw-md h1,.vw-md h2,.vw-md h3{ margin:1.1em 0 .5em; line-height:1.25; }
  .vw-md h1{ font-size:1.7em; border-bottom:1px solid #e5e8ec; padding-bottom:.3em; }
  .vw-md h2{ font-size:1.4em; border-bottom:1px solid #eef0f3; padding-bottom:.2em; }
  .vw-md p,.vw-md ul,.vw-md ol,.vw-md blockquote,.vw-md table{ margin:.7em 0; }
  .vw-md code{ background:#f2f4f7; border-radius:4px; padding:.1em .4em; font-family:Consolas,monospace; font-size:.9em; }
  .vw-md pre{ background:#1b2028; color:#e6ebf2; padding:14px 16px; border-radius:8px; overflow-x:auto; }
  .vw-md pre code{ background:none; padding:0; color:inherit; }
  .vw-md blockquote{ border-left:3px solid #cdd4dd; margin-left:0; padding-left:14px; color:#5a6472; }
  .vw-md table{ border-collapse:collapse; }
  .vw-md th,.vw-md td{ border:1px solid #d6dbe1; padding:5px 10px; }
  .vw-md img{ max-width:100%; }
  .vw-md a{ color:#2563eb; }
  /* DXF (2D CAD) */
  #vwDxfWrap{ position:absolute; inset:0; overflow:hidden; background:#0e1116; touch-action:none; }
  #vwDxf{ display:block; }
  /* Font-preview */
  .vw-font{ max-width:840px; margin:24px auto; padding:24px; }
  .vw-font .row{ padding:14px 0; border-bottom:1px solid var(--vw-line); }
  .vw-font .lbl{ font-size:11px; color:var(--vw-muted); font-family:system-ui,sans-serif; margin-bottom:6px; }
  .vw-font .sample{ font-family:var(--vw-font, serif); color:var(--vw-text); word-break:break-word; }
  .vw-font .alpha{ font-size:26px; }
  /* Archief-inhoud */
  .vw-arch{ max-width:920px; margin:20px auto; }
  .vw-arch .head{ font-size:13px; color:var(--vw-muted); margin:0 6px 10px; }
  .vw-arch table{ width:100%; border-collapse:collapse; background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:10px; overflow:hidden; }
  .vw-arch td,.vw-arch th{ padding:7px 12px; border-bottom:1px solid var(--vw-line); text-align:left; font-size:13px; }
  .vw-arch th{ color:var(--vw-muted); font-weight:600; }
  .vw-arch td.sz{ text-align:right; color:var(--vw-muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
  /* Hex-dump */
  pre.vw-hex{ font-size:12px; line-height:1.5; letter-spacing:.02em; }
  /* EPUB */
  .vw-epub{ background:#fff; max-width:900px; margin:14px auto; border-radius:8px; min-height:calc(100vh - 130px); }
  .vw-epub iframe{ border:0; }
  /* Syntaxkleuring (highlight.js) laat de code-kleuren over de vw-text-achtergrond */
  pre.vw-text code.hljs{ background:transparent; padding:0; }
  @media (max-width:640px){
    .vw-dl span{ display:none; }
    .vw-name{ font-size:13px; }
    .vw-md{ padding:18px; margin:12px; }
  }

  /* ==== viewer: eml ==== */
/* E-mail (.eml) */
.vw-eml{ max-width:900px; margin:20px auto; padding:0 14px; }
.eml-head{ background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:12px; padding:18px 20px; margin-bottom:16px; }
.eml-subject{ font-size:19px; font-weight:700; color:var(--vw-text); margin-bottom:12px; word-break:break-word; }
.eml-meta{ display:flex; flex-direction:column; gap:5px; }
.eml-row{ display:flex; gap:10px; font-size:13.5px; align-items:flex-start; }
.eml-lbl{ flex:0 0 58px; color:var(--vw-muted); }
.eml-val{ color:var(--vw-text); min-width:0; word-break:break-word; }
.eml-att{ margin-top:14px; border-top:1px solid var(--vw-line); padding-top:12px; }
.eml-att-head{ font-size:11px; color:var(--vw-muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:.04em; }
.eml-att-list{ display:flex; flex-direction:column; gap:6px; }
.eml-att-item{ display:flex; align-items:center; gap:10px; padding:8px 12px; background:var(--vw-bg); border:1px solid var(--vw-line); border-radius:8px; }
.eml-att-ico{ flex:0 0 auto; color:var(--vw-muted); display:inline-flex; align-items:center; }
.eml-att-name{ flex:1 1 auto; min-width:0; color:var(--vw-text); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.eml-att-size{ flex:0 0 auto; color:var(--vw-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.eml-body{ background:#fff; color:#1a1f27; border-radius:12px; padding:22px 26px; line-height:1.6; overflow-x:auto; }
.eml-plain{ white-space:pre-wrap; word-break:break-word; font:13.5px/1.6 Consolas,"JetBrains Mono",monospace; color:#1a1f27; margin:0; }
.eml-html{ font-size:14.5px; color:#1a1f27; }
.eml-html img{ max-width:100%; height:auto; }
.eml-html a{ color:#2563eb; }
.eml-html table{ max-width:100%; }
.eml-note{ background:#fff5e6; color:#8a5a00; border:1px solid #ffe1b0; border-radius:8px; padding:8px 12px; font-size:12.5px; margin-bottom:14px; }
.eml-empty{ color:var(--vw-muted); font-style:italic; }
@media (max-width:640px){
  .eml-body{ padding:16px; }
  .eml-lbl{ flex-basis:48px; }
}
  /* ==== viewer: ics ==== */
/* iCalendar (.ics) — agenda-viewer */
.vw-ics{ max-width:820px; margin:20px auto; padding:0 14px; }
.vw-ics .ics-cal{ font-size:13px; color:var(--vw-muted); margin:2px 4px 14px; }
.ics-card{ background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:12px; padding:16px 18px; margin-bottom:14px; }
.ics-head{ display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; }
.ics-title{ flex:1; min-width:0; font-size:16px; font-weight:600; color:var(--vw-text); word-break:break-word; }
.ics-badge{ flex-shrink:0; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--vw-accent); border:1px solid var(--vw-line); border-radius:999px; padding:3px 9px; white-space:nowrap; }
.ics-badge.todo{ color:#f59e0b; }
.ics-badge.cancelled{ color:var(--vw-danger); }
.ics-when{ font-size:14px; color:var(--vw-text); margin-bottom:10px; }
.ics-row{ display:flex; gap:10px; font-size:13px; margin:5px 0; }
.ics-lbl{ flex-shrink:0; width:104px; color:var(--vw-muted); }
.ics-val{ min-width:0; color:var(--vw-text); word-break:break-word; }
.ics-desc{ margin-top:12px; padding-top:12px; border-top:1px solid var(--vw-line); white-space:pre-wrap; word-break:break-word; font-size:13px; line-height:1.6; color:#d7dee9; }
.vw-ics .ics-empty{ text-align:center; color:var(--vw-muted); padding:34px 16px; font-size:13px; }
@media (max-width:640px){
  .ics-row{ flex-direction:column; gap:1px; }
  .ics-lbl{ width:auto; }
}
  /* ==== viewer: vcf ==== */
.vw-vcf{ max-width:820px; margin:22px auto; padding:0 14px; display:flex; flex-direction:column; gap:16px; }
  .vw-vcf .count{ font-size:12.5px; color:var(--vw-muted); margin:2px 4px -4px; }
  .vw-card{ display:flex; gap:20px; align-items:flex-start; background:var(--vw-panel); border:1px solid var(--vw-line); border-radius:14px; padding:22px 24px; }
  .vw-card .avatar{ width:84px; height:84px; flex:none; border-radius:14px; overflow:hidden; background:var(--vw-bg); border:1px solid var(--vw-line); display:flex; align-items:center; justify-content:center; }
  .vw-card .avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
  .vw-card .avatar .mono{ font-size:30px; font-weight:600; color:var(--vw-muted); }
  .vw-card .body{ min-width:0; flex:1; }
  .vw-card .cname{ font-size:20px; font-weight:700; line-height:1.2; color:var(--vw-text); word-break:break-word; }
  .vw-card .sub{ margin-top:4px; font-size:13.5px; color:var(--vw-muted); word-break:break-word; }
  .vw-fields{ margin-top:15px; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; align-items:baseline; }
  .vw-fields .k{ font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--vw-muted); white-space:nowrap; }
  .vw-fields .v{ font-size:14px; color:var(--vw-text); word-break:break-word; }
  .vw-fields .v a{ color:var(--vw-accent); text-decoration:none; }
  .vw-fields .v a:hover{ text-decoration:underline; }
  .vw-fields .v .tag{ display:inline-block; margin-left:6px; padding:0 6px; font-size:10.5px; line-height:1.7; color:var(--vw-muted); border:1px solid var(--vw-line); border-radius:5px; vertical-align:middle; }
  @media (max-width:520px){ .vw-card{ flex-direction:column; gap:14px; padding:18px; } .vw-card .cname{ font-size:18px; } }
  /* ==== viewer: ipynb ==== */
/* Jupyter-notebook (.ipynb) — witte "paper" met code-/uitvoerblokken */
.vw-nb{ max-width:920px; margin:22px auto; padding:26px 30px 30px; background:#fff; color:#1a1f27; border-radius:10px; }
.vw-nb-cell{ margin:0 0 20px; }
.vw-nb-cell:last-child{ margin-bottom:0; }
/* markdown-cel: hergebruikt de bestaande .vw-md-elementstijlen, maar zonder eigen kaart */
.vw-nb .vw-md{ margin:0; padding:0; max-width:none; background:transparent; border-radius:0; font-size:14.5px; }
.vw-nb-prompt{ font:11px/1.4 Consolas, "JetBrains Mono", monospace; color:#5a7fb0; margin:0 0 5px; user-select:none; }
.vw-nb-code{ margin:0; padding:12px 15px; overflow-x:auto; background:#1b2028; border:1px solid #2a3140; border-left:3px solid var(--vw-accent); border-radius:8px; font:12.5px/1.55 Consolas, "JetBrains Mono", monospace; }
.vw-nb-code code{ font:inherit; color:#e6ebf2; }
.vw-nb-code code.hljs{ background:transparent; padding:0; color:#e6ebf2; }
.vw-nb-outputs{ margin:9px 0 0; }
pre.vw-nb-out{ margin:7px 0 0; padding:9px 13px; overflow-x:auto; background:#f5f7fa; border:1px solid #e4e9f0; border-radius:8px; white-space:pre-wrap; word-break:break-word; font:12.5px/1.5 Consolas, "JetBrains Mono", monospace; color:#26303c; }
pre.vw-nb-out.vw-nb-err{ background:#fdf1f1; border-color:#f2caca; color:#8a2222; }
pre.vw-nb-out.vw-nb-raw{ background:#f3f4f6; border-style:dashed; color:#4a5563; }
.vw-nb-img{ display:block; max-width:100%; height:auto; margin:8px 0 0; border-radius:4px; background:#fff; }
.vw-nb-skip{ margin:7px 0 0; font-size:12px; color:#8a94a3; font-style:italic; }
.vw-nb-more{ margin:16px 0 0; padding-top:14px; border-top:1px solid #e4e9f0; font-size:12.5px; color:#8a94a3; text-align:center; }
/* Syntaxkleuring (hljs), donker thema — GESCOPED op .vw-nb zodat het niet botst met de
   highlight-dark.css die de losse tekst-viewer laadt; zo is highlight-dark.css hier niet nodig. */
.vw-nb .hljs{ color:#e6ebf2; background:transparent; }
.vw-nb .hljs-comment,.vw-nb .hljs-quote{ color:#7f8794; font-style:italic; }
.vw-nb .hljs-keyword,.vw-nb .hljs-selector-tag,.vw-nb .hljs-literal,.vw-nb .hljs-doctag,.vw-nb .hljs-formula{ color:#c678dd; }
.vw-nb .hljs-string,.vw-nb .hljs-regexp,.vw-nb .hljs-addition,.vw-nb .hljs-meta-string{ color:#98c379; }
.vw-nb .hljs-number,.vw-nb .hljs-built_in,.vw-nb .hljs-type{ color:#d19a66; }
.vw-nb .hljs-title,.vw-nb .hljs-section,.vw-nb .hljs-name,.vw-nb .hljs-selector-id,.vw-nb .hljs-selector-class{ color:#61afef; }
.vw-nb .hljs-attr,.vw-nb .hljs-attribute,.vw-nb .hljs-variable,.vw-nb .hljs-template-variable,.vw-nb .hljs-tag,.vw-nb .hljs-symbol,.vw-nb .hljs-bullet,.vw-nb .hljs-deletion{ color:#e06c75; }
.vw-nb .hljs-meta,.vw-nb .hljs-link{ color:#56b6c2; }
.vw-nb .hljs-emphasis{ font-style:italic; }
.vw-nb .hljs-strong{ font-weight:700; }
@media (max-width:640px){ .vw-nb{ padding:16px; margin:12px; } }
