/* AI Agent Threat Model section (/threats/). Depends on base.css tokens. */
.tm-hero{max-width:760px;margin:0 0 1.6rem}
.tm-hero h1{margin:.2rem 0 .8rem}
.tm-lead{color:var(--ink-2);font-size:1.05rem;line-height:1.65;max-width:70ch}
.tm-section{margin:2.6rem 0}
.tm-section-lead{color:var(--muted);margin:.2rem 0 1rem}
.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:.9rem}
.tm-card{display:block;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);padding:1.1rem 1.2rem;text-decoration:none;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.tm-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 18px -8px var(--accent-glow)}
.tm-card h3{margin:.55rem 0 .35rem;font-size:1.02rem}
.tm-card p{margin:0;font-size:.85rem;color:var(--muted);line-height:1.55}
.tm-card-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.tm-chip{display:inline-block;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:.22em .7em;font-weight:600}
.tm-chip-overview{background:var(--paper-3);color:var(--muted)}
.tm-chip-surface{background:var(--accent-soft);color:var(--accent-deep)}
.tm-chip-risk{background:var(--warn-soft);color:var(--warn)}

/* detail pages */
.tm-detail{max-width:880px}
.tm-head{margin:0 0 1.2rem}
.tm-head h1{margin:.5rem 0 .7rem}
.tm-article{font-size:.98rem;line-height:1.7}
.tm-article h2{margin:2rem 0 .7rem}
.tm-article h3{margin:1.4rem 0 .5rem}
.tm-article ul,.tm-article ol{padding-left:1.3rem}
.tm-article li{margin:.35rem 0}
.tm-article blockquote{border-left:3px solid var(--accent);margin:1.4rem 0;padding:.4rem 0 .4rem 1.1rem;color:var(--ink-2)}
.tm-article blockquote cite{display:block;margin-top:.4rem;font-style:normal;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.tm-article .table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);margin:1.2rem 0}
.tm-article table{border-collapse:collapse;width:100%;font-size:.86rem}
.tm-article th{text-align:left;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500;padding:.7rem .9rem;border-bottom:1px solid var(--rule)}
.tm-article td{padding:.65rem .9rem;border-bottom:1px solid var(--rule);vertical-align:top}
.tm-article tr:last-child td{border-bottom:none}
.tm-article pre{background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:.9rem 1.1rem;overflow-x:auto;margin:1.2rem 0}
.tm-article code{font-family:var(--mono);font-size:.8rem}

/* related + CTA + pager */
.tm-related{margin:2.4rem 0 0;border-top:1px solid var(--rule);padding-top:1.4rem}
.tm-related ul{list-style:none;padding:0;margin:.6rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:.4rem .9rem}
.tm-related a{font-size:.9rem}
.tm-cta{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--card);padding:1.5rem 1.7rem;margin:2.4rem 0}
.tm-cta h2{margin:0 0 .4rem;font-size:1.15rem}
.tm-cta p{margin:0;color:var(--ink-2)}
.tm-pager{display:flex;justify-content:space-between;gap:1rem;margin:1.6rem 0 2.6rem}
.tm-pager-a{display:block;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);padding:.7rem 1rem;text-decoration:none;color:var(--ink);font-size:.9rem;max-width:46%}
.tm-pager-a span{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.tm-pager-a:hover{border-color:var(--accent)}
.tm-pager-next{text-align:right;margin-left:auto}

/* severity badges (self-contained copy; threats pages do not load skills.css) */
.tm-body .sk-badge{display:inline-block;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;border-radius:6px;padding:.18em .55em;font-weight:600;text-transform:uppercase}
.tm-body .verdict-critical{background:var(--danger-soft);color:var(--danger)}
.tm-body .verdict-high{background:var(--warn-soft);color:var(--warn)}
.tm-body .verdict-medium{background:transparent;color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}

/* diagrams */
.tm-figure{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--card);padding:1.2rem 1.2rem .8rem;margin:1.4rem 0 2rem}
.tm-figure figcaption{font-family:var(--mono);font-size:.7rem;color:var(--muted);text-align:center;padding:.7rem .4rem .2rem}
.tm-diagram{display:block;width:100%;height:auto}
.tm-box{fill:var(--paper-2);stroke:var(--rule);stroke-width:1.25}
.tm-label{fill:var(--ink);font-family:var(--body);font-size:13.5px;font-weight:600}
.tm-sub{fill:var(--muted);font-family:var(--mono);font-size:9.5px;letter-spacing:.04em}
.tm-agent .tm-box{fill:var(--accent-soft);stroke:var(--accent)}
.tm-agent .tm-label{fill:var(--accent-deep)}
.tm-attacker .tm-box{fill:var(--danger-soft);stroke:var(--danger)}
.tm-attacker .tm-label{fill:var(--danger)}
.tm-external .tm-box{fill:var(--warn-soft);stroke:var(--warn)}
.tm-external .tm-label{fill:var(--warn)}
.tm-control .tm-box{fill:var(--card);stroke:var(--accent-deep);stroke-dasharray:4 3}
.tm-control .tm-label{fill:var(--accent-deep)}
.tm-data .tm-box{fill:var(--paper-3);stroke:var(--ink-2)}
.tm-edge{stroke-width:1.4;fill:none}
.tm-edge-flow{stroke:var(--muted)}
.tm-edge-attack{stroke:var(--danger);stroke-dasharray:5 4}
.tm-edge-control{stroke:var(--accent-deep);stroke-dasharray:2 3}
.tm-arr-flow{fill:var(--muted)}
.tm-arr-attack{fill:var(--danger)}
.tm-arr-control{fill:var(--accent-deep)}
.tm-elabel{font-family:var(--mono);font-size:9.5px}
.tm-elabel-bg{fill:var(--card);opacity:.92}
.tm-elabel-flow{fill:var(--muted)}
.tm-elabel-attack{fill:var(--danger)}
.tm-elabel-control{fill:var(--accent-deep)}

@media (max-width:640px){
  .tm-pager{flex-direction:column}
  .tm-pager-a{max-width:none}
  .tm-figure{padding:.8rem .6rem .5rem}
}
