
.hub{--hub-rule:var(--line);max-width:var(--content);margin:0 auto}
.hub .n{font:500 var(--fs-12)/1 var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.hub-crumb{margin:var(--s4) 0 var(--s3);font-size:var(--fs-14)}
.hub-crumb a{color:var(--ink-2);text-decoration:none}
.hub-crumb a::before{content:"‹ ";color:var(--ink-3)}
.hub-crumb a:hover{color:var(--ink);text-decoration:underline}
.hub-head{display:flex;gap:var(--s4);align-items:flex-start;margin-bottom:var(--s5)}
.hub-head .svc-mark{flex:none;width:56px;height:56px}
.hub-title h1{margin:0;font-size:var(--fs-h1);line-height:1.2;letter-spacing:-.01em}
.hub-lead{margin:var(--s2) 0 0;color:var(--ink-2);font-size:var(--fs-15);line-height:1.6;max-width:44em}
.hub-links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin:var(--s2) 0 0;font-size:var(--fs-14);color:var(--ink-2)}
.hub-links a{color:var(--brand-ink)}
.hub-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.hub-status div{padding:var(--s3) var(--s4);border-left:1px solid var(--line)}
.hub-status div:first-child{border-left:0}
.hub-status dt,.hub-facts dt{font-size:var(--fs-12);color:var(--ink-3);margin:0 0 2px}
.hub-status dd{margin:0;font:500 var(--fs-14)/1.4 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.hub-toc ol{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s5);padding:0}
.hub-toc a{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);text-decoration:none;font-size:var(--fs-14);background:var(--surface)}
.hub-toc a:hover{border-color:var(--brand-line);background:var(--brand-soft)}
.hub-locale-note{margin:0 0 var(--s5);padding:var(--s3) var(--s4);border-left:3px solid var(--line-strong);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-13);line-height:1.6}
.hub-sec{margin:0 0 var(--s7);scroll-margin-top:calc(var(--toolbar-h) + 12px)}
.hub-sec>h2{display:flex;align-items:baseline;gap:var(--s2);margin:0 0 var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--line-strong);font-size:var(--fs-h2)}
.hub-note{margin:0 0 var(--s3);color:var(--ink-2);font-size:var(--fs-14);line-height:1.6}
.hub-empty{padding:var(--s4);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:repeating-linear-gradient(135deg,transparent 0 8px,var(--hatch) 8px 9px)}
.hub-empty p{margin:0;color:var(--ink);font-size:var(--fs-15);line-height:1.6}
.hub-empty p+p{margin-top:var(--s1);color:var(--ink-2);font-size:var(--fs-14)}
.hub-offers,.hub-streams,.hub-timeline,.hub-quotes ul,.hub-gaps ul{list-style:none;margin:0;padding:0}
.hub-offer,.hub-stream{margin:0 0 var(--s3);padding:var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.hub-offers--past .hub-offer{background:var(--surface-2)}
.hub-offer-state{margin:0 0 var(--s2)}
.hub-offer h3{margin:0 0 var(--s3);font-size:var(--fs-17);line-height:1.4}
.hub-offer h3 a{color:var(--ink);text-decoration:none}
.hub-offer h3 a:hover{text-decoration:underline}
.hub-facts{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:0 0 var(--s3)}
.hub-facts dd{margin:0;font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.hub-left{color:var(--warn);font-weight:600}
.hub-unknown{display:inline-block;padding:0 6px;border:1px dashed var(--line-strong);border-radius:var(--r-xs);color:var(--ink-2);background:repeating-linear-gradient(135deg,transparent 0 5px,var(--hatch) 5px 6px)}
.hub-orig{font-size:var(--fs-12);color:var(--ink-3);font-weight:400;white-space:nowrap}
.hub-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:var(--fs-12);font-weight:600;line-height:1.5;border:1px solid}
.hub-badge::before{content:"";width:12px;height:12px;background:currentColor;-webkit-mask:var(--hub-ico) center/contain no-repeat;mask:var(--hub-ico) center/contain no-repeat}
@media (forced-colors:active){.hub-badge::before{forced-color-adjust:none;background:CanvasText}}
.hub-badge--ok{color:var(--ok);border-color:var(--brand-line);background:var(--brand-soft);--hub-ico:var(--i-check)}
.hub-badge--ended{color:var(--ink-2);border-color:var(--line-strong);background:var(--surface-2);--hub-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM4 7v2h8V7z'/%3E%3C/svg%3E")}
.hub-badge--warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-soft);--hub-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm-1 4v5h2V4zm0 6v2h2v-2z'/%3E%3C/svg%3E")}
.hub-badge--direct{color:var(--ink-2);border-color:var(--line-strong);background:var(--surface);--hub-ico:var(--i-check)}
.hub-badge--restored{color:var(--ink-2);border-style:dashed;border-color:var(--line-strong);background:var(--surface);--hub-ico:var(--i-db)}
.hub-actions{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;margin:var(--s3) 0 0}
.hub-apply{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-sm);background:var(--brand);color:var(--on-brand);font-weight:600;font-size:var(--fs-14);text-decoration:none}
.hub-apply:hover{filter:brightness(1.06)}
.hub-detail{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--ink);font-size:var(--fs-14)}
.hub-rel{margin:var(--s2) 0 0;font-size:var(--fs-13);color:var(--st-ad)}
.hub-quotes{margin:var(--s2) 0 0;font-size:var(--fs-14)}
.hub-quotes summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;gap:6px;color:var(--ink-2);list-style:none}
.hub-quotes summary::-webkit-details-marker{display:none}
.hub-quotes summary::before{content:"";width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);margin-right:4px}
.hub-quotes[open] summary::before{transform:rotate(45deg)}
.hub-quotes summary:hover{color:var(--ink)}
.hub-quotes li{margin:var(--s2) 0 0}
.hub-quotes blockquote{margin:0;padding:var(--s2) var(--s3);border-left:3px solid var(--brand-line);background:var(--surface-2);font:var(--fs-14)/1.6 var(--mono);color:var(--ink);overflow-wrap:anywhere}
.hub-cite{margin:4px 0 0;font-size:var(--fs-12);color:var(--ink-3)}
.hub-cite a{color:var(--ink-2)}
.hub-timeline{position:relative;padding-left:24px}
.hub-timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line-strong)}
.hub-ev{position:relative;margin:0 0 var(--s5)}
.hub-ev::before{content:"";position:absolute;left:-24px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:2px solid var(--brand);box-sizing:border-box}
.hub-ev--direct.hub-ev--change::before{background:var(--brand)}
.hub-ev--restored::before{border-style:dashed;border-color:var(--ink-3)}
.hub-ev-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:0 0 var(--s2)}
.hub-ev-kind{font-weight:700;font-size:var(--fs-16)}
.hub-ev-date{font:500 var(--fs-13)/1 var(--mono);color:var(--ink-2)}
.hub-ev p{margin:0 0 var(--s1);font-size:var(--fs-14);line-height:1.6;color:var(--ink-2)}
.hub-ev-facts{margin:0 0 var(--s2)}
.hub-restored-note{padding-left:var(--s3);border-left:2px dashed var(--line-strong)}
.hub-supersedes a{color:var(--brand-ink)}
.hub-diff,.hub-limits{width:100%;border-collapse:collapse;margin:var(--s2) 0;font-size:var(--fs-14);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)}
.hub-diff th,.hub-diff td,.hub-limits th,.hub-limits td{padding:var(--s2) var(--s3);text-align:left;vertical-align:top;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.hub-diff thead th,.hub-limits thead th{border-top:0;font-size:var(--fs-12);font-weight:500;color:var(--ink-3)}
.hub-diff tbody th,.hub-limits tbody th{font-weight:500;color:var(--ink);width:34%}
.hub-diff td:first-of-type{color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--ink-3)}
.hub-stream.is-stale{border-color:var(--warn-line)}
.hub-stale{color:var(--warn);font-weight:600}
.hub-gaps{margin:var(--s4) 0;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.hub-gaps h3{margin:0 0 var(--s2);font-size:var(--fs-15)}
.hub-gaps li,.hub-gaps p{font-size:var(--fs-14);color:var(--ink-2);margin:0 0 4px}
.hub-feed a,.hub-data a{color:var(--brand-ink)}
.hub-data{margin:var(--s6) 0;padding:var(--s4);border-top:1px solid var(--line-strong)}
.hub-data h2{font-size:var(--fs-16);margin:0 0 var(--s2)}
.hub-data p{margin:0 0 var(--s2);font-size:var(--fs-14);color:var(--ink-2)}
.hub-data-links{display:flex;gap:var(--s4)}
.hub-data-links a{display:inline-flex;align-items:center;min-height:var(--tap)}
.hub-gen code{font-size:var(--fs-12);overflow-wrap:anywhere}
.hub-site{color:var(--brand-ink)}
.hub-model{font:var(--fs-12)/1 var(--mono);color:var(--ink-3)}
.hub-raw{font-size:var(--fs-12);overflow-wrap:anywhere}
@media (max-width:640px){
 .hub{min-width:0;overflow-wrap:anywhere}
 .hub-head .svc-mark{width:44px;height:44px}
 .hub-toc ol{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),transparent)}
 .hub-toc li{flex:0 0 auto}
 .hub-status{grid-template-columns:1fr}
 .hub-status div{border-left:0;border-top:1px solid var(--line)}
 .hub-status div:first-child{border-top:0}
 .hub-offer,.hub-stream{padding:var(--s3)}
 .hub-diff thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .hub-diff tr{display:block;padding:var(--s2) var(--s3);border-top:1px solid var(--line)}
 .hub-diff tbody tr:first-child{border-top:0}
 .hub-diff th,.hub-diff td{display:block;padding:2px 0;border:0;width:auto}
 .hub-diff td::before{content:attr(data-label) " ";font-size:var(--fs-12);color:var(--ink-3);text-decoration:none;display:inline-block;margin-right:6px}
 .hub-diff tbody th,.hub-limits tbody th{width:auto}
 .hub-data-links{gap:var(--s3)}
}
@media (prefers-reduced-motion:reduce){.hub *{transition:none!important;scroll-behavior:auto!important}}
