/* Public task surfaces retain the PassportTax palette and compact hierarchy. */
html { scroll-padding-top:80px; }
body:not(.home) .hero { grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; margin-bottom:24px; }
body:not(.home) .hero h1 { font-size:36px; line-height:1.2; margin-bottom:12px; }
body:not(.home) .hero p { font-size:16px; }
body:not(.home) .hero > aside { max-width:320px; padding:18px; }
body:not(.home) .hero > aside .metric { font-size:36px; }
.card p.metric { color:var(--gold-soft); margin:16px 0 10px; font-size:36px; }
.metric-link { display:inline-flex; align-items:center; min-height:48px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.metric-link:hover { color:var(--mint); }
.upgrade-pairs { grid-template-columns:repeat(6,minmax(0,1fr)); }
.upgrade-pairs > .card { grid-column:span 2; }
.upgrade-pairs > .card:nth-last-child(-n+2) { grid-column:span 3; }
.upgrade-pairs > a { transition:border-color .15s ease; }
.upgrade-pairs > a:hover { border-color:var(--gold); }
.contact-layout { display:grid; grid-template-columns:minmax(0,640px) minmax(220px,1fr); gap:48px; align-items:start; }
.contact-context { border-left:1px solid var(--line); padding-left:28px; }
.contact-context h2 { font-size:20px; margin-top:0; }
.contact-context h3 { font-size:16px; margin:24px 0 8px; }
.contact-context p { font-size:14px; color:var(--muted); }
#contactForm .consent { display:flex; align-items:center; gap:12px; min-height:48px; cursor:pointer; margin:16px 0; }
#contactForm input[type=checkbox],#contactForm input[type=radio] { width:20px; height:20px; flex:none; accent-color:var(--gold); }
#contactNote,#leadStatus { overflow-wrap:anywhere; }
.contact-analysis { border-bottom:1px solid var(--line); padding:0 0 12px; margin-bottom:16px; }
.contact-analysis summary { cursor:pointer; color:var(--gold-soft); min-height:44px; padding:10px 0; }
.contact-analysis p { margin:6px 0; font-size:14px; overflow-wrap:anywhere; }
.contact-return { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
#contactClear { min-height:48px; margin-left:12px; }
button:disabled { cursor:default; opacity:.65; }
.lookup-scroll { position:relative; max-height:620px; overflow:auto; overscroll-behavior:auto; border:1px solid var(--line); border-radius:8px; }
.lookup-scroll:focus-visible,.tax-scroll:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.lookup-scroll .table { border:0; overflow:visible; }
.lookup-scroll thead th { position:sticky; top:0; z-index:2; background:var(--panel); }
.lookup-controls .lookup-region { flex:0 1 190px; min-width:160px; }
#tax-table .tax-scroll { position:relative; max-height:620px; border:1px solid var(--line); border-radius:8px; scroll-padding:100px 0 0 180px; }
#tax-table .table { display:table; overflow:visible; border:0; }
#tax-table thead th { position:sticky; top:0; z-index:2; background:var(--panel); }
#tax-table .table tr > :first-child { position:sticky; left:0; z-index:1; background:var(--panel); width:180px; min-width:160px; max-width:180px; white-space:normal; }
#tax-table thead th:first-child { z-index:3; }
.tax-reference { margin-top:24px; }
.tax-reference > summary,.share-more > summary { color:var(--gold-soft); cursor:pointer; min-height:48px; padding:12px 0; }
.tax-reference[open] > summary { margin-bottom:12px; }
.share-more { flex-basis:100%; }
.share-more .share-secondary { display:flex; flex-wrap:wrap; gap:10px; padding-bottom:12px; }
.share-more .share-secondary button { font:inherit; font-size:14px; }
.result-contact { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.result-contact h2 { font-size:20px; margin:0 0 8px; }
.result-contact p { color:var(--muted); margin:0; }
#rankList { position:relative; max-height:680px; overflow:auto; padding-right:8px; }
#rankList:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.duel-profile-mobile { display:none; }
.duel-pill { display:inline-block; border:1px solid var(--line); border-radius:999px; padding:2px 10px; font-size:12px; }
#tax-duel .tax-scroll { position:relative; }
/* A narrow SVG shrinks 11px labels to 4px. Keep the same scale with CSS text. */
@media(max-width:1000px) {
  #tax-duel .duel-profile > svg { display:none; }
  #tax-duel .duel-profile { margin:24px 0 0; }
  #tax-duel .duel-profile:last-child { margin-bottom:20px; }
  #tax-duel .duel-profile figcaption { font-size:16px; line-height:1.6; margin-bottom:14px; color:var(--text); }
  .duel-profile-mobile { display:block; }
  .duel-profile-mobile ul { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
  .duel-rate-label { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 16px; justify-content:space-between; line-height:1.5; }
  .duel-rate-name { font-size:16px; overflow-wrap:anywhere; min-width:0; }
  .duel-rate-value { font-size:20px; font-variant-numeric:tabular-nums; color:var(--gold-soft); }
  .duel-rate-value.is-unknown { font-size:16px; color:var(--muted); }
  .duel-rate-track { display:block; position:relative; height:16px; margin:4px 5px 0; }
  .duel-rate-track::before { content:""; position:absolute; left:0; right:0; top:7px; height:2px; background:var(--line); }
  .duel-rate-dot { position:absolute; left:var(--duel-position); top:3px; width:10px; height:10px; transform:translateX(-50%); border-radius:50%; background:var(--duel-color); }
  .duel-rate-axis { display:flex; justify-content:space-between; margin:4px 0 0; font-size:14px; line-height:1.5; color:var(--muted); }
}
@media(max-width:760px) {
  #tax-duel { padding:16px; }
  #tax-duel .duel-spec-name { font-size:14px; letter-spacing:0; }
  #tax-duel .duel-spec-chip { font-size:16px; }
  #tax-duel .duel-spec-seg { padding:10px 12px; }
  #tax-duel .tax-note,#tax-duel .tax-duel-side > span { font-size:14px; line-height:1.6; }
  #tax-duel .duel-table th,#tax-duel .duel-table td { font-size:16px; line-height:1.6; padding:12px; overflow-wrap:anywhere; }
  #tax-duel .duel-table th[scope=row] { min-width:112px; }
  #tax-duel .duel-table td[data-duel-cell] { min-width:136px; }
  #tax-duel .duel-table td[data-tax-band]:not([data-tax-band="null"]) { font-size:20px; }
  #tax-duel .duel-pill { font-size:16px; }
  #tax-duel .duel-notes > summary,#tax-duel .duel-notes li p { font-size:16px; line-height:1.6; }
  #tax-duel .duel-ghost-btn { font-size:14px; }
  body[data-page=ranking] section.panel { padding:16px; }
  body:not(.home) .hero { grid-template-columns:minmax(0,1fr); gap:16px; }
  body:not(.home) .hero h1 { font-size:30px; }
  body:not(.home) .hero > aside { max-width:none; display:flex; align-items:center; gap:16px; }
  body:not(.home) .hero > aside .label { margin:0; }
  body:not(.home) .hero > aside.tax-sanctum { display:block; }
  .tax-monuments { flex-direction:row; gap:12px; }
  .tax-monument-num { font-size:56px; }
  .tax-monument-label,.tax-sanctum-note { letter-spacing:0; }
  .tax-vault-divider { flex-direction:column; width:8px; }
  .upgrade-pairs { grid-template-columns:minmax(0,1fr); }
  .upgrade-pairs > .card,.upgrade-pairs > .card:nth-last-child(-n+2) { grid-column:auto; }
  .contact-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .contact-context { border-left:0; border-top:1px solid var(--line); padding:24px 0 0; }
  body[data-page=ranking] .table { display:table; table-layout:fixed; font-size:14px; }
  body[data-page=ranking] .table th,body[data-page=ranking] .table td { padding:10px 8px; }
  body[data-page=ranking] .table tr > :first-child { width:15%; }
  body[data-page=ranking] .table tr > :nth-child(2) { width:55%; overflow-wrap:anywhere; }
  body[data-page=ranking] .table tr > :nth-child(3) { width:30%; }
  body[data-page=ranking] .table tr > :nth-child(4) { display:none; }
  body[data-page=ranking] .table td a { display:inline-flex; align-items:center; min-height:44px; }
  .lookup-scroll { max-height:520px; }
  #rankList { max-height:560px; }
  #tax-table .tax-scroll { max-height:520px; }
}
@media(prefers-reduced-motion:reduce) { .upgrade-pairs > a { transition:none; } }
@media print {
  .lookup-scroll,#tax-table .tax-scroll,#rankList { max-height:none; overflow:visible; }
  .lookup-scroll thead th,#tax-table tr > :first-child,#tax-table thead th { position:static; }
  .share-more,.contact-layout { display:none; }
}
