/* Inner pages: threat details, research, hardware, chart. */

/* Back link */
.back{display:inline-block;margin:12px 0 4px;font-size:13px;color:var(--ink-dim)}
.back:hover{color:var(--link)}

/* Threat hero */
.t-hero{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.t-hero h1{margin:0;font-size:clamp(22px,2.5vw,30px);font-weight:650;letter-spacing:-.02em}
.t-what{margin:4px 0 0;color:var(--ink-dim);font-size:14px}
.t-summary{font-size:15px;line-height:1.55;margin:0 0 16px}
.t-summary strong{font-weight:700}
.t-section{margin:18px 0 0}
.t-section h2{margin:0 0 10px;font-size:16px;font-weight:650;letter-spacing:-.01em}
.r-section{margin:24px 0 0}
.r-section h2{margin:0 0 10px;font-size:16px;font-weight:650;letter-spacing:-.01em}

/* Badges */
.d-badge{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.d-badge.dated{font-size:22px;color:var(--accent)}
.d-badge.warn{font-size:18px;color:var(--accent);opacity:.75}
.d-badge.safe{font-size:14px;color:var(--ok);padding:3px 12px;border-radius:999px;background:rgb(29 122 62/.10)}

/* Source paper card */
.d-source{margin:12px 0 0;padding:12px 16px;background:var(--panel);border-radius:var(--radius-sm)}
.d-source summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-dim)}
.d-source[open] summary{margin-bottom:8px}
.d-source .d-kicker{margin:0 0 4px;font-size:12px;color:var(--ink-dim)}
.d-source h3{margin:0 0 10px;font-size:14.5px;line-height:1.35;font-weight:650}
.d-source blockquote{margin:0;padding:10px 12px;background:var(--surface);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:13px;line-height:1.55}
.d-source .read{display:inline-block;margin-top:10px;font-size:13px;font-weight:600}

/* Context panel: inline two-column grid */
.t-context{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:16px 0 0;padding:16px 18px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
.t-context .d-note{grid-column:1/-1}
h4{margin:0 0 5px;font-size:12px;font-weight:650;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em}
.t-context ul{margin:0;padding-left:16px;font-size:13.5px;line-height:1.55}
.t-context li{margin:0 0 4px}
.d-note{margin:10px 0 0;font-size:12px;color:var(--ink-dim)}

/* Stat tiles */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 6px}
.stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
.st-l{font-size:12px;font-weight:600;color:var(--ink-dim)}
.st-v{font-size:24px;font-weight:650;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}
.st-s{font-size:12.5px;color:var(--ink-dim)}

/* Papers table */
.tbl{overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
table.papers{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13.5px}
.papers th:first-child{width:86px}
.papers th.num{width:116px}
.papers th{padding:9px 14px;text-align:left;font-size:12px;font-weight:600;color:var(--ink-dim);border-bottom:1px solid var(--rule);white-space:nowrap}
.papers td{padding:10px 14px;border-top:1px solid var(--rule);vertical-align:top}
.papers tbody tr:first-child td{border-top:none}
.papers tbody tr:hover{background:var(--hover)}
.papers .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.papers .dt{white-space:nowrap;color:var(--ink-dim)}
.papers td a{color:var(--ink);font-weight:600}
.papers td a:hover{color:var(--link)}
.papers small{display:block;font-size:11.5px;font-weight:400;color:var(--ink-dim)}
.papers small.chg{font-weight:650;color:var(--bad)}

/* Vendor cards */
.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin:16px 0}
.vendor-card{padding:16px 18px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
.vendor-card h3{margin:0 0 12px;font-size:16px;font-weight:650}
.rm-timeline{display:flex;flex-direction:column}
.rm-step{display:flex;flex-wrap:wrap;justify-content:space-between;padding:8px 0;border-top:1px solid var(--rule);font-size:13.5px}
.rm-breaks{flex-basis:100%;margin-top:2px;font-size:12px;font-weight:650;color:var(--accent)}
.rm-year{font-weight:650;font-variant-numeric:tabular-nums}
.rm-qubits{color:var(--ink-dim);text-align:right}
.rm-source{display:inline-block;margin-top:10px;font-size:13px;font-weight:600}

/* Progress charts */
.prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.prog-card{padding:14px 16px 12px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
.prog-card h3{margin:0;font-size:15px;font-weight:650}
.prog-card .dim{margin:2px 0 6px;font-size:12.5px}
.prog{display:block;width:100%;height:auto}
.prog-narrow{display:none}
.prog .g{stroke:rgb(var(--ink-rgb)/.07);stroke-width:1}
.prog .ax{fill:var(--ink-dim);font:11.5px var(--sans)}
.prog .stp{stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.prog .pt{fill:var(--surface);stroke:var(--accent);stroke-width:1.8}
.prog .pt.rec{fill:var(--accent)}
.prog .vl{fill:var(--ink);font:650 12.5px var(--sans)}
.prog .dl{fill:var(--ink-dim);font:11.5px var(--sans)}
.prog .dl.dn{fill:var(--bad);font-weight:650}
.prog-foot{margin:6px 0 0;font-size:13px}

/* Chart page */
.chartwrap{margin-top:10px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 10px 8px}
.chartwrap.full{margin-top:6px;padding:8px 10px 4px}
.chartwrap.full .tl{height:calc(100vh - 200px);min-height:340px}
.tl-narrow{display:none}
.tl{display:block;width:100%;height:auto;overflow:visible}
.tl .grid{stroke:rgb(var(--ink-rgb)/.07);stroke-width:1}
.tl .area{fill:rgb(194 87 12/.07);stroke:none}
.tl .ax{fill:var(--ink-dim);font:12px var(--sans)}
.tl .today{stroke:var(--ink-dim);stroke-width:1;stroke-dasharray:3 3}
.tl .stair{stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;stroke:var(--accent)}
.tl .stair.log{stroke-width:1.8;stroke-dasharray:1 6}
.tl .atk{cursor:pointer;outline:none}
.tl .atk .hit{stroke:transparent;stroke-width:18}
.tl .need{stroke:rgb(var(--ink-rgb)/.78);stroke-width:1.5;stroke-linecap:round}
.tl .need.logi{stroke-dasharray:8 5}
.tl .need.weak{stroke:rgb(var(--ink-rgb)/.38);stroke-width:1.2}
.tl .lead{stroke:var(--line-strong);stroke-width:1}
.tl .nm{fill:var(--ink);font:650 13px var(--sans)}
.tl .sb{fill:var(--ink-dim);font:12px var(--sans)}
.tl .atk:hover .need,.tl .atk:focus-visible .need,.tl .atk.is-sel .need{stroke:var(--accent);stroke-width:2.6}
.tl .atk:hover .nm,.tl .atk.is-sel .nm{fill:var(--accent)}
.tl .halo{fill:var(--surface);stroke:none;pointer-events:none}
.tl .cross{fill:var(--surface);stroke:var(--accent);stroke-width:2.6;pointer-events:none}
.tl .dot{cursor:pointer;outline:none}
.tl .dot .hit{fill:transparent}
.tl .dot .pt{fill:var(--surface);stroke:var(--accent);stroke-width:2;transition:fill .12s,r .12s}
.tl .dot.rec .pt{fill:var(--accent)}
.tl .dot.log .pt{stroke-width:1.6}
.tl .dot:hover .pt,.tl .dot:focus-visible .pt,.tl .dot.is-sel .pt{fill:var(--ink);stroke:var(--ink);r:8}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 8px 6px;font-size:12.5px;color:var(--ink-dim)}
.legend .li{display:inline-flex;align-items:center;gap:7px}
.legend .k{display:inline-block;width:22px;height:0;border-top:2.2px solid var(--accent)}
.legend .k.dashed{border-top-style:dashed}
.legend .k.need{border-top:2px solid var(--ink)}
.legend .k.ring{width:11px;height:11px;border:2px solid var(--accent);border-radius:50%}

/* Radar (research page) */
.radar{margin-top:26px}.radar summary{cursor:pointer;color:var(--ink-dim)}.radar ul{padding-left:18px}

@media (max-width:900px){
  .t-context{grid-template-columns:1fr}
  .prog-grid{grid-template-columns:1fr}
  .tl-wide{display:none}.tl-narrow{display:block}
}
@media (max-width:760px){.stats{grid-template-columns:1fr}}
@media (max-width:640px){
  .prog-wide{display:none}.prog-narrow{display:block}
  .papers thead{display:none}
  .papers tr{display:grid;grid-template-columns:repeat(3,1fr);gap:2px 8px;padding:10px 14px;border-top:1px solid var(--rule)}
  .papers tbody tr:first-child{border-top:none}
  .papers td{padding:0;border:none}
  .papers td.dt{grid-column:1/-1;font-size:12px}
  .papers td:nth-child(2){grid-column:1/-1;margin-bottom:4px}
  .papers td.num{text-align:left}
  .papers td.num::before{content:attr(data-l);display:block;font-size:11px;color:var(--ink-dim)}
}
