  html, body { margin:0; padding:0; background:#cfe2ec; color:#1c2433; font:13px/1.4 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif; overflow:hidden; height:100%; display:flex; flex-direction:column; }
  #app { display:grid; grid-template-rows: auto 1fr auto; flex:1; min-height:0; gap:8px; padding:8px; box-sizing:border-box; }
  #middle { display:grid; grid-template-columns: 1fr 320px; gap:8px; min-height:0; }
  #middle.panel-hidden { grid-template-columns: 1fr 0; }
  #middle.panel-hidden #panel { display:none; }
  @media (max-width: 900px) { #middle { grid-template-columns: 1fr 260px; } }
  @media (max-width: 700px) {
    #middle { grid-template-columns: 1fr; grid-template-rows: 1fr 320px; }
    #app { grid-template-rows: auto 1fr auto; }
  }
  #vizArea { display:flex; flex-direction:column; min-width:0; min-height:0; border-radius:10px; overflow:hidden; }
  #vizTabBar { display:flex; align-items:flex-end; gap:2px; padding:4px 8px 0; background:#dce8f0; flex-shrink:0; overflow-x:auto; }
  .vizTab { padding:5px 14px; border:1px solid #b0c4d0; border-bottom:none; border-radius:6px 6px 0 0; background:#c8dde8; color:#4a6070; font:inherit; font-size:12px; font-weight:500; cursor:pointer; white-space:nowrap; transition:background 0.1s; }
  .vizTab:hover:not(.on) { background:#d8eaf4; color:#1c2433; }
  .vizTab.on { background:#fff; color:#1c2433; font-weight:700; border-color:#b0c4d0; position:relative; }
  .vizTab .tabClose { margin-left:6px; opacity:0.5; font-size:13px; line-height:1; vertical-align:middle; }
  .vizTab .tabClose:hover { opacity:1; }
  #mapWrap { flex:1; position:relative; min-width:0; min-height:0; overflow:hidden; border-radius:0; background:#cfe2ec; }
  #map { position:absolute; inset:0; z-index:1; }
  /* Visualization pane: overlays the map when active. Sandboxed iframe
     renders Claude-authored SVG / Vega-Lite / Mermaid / DOT / HTML / Markdown. */
  #vizPane { position:absolute; inset:0; z-index:50; background:#fff; display:none; flex-direction:column; }
  #vizPane.on { display:flex; }
  #vizPaneHeader { display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid #e0e6ee; background:#f5f7fb; flex-shrink:0; }
  #vizFrame { flex:1; border:none; width:100%; }
  #fx, #base, #gl { position:absolute; inset:0; z-index:2; pointer-events:none; }
  #base, #gl { display:none; }
  #map .maplibregl-ctrl-attrib { font-size:10px; }
  canvas { position:absolute; left:0; top:0; display:block; image-rendering:pixelated; touch-action:none; }
  canvas#gl { z-index:0; }
  canvas#base { z-index:1; background:transparent; }
  canvas#fx { z-index:2; }
  #base { z-index:1; } #fx { z-index:2; }
  #yearWatermark { position:absolute; z-index:3; pointer-events:none; top:10px; left:0; right:0; text-align:center; font-family: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace; font-variant-numeric:tabular-nums; font-weight:800; font-size:48px; line-height:1; color:rgba(20,30,55,0.18); user-select:none; letter-spacing:0.05em; }
  #ui {
    background:rgba(255,255,255,0.92); border:1px solid #c0ccd8; border-radius:10px;
    padding:10px 14px; backdrop-filter:blur(8px); box-shadow:0 4px 20px rgba(0,0,0,0.12);
    display:flex; flex-direction:column; gap:8px;
  }
  #ui .uirow { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  #ui .uirow.primary { flex-wrap:nowrap; }
  #range { flex:1 1 auto; min-width:120px; }
  .mapBtn { position:absolute; top:50px; right:10px; z-index:5; background:rgba(255,255,255,0.95); border:1px solid #c0ccd8; border-radius:6px; padding:5px 10px; cursor:pointer; font:inherit; font-size:11px; color:#1c2433; box-shadow:0 1px 4px rgba(0,0,0,0.08); }
  .mapBtn:hover:not(:disabled) { background:#fff; }
  .mapBtn:disabled { color:#9aa6bc; cursor:default; background:rgba(255,255,255,0.7); }
  .hoverTip { position:absolute; z-index:6; pointer-events:none; background:rgba(255,255,255,0.97); border:1px solid #c0ccd8; border-radius:6px; padding:6px 10px; font-size:11px; line-height:1.35; color:#1c2433; box-shadow:0 2px 8px rgba(0,0,0,0.12); display:none; max-width:280px; }
  .hoverTip .tipName { font-weight:700; font-size:12px; color:#0a1426; }
  .hoverTip .tipYrs { color:#566480; font-variant-numeric:tabular-nums; }
  .hoverTip .tipChain { margin-top:4px; color:#566480; font-size:10.5px; }
  .hoverTip .tipChain .step { display:flex; gap:4px; }
  .hoverTip .tipChain .lbl { color:#888; font-style:italic; min-width:50px; }
  .hoverTip .tipChain .nm { color:#1c2433; }
  .rangeWrap { position:relative; flex:1 1 auto; min-width:120px; padding-bottom:14px; display:flex; align-items:center; }
  #yearHist { position:absolute; left:0; right:0; bottom:14px; height:18px; width:100%; pointer-events:none; opacity:0.55; }
  #quickChips { display:flex; flex-wrap:wrap; gap:4px; padding:2px 4px; align-items:center; font-size:12.75px; }
  #quickChips.hidden { display:none; }
  #quickChips .chipGroup { display:flex; flex-wrap:wrap; gap:1px; align-items:center; }
  #quickChips .chipLabel { color:#9aa6bc; font-size:11.25px; text-transform:uppercase; letter-spacing:0.05em; margin-right:2px; }
  #quickChips .chipGroup[data-grp="intent"] { flex-basis:100%; padding-bottom:1px; border-bottom:1px solid rgba(192,204,216,0.45); }
  .quickChip.intent { border-style:solid; border-color:#b8c7dc; background:#f8fbff; color:#24406f; opacity:0.9; font-weight:700; }
  .quickChip.intent:hover { background:#e8f0ff; border-color:#7290c8; color:#14306a; }
  /* Off-state: faded — washed-out border, gray text, white bg, no color
     identity. On-state: SATURATED + BIGGER. The size delta is the loudest
     visual cue at this font; the color flip on top is unmistakable. */
  .quickChip { padding:1px 6px; border:1px dashed #c4cdd9; background:transparent; color:#8390a3; border-radius:5px; font:inherit; font-size:12.75px; cursor:pointer; line-height:1.4; font-weight:500; opacity:0.55; transition:all 0.12s ease; }
  .quickChip:hover { color:#1c2433; border-color:#566480; opacity:1; background:#eef1f6; }
  .quickChip.on {
    padding:3px 10px;
    background:#1e40af;
    color:#fff;
    border:1px solid #1e40af;
    font-weight:800;
    font-size:11px;
    opacity:1;
    box-shadow:0 0 0 3px rgba(30,64,175,0.35), 0 2px 8px rgba(30,64,175,0.55);
    transform:translateY(-1px) scale(1.05);
  }
  .quickChip.on::before {
    content:"\25CF\00a0";
    color:rgba(255,255,255,0.95);
    font-size:9px;
  }
  /* Tinted variants - off is a faint ghost, on saturates and pops. */
  .quickChip.tinted { border:1px dashed color-mix(in srgb, var(--c, #c0ccd8) 45%, #c4cdd9); color:color-mix(in srgb, var(--c, #566480) 55%, #8390a3); background:transparent; opacity:0.55; }
  .quickChip.tinted:hover { color:var(--c); border-color:var(--c); opacity:1; background:color-mix(in srgb, var(--c, #c0ccd8) 12%, transparent); }
  .quickChip.tinted.on {
    background:var(--c);
    color:#fff;
    border:1px solid var(--c);
    font-weight:800;
    font-size:11px;
    padding:3px 10px;
    opacity:1;
    box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 35%, transparent), 0 2px 8px color-mix(in srgb, var(--c) 55%, transparent);
    transform:translateY(-1px) scale(1.05);
  }
  .quickChip.tinted.on::before {
    content:"\25CF\00a0";
    color:rgba(255,255,255,0.95);
    font-size:9px;
  }
  .quickChip .chipMeta { color:#9aa6bc; font-weight:400; margin-left:2px; font-size:11.25px; font-variant-numeric:tabular-nums; }
  .quickChip.on .chipMeta { color:rgba(255,255,255,0.85); }
  .rangeWrap #range { flex:1 1 auto; min-width:0; }
  .rangeMark { position:absolute; bottom:0; transform:translateX(-50%); pointer-events:none; font-size:10px; color:#566480; line-height:1; white-space:nowrap; }
  .rangeMark::before { content:""; position:absolute; left:50%; bottom:100%; width:1px; height:8px; background:#566480; transform:translateX(-50%); margin-bottom:1px; }
  .rangeMark.ancestor::before { background:#2a4a8c; }
  .rangeMark.ancestor { color:#2a4a8c; font-weight:600; }
  .bcard .yrlink { color:inherit; cursor:pointer; text-decoration:underline; text-decoration-style:dotted; text-decoration-color:rgba(70,70,90,0.45); }
  .bcard .yrlink:hover { color:#2a4a8c; text-decoration-color:#2a4a8c; }
  #migBar { position:relative; height:36px; background:#f5f7fa; border:1px solid #e0e6ee; border-radius:6px; padding:18px 0 4px; box-sizing:border-box; }
  #migBar.empty { display:none; }
  #migBar .pat { position:absolute; height:12px; top:18px; border-radius:2px; opacity:0.55; transition:opacity 0.15s; cursor:help; }
  #migBar .pat:hover { opacity:0.95; }
  #migBar .lbl { position:absolute; top:1px; font-size:9px; color:#566480; white-space:nowrap; pointer-events:none; padding:0 4px; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
  #migBar .now { position:absolute; top:14px; height:20px; width:2px; background:#1c2433; pointer-events:none; }
  #migBar .now::after { content:""; position:absolute; left:-3px; top:-4px; border:4px solid transparent; border-top-color:#1c2433; }
  #ui button { background:#2a4a8c; color:#fff; border:1px solid #1c3669; border-radius:6px; padding:6px 12px; cursor:pointer; font:inherit; }
  #ui button:hover { background:#1c3669; }
  #ui button[disabled] { background:#9aa6bc; border-color:#7c8aa3; cursor:default; }
  #range { -webkit-appearance:none; appearance:none; height:6px; background:#c0ccd8; border-radius:3px; outline:none; }
  #range::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:50%; background:#2a4a8c; cursor:pointer; }
  #range::-moz-range-thumb { width:16px; height:16px; border-radius:50%; background:#2a4a8c; cursor:pointer; border:none; }
  #range::-moz-range-track { height:6px; background:#c0ccd8; border-radius:3px; }
  #stats { font-size:11px; color:#566480; }
  #title { font-size:14px; color:#1c2433; letter-spacing:0.02em; background:rgba(255,255,255,0.85); padding:6px 12px; border-radius:6px; box-shadow:0 2px 8px rgba(0,0,0,0.08); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  #title b { color:#0a1426; font-weight:700; letter-spacing:0; }
  #title input[type=text] { background:#fff; color:#1c2433; border:1px solid #c0ccd8; border-radius:4px; padding:4px 6px; font:inherit; }
  #hiddenControls { display:none; }
  .speedControl { display:inline-flex; align-items:center; gap:5px; color:#566480; font-size:11px; white-space:nowrap; }
  .speedControl select { padding:4px 6px; font-size:11px; }
  select { background:#fff; color:#1c2433; border:1px solid #c0ccd8; border-radius:6px; padding:5px 8px; font:inherit; }
  label { color:#566480; font-size:11px; }
  #pick { background:#2a4a8c; color:#fff; border:1px solid #1c3669; border-radius:6px; padding:5px 10px; cursor:pointer; font:inherit; }
  #pick:hover { background:#1c3669; }
  #fileinp { display:none; }
  #drop {
    position:fixed; inset:0; z-index:20; background:rgba(20,40,80,0.55);
    display:none; align-items:center; justify-content:center;
    font-size:22px; color:#fff; pointer-events:none;
  }
  #drop.on { display:flex; }
  #welcome {
    position:fixed; left:50%; top:40%; transform:translate(-50%,-50%); z-index:11;
    background:rgba(255,255,255,0.97); border:1px solid #c0ccd8; border-radius:12px;
    padding:30px 36px; box-shadow:0 8px 32px rgba(0,0,0,0.16);
    text-align:center; max-width:420px;
  }
  #welcome h1 { margin:0 0 8px; font-size:18px; }
  #welcome p { margin:6px 0 14px; color:#566480; }
  #welcome.hidden { display:none; }
  #chatPanel { display:flex; flex-direction:column; flex:1; min-height:0; }
  #reviewModal { position:fixed; inset:0; background:rgba(10,20,40,0.55); z-index:50; display:flex; align-items:center; justify-content:center; }
  #reviewModal.hidden { display:none; }
  #reviewBox { background:#fff; border-radius:12px; box-shadow:0 12px 48px rgba(0,0,0,0.32); width:min(720px, 92vw); max-height:88vh; overflow:auto; padding:16px 20px; font:13px -apple-system, sans-serif; color:#1c2433; }
  #reviewHeader { display:flex; align-items:center; justify-content:space-between; padding-bottom:8px; border-bottom:1px solid #e0e6ee; margin-bottom:12px; }
  #reviewTitle { font-weight:700; font-size:14px; color:#0a1426; }
  #reviewProgress { font-size:11px; color:#9aa6bc; margin-left:auto; margin-right:10px; font-variant-numeric:tabular-nums; }
  #reviewClose { background:none; border:none; font-size:20px; cursor:pointer; color:#9aa6bc; padding:0 6px; }
  #reviewClose:hover { color:#1c2433; }
  #reviewBody { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
  #reviewBody .col { border:1px solid #c0ccd8; border-radius:8px; padding:10px 12px; background:#fbfbfd; }
  #reviewBody .col h4 { margin:0 0 4px; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:#566480; }
  #reviewBody .col .nm { font-weight:700; color:#0a1426; font-size:14px; }
  #reviewBody .col .yrs { font-size:11px; color:#566480; margin-top:2px; }
  #reviewBody .col .src { font-size:10px; color:#9aa6bc; margin-top:6px; text-transform:uppercase; letter-spacing:0.05em; }
  #reviewBody .col .kfBlock { margin-top:10px; }
  #reviewBody .col .kfBlock h5 { margin:0 0 4px; font-size:10px; text-transform:uppercase; letter-spacing:0.06em; color:#566480; font-weight:700; }
  #reviewBody .col ul.kfList { list-style:none; margin:0; padding:0; max-height:160px; overflow-y:auto; }
  #reviewBody .col ul.kfList li { padding:1px 0; font-size:12px; color:#1c2433; }
  #reviewBody .col ul.kfList li .kn { font-weight:500; }
  #reviewBody .col ul.kfList li .ky { color:#9aa6bc; font-size:11px; font-variant-numeric:tabular-nums; }
  #reviewBody .col .kf-empty { color:#9aa6bc; font-size:11px; font-style:italic; padding:2px 0; }
  #reviewBody .col .kf-anom { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
  #reviewBody .col .kf-anom-error,
  #reviewBody .col .kf-anom-warning,
  #reviewBody .col .kf-anom-info { font-size:9.5px; padding:1px 5px; border-radius:3px; text-transform:uppercase; letter-spacing:0.04em; font-weight:600; }
  #reviewBody .col .kf-anom-error   { background:#fbe9e9; color:#8a1f19; border:1px solid #e6c0bd; }
  #reviewBody .col .kf-anom-warning { background:#fbf2e6; color:#8c5e25; border:1px solid #e6cdaa; }
  #reviewBody .col .kf-anom-info    { background:#eaf0fb; color:#34538c; border:1px solid #c0cfe6; }
  #reviewScore { grid-column:1/-1; display:flex; gap:14px; align-items:center; padding:6px 10px; background:#f4f6fa; border-radius:6px; font-size:11px; color:#566480; }
  #reviewScore .total { font-weight:700; font-size:14px; color:#0a1426; }
  #reviewScore .ev { display:inline-flex; gap:4px; align-items:baseline; font-variant-numeric:tabular-nums; }
  #reviewScore .ev b { color:#1c2433; }
  #reviewActions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
  .reviewBtn { flex:1; min-width:130px; padding:10px 14px; border:1px solid #c0ccd8; border-radius:8px; background:#fff; cursor:pointer; font:inherit; font-weight:600; }
  .reviewBtn:hover { border-color:#2a4a8c; }
  .reviewBtn kbd { display:inline-block; padding:1px 5px; margin-left:4px; background:#1c2433; color:#fff; border-radius:3px; font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:10px; font-weight:400; }
  .rev-yes { border-color:#2a8c4a; color:#1f6a37; }   .rev-yes:hover { background:#eaf6ee; }
  .rev-no  { border-color:#b3261e; color:#8a1f19; }   .rev-no:hover { background:#fbeae9; }
  .rev-amb { border-color:#c2853c; color:#8c5e25; }   .rev-amb:hover { background:#fbf2e6; }
  .rev-skip { color:#566480; }                         .rev-skip:hover { background:#f4f6fa; }
  #reviewMeta { display:flex; gap:10px; align-items:center; margin-bottom:8px; padding:6px 0; border-top:1px solid #e0e6ee; padding-top:10px; }
  #reviewMeta select, #reviewMeta input { padding:4px 6px; border:1px solid #c0ccd8; border-radius:4px; font:inherit; font-size:12px; }
  #reviewMeta input { flex:1; }
  #reviewFilter { font-size:11px; color:#566480; }
  #reviewFilter select { padding:3px 6px; border:1px solid #c0ccd8; border-radius:4px; font:inherit; font-size:12px; margin-left:4px; }
  #sourcesPanel { border-bottom:1px solid #e0e6ee; padding:6px 10px; background:#f4f6fa; font-size:11px; color:#566480; }
  #sourcesPanel.hidden { display:none; }
  #sourcesPanel .sourceScopeSummary { margin-bottom:4px; font-weight:800; color:#1c2433; }
  #sourcesPanel .scopeSection { display:flex; flex-wrap:wrap; align-items:center; gap:0; margin-top:3px; }
  #sourcesPanel .scopeTitle { flex:0 0 auto; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; color:#566480; margin-right:4px; font-size:10px; }
  #sourcesPanel .label { font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#566480; margin-right:4px; font-size:10px; }
  #sourcesPanel .src { display:inline-flex; align-items:center; gap:3px; padding:2px 6px; margin:2px 4px 2px 0; border:1px solid #c0ccd8; border-radius:10px; background:#fff; }
  #sourcesPanel .src.on { border-color:#2a4a8c; box-shadow:0 0 0 1px rgba(42,74,140,0.15) inset; }
  #sourcesPanel .src.excluded { opacity:0.62; background:#f8fafc; border-style:dashed; }
  #sourcesPanel .src .sel { margin:0 2px 0 0; }
  #sourcesPanel .src .name { color:#1c2433; font-weight:600; }
  #sourcesPanel .src .name[data-activate] { cursor:pointer; }
  #sourcesPanel .src .meta { color:#9aa6bc; font-size:10px; }
  #sourcesPanel .src .x { cursor:pointer; color:#9aa6bc; padding:0 2px; user-select:none; }
  #sourcesPanel .src .x:hover { color:#b3261e; }
  #sourcesPanel .srcAction { font:inherit; font-size:10.5px; border:1px solid #c0ccd8; border-radius:10px; padding:2px 7px; background:#fff; color:#44536d; cursor:pointer; margin:2px 4px 2px 0; }
  #sourcesPanel .srcAction:disabled { opacity:0.45; cursor:default; }
  #selectedPerson { flex:0 1 auto; min-height:0; max-height:min(52dvh, 420px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; border-bottom:1px solid #e0e6ee; padding:8px 12px; background:linear-gradient(135deg,#eef3fa 0%,#f5f8fd 100%); font-size:11.5px; }
  #selectedPerson .sp-name { font-weight:700; font-size:13px; color:#0a1426; margin-bottom:2px; }
  #selectedPerson .sp-sub { color:#566480; font-size:11px; margin-bottom:4px; }
  #selectedPerson .sp-events { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:6px; }
  #selectedPerson .sp-ev { background:#fff; border:1px solid #d0dae8; border-radius:4px; padding:2px 7px; font-size:10.5px; color:#2a3a58; white-space:nowrap; }
  #selectedPerson .sp-ev.highlight { background:#2a4a8c; color:#fff; border-color:#2a4a8c; }
  #selectedPerson .sp-timeline { list-style:none; margin:6px 0 8px; padding:0; position:relative; }
  #selectedPerson .sp-timeline::before { content:""; position:absolute; left:46px; top:8px; bottom:8px; width:2px; background:#c4cdd9; }
  #selectedPerson .sp-tl-item { display:grid; grid-template-columns:38px 14px 1fr; align-items:center; column-gap:6px; padding:3px 0; position:relative; }
  #selectedPerson .sp-tl-year { font-size:10.5px; color:#566480; font-variant-numeric:tabular-nums; text-align:right; font-weight:600; }
  #selectedPerson .sp-tl-dot { width:9px; height:9px; border-radius:50%; background:#fff; border:2px solid #2a4a8c; box-shadow:0 0 0 2px #f5f8fd; justify-self:center; }
  #selectedPerson .sp-tl-item.highlight .sp-tl-dot { background:#2a4a8c; box-shadow:0 0 0 2px #f5f8fd, 0 0 0 4px rgba(42,74,140,0.3); }
  #selectedPerson .sp-tl-item.highlight .sp-tl-label { color:#1e40af; }
  #selectedPerson .sp-tl-body { font-size:11.5px; color:#1c2433; }
  #selectedPerson .sp-tl-label { font-weight:700; margin-right:4px; }
  #selectedPerson .sp-tl-place { color:#566480; }
  #selectedPerson .sp-loc-compare { display:block; margin-top:3px; padding:5px 7px; background:#fff; border:1px solid #d6dde7; border-radius:5px; line-height:1.35; }
  #selectedPerson .sp-loc-row { display:grid; grid-template-columns:58px 1fr; gap:6px; }
  #selectedPerson .sp-loc-key { color:#9aa6bc; font-size:9px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }
  #selectedPerson .sp-loc-val { color:#1c2433; overflow-wrap:anywhere; }
  #selectedPerson .sp-loc-val.same { color:#566480; }
  #selectedPerson .sp-tl-age { color:#9aa6bc; font-size:10px; margin-left:6px; }
  #selectedPerson .sp-tabs { display:flex; gap:0; border-bottom:1px solid #d6dde7; margin:6px 0 4px; }
  #selectedPerson .sp-tab { padding:5px 12px; font-size:10px; font-weight:700; color:#566480; background:transparent; border:none; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; letter-spacing:0.06em; text-transform:uppercase; }
  #selectedPerson .sp-tab:hover { color:#1c2433; }
  #selectedPerson .sp-tab.on { color:#1e40af; border-bottom-color:#1e40af; }
  #selectedPerson .sp-pane { display:none; }
  #selectedPerson .sp-pane.on { display:block; }
  #selectedPerson .sp-lineage { list-style:none; margin:6px 0 8px; padding:0; }
  #selectedPerson .sp-ln-person { display:flex; align-items:baseline; gap:6px; padding:4px 8px; background:#fff; border:1px solid #d6dde7; border-radius:5px; font-size:11.5px; }
  #selectedPerson .sp-ln-person.home { border-color:#1e40af; background:#eef3ff; }
  #selectedPerson .sp-ln-person.here { border-color:#1e40af; background:#1e40af; color:#fff; }
  #selectedPerson .sp-ln-person.here .sp-ln-life { color:rgba(255,255,255,0.85); }
  #selectedPerson .sp-ln-name { font-weight:700; }
  #selectedPerson .sp-ln-life { color:#566480; font-size:10.5px; }
  #selectedPerson .sp-ln-tag { margin-left:auto; font-size:8.5px; font-weight:700; letter-spacing:0.08em; padding:1px 6px; border-radius:8px; background:#1e40af; color:#fff; }
  #selectedPerson .sp-ln-person.here .sp-ln-tag { background:#fff; color:#1e40af; }
  #selectedPerson .sp-ln-step { padding:2px 0; font-size:10px; color:#566480; text-align:center; letter-spacing:0.04em; }
  #selectedPerson .sp-ln-step::before { content:"\2193 "; color:#9aa6bc; margin-right:2px; }
  #selectedPerson .sp-lineage-empty { font-size:11px; color:#9aa6bc; padding:6px 0; font-style:italic; }
  #selectedPerson .sp-section { border-top:1px solid #d6dde7; margin-top:8px; padding-top:6px; }
  #selectedPerson .sp-section-head { font-weight:700; color:#566480; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:4px; }
  #selectedPerson .sp-rel { margin-bottom:6px; }
  #selectedPerson .sp-rel-head { font-size:11.5px; color:#1c2433; margin-bottom:2px; }
  #selectedPerson .sp-rel-label { color:#566480; font-weight:600; font-size:9.5px; text-transform:uppercase; letter-spacing:0.04em; margin-right:4px; }
  #selectedPerson .sp-rel-name { font-weight:700; }
  #selectedPerson .sp-rel-life { color:#566480; font-size:10.5px; margin-left:4px; }
  #selectedPerson .sp-rel .sp-events { margin-bottom:4px; }
  #selectedPerson .sp-actions { display:flex; gap:6px; margin-top:4px; }
  #selectedPerson .sp-ask { background:#2a4a8c; color:#fff; border:none; border-radius:5px; padding:4px 10px; font:inherit; font-size:11px; cursor:pointer; }
  #selectedPerson .sp-ask:hover { background:#1c3669; }
  #selectedPerson .sp-dismiss { background:none; border:1px solid #c0ccd8; border-radius:5px; padding:4px 8px; font:inherit; font-size:11px; color:#566480; cursor:pointer; }
  #selectedPerson .sp-dismiss:hover { background:#f0f4f8; }
  #chatHistory { flex:1; min-height:0; overflow-y:auto; padding:10px 12px; font-size:12px; line-height:1.5; color:#1c2433; }
  #chatHistory .msg { margin-bottom:10px; }
  #chatHistory .msg.user { color:#1c2433; }
  #chatHistory .msg.user .who { color:#2a4a8c; font-weight:700; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; display:block; margin-bottom:2px; }
  #chatHistory .msg.bot .who { color:#566480; font-weight:700; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; display:block; margin-bottom:2px; }
  #chatHistory .msg.bot { color:#1c2433; }
  #chatHistory .msg .body { word-wrap:break-word; overflow-wrap:break-word; }
  /* User messages preserve raw whitespace (their typed text). Bot messages
     are rendered via the markdown function above, which produces real
     block elements, so pre-wrap would just add extra blank space. */
  #chatHistory .msg.user .body { white-space:pre-wrap; }
  #chatHistory .msg.bot .body strong { color:#0a1426; }
  #chatHistory .msg.bot .body p { margin:0 0 6px; }
  #chatHistory .msg.bot .body p:last-child { margin-bottom:0; }
  #chatHistory .msg.bot .body h1,
  #chatHistory .msg.bot .body h2,
  #chatHistory .msg.bot .body h3,
  #chatHistory .msg.bot .body h4,
  #chatHistory .msg.bot .body h5,
  #chatHistory .msg.bot .body h6 { margin:8px 0 4px; color:#0a1426; line-height:1.25; }
  #chatHistory .msg.bot .body h1 { font-size:15px; }
  #chatHistory .msg.bot .body h2 { font-size:14px; }
  #chatHistory .msg.bot .body h3 { font-size:13px; }
  #chatHistory .msg.bot .body h4,
  #chatHistory .msg.bot .body h5,
  #chatHistory .msg.bot .body h6 { font-size:12px; }
  #chatHistory .msg.bot .body ul,
  #chatHistory .msg.bot .body ol { margin:4px 0 6px; padding-left:20px; }
  #chatHistory .msg.bot .body li { margin:1px 0; }
  #chatHistory .msg.bot .body code { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:11.5px; background:#f4f6fa; padding:1px 4px; border-radius:3px; }
  #chatHistory .msg.bot .body pre { margin:6px 0; padding:8px 10px; background:#f4f6fa; border-radius:4px; overflow-x:auto; }
  #chatHistory .msg.bot .body pre code { padding:0; background:none; font-size:11.5px; }
  #chatHistory .msg.bot .body blockquote { margin:4px 0; padding:2px 10px; border-left:3px solid #c0ccd8; color:#566480; }
  #chatHistory .msg.bot .body hr { border:none; border-top:1px solid #e0e6ee; margin:8px 0; }
  #chatHistory .msg.bot .body iframe.chatMermaid { display:block; margin:6px 0; }
  #chatHistory .msg.bot .body table { border-collapse:collapse; font-size:11px; margin:6px 0; width:100%; }
  #chatHistory .msg.bot .body th { background:#f0f4fa; color:#2a3a58; font-weight:700; padding:4px 8px; border:1px solid #d0dae8; text-align:left; }
  #chatHistory .msg.bot .body td { padding:3px 8px; border:1px solid #e0e6ee; vertical-align:top; }
  #chatHistory .msg.bot .body tr:nth-child(even) td { background:#f8fafd; }
  #chatHistory .msg.tool { font-size:11px; color:#888; }
  #chatHistory .msg.tool .who { color:#9aa6bc; }
  #chatHistory .msg.tool .body { word-wrap:break-word; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
  #chatHistory .msg.tool .body p { margin:0 0 4px; }
  #chatHistory .msg.tool .body p:last-child { margin-bottom:0; }
  #chatHistory .msg.bot .body a { color:#2a4a8c; }
  #chatHistory .empty { color:#888; font-style:italic; padding:18px 4px 0; }
  #chatHistory .chatChips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
  #chatHistory .chatChip { padding:5px 10px; border:1px solid #2a4a8c; background:#e8eef9; color:#2a4a8c; border-radius:14px; font:inherit; font-size:11px; font-weight:600; cursor:pointer; line-height:1.2; }
  #chatHistory .chatChip:hover { background:#2a4a8c; color:#fff; }
  #chatHistory .chatChip:active { transform:translateY(1px); }
  /* "spent" = chip has been clicked at least once. Faded so the user can
     scan a chip strip and see what's already been tried. Still hoverable. */
  #chatHistory .chatChip.spent { opacity:0.55; background:#f4f6fa; color:#7a8aa0; border-color:#c0ccd8; }
  #chatHistory .chatChip.spent:hover { opacity:1; background:#2a4a8c; color:#fff; border-color:#2a4a8c; }
  #chatHistory .err { color:#b3261e; }
  #chatForm { border-top:1px solid #e0e6ee; padding:8px 10px; display:flex; flex-direction:column; gap:6px; background:#fbfbfd; }
  #chatInput { resize:vertical; border:1px solid #c0ccd8; border-radius:6px; padding:6px 8px; font:inherit; font-size:12px; background:#fff; color:#1c2433; min-height:48px; max-height:200px; }
  #chatInput:focus { outline:none; border-color:#2a4a8c; }
  #chatBar { display:flex; gap:6px; align-items:center; }
  #chatBar button { font:inherit; font-size:11px; padding:4px 10px; border-radius:4px; cursor:pointer; border:1px solid #c0ccd8; background:#fff; color:#566480; }
  #chatBar button:hover { background:#f0f4f8; }
  #chatSend { margin-left:auto; background:#2a4a8c !important; color:#fff !important; border-color:#1c3669 !important; padding:5px 14px !important; }
  #chatSend:hover { background:#1c3669 !important; }
  #chatSend:disabled { background:#9aa6bc !important; cursor:default; border-color:#7c8aa3 !important; }
  #panel {
    background:rgba(255,255,255,0.98); border:1px solid #c0ccd8; border-radius:10px;
    box-shadow:0 2px 12px rgba(0,0,0,0.08);
    display:flex; flex-direction:column; overflow:hidden; min-height:0; min-width:0;
  }
  #panelControls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:5px 10px; border-bottom:1px solid #e0e6ee; font-size:10.5px; color:#566480; line-height:1.1; }
  #panelControls label { display:flex; align-items:center; gap:3px; }
  #panelControls label > b { color:#2a4a8c; font-weight:600; min-width:14px; text-align:right; font-variant-numeric:tabular-nums; }
  #panelControls input[type=range] { -webkit-appearance:none; appearance:none; width:70px; height:3px; background:#c0ccd8; border-radius:2px; outline:none; vertical-align:middle; }
  #panelControls input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:11px; height:11px; border-radius:50%; background:#2a4a8c; cursor:pointer; }
  #panelControls input[type=range]::-moz-range-thumb { width:11px; height:11px; border-radius:50%; background:#2a4a8c; cursor:pointer; border:none; }
  #panelControls select { background:#fff; border:1px solid #c0ccd8; border-radius:3px; padding:1px 4px; font:inherit; }
  #panelScroll { flex:1; overflow-y:auto; min-height:0; }
  .bcard { background:#fffbf2; border-top:1px solid #f0e9d6; }
  .bcard .bcardHead { padding:10px 12px 6px; }
  .bcard .bnm { font-weight:700; color:#0a1426; font-size:14px; line-height:1.2; }
  .bcard .bsub { color:#566480; font-size:11px; margin-top:2px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .bcard .bsub .reltag { background:#dde9ff; color:#1f3a78; padding:1px 6px; border-radius:3px; font-weight:600; }
  .bcard .bev { color:#566480; font-size:11px; margin-top:4px; font-style:italic; }
  .bcard .bcardSection { padding:6px 12px; border-top:1px solid #f0e9d6; }
  .bcard .bcardSection h4 { margin:0 0 4px; font-size:10px; font-weight:600; color:#888; letter-spacing:0.06em; text-transform:uppercase; }
  .bcard .bSummary { font-size:12px; line-height:1.5; color:#1c2433; }
  .bcard .bSummary a { color:#2a4a8c; text-decoration:underline; }
  .bcard .bSummary p { margin:0 0 6px; }
  .bcard .bSummary p:last-child { margin-bottom:0; }
  .bcard .bChain { font-size:11px; color:#566480; line-height:1.5; }
  .bcard .bChain .step { display:flex; gap:6px; align-items:baseline; padding:1px 0; }
  .bcard .bChain .step .nm { color:#1c2433; font-weight:600; }
  .bcard .bChain .step .lbl { color:#888; font-style:italic; min-width:60px; }
  .bcard .bChain .step.root .lbl { color:#1f3a78; font-weight:600; font-style:normal; }
  .bcard .bChain .step .yrs { color:#888; font-weight:400; font-variant-numeric:tabular-nums; margin-left:4px; }
  .bcard .bEvs { font-size:11px; }
  .bcard .bEv { display:flex; gap:8px; align-items:baseline; padding:3px 6px; border-radius:3px; cursor:pointer; line-height:1.4; }
  .bcard .bEv:hover { background:#fff; }
  .bcard .bEv.cur { background:#fff3d4; box-shadow:inset 2px 0 0 #ffb930; }
  .bcard .bEv .yr { font-variant-numeric:tabular-nums; color:#888; min-width:36px; font-weight:600; }
  .bcard .bEv .verb { color:#566480; min-width:60px; }
  .bcard .bEv .pl { color:#1c2433; flex:1; }
  #panelList li.expanded { padding:0; cursor:default; }
  #panelList li.expanded .liHead { padding:8px 12px; cursor:pointer; background:#fffbf2; }
  #panelList li.expanded.inferred .liHead { font-style:italic; }
  #panelList { list-style:none; margin:0; padding:0; }
  #panelList li { padding:6px 12px; cursor:pointer; font-size:12px; border-bottom:1px solid #f0f4f8; line-height:1.35; }
  #panelList li:hover { background:#f0f4f8; }
  #panelList li.selected { background:#fff3d4; box-shadow:inset 3px 0 0 #ffb930; }
  #panelList li.inferred { background:#fafbfd; font-style:italic; }
  #panelList li.inferred .nm { color:#566480; }
  #panelList .tag { display:inline-block; background:#e0e6ee; color:#566480; font-size:10px; padding:0 4px; border-radius:3px; margin-left:4px; vertical-align:middle; font-style:normal; }
  #panelList .tag.rel { background:#dde9ff; color:#1f3a78; }
  #panelList .yr { font-variant-numeric:tabular-nums; color:#888; margin-right:6px; font-size:11px; }
  #panelList .nm { font-weight:600; color:#1c2433; }
  #panelList .ev { color:#566480; font-size:11px; }
  #panelList .pm { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; vertical-align:middle; }
  #panelList .sq { border-radius:0; }
  #panelList .di { border-radius:1px; transform:rotate(45deg); width:8px; height:8px; }
  .legend { font-size:11px; color:#566480; display:flex; gap:10px; align-items:center; }
  .legend .swatch { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; vertical-align:middle; }
  .legend .square { border-radius:0; }
  .legend .diamond { width:12px; height:12px; border-radius:2px; transform:rotate(45deg); }
  /* Auth bar */
  #authBar { display:flex; align-items:center; gap:8px; padding:4px 14px; background:rgba(255,255,255,0.85); border-bottom:1px solid #d0dce8; font-size:11.5px; color:#566480; flex-shrink:0; }
  #authBar .authSpacer { flex:1; }
  #authBar .authTier { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; padding:2px 7px; border-radius:10px; }
  #authBar .authTier.vip { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }
  #authBar .authTier.regular { background:#e0f2fe; color:#0369a1; border:1px solid #bae6fd; }
  #authBar .authTier.anon { background:#f1f5f9; color:#64748b; border:1px solid #cbd5e1; }
  #authBar button { padding:3px 10px; border:1px solid #c0ccd8; border-radius:4px; background:#fff; color:#1c2433; font:inherit; font-size:11px; cursor:pointer; }
  #authBar button:hover { background:#f0f5fa; }
  #authBar button.busy { opacity:0.65; cursor:wait; }
  #authBar .authEmail { color:#334155; font-weight:500; max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #apiKeyRow { display:none; align-items:center; gap:6px; font-size:11px; }
  #apiKeyRow input { width:240px; padding:2px 6px; border:1px solid #c0ccd8; border-radius:4px; font:inherit; font-size:11px; }
  #apiKeyRow .apiKeyStatus { color:#2f7d32; font-size:10.5px; min-width:34px; }
  #chatLock { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:32px 16px; color:#7a8aa0; font-size:13px; text-align:center; flex:1; }
  #chatLock.hidden { display:none; }
  #chatScope { flex:0 0 auto; border-bottom:1px solid #e0e6ee; background:#fff; color:#334155; padding:6px 10px; font-size:11px; line-height:1.35; }
  .chat-scope-actions { display:flex; flex-wrap:wrap; gap:5px; }
  .chat-scope-question { border:1px solid #b9c8dd; border-radius:999px; background:#fff; color:#1f3a78; padding:4px 8px; font:inherit; font-size:10.5px; font-weight:700; cursor:pointer; }
  .chat-scope-question:hover { background:#e8f0ff; border-color:#7290c8; }
  #sideTabs { display:flex; gap:0; border-bottom:1px solid #e0e6ee; background:#f4f6fa; flex-shrink:0; }
  #sideTabs button { flex:1; padding:8px 10px; border:0; border-right:1px solid #e0e6ee; background:transparent; color:#566480; font:inherit; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; }
  #sideTabs button:last-child { border-right:0; }
  #sideTabs button.on { background:#fff; color:#1e40af; box-shadow:inset 0 -2px 0 #1e40af; }
  #chatPanel .sidePane { display:none; flex:1; min-height:0; flex-direction:column; }
  #chatPanel .sidePane.on { display:flex; }
  #personPane { overflow-y:auto; background:#f8fbff; }
  #personPane #selectedPerson { flex:1 1 auto; max-height:none; overflow-y:auto; border-bottom:0; }
  #personEmpty { margin:12px; padding:18px 14px; border:1px dashed #c0ccd8; border-radius:8px; color:#7a8aa0; font-size:12px; text-align:center; background:#fff; }
  #clusterPane { background:#f8fafc; }
  #selectedCluster { flex:1 1 auto; min-height:0; overflow-y:auto; padding:10px 12px; font-size:11.5px; color:#1c2433; }
  #clusterEmpty { margin:12px; padding:18px 14px; border:1px dashed #c0ccd8; border-radius:8px; color:#7a8aa0; font-size:12px; text-align:center; background:#fff; }
  #viewChrome { position:absolute; z-index:12; top:10px; left:10px; right:10px; display:flex; align-items:flex-start; gap:8px; pointer-events:none; color:#1c2433; }
  #viewSummary, #focusBreadcrumb, #viewWhy { background:rgba(255,255,255,0.9); border:1px solid #c0ccd8; border-radius:8px; box-shadow:0 2px 10px rgba(20,28,48,0.09); padding:6px 9px; font-size:11px; line-height:1.3; backdrop-filter:blur(6px); }
  #viewSummary { font-weight:800; color:#102033; }
  #viewWhy { pointer-events:auto; font:inherit; font-weight:800; color:#1f3a78; cursor:pointer; }
  #viewWhy:hover { background:#e8f0ff; border-color:#7290c8; }
  #focusBreadcrumb { margin-left:auto; max-width:44%; color:#566480; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #yearDigest { position:absolute; z-index:12; top:48px; left:10px; width:min(390px, calc(100% - 20px)); pointer-events:none; background:rgba(255,255,255,0.92); border:1px solid #c0ccd8; border-radius:10px; box-shadow:0 6px 22px rgba(20,28,48,0.13); padding:9px 10px; color:#1c2433; backdrop-filter:blur(8px); }
  #yearDigest[hidden] { display:none; }
  .year-digest-head { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:7px; }
  .year-digest-title { font-size:11px; font-weight:900; color:#102033; letter-spacing:0.03em; text-transform:uppercase; }
  .year-digest-sub { font-size:10px; color:#718096; white-space:nowrap; }
  .year-digest-metrics { display:grid; grid-template-columns:repeat(4, 1fr); gap:5px; margin-bottom:7px; }
  .year-digest-metric { border:1px solid #d6dde7; border-radius:7px; background:#f8fafc; padding:5px 4px; text-align:center; }
  .year-digest-num { display:block; font-size:13px; line-height:1; font-weight:900; color:#1e40af; font-variant-numeric:tabular-nums; }
  .year-digest-label { display:block; margin-top:2px; font-size:9px; color:#64748b; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; }
  .year-digest-list { margin:0; padding-left:15px; color:#334155; font-size:10.5px; line-height:1.35; }
  .year-digest-list li { margin:2px 0; }
  .ux-section { background:#fff; border:1px solid #d6dde7; border-radius:8px; padding:8px 9px; margin:8px 0; }
  .ux-section h4 { margin:0 0 5px; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:#566480; }
  .ux-list { margin:0; padding-left:16px; color:#2a3a58; line-height:1.45; }
  .ux-list li { margin:2px 0; }
  .ux-muted { color:#718096; font-size:11px; line-height:1.45; }
  .ux-badges { display:flex; flex-wrap:wrap; gap:4px; margin:5px 0; }
  .ux-badge { display:inline-flex; align-items:center; border-radius:999px; border:1px solid #cbd5e1; background:#f8fafc; color:#475569; padding:1px 6px; font-size:9.5px; font-weight:800; letter-spacing:0.03em; text-transform:uppercase; }
  .ux-badge.good { background:#ecfdf5; border-color:#a7f3d0; color:#047857; }
  .ux-badge.warn { background:#fff7ed; border-color:#fed7aa; color:#b45309; }
  .ux-badge.risk { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
  .ux-badge.info { background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8; }
  .ux-question-row { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
  .ux-question { border:1px solid #b9c8dd; border-radius:999px; background:#f6f9ff; color:#1f3a78; padding:4px 8px; font:inherit; font-size:10.5px; font-weight:700; cursor:pointer; }
  .ux-question:hover { background:#e8f0ff; border-color:#7290c8; }
  .cluster-digest { background:linear-gradient(135deg,#ffffff 0%,#f3f7ff 100%); }
  .cluster-head { display:flex; gap:9px; align-items:center; margin-bottom:8px; }
  .cluster-swatch { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; border:2px solid rgba(255,255,255,0.95); box-shadow:0 0 0 1px rgba(20,28,48,0.22); color:#13203a; font-size:9px; font-weight:800; }
  .cluster-title { font-weight:800; font-size:13px; color:#0a1426; }
  .cluster-sub { margin-top:1px; color:#566480; font-size:11px; }
  .cluster-breakdown { display:grid; gap:3px; padding:8px; background:#fff; border:1px solid #d6dde7; border-radius:7px; margin:7px 0 9px; }
  .cluster-breakdown div { display:flex; justify-content:space-between; gap:10px; }
  .cluster-breakdown b { color:#566480; font-size:10px; letter-spacing:0.04em; text-transform:uppercase; }
  .cluster-breakdown span { text-align:right; color:#1c2433; }
  .cluster-list-head { display:flex; justify-content:space-between; align-items:baseline; margin:10px 0 5px; color:#566480; font-size:10px; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; }
  .cluster-list { display:grid; gap:4px; }
  .cluster-person { display:grid; grid-template-columns:18px 1fr auto; align-items:center; gap:7px; width:100%; border:1px solid #d6dde7; border-radius:6px; background:#fff; padding:6px 7px; font:inherit; text-align:left; color:inherit; cursor:pointer; }
  .cluster-person:hover { border-color:#8aa2d0; background:#f2f6ff; }
  .cluster-marker { display:inline-block; width:11px; height:11px; border:1.5px solid rgba(255,255,255,0.95); box-shadow:0 0 0 1px rgba(20,28,48,0.2); }
  .cluster-marker.circle { border-radius:50%; }
  .cluster-marker.diamond { border-radius:2px; transform:rotate(45deg); }
  .cluster-marker.square { border-radius:2px; }
  .cluster-person-name { display:block; color:#0a1426; font-weight:700; line-height:1.25; }
  .cluster-person-meta { display:block; color:#718096; font-size:10.5px; line-height:1.35; margin-top:1px; }
  .cluster-person .ux-badges { margin:3px 0 0; gap:3px; }
  .cluster-person .ux-badge { font-size:8.5px; padding:0 5px; }
  .cluster-person-year { color:#566480; font-size:10px; font-variant-numeric:tabular-nums; }
  .cluster-actions { display:flex; gap:6px; margin-top:9px; }
  .cluster-ask { background:#2a4a8c; color:#fff; border:none; border-radius:5px; padding:5px 10px; font:inherit; font-size:11px; cursor:pointer; }
  @media (max-width:700px) {
    #viewChrome { flex-direction:column; right:auto; max-width:calc(100% - 20px); }
    #focusBreadcrumb { margin-left:0; max-width:100%; }
    #yearDigest { top:78px; max-width:calc(100% - 20px); }
    .year-digest-metrics { grid-template-columns:repeat(2, 1fr); }
  }
  .cluster-ask:hover { background:#1c3669; }
