/* Assembly – Trackers page. Matches the Research index: Helvetica Neue, #262626,
   #ebeae3 borders, #f5f4ef hover, #ebeae3 open rows, 8px rounding, 17px padding. */
.at{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#262626;line-height:1.4;font-size:15px}
.at *,.at *::before,.at *::after{box-sizing:border-box}
.at a{color:#262626;text-decoration:none}
.at a:hover{text-decoration:none}
:where(.at) :where(h2,h3,p){margin:0;letter-spacing:normal;text-transform:none}
.at [hidden]{display:none!important}

/* Controls */
.at{--at-side:400px;--at-gap:24px;--at-act:200px}
.at-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.at-ctl-group{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;min-width:0}
.at-ctl-main{flex:999 1 480px}
.at-ctl-side{flex:1 1 var(--at-side)}
.at-field{display:flex;flex-direction:column;gap:6px;flex:1 1 170px;min-width:0}
.at-field-search{flex:999 1 280px}
/* Topic: checkbox dropdown */
.at-multi{position:relative}
.at .at-multi-btn{display:block;text-align:left;cursor:pointer;padding-right:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.at-multi-btn[aria-expanded="true"]{border-color:#262626}
.at-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:100%;max-height:340px;overflow:auto;padding:6px;background:#fff;border:1px solid #d6d4cb;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.at-menu-item{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px;border-radius:6px;font-size:14px;cursor:pointer;white-space:nowrap}
.at-menu-item:hover{background:#f0ece8}
.at-menu-item input{width:16px;height:16px;margin:0;flex:none;accent-color:#1f332e;cursor:pointer}
.at-label{font-size:13px;font-weight:500}
.at-ctl{width:100%;height:44px;border:1px solid #d6d4cb;border-radius:8px;background:#fff;font:inherit;font-size:15px;color:#262626;padding:0 12px;margin:0;-webkit-appearance:none;appearance:none}
.at select.at-ctl{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.at-ctl:focus{outline:2px solid #262626;outline-offset:1px}
.at-search{position:relative}
.at-search svg{position:absolute;left:12px;top:13px;pointer-events:none}
.at-search .at-ctl{padding-left:38px}
.at-countrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px;min-height:44px}
.at-count{font-size:15px;color:#454545}
/* Clear filters: an outlined button, like Download */
.at-clear{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid #d6d4cb;border-radius:6px;background:#fff;font-size:13px;color:#262626;white-space:nowrap}
.at-clear:hover{background:#f0ece8;border-color:#262626}
.at-clear:focus-visible{outline:2px solid #262626;outline-offset:2px;border-radius:4px}

/* Layout: search, filters, count and tracker cards on the left; Update history on the right, starting level with
   the first card (grid row 2). Below 941px everything stacks, with Update history after the cards */
.at-list{min-width:0;display:flex;flex-direction:column;gap:24px}
.at-side{min-width:0}
@media (min-width:941px){
  .at-cols{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--at-side) - var(--at-gap) + 10px);column-gap:var(--at-gap);align-items:start}
  .at-cols > .at-bar{grid-column:1}
  .at-cols > .at-list{grid-column:1;grid-row:2}
  .at-cols > .at-side{grid-column:2;grid-row:2}
}
@media (max-width:940px){.at-side{margin-top:32px}}
/* Search and filter bar. With a search, topic or country picked it stays at the top of the window while the cards
   scroll (not on phones, where it would fill much of the screen). The 24px above it matches where Update history
   sticks; the padding and negative margin cancel out, so nothing moves when it switches on */
.at-bar{display:flow-root}
@media (min-width:601px){
  .at.is-filtered .at-bar{position:sticky;top:0;z-index:15;margin-top:-24px;padding-top:24px;background:#f9f9f9}
  .at.is-filtered .at-bar.is-stuck{box-shadow:0 1px 0 #d9d9d8}
}

/* Tracker cards */
.at-card{border:1px solid #ebeae3;border-radius:8px;background:#fff;overflow:hidden}
.at-head{cursor:pointer}
.at-head:hover{background:#f0ece8}
.at-card.is-open .at-head{background:#dfcebf}
.at-card.is-open{border-color:#dfcebf}
.at-toggle{all:unset;box-sizing:border-box;display:flex;gap:16px;align-items:flex-start;flex:1 1 100%;min-width:0;width:100%;padding:17px 17px 0;cursor:pointer;font:inherit;color:inherit;text-align:left;position:relative}
.at-toggle:focus-visible{outline:2px solid #262626;outline-offset:-2px}
.at-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.at-titlerow{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding-right:36px}
.at-name{font-size:20px;font-weight:500;color:#bf8e6b}
.at-card.is-open .at-name{color:#262626}
/* An open tracker shows each benchmark's own date, so the tracker's date is hidden until it is closed */
.at-card.is-open .at-date{display:none}
.at-date{font-size:13px;color:#595959}
/* Description and benchmark tags share one right edge: 24px short of the Open/Download buttons */
.at-desc{font-size:15px;color:#454545;max-width:calc(100% - var(--at-act) - 24px)}
.at-foot{display:flex;flex-wrap:nowrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;padding:10px 17px 17px}
.at-meta{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.at-match{font-size:13px}
.at-match strong{font-weight:500}
.at-stats{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;font-weight:500}
.at-chips{display:flex;flex-wrap:wrap;gap:6px}
.at-chip{display:inline-block;padding:3px 9px;border:1px solid #d6d4cb;border-radius:6px;font-size:12px;color:#454545;background:#fff}
.at a.at-chip{color:#454545}
.at a.at-chip:hover{background:#f0ece8;border-color:#262626;color:#262626}
.at a.at-chip:focus-visible{outline:2px solid #262626;outline-offset:2px}
.at a.at-chip.is-match{border-color:#262626;color:#262626;font-weight:500}
.at-chip-n{display:inline-block;margin-left:6px;padding-left:6px;border-left:1px solid #d6d4cb;font-variant-numeric:tabular-nums;font-weight:400;color:#595959}
.at-searching{margin-left:18px;color:#595959}
.at a.at-chip.is-dim{color:#a3a29b;border-color:#efeee8;background:transparent}
.at a.at-chip.is-dim:hover{color:#454545;border-color:#d6d4cb;background:#f0ece8}
/* Chevron sits in the top-right corner, so the description can use the card's full width */
.at-chev{position:absolute;top:21px;right:17px;transition:transform .15s}
.at-card.is-open .at-chev{transform:rotate(180deg)}
.at-actions{display:flex;justify-content:flex-end;gap:8px;margin-left:auto;min-width:var(--at-act)}
.at-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:6px;background:#fff;color:#262626;font-size:12px;border:1px solid #d6d4cb;white-space:nowrap}
.at-btn:hover{background:#f0ece8;border-color:#262626;color:#262626}
.at-btn-lead{background:#1f332e;border-color:#1f332e;color:#fff;font-weight:500}
.at a.at-btn-lead,.at a.at-btn-lead:hover{color:#fff}
.at-btn-lead:hover{background:#142420;border-color:#142420}
.at-btn:focus-visible{outline:2px solid #262626;outline-offset:2px}

/* Open panel */
.at-panel{padding:4px 17px 20px;border-top:1px solid #dfcebf}
/* Latest update: laid out like the Update history on the Tracker pages, in a light box */
.at-latest{margin-top:16px;padding:14px 17px 16px;background:#f9f9f9;border:1px solid #ebeae3;border-radius:8px}
/* UPDATED label: option A (dark green). Matt's alternative to keep in mind, option D (soft brown):
   background:#f4eeea;color:#bf8e6b */
.at-latest-new{display:inline-block;margin-right:10px;padding:2px 6.5px 3px 7px;border-radius:4px;background:#1f332e;color:#fff;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.06em;vertical-align:1px}
.at-latest-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0}
.at-latest-b{font-size:14px;font-weight:600;line-height:1.35;color:#262626}
/* The benchmark name stays in one piece: if it doesn't fit beside the label it moves to the next line whole */
.at-latest-bn{display:inline-block}
.at-latest-d{flex:none;font-size:14px;color:#bf8e6b;white-space:nowrap}
.at-latest-s{margin:4px 0 0;font-size:15px;line-height:1.4;color:#262626}
.at-bm-title{margin-top:22px;font-size:16px;font-weight:500}
.at-bm{border-top:1px solid #ebeae3;padding:14px 0}
.at-bm:first-of-type{margin-top:8px}
.at-bm.is-dim{opacity:.45}
.at-bm-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.at-bm-name{font-size:16px;font-weight:500}
.at a.at-bm-name:hover{color:#bf8e6b}
.at a.at-bm-name:focus-visible{outline:2px solid #262626;outline-offset:2px;border-radius:2px}
.at-bm-cov{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:13px;color:#595959}
.at-bm-desc{margin-top:4px;font-size:14px;color:#454545;max-width:75%}
.at-bm-extra{margin-top:6px;font-size:13px;color:#454545}
.at-bm-extra b{font-weight:500;color:#262626}
.at-link{all:unset;cursor:pointer;font-size:13px;color:#454545;font-weight:500;display:inline-flex;align-items:center;min-height:32px;margin-top:4px}
.at-link:hover{color:#000}
.at-link:focus-visible{outline:2px solid #262626;outline-offset:2px;border-radius:4px}
.at-cov{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:12px 14px;background:#f0ece8;border-radius:8px;font-size:13px}
.at-cov-row{display:flex;gap:8px}
.at-cov-row svg{flex:none;margin-top:1px}
.at-cov-row b{display:block;font-weight:500}

/* Update history: every tracker's updates under month headings. Desktop: scrolls inside the column */
/* The 12px under the heading is padding on an opaque heading above the list, so no scrolled row can show through it
   (Safari can paint a scroll box's rows just outside it when the column is sticky) */
.at-side .at-hist-h{position:relative;z-index:2;display:flex;align-items:center;gap:8px;margin:0;padding-bottom:12px;background:#f9f9f9;font-size:20px;font-weight:500;line-height:1.3;color:#262626}
.at-hist-h svg{flex:none}
/* Info icon after the heading, and its note (hover, keyboard focus, or a click/tap) */
#assembly-trackers .at-info{display:inline-flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;margin:0 0 0 -2px;padding:0;border:0;border-radius:50%;background:none;color:#8a8a86;cursor:pointer;box-shadow:none}
#assembly-trackers .at-info:hover,.at-side.is-tip .at-info{color:#262626}
#assembly-trackers .at-info:focus-visible{outline:2px solid #262626;outline-offset:1px}
.at-tip{position:absolute;z-index:5;top:calc(100% - 4px);left:0;width:min(320px,100%);box-sizing:border-box;padding:10px 12px 11px;border-radius:6px;background:#262626;color:#fff;font-size:13px;font-weight:400;line-height:16px;letter-spacing:normal;text-transform:none;opacity:0;visibility:hidden;transition:opacity .12s,visibility 0s linear .12s;pointer-events:none}
.at-info:hover + .at-tip,.at-info:focus-visible + .at-tip,.at-side.is-tip .at-tip{opacity:1;visibility:visible;transition-delay:0s}
/* Desktop: the column stays in view while the cards scroll past (24px from the top of the window), and the list
   scrolls inside it, ending 24px above the bottom: 24px + heading (26px) + 12px gap + 24px = 86px */
@media (min-width:601px){.at-side{position:sticky;top:24px}}
.at-hist{max-height:calc(100vh - 86px);overflow-y:auto;overscroll-behavior:contain;padding-right:8px;scrollbar-width:thin;scrollbar-color:#d4d0c4 transparent}
.at-hist-mon{position:sticky;top:0;z-index:1;padding:10px 0 8px;background:#f9f9f9;border-bottom:1px solid #d9d9d8;font-size:13px;font-weight:600;line-height:18px;letter-spacing:.04em;text-transform:uppercase;color:#595959}
.at-hist-row{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:12px;padding:12px 8px 16px;border-bottom:1px solid #ebeae3;color:#262626;transition:background .12s}
.at-hist-row:hover{background:#f0ece8}
.at-hist-row:focus-visible{outline:2px solid #262626;outline-offset:-2px}
.at-hist-day{text-align:center;line-height:1}
.at-hist-day b{display:block;font-size:18px;font-weight:500;color:#454545}
.at-hist-day i{display:block;margin-top:3px;font-style:normal;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#8a8a86}
.at-hist-t{display:block;font-size:13px;line-height:18px;color:#bf8e6b}
.at-hist-b{display:block;font-size:14px;font-weight:600;line-height:1.35}
.at-hist-s{display:block;margin-top:2px;font-size:14px;line-height:20px;color:#454545}
@media (max-width:600px){.at-hist{max-height:none;overflow:visible;padding-right:0}.at-hist-mon{position:static}}

/* Featured Tracker Updates: under the tracker cards, the same cards as on each tracker page */
.at-fusec{margin-top:72px}
@media (min-width:601px){.at-fusec{margin-top:104px}}   /* more room above Featured Tracker Updates, except on phones */
.at .at-fuh{margin:0 0 30px;font-size:20px;font-weight:500;line-height:1.2}
.at-fus{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.at-fu{display:flex;flex-direction:column;min-width:0;padding:18px 22px 17px;border:1px solid #ebeae3;border-radius:8px;background:#fff;color:#262626;font-size:16px;line-height:21px}
.at-fu:hover .at-fu-t{opacity:.5}
.at-fu:focus-visible{outline:2px solid #262626;outline-offset:2px}
.at-fu-f{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto}
.at-fu-tr{display:block;flex:1 1 auto;min-width:0;margin:0;font-size:14px;font-weight:500;line-height:1.4;opacity:.5}
.at-fu-b{display:block;margin:0 0 10px;font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-.14px;color:#bf8e6b}
.at-fu-t{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 20px;font-size:20px;font-weight:500;line-height:24px}
.at-fu-s{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 16px;font-size:15px;line-height:1.3}
.at-fu-d{display:block;flex:none;margin:0;font-size:14px;font-weight:500;line-height:1.4;text-align:right;white-space:nowrap;opacity:.5}
.at-fumore{display:flex;justify-content:center;margin:32px 0 0}
.at-fusec:not(.is-all) .at-fu:nth-child(n+9){display:none}
.at-fusec.is-all .at-fumore{display:none}
@media (max-width:1100px){.at-fus{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.at-fus{grid-template-columns:minmax(0,1fr)}}
.at-more{text-align:center;padding:24px 0 8px}
.at-more-btn{display:inline-flex;align-items:center;gap:.6em;height:40px;padding:0 14px;border:1px solid #dcdcd6;border-radius:8px;background:#fff;font:inherit;font-size:14px;color:#262626;cursor:pointer}
.at-more-btn:hover{background:#f0ece8}
.at-more-btn:focus-visible{outline:2px solid #262626;outline-offset:2px}

/* States */
/* Blank space held while the trackers load, so the footer doesn't jump up and back */
.at-loading{min-height:60vh}
.at-note{border:1px solid #ebeae3;border-radius:8px;padding:32px;color:#454545;text-align:center}
.at-locked{border:1px solid #ebeae3;border-radius:8px;padding:32px;background:#f5f4ef;font-size:18px}

@media (max-width:600px){
  .at-name{font-size:18px}
}

/* Site overrides: the site gives links a dark bottom border and text inputs a different box model.
   The #assembly-trackers prefix outranks the site's rules inside this block only. */
#assembly-trackers a{border-bottom:0;padding-bottom:0;background-image:none;text-decoration:none}
#assembly-trackers a.at-chip{border:1px solid #d6d4cb;padding:3px 9px}
#assembly-trackers a.at-chip:hover{border-color:#262626}
#assembly-trackers a.at-chip.is-match{border-color:#262626}
#assembly-trackers a.at-chip.is-dim{border-color:#efeee8}
#assembly-trackers a.at-chip.is-dim:hover{border-color:#d6d4cb}
#assembly-trackers a.at-btn{border:1px solid #d6d4cb;padding:0 10px}
#assembly-trackers a.at-btn:hover{border-color:#262626}
#assembly-trackers a.at-btn-lead{border-color:#1f332e}
#assembly-trackers a.at-btn-lead:hover{border-color:#142420}
/* the a{padding-bottom:0} above would take the bottom padding off these */
#assembly-trackers a.at-hist-row{padding-bottom:16px}
#assembly-trackers a.at-fu{padding-bottom:17px;border-bottom:1px solid #ebeae3}
#assembly-trackers a.at-fu:hover{opacity:1}
#assembly-trackers .at-ctl{box-sizing:border-box;max-width:100%;margin:0}
#assembly-trackers .at-multi-btn{line-height:42px;letter-spacing:normal;text-transform:none;font-weight:400}
#assembly-trackers .at-menu-item{margin:0;font-weight:400;letter-spacing:normal;text-transform:none}
#assembly-trackers .at-search .at-ctl{padding-left:38px}
/* Search box: same 44px height, but explicit inner spacing so Safari doesn't clip the text; long hint text ends in "…" */
#assembly-trackers .at-search .at-ctl{-webkit-appearance:none;appearance:none;padding-top:10px;padding-bottom:10px;line-height:22px;text-overflow:ellipsis}
#assembly-trackers .at-search .at-ctl::placeholder{line-height:22px;text-overflow:ellipsis}
#assembly-trackers .at-search .at-ctl::-webkit-search-decoration{-webkit-appearance:none}
#assembly-trackers h2,#assembly-trackers h3{font-family:inherit;letter-spacing:normal;text-transform:none}

/* Room before the site footer */
#assembly-trackers{padding-bottom:96px}
@media (max-width:640px){#assembly-trackers{padding-bottom:64px}}
/* Phones: description and tags use the full card width; the buttons drop below the tags */
@media (max-width:600px){.at-desc,.at-bm-desc{max-width:none}.at-foot{flex-wrap:wrap}.at-meta{flex-basis:100%}.at-actions{min-width:0}}
