/* Threatist portal — page layout. Loaded after tokens.css and components.css.
   Colours, fonts, radii and spacing come from tokens only. */

[x-cloak] { display: none !important; }
.tt-site { min-height: 100vh; display: flex; flex-direction: column; }
.tt-site a:not(.tt-btn) { color: var(--accent-teal); text-decoration: none; }
.tt-site a:not(.tt-btn):hover { text-decoration: underline; }
.tt-site a:focus-visible, .tt-site summary:focus-visible, .tt-site button:focus-visible, .tt-site input:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-muted { color: var(--ink-muted); }
.tt-soft { color: var(--ink-soft); }
.tt-prewrap { white-space: pre-line; margin: 0; }
.tt-code-text { font-family: var(--font-mono); font-size: 13px; }
.tt-stack-2 { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-stack-4 { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); }
.tt-mobile-only { display: none !important; }

/* Header */
.tt-site-header { height: 72px; box-sizing: border-box; padding: 0 var(--space-8); display: flex; align-items: center; gap: var(--space-8); border-bottom: 1px solid var(--line); background: var(--surface); }
.tt-logo { display: flex; align-items: center; gap: 10px; color: var(--ink) !important; text-decoration: none; font: 500 15px/1 var(--font-sans); letter-spacing: .22em; }
.tt-logo img { object-fit: contain; }
.tt-nav { display: flex; gap: var(--space-6); align-items: center; }
.tt-nav__link { color: var(--ink-soft) !important; text-decoration: none; font: 400 15px/20px var(--font-sans); }
.tt-nav__link:hover { color: var(--ink) !important; }
.tt-nav__link--active { color: var(--ink) !important; font-weight: 500; }
.tt-site-header__search { flex: 1; display: flex; justify-content: flex-end; }
.tt-search { display: flex; align-items: center; gap: var(--space-2); width: 340px; max-width: 100%; height: 40px; box-sizing: border-box; padding: 0 var(--space-3); border-radius: var(--radius-md); background: var(--surface-raised); border: 1px solid var(--line-strong); color: var(--ink-muted); }
.tt-search input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--ink); font: 400 14px var(--font-sans); outline: none; }
.tt-search:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-search--large { width: 100%; max-width: 560px; height: 52px; padding-right: 4px; }
.tt-search--large input { font-size: 16px; }
.tt-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); background: transparent; border: 1px solid var(--line); color: var(--ink-soft) !important; cursor: pointer; }
.tt-icon-btn--small { width: 28px; height: 28px; }

/* Mobile menu */
.tt-mobile-menu { position: fixed; inset: 0; z-index: 10; background: var(--surface); padding: 0 var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); overflow-y: auto; }
.tt-mobile-menu__bar { height: 56px; display: flex; align-items: center; justify-content: space-between; }
.tt-mobile-menu nav { display: flex; flex-direction: column; }
.tt-mobile-menu__link { min-height: 56px; display: flex; align-items: center; border-bottom: 1px solid var(--line); color: var(--ink) !important; text-decoration: none; font: 500 17px/24px var(--font-sans); }
.tt-mobile-menu .tt-search { width: 100%; height: 48px; }

/* Main */
.tt-main { flex: 1; width: 100%; max-width: 1200px; box-sizing: border-box; margin: 0 auto; padding: var(--space-8) 0 var(--space-16); display: flex; flex-direction: column; gap: var(--space-8); }
.tt-breadcrumb { display: flex; gap: var(--space-2); color: var(--ink-muted); font-family: var(--font-mono); }
.tt-breadcrumb [aria-current] { color: var(--ink); }

/* Detail header */
.tt-detail-header { display: flex; flex-direction: column; gap: var(--space-4); }
.tt-detail-header__ids { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tt-detail-header__id { font: 500 16px/20px var(--font-mono); color: var(--accent-teal); }
.tt-alias { font: 400 13px/20px var(--font-mono); }
.tt-detail-header__title { margin: 0; max-width: 960px; color: var(--ink); overflow-wrap: anywhere; }
.tt-detail-header__badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tt-detail-header__dates { margin-left: auto; font-family: var(--font-mono); }

/* Detail body */
.tt-detail { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--space-8); align-items: start; }
.tt-detail__main { display: flex; flex-direction: column; gap: var(--space-8); min-width: 0; }
.tt-detail__main h2.tt-eyebrow, .tt-detail__rail h2.tt-eyebrow { margin: 0; }
.tt-detail__rail { display: flex; flex-direction: column; gap: var(--space-4); position: sticky; top: var(--space-6); min-width: 0; }
.tt-section summary { list-style: none; cursor: pointer; }
.tt-section summary::-webkit-details-marker { display: none; }
.tt-section summary h2 { margin: 0; color: var(--ink); display: inline; }
.tt-section__body { margin-top: var(--space-4); display: flex; flex-direction: column; gap: var(--space-4); }
.tt-section__body p { margin: 0; }

.tt-ssvc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); margin: 0; }
.tt-ssvc__point { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); border: 1px solid var(--line); display: flex; flex-direction: column; gap: var(--space-1); }
.tt-ssvc__point dd { margin: 0; font: 600 16px/22px var(--font-sans); color: var(--ink); }

/* Key facts (plan 18): two rows of four tiles, two columns on mobile */
.tt-key-facts { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); }
.tt-key-facts h2.tt-eyebrow, .tt-key-facts p { margin: 0; }
.tt-key-facts__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); margin: 0; }
.tt-key-facts__item { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); border: 1px solid var(--line); }
.tt-key-facts__item dd { margin: 0; font: 600 16px/22px var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.tt-key-facts__note { display: block; margin-top: var(--space-1); font-weight: 400; }

.tt-chip--fix { border-color: var(--accent-teal); color: var(--ink); }
.tt-table .tt-chip { white-space: nowrap; }
.tt-stacked { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.tt-cpe { margin-top: var(--space-6); }
.tt-cpe__cpe { word-break: break-all; }

.tt-fixes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.tt-fixes .tt-card { padding: var(--space-4) var(--space-6); }

.tt-timeline { list-style: none; margin: 0 0 0 6px; padding: 0; border-left: 2px solid var(--line); display: flex; flex-direction: column; }
.tt-timeline__item { position: relative; display: flex; gap: var(--space-4); padding: 0 0 var(--space-4) var(--space-6); font: 400 14px/20px var(--font-sans); color: var(--ink-soft); }
.tt-timeline__item::before { content: ""; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; box-sizing: border-box; border-radius: 50%; background: var(--surface); border: 2px solid var(--line-strong); }
.tt-timeline__item--highlight { color: var(--ink); }
.tt-timeline__item--highlight::before { background: var(--accent-teal); border-color: var(--accent-teal); }
.tt-timeline__date { flex: none; width: 110px; font: 400 13px/20px var(--font-mono); color: var(--ink-muted); }

.tt-refs { list-style: none; margin: 0; padding: var(--space-2) var(--space-6); }
.tt-refs li { padding: var(--space-3) 0; border-top: 1px solid var(--line); font: 400 14px/20px var(--font-sans); overflow-wrap: anywhere; }
.tt-refs li:first-child { border-top: 0; }

/* Rail */
.tt-rail-card { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.tt-rail-card p, .tt-rail-card pre { margin: 0; }
.tt-rail-card pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.tt-rail-row { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); font: 400 14px/20px var(--font-sans); color: var(--ink); }
.tt-rail-row--split { padding-top: var(--space-3); border-top: 1px solid var(--line); }
.tt-priority-head { display: flex; align-items: center; gap: var(--space-3); }
.tt-priority-head .tt-priority__value { font-size: 48px; }
.tt-vector { display: block; word-break: break-all; font-size: 12px; }
.tt-other-scores summary { cursor: pointer; color: var(--accent-teal); }
.tt-other-scores ul { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }

/* 404 */
.tt-notfound { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-12) 0; max-width: 720px; }
.tt-notfound h1, .tt-notfound p { margin: 0; color: var(--ink); }
.tt-notfound__links { display: flex; gap: var(--space-6); }

/* Footer */
.tt-site-footer { border-top: 1px solid var(--line); padding: var(--space-12) var(--space-8) var(--space-6); display: flex; flex-direction: column; gap: var(--space-8); background: var(--surface-sunken); }
.tt-site-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: var(--space-16); max-width: 1200px; width: 100%; margin: 0 auto; }
.tt-site-footer__about, .tt-site-footer__newsletter { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-site-footer__about p { margin: 0; max-width: 380px; }
.tt-site-footer__nav { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-6); font: 400 14px/20px var(--font-sans); }
.tt-site-footer__newsletter .tt-type-card-title { color: var(--ink); }
.tt-site-footer__subscribe { align-self: flex-start; }
.tt-site-footer__bottom { display: flex; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; padding-top: var(--space-6); border-top: 1px solid var(--line); max-width: 1200px; width: 100%; margin: 0 auto; }
.tt-capture-form { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-capture-form p.tt-error { margin: 0; }
/* Newsletter form while htmx sends it (2026-11-01): a spinner and
   "Subscribing…" instead of "Subscribe"; the disabled button keeps full
   colour so it reads as busy, not unavailable. */
.tt-capture__busy { display: none; align-items: center; gap: var(--space-2); }
.tt-capture-form.htmx-request .tt-capture__idle { display: none; }
.tt-capture-form.htmx-request .tt-capture__busy { display: inline-flex; }
.tt-capture-form.htmx-request .tt-btn:disabled { opacity: 1; cursor: progress; }
.tt-spinner { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: tt-spin .7s linear infinite; }
@keyframes tt-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tt-spinner { animation-duration: 1.6s; } }
.tt-capture { max-width: none; }
.tt-capture--stacked { flex-direction: column; }
/* In a column, flex: 1 (components.css) would squash the field to no height. */
.tt-capture--stacked .tt-input { flex: none; }

/* Mobile (mockups at 390px) */
@media (max-width: 1240px) {
	.tt-main { padding-left: var(--space-8); padding-right: var(--space-8); }
}
@media (max-width: 900px) {
	.tt-mobile-only { display: revert !important; }
	.tt-icon-btn.tt-mobile-only { display: inline-flex !important; }
	.tt-desktop-only, .tt-nav, .tt-site-header__search, .tt-site-header__cta { display: none !important; }
	.tt-site-header { height: 56px; padding: 0 var(--space-4); gap: var(--space-2); }
	.tt-site-header .tt-logo { margin-right: auto; }
	.tt-main { padding: var(--space-6) var(--space-4) var(--space-12); gap: var(--space-6); }
	.tt-detail { grid-template-columns: minmax(0, 1fr); }
	.tt-detail__rail { position: static; }
	.tt-detail-header__dates { margin-left: 0; }
	.tt-detail-header__title { font-size: 28px; line-height: 34px; }
	.tt-section { border-top: 1px solid var(--line); padding-top: var(--space-4); }
	.tt-section summary h2 { font-size: 20px; line-height: 28px; }
	.tt-ssvc, .tt-fixes { grid-template-columns: minmax(0, 1fr); }
	.tt-key-facts { padding: var(--space-4); }
	.tt-key-facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-site-footer { padding: var(--space-8) var(--space-4) var(--space-6); }
	.tt-site-footer__top { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
	.tt-capture { flex-direction: column; }
	.tt-capture .tt-input { flex: none; }
	.tt-capture .tt-btn { justify-content: center; }
}

/* List pages (KEV) */
.tt-page-head { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-page-head h1, .tt-page-head p { margin: 0; color: var(--ink); max-width: 720px; }
.tt-page-head p { color: var(--ink-soft); }
.tt-kev-title { display: flex; align-items: center; gap: var(--space-4); }
.tt-kev-title::before { content: ""; flex: none; width: 16px; height: 16px; background: var(--kev); transform: rotate(45deg); }
.tt-counters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.tt-counter { padding: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tt-counter__value { font: 700 36px/40px var(--font-sans); color: var(--ink); }
.tt-counter__value--date { font-size: 28px; }
.tt-legend { display: inline-flex; align-items: center; gap: var(--space-2); }
.tt-legend__swatch { flex: none; width: 10px; height: 10px; border-radius: 2px; }
.tt-kev-list { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.tt-chip-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.tt-kev-group { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-kev-group__head { margin: 0; display: flex; align-items: baseline; gap: var(--space-3); padding-bottom: var(--space-1); border-bottom: 1px solid var(--line); }
.tt-kev-group__head .tt-type-card-title { color: var(--ink); }
.tt-kev-card { padding: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); }
.tt-kev-card__ids { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); }
.tt-kev-card__vendor { font: 400 12px/16px var(--font-sans); color: var(--ink-soft); padding: 2px var(--space-2); border-radius: var(--radius-sm); background: var(--surface-sunken); }
.tt-kev-card__name { margin: 0; color: var(--ink); }
.tt-dist { display: flex; gap: 2px; height: 14px; border-radius: var(--radius-sm); overflow: hidden; background: var(--surface-sunken); }
.tt-dist-table { width: 100%; border-collapse: collapse; font: 400 14px/20px var(--font-sans); color: var(--ink-soft); }
.tt-dist-table td { padding: 6px 0; }
.tt-dist-table td:last-child { text-align: right; color: var(--ink); }
.tt-vendor-list { list-style: none; margin: 0; padding: 0; }
.tt-vendor-list li { display: flex; justify-content: space-between; gap: var(--space-3); padding: 7px 0; border-top: 1px solid var(--line); font: 400 14px/20px var(--font-sans); color: var(--ink); }
.tt-vendor-list li:first-child { border-top: 0; }
@media (max-width: 900px) {
	.tt-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
	.tt-counter__value { font-size: 28px; line-height: 32px; }
	.tt-counter__value--date { font-size: 20px; }
}

/* Search */
.tt-ink { color: var(--ink); }
.tt-search-form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.tt-search-form .tt-search--large { max-width: 720px; flex: 1 1 480px; }
.tt-search-form p { margin: 0; flex-basis: 100%; }
.tt-sort { display: flex; align-items: center; gap: var(--space-2); }
.tt-select { height: 40px; }
.tt-results { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.tt-results > p { margin: 0; }
.tt-results__list { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-vuln-card { padding: var(--space-4) var(--space-6); }
.tt-vuln-card__head { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.tt-vuln-card__ids { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--space-2); }
.tt-vuln-card__link { color: var(--ink) !important; }
.tt-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tt-load-more { align-self: center; }
.tt-empty { padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-4); }
.tt-empty h2, .tt-empty ul { margin: 0; color: var(--ink); }
.tt-empty ul { padding-left: var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); color: var(--ink-soft); }
.tt-empty__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.tt-vuln-card .tt-vuln__aliases { margin-left: 0; }

/* Search filters (FiltersPanel) */
.tt-search-layout { display: flex; flex-direction: column; gap: var(--space-6); }
.tt-results__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tt-results__head p { margin: 0; margin-right: auto; }
/* Desktop: a bar of group buttons, each opening its options (2026-10-25). */
.tt-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tt-filters__head { order: 2; display: flex; align-items: center; gap: var(--space-3); }
.tt-filters__head h2 { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.tt-filters__groups { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.tt-fdrop { position: relative; }
.tt-fdrop__btn { height: 40px; font-weight: 500; }
.tt-fdrop--open .tt-fdrop__btn { border-color: var(--accent-teal); }
.tt-fdrop__btn svg { transition: transform 0.15s; }
.tt-fdrop--open .tt-fdrop__btn svg { transform: rotate(180deg); }
.tt-fdrop__n { min-width: 20px; padding: 0 6px; border-radius: var(--radius-pill); border: 1px solid var(--accent-teal); color: var(--ink); font: 600 12px/20px var(--font-sans); text-align: center; }
.tt-fdrop__panel { display: none; position: absolute; top: calc(100% + var(--space-2)); left: 0; z-index: 20; width: max-content; min-width: 260px; max-width: 360px; max-height: min(50vh, 440px); flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-4); background: var(--surface-raised); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); }
.tt-fdrop--open .tt-fdrop__panel { display: flex; }
/* Room for the focus ring inside the scrolling list. */
.tt-fdrop__list { align-self: stretch; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: var(--space-1); margin: calc(-1 * var(--space-1)); }
.tt-fdrop__panel > .tt-btn { flex: none; }
.tt-fgroup { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tt-fgroup legend { padding: 0 0 var(--space-2); }
.tt-fopt { display: flex; align-items: center; gap: var(--space-3); min-height: 32px; font: 400 14px/20px var(--font-sans); color: var(--ink-soft); cursor: pointer; }
.tt-fopt input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--accent-teal); }
.tt-fopt__label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.tt-fopt__n { font: 400 12px/16px var(--font-mono); color: var(--ink-muted); }
.tt-fopt:has(input:checked) { color: var(--ink); }
.tt-filters__apply { display: none; }
/* Product group: search box, chosen products, suggestions (2026-10-25). */
.tt-product-search { width: 100%; margin-bottom: var(--space-1); }
.tt-fgroup > .tt-type-small { margin: 0 0 var(--space-2); }
.tt-fgroup__opts { display: flex; flex-direction: column; gap: 2px; }
.tt-fgroup__opts:empty { display: none; }
.tt-product-suggest__head { margin: var(--space-3) 0 var(--space-1); }
#fg-cpe { width: 360px; }
.tt-chip--remove { text-decoration: none; color: var(--ink) !important; border-color: var(--accent-teal); }
.tt-chip--remove:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-chip-row a.tt-type-small { margin-left: var(--space-2); }
@media (max-width: 900px) {
	/* Mobile: a full-screen panel with every group. */
	.tt-filters { display: none; position: fixed; inset: 0; z-index: 10; flex-direction: column; flex-wrap: nowrap; align-items: stretch; background: var(--surface); padding: 0 var(--space-4); gap: 0; overflow-y: auto; }
	.tt-filters--open { display: flex; }
	.tt-filters__head { order: 0; position: sticky; top: 0; z-index: 1; min-height: 56px; background: var(--surface); border-bottom: 1px solid var(--line); }
	.tt-filters__head h2 { position: static; width: auto; height: auto; margin: 0 auto 0 0; overflow: visible; clip: auto; white-space: normal; }
	.tt-filters__groups { flex-direction: column; flex-wrap: nowrap; gap: var(--space-6); padding: var(--space-4) 0 var(--space-6); }
	.tt-fdrop__list { overflow: visible; padding: 0; margin: 0; }
	.tt-fdrop__panel { display: flex; position: static; width: auto; min-width: 0; max-width: none; max-height: none; padding: 0; background: none; border: 0; border-radius: 0; }
	.tt-fopt { min-height: 48px; border-bottom: 1px solid var(--line); }
	#fg-cpe { width: auto; }
	.tt-filters__apply { display: flex; position: sticky; bottom: 0; flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-2); margin: auto calc(-1 * var(--space-4)) 0; padding: var(--space-3) var(--space-4); background: var(--surface-raised); border-top: 1px solid var(--line); }
	.tt-filters-open { order: 3; }
}

/* Search by alias (P-30) */
.tt-alias-match, .tt-alias-mentions { display: flex; flex-direction: column; gap: var(--space-3); max-width: 960px; }
.tt-alias-match__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); font: 400 15px/22px var(--font-sans); }
.tt-alias-match > p, .tt-alias-mentions h2 { margin: 0; }
.tt-mark { background: transparent; color: var(--ink); border-bottom: 2px solid var(--accent-teal); }
.tt-mention { padding: var(--space-3) var(--space-6); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); }
.tt-mention__title { flex: 1; min-width: 200px; font: 400 14px/20px var(--font-sans); color: var(--ink); }
/* Fixed in the same release (plan 17): one card per release group. */
.tt-release { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4) var(--space-6); }
.tt-release p { margin: 0; }
.tt-release__head { display: flex; flex-direction: column; gap: var(--space-1); }
.tt-release__head h3 { margin: 0; overflow-wrap: anywhere; }
.tt-release__head p { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.tt-release__top { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.tt-release__top li { display: grid; grid-template-columns: 9em minmax(0, 1fr) auto; align-items: center; gap: var(--space-2) var(--space-4); padding: var(--space-2) 0; border-bottom: 1px solid var(--line); }
.tt-release__top .tt-mention__title { min-width: 0; }
.tt-release__links { display: flex; flex-wrap: wrap; gap: var(--space-4); }
@media (max-width: 900px) { .tt-release { padding: var(--space-4); } }
@media (max-width: 600px) {
  .tt-release__top li { grid-template-columns: 1fr auto; }
  .tt-release__top .tt-mention__title { grid-column: 1 / -1; grid-row: 2; }
}

/* Home */
.tt-accent { color: var(--accent-teal); }
.tt-hero { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--space-6); text-align: center; padding: var(--space-16) var(--space-6); border-radius: var(--radius-lg); background-image: radial-gradient(circle at 8% 10%, var(--glow-violet), transparent 380px), radial-gradient(circle at 96% 95%, var(--glow-teal), transparent 380px); }
.tt-hero__title { margin: 0; font: 700 64px/70px var(--font-sans); letter-spacing: -0.02em; color: var(--ink); }
.tt-hero__lead { margin: 0; max-width: 620px; }
.tt-hero__search { display: flex; gap: var(--space-3); width: 100%; max-width: 760px; }
.tt-search--hero { flex: 1; width: auto; height: 60px; padding: 0 18px; }
.tt-search--hero input { font-size: 18px; }
.tt-hero__submit { height: 60px; padding: 0 28px; }
.tt-hero__try { justify-content: center; }
.tt-hero__try .tt-chip { text-decoration: none; }
.tt-hero__stats { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2) var(--space-6); margin: 0; padding: 0; list-style: none; }
.tt-hero__stats a { display: inline-flex; align-items: baseline; gap: var(--space-2); text-decoration: none; }
.tt-hero__stats a:hover .tt-hero__stat-label { text-decoration: underline; }
.tt-hero__stats a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--radius-sm); }
.tt-hero__stat-n { font: 600 20px/28px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.tt-hero__stat-label { font: 400 15px/22px var(--font-sans); }
.tt-home-section { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.tt-home-section__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
.tt-home-section__head h2 { margin: 0; color: var(--ink); }
.tt-home-section__more { margin-left: auto; }
.tt-kev-title--small::before { width: 12px; height: 12px; }
.tt-home-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.tt-home-kev { padding: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); text-decoration: none !important; }
.tt-home-kev:hover { border-color: var(--line-strong); }
.tt-home-kev__title { font: 600 15px/21px var(--font-sans); color: var(--ink); }
.tt-home-kev__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: auto; }
.tt-home-split { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--space-8); align-items: start; }
.tt-home-list { list-style: none; margin: 0; padding: var(--space-2) var(--space-6); }
.tt-home-list li + li { border-top: 1px solid var(--line); }
.tt-home-list a { display: grid; grid-template-columns: 48px 130px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; text-decoration: none !important; }
.tt-home-list__title { color: var(--ink); font: 400 14px/20px var(--font-sans); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-home-newsletter { padding: var(--space-8); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: var(--space-8); align-items: center; }
.tt-home-newsletter h2, .tt-home-newsletter p, .tt-home-agents h2, .tt-home-agents p { margin: 0; color: var(--ink); }
.tt-home-newsletter p, .tt-home-agents p { color: var(--ink-soft); }
.tt-home-agents { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; }
.tt-home-agents__code { margin: 0; white-space: pre-wrap; }
@media (max-width: 900px) {
	.tt-hero { padding: var(--space-12) 0; }
	.tt-hero__title { font-size: 36px; line-height: 42px; }
	.tt-hero__search { flex-direction: column; }
	.tt-search--hero { flex: none; }
	.tt-hero__submit { justify-content: center; }
	.tt-hero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: var(--space-4); }
	.tt-hero__stats a { flex-direction: column; align-items: center; gap: 0; }
	.tt-home-grid, .tt-home-split, .tt-home-newsletter, .tt-home-agents { grid-template-columns: minmax(0, 1fr); }
	.tt-home-list a { grid-template-columns: 44px minmax(0, 1fr) auto; }
	.tt-home-list a .tt-accent { display: none; }
}

/* Priority */
.tt-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.tt-kev-card__priority { margin-left: auto; }
.tt-home-top { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.tt-home-top__item { padding: var(--space-3) var(--space-6); display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); }
.tt-home-top__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tt-home-top__title { font: 600 15px/21px var(--font-sans); color: var(--ink); }
.tt-home-top__badges { display: flex; align-items: center; gap: var(--space-2); }
@media (max-width: 900px) {
	.tt-home-top__item { grid-template-columns: 28px minmax(0, 1fr); }
	.tt-home-top__badges { grid-column: 2; }
}

/* Vendors */
.tt-vendor-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.tt-vendor-tools .tt-search { width: 360px; }
.tt-letters { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.tt-letters a { min-width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); font: 500 13px/1 var(--font-mono); }
.tt-letters a.tt-letter--current { background: var(--surface-raised); border: 1px solid var(--accent-teal); color: var(--ink) !important; }
.tt-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); }
.tt-tile { padding: var(--space-3) var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); text-decoration: none !important; }
.tt-tile[aria-pressed="true"] { border-color: var(--accent-teal); }
.tt-tile:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-tile__name { font: 600 14px/20px var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.tt-tile__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.tt-vendor-records { display: flex; flex-direction: column; gap: var(--space-8); }
.tt-empty-line { padding: var(--space-4) var(--space-6); margin: 0; }
.tt-kev-swatch { background: var(--kev); }
@media (max-width: 900px) {
	.tt-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-vendor-tools .tt-search { width: 100%; }
}

/* Why it matters now (P-42) */
.tt-why { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--space-4); }
.tt-why__tile { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); border: 1px solid var(--line); min-width: 0; }
.tt-why__value { color: var(--ink); overflow-wrap: anywhere; }

/* Rejected record banner (D-09): neutral, never a severity or error colour */
.tt-banner { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-6); border-left: 3px solid var(--ink-muted); }
.tt-banner > * { margin: 0; }

/* References grouped by type (D-14) */
.tt-ref-group { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-ref-group + .tt-ref-group { margin-top: var(--space-4); }
.tt-ref-group > h3 { margin: 0; }

/* Vendor fix advisories and assessments (P-45, P-45b) */
.tt-vendor-fixes { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-4); }
.tt-vendor-fixes > h3, .tt-vendor-fixes > p { margin: 0; }
.tt-advisories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.tt-advisory { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); }
.tt-advisory__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
.tt-advisory__products { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-1); }
.tt-advisory__products li { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.tt-more > summary { cursor: pointer; color: var(--accent-teal); }
.tt-more > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-more[open] > summary { margin-bottom: var(--space-3); }
.tt-not-affected { columns: 2 240px; margin: 0; padding-left: var(--space-4); }
.tt-advisory-records { display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-6); }
.tt-advisory-records > h2 { margin: 0; }

/* CWE names (ING-60) */
.tt-weaknesses { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-weaknesses ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.tt-weaknesses li { display: flex; flex-direction: column; gap: 2px; }
.tt-fopt__label--detail { display: flex; flex-direction: column; overflow: hidden; }
.tt-fopt__detail { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* API & MCP page (P-80) */
.tt-api-hero { gap: var(--space-6); }
.tt-api-hero__actions { justify-content: center; flex-wrap: wrap; gap: var(--space-3); }
.tt-api-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.tt-api-card { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.tt-api-card h2 { margin: 0; color: var(--ink); }
.tt-api-card p { margin: 0; }
.tt-api-split { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: var(--space-12); align-items: start; }
.tt-api-intro { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.tt-api-intro h2, .tt-api-intro p { margin: 0; color: var(--ink); }
.tt-api-intro p { color: var(--ink-soft); }
.tt-api-steps { margin: var(--space-2) 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-3); color: var(--ink-soft); }
.tt-api-steps li { display: flex; gap: var(--space-3); align-items: flex-start; }
.tt-api-steps li > span[aria-hidden] { width: 24px; height: 24px; flex-shrink: 0; border-radius: var(--radius-pill); border: 1px solid var(--accent-teal); color: var(--accent-teal); display: grid; place-items: center; font: 600 12px/1 var(--font-sans); }
.tt-api-tabs { overflow: hidden; min-width: 0; padding: 0; }
.tt-api-tabs .tt-tabs { padding: 0 var(--space-3); }
.tt-api-tabs .tt-tab:focus-visible { outline-offset: -2px; }
.tt-api-code { margin: 0; border: 0; border-radius: 0; padding: var(--space-6); white-space: pre; }
pre.tt-api-code.tt-card { border: 1px solid var(--line); border-radius: var(--radius-lg); min-width: 0; }
.tt-api-tabs__foot { display: flex; justify-content: flex-end; padding: var(--space-2) var(--space-4); border-top: 1px solid var(--line); }
.tt-api-copy { height: 32px; padding: 0 var(--space-3); font-size: 13px; }
.tt-api-endpoints td { vertical-align: top; }
.tt-api-method { display: inline-block; padding: 2px 8px; border-radius: var(--radius-sm); border: 1px solid var(--accent-teal); color: var(--accent-teal); font: 600 11px/16px var(--font-sans); letter-spacing: .08em; }
@media (max-width: 900px) {
	.tt-api-cards, .tt-api-split { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
	.tt-api-code { padding: var(--space-4); }
}

/* Source description under an LLM summary (plan 10) */
.tt-source-text summary { cursor: pointer; color: var(--accent-teal); width: fit-content; }
.tt-source-text summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--radius-sm); }
.tt-source-text p { margin: var(--space-2) 0 0; }

/* Newsletter (plan 13) */
.tt-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.tt-capture-done { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-capture-done p { margin: 0; color: var(--ink); }
.tt-capture-done .tt-soft { color: var(--ink-soft); }
.tt-notice { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-4); padding: var(--space-16) 0; max-width: 640px; margin: 0 auto; }
.tt-notice h1, .tt-notice p { margin: 0; color: var(--ink); }
.tt-notice .tt-type-lead { color: var(--ink-soft); }
.tt-notice__icon { width: 64px; height: 64px; border-radius: var(--radius-pill); background: var(--surface-sunken); border: 2px solid var(--accent-teal); display: grid; place-items: center; color: var(--accent-teal); }
.tt-notice__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); margin-top: var(--space-2); }
.tt-notice__form { width: 100%; max-width: 460px; text-align: left; }

/* Privacy policy (P-90) */
.tt-privacy { display: grid; grid-template-columns: 260px minmax(0, 760px); gap: var(--space-16); align-items: start; padding: var(--space-12) 0; }
.tt-privacy__nav { display: flex; flex-direction: column; position: sticky; top: var(--space-6); }
.tt-privacy__nav .tt-eyebrow { padding-bottom: var(--space-3); }
.tt-privacy__nav a { padding: var(--space-2) 0 var(--space-2) var(--space-3); border-left: 2px solid var(--line); color: var(--ink-soft); font-size: 14px; }
.tt-privacy__nav a:hover { color: var(--ink); border-left-color: var(--accent-teal); }
.tt-privacy__body { display: flex; flex-direction: column; gap: var(--space-8); }
.tt-privacy__head { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-privacy__head h1, .tt-privacy__head p { margin: 0; color: var(--ink); }
.tt-privacy__head .tt-type-lead { color: var(--ink-soft); }
.tt-privacy__section { display: flex; flex-direction: column; gap: var(--space-3); padding-bottom: var(--space-8); border-bottom: 1px solid var(--line); scroll-margin-top: var(--space-6); }
.tt-privacy__section:last-child { border-bottom: 0; }
.tt-privacy__section h2 { margin: 0; color: var(--ink); }
.tt-privacy__section p, .tt-privacy__section li { margin: 0; font-size: 16px; line-height: 26px; color: var(--ink-soft); }
.tt-privacy__section ul { margin: 0; padding-left: var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); }
@media (max-width: 900px) {
	.tt-privacy { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); padding: var(--space-8) 0; }
	.tt-privacy__nav { position: static; }
}

/* Domain monitoring list (08, Domains mockup) */
.tt-domains-top { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--space-12); align-items: start; }
.tt-domains-head { gap: var(--space-4); }
.tt-domains-head__title { margin: 0; font: 700 44px/50px var(--font-sans); letter-spacing: -0.015em; color: var(--ink); }
.tt-domains-counters { gap: var(--space-3); margin-top: var(--space-4); }
.tt-domains-counters .tt-counter { padding: var(--space-4); gap: var(--space-1); }
.tt-domains-counters .tt-counter__value { font-size: 28px; line-height: 34px; }
.tt-own-domains { padding: var(--space-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.tt-own-domains h2, .tt-own-domains p { margin: 0; color: var(--ink); }
.tt-own-domains p.tt-soft { color: var(--ink-soft); }
.tt-own-domains__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); font: 400 14px/20px var(--font-sans); color: var(--ink-soft); }
.tt-own-domains__list li { display: flex; gap: var(--space-3); align-items: flex-start; }
.tt-own-domains__list svg { flex: none; margin-top: 1px; color: var(--accent-teal); }
.tt-own-domains__list b { color: var(--ink); font-weight: 600; }
.tt-domain-list { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.tt-domain-list > p { margin: 0; }
.tt-domain-list__form { display: flex; flex-direction: column; gap: var(--space-4); }
.tt-domain-list__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); }
.tt-domain-list__head h2 { margin: 0 auto 0 0; color: var(--ink); }
.tt-domain-list__head .tt-input[type="search"] { width: 280px; height: 40px; }
.tt-domain-name { font-weight: 600; font-size: 15px; }
.tt-email-auth { display: inline-flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.tt-email-auth__item { white-space: nowrap; }
.tt-domain-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.tt-domain-card { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); }
.tt-domain-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); }
.tt-domain-card__facts { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); font: 400 14px/20px var(--font-sans); }
.tt-domain-card__facts dd { margin: var(--space-1) 0 0; }
.tt-domain-card__wide { grid-column: 1 / -1; }
@media (max-width: 1100px) {
	.tt-domains-top { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
}
@media (max-width: 900px) {
	.tt-domains-head__title { font-size: 30px; line-height: 36px; }
	.tt-domains-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-domains-counters .tt-counter__value { font-size: 24px; line-height: 30px; }
	.tt-domain-list__head { flex-direction: column; align-items: stretch; }
	.tt-domain-list__head .tt-input[type="search"] { width: 100%; height: 44px; }
	.tt-own-domains .tt-btn { align-self: stretch; }
}

/* Domain detail (08, DomainDetail mockup) */
.tt-domain-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-4); }
.tt-domain-header__main { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.tt-domain-header__title { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.tt-domain-tiles { gap: var(--space-3); }
.tt-domain-tiles .tt-counter { padding: var(--space-4); }
.tt-domain-tile__value { font: 600 20px/28px var(--font-sans); color: var(--ink); }
.tt-domain-tile__code { display: inline-flex; padding: 2px var(--space-2); border-radius: var(--radius-sm); background: var(--surface-sunken); border: 1px solid var(--line); font-size: 15px; line-height: 22px; }
.tt-domain-section { display: flex; flex-direction: column; gap: var(--space-4); scroll-margin-top: var(--space-6); }
.tt-domain-section > p { margin: 0; }
.tt-domain-section__head { display: flex; flex-direction: column; gap: var(--space-1); }
.tt-domain-section__head h2 { margin: 0; color: var(--ink); }
.tt-domain-section__sub { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-domain-section__sub h3 { margin: 0; }
.tt-domain-fields { margin: 0; padding: var(--space-6); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4) var(--space-6); }
.tt-domain-fields div { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.tt-domain-fields dd { margin: 0; font: 400 15px/22px var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.tt-domain-records { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.tt-domain-record { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.tt-domain-record:nth-child(-n+2), .tt-domain-record:last-child { grid-column: 1 / -1; }
.tt-domain-record pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.tt-domain-names { overflow-wrap: anywhere; }
.tt-nowrap { white-space: nowrap; }
.tt-domain-new { display: inline-flex; margin-left: var(--space-2); padding: 1px var(--space-2); border-radius: var(--radius-pill); border: 1px solid var(--accent-teal); color: var(--accent-teal); font: 600 11px/16px var(--font-sans); letter-spacing: .06em; vertical-align: middle; }
.tt-domain-own { display: flex; flex-direction: column; gap: var(--space-3); }
.tt-domain-own summary { cursor: pointer; color: var(--accent-teal); }
.tt-domain-own summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tt-domain-own[open] summary { margin-bottom: var(--space-3); }
.tt-domain-own p { margin: 0 0 var(--space-3); }
.tt-domain-history-more { list-style: none; padding: 0 0 0 var(--space-6); }
.tt-domain-toc { gap: var(--space-2); }
.tt-domain-toc a { font: 400 14px/22px var(--font-sans); }
.tt-timeline__item .tt-chip { flex: none; padding: 2px 10px; }
@media (max-width: 900px) {
	.tt-domain-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-domain-fields { grid-template-columns: minmax(0, 1fr); padding: var(--space-4); }
	.tt-domain-records { grid-template-columns: minmax(0, 1fr); }
	.tt-domain-section .tt-table-wrap { overflow-x: auto; }
	.tt-timeline__item { flex-wrap: wrap; gap: var(--space-2); }
	.tt-timeline__date { width: auto; }
}
.tt-domain-lookalikes { display: flex; flex-direction: column; gap: var(--space-4); }

/* Reported phishing (plan 16) */
.tt-domain-phishing-note { color: var(--ink); margin-top: var(--space-1); }
.tt-domains-counters { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tt-domains-counters .tt-counter { padding: var(--space-3) var(--space-4); }
.tt-domain-tiles { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) {
	.tt-domains-counters, .tt-domain-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Consent banner (2026-10-25): a bar at the bottom, accept and reject alike. */
.tt-cookie-banner { position: fixed; left: var(--space-4); right: var(--space-4); bottom: var(--space-4); z-index: 30; max-width: 760px; margin: 0 auto; display: flex; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-6); background: var(--surface-raised); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); }
.tt-cookie-banner[hidden] { display: none; }
.tt-cookie-banner p { margin: 0; flex: 1; }
.tt-cookie-banner__actions { display: flex; gap: var(--space-3); flex: none; }
.tt-link-btn { padding: 0; border: 0; background: none; font: inherit; color: var(--accent-teal); cursor: pointer; }
.tt-link-btn:hover { text-decoration: underline; }
@media (max-width: 900px) {
	.tt-cookie-banner { flex-direction: column; align-items: stretch; }
	.tt-cookie-banner__actions .tt-btn { flex: 1; justify-content: center; }
}

/* CVE of the day (plan 14): home section, archive and day pages */
.tt-cotd { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--space-4); align-items: start; }
.tt-cotd__pick { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.tt-cotd__ids { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tt-cotd__title { margin: 0; overflow-wrap: anywhere; }
.tt-site .tt-cotd__title a { color: var(--ink); }
.tt-cotd__badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.tt-cotd__block { display: flex; flex-direction: column; gap: var(--space-2); }
.tt-cotd__block h4 { margin: 0; }
.tt-cotd__why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.tt-cotd__why div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: var(--space-1); padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-md); }
.tt-cotd__why dd { margin: 0; font: 600 22px/28px var(--font-sans); color: var(--ink); }
.tt-cotd__news { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.tt-cotd__news li { display: flex; flex-direction: column; gap: 2px; }
.tt-cotd__more { padding: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-2); }
.tt-cotd__more h3 { margin: 0; }
.tt-cotd__list { list-style: none; margin: 0; padding: 0; }
.tt-cotd__list li + li { border-top: 1px solid var(--line); }
.tt-cotd__list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--space-1) var(--space-3); padding: var(--space-3) 0; text-decoration: none !important; }
.tt-cotd__row { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tt-cotd__row-title { color: var(--ink); font: 500 14px/20px var(--font-sans); }
.tt-cotd__row-why { grid-column: 1 / -1; }
.tt-cotd__archive { padding: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.tt-cotd__archive h2 { margin: 0; }
.tt-cotd__archive td { vertical-align: top; }
.tt-cotd__archive td:first-child { white-space: nowrap; }
.tt-cotd__archive td .tt-sev { white-space: nowrap; }
.tt-cotd__archive td .tt-kev { display: inline-block; margin-top: var(--space-1); }
.tt-cotd__pager { display: flex; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-4); }
@media (max-width: 900px) {
	.tt-cotd { grid-template-columns: minmax(0, 1fr); }
	.tt-cotd__pick { padding: var(--space-4); }
	.tt-cotd__more, .tt-cotd__archive { padding: var(--space-4); }
	.tt-cotd__why { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-cotd__archive thead { display: none; }
	.tt-cotd__archive tr { display: grid; grid-template-columns: 1fr auto; gap: var(--space-1) var(--space-3); padding: var(--space-3); border-bottom: 1px solid var(--line); }
	.tt-cotd__archive td { display: block; padding: 0; border: 0; }
	.tt-cotd__archive td:nth-child(3) { grid-column: 1 / -1; }
}

/* Newsletter page (plan 13, 2026-11-01): what you get beside the form; on
   mobile the form comes first. */
.tt-nl-page { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: var(--space-6); align-items: start; }
.tt-nl-page__info { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.tt-nl-page__info h2 { margin: 0; }
.tt-nl-page__list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: var(--space-2); color: var(--ink-soft); }
.tt-nl-page__list b { color: var(--ink); font-weight: 600; }
.tt-nl-page__form { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); position: sticky; top: var(--space-6); }
.tt-nl-page__form h2 { margin: 0; }
.tt-home-newsletter__more { align-self: flex-start; }
@media (max-width: 900px) {
	.tt-nl-page { grid-template-columns: minmax(0, 1fr); }
	.tt-nl-page__form { order: -1; position: static; padding: var(--space-4); }
	.tt-nl-page__info { padding: var(--space-4); }
}
