/* Hallmark · checked: 2026-10-28 · genre: editorial (inferred) · shape: app screen
 * floor: 2 FAIL kept (19 en dashes in number ranges, 56 the compare-table head sticks inside its dialog, not under the masthead) · fixed: 7a, 34, 39a, 48, 63, 67, 30a (HOM-151) · open: 54 (two eyebrows restyled, not folded)
 * built: the project · redesign: polish · v2.0.0 */
/* Chess Atlas: tokens first. Both themes are chosen values, not an automatic inversion. */
@font-face{font-family:"Instrument Sans";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/instrument-sans-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/newsreader-latin-ext-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Newsreader";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/newsreader-latin-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
 color-scheme:light;
 --font-ui:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
 --font-display:"Newsreader",Georgia,"Times New Roman",serif;
 --fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--fs-3xl:clamp(28px,2.4vw,36px);
 --r-sm:6px;--r-md:10px;--r-lg:16px;
 --paper:#f2f4f1;--surface:#ffffff;--surface-2:#f6f7f4;--surface-3:#eceee9;
 --ink:#1a2030;--ink-2:#394154;--muted:#596273;
 --line:#e0e3dc;--line-strong:#c9cec4;
 --brand-accent:#e4492e;
 --accent:#2547c8;--accent-hover:#1c389f;--on-accent:#ffffff;--accent-soft:#e9eeff;--accent-text:#2547c8;
 --gold:#87590a;--gold-soft:#f8efdc;--gold-line:#ead9b4;
 --free:#1d7350;--free-soft:#e2f2e9;--freemium:#3546a8;--freemium-soft:#e9ecff;--paid:#94560f;--paid-soft:#fbeedd;
 --reset:#a52d32;--reset-soft:#fff0f0;--reset-line:#d7979b;
 --warn:#8f5410;--warn-soft:#fff5e6;--warn-line:#f0dcbb;
 --board-light:#e4e9ee;--board-dark:#a8b7c8;--board-frame:#cfd7df;--tile:#ffffff;
 --map-0:#e3e6e0;--map-1:#b7d3f6;--map-2:#6da7ec;--map-3:#256abf;--map-stroke:#ffffff;--map-select:#14213d;
 --shadow-sm:0 1px 2px rgb(20 30 50/.06);--shadow-md:0 2px 6px rgb(20 30 50/.06),0 12px 32px rgb(20 30 50/.08);
 --backdrop:rgb(16 22 38/.45);
 --tile-ink:#41506e;--fm-tile-ink:#1a2635;--saved:#d6455d;
 --tile-shadow:0 1px 2px rgb(16 22 38/.18);--tile-shadow-hover:0 4px 12px rgb(16 22 38/.25);
 --scrim:rgb(8 15 28/.8);--on-scrim:#f4f6fa;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
 color-scheme:dark;
 --paper:#10131a;--surface:#171b24;--surface-2:#1c212b;--surface-3:#252b37;
 --ink:#e8ebf2;--ink-2:#c7cdd9;--muted:#9ea7b8;
 --line:#2a303c;--line-strong:#3a4252;
 --brand-accent:#f0583c;
 --accent:#8ea6ff;--accent-hover:#b0c0ff;--on-accent:#0d1430;--accent-soft:#222b49;--accent-text:#a9bbff;
 --gold:#e4b862;--gold-soft:#33291a;--gold-line:#4b3d22;
 --free:#72d3a5;--free-soft:#163328;--freemium:#aebdff;--freemium-soft:#222b49;--paid:#f1b56c;--paid-soft:#382916;
 --reset:#ffabb0;--reset-soft:#3a2028;--reset-line:#96545e;
 --warn:#f1b56c;--warn-soft:#2e2416;--warn-line:#4a3a20;
 --board-light:#3a4456;--board-dark:#252c3a;--board-frame:#2f3747;--tile:#f4f5f7;
 --map-0:#262c38;--map-1:#184f95;--map-2:#2a78d6;--map-3:#86b6ef;--map-stroke:#10131a;--map-select:#ffffff;
 --shadow-sm:0 1px 2px rgb(0 0 0/.3);--shadow-md:0 2px 6px rgb(0 0 0/.3),0 16px 40px rgb(0 0 0/.35);
 --backdrop:rgb(4 6 12/.6);
}}
:root[data-theme="dark"]{
 color-scheme:dark;
 --paper:#10131a;--surface:#171b24;--surface-2:#1c212b;--surface-3:#252b37;
 --ink:#e8ebf2;--ink-2:#c7cdd9;--muted:#9ea7b8;
 --line:#2a303c;--line-strong:#3a4252;
 --brand-accent:#f0583c;
 --accent:#8ea6ff;--accent-hover:#b0c0ff;--on-accent:#0d1430;--accent-soft:#222b49;--accent-text:#a9bbff;
 --gold:#e4b862;--gold-soft:#33291a;--gold-line:#4b3d22;
 --free:#72d3a5;--free-soft:#163328;--freemium:#aebdff;--freemium-soft:#222b49;--paid:#f1b56c;--paid-soft:#382916;
 --reset:#ffabb0;--reset-soft:#3a2028;--reset-line:#96545e;
 --warn:#f1b56c;--warn-soft:#2e2416;--warn-line:#4a3a20;
 --board-light:#3a4456;--board-dark:#252c3a;--board-frame:#2f3747;--tile:#f4f5f7;
 --map-0:#262c38;--map-1:#184f95;--map-2:#2a78d6;--map-3:#86b6ef;--map-stroke:#10131a;--map-select:#ffffff;
 --shadow-sm:0 1px 2px rgb(0 0 0/.3);--shadow-md:0 2px 6px rgb(0 0 0/.3),0 16px 40px rgb(0 0 0/.35);
 --backdrop:rgb(4 6 12/.6);
}

/* Public Reddit discovery directory */
.people-tabs{display:flex;gap:6px;width:fit-content;max-width:100%;padding:5px;margin-bottom:26px;background:var(--surface-3);border:1px solid var(--line);border-radius:12px}
.people-tabs button{display:flex;align-items:center;gap:8px;padding:10px 15px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:600}
.people-tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.people-tabs button span{font-size:12px;color:var(--muted)}
.people-tabs .icon,.people-tabs .social-icon{width:18px;height:18px}
.reddit-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 25px}
.reddit-intro h2{font:500 clamp(28px,3vw,39px)/1.2 var(--font-display);margin:7px 0 8px}
.reddit-intro p{max-width:560px;margin:0;color:var(--muted)}
.reddit-intro .button{flex-shrink:0}
.reddit-intro .eyebrow{font-size:var(--fs-sm);font-weight:600;color:var(--accent-text)}
.reddit-controls{display:flex;align-items:center;gap:12px;margin:0 0 20px}
.reddit-search{display:flex;align-items:center;gap:10px;flex:1;max-width:420px;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:0 12px}
.reddit-search .icon{width:18px;color:var(--muted);flex-shrink:0}
.reddit-search input{width:100%;padding:11px 0;background:none;border:0;color:var(--ink);outline:none}
.reddit-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.reddit-controls select{padding:10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink)}
.reddit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.reddit-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.reddit-person{padding:18px 20px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.reddit-profile{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);width:fit-content;max-width:100%}
.reddit-profile strong{font-size:15px;overflow-wrap:anywhere}.reddit-profile small{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:12px;color:var(--muted)}
.reddit-profile small .icon{width:11px;height:11px}
.reddit-avatar{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--accent-text);background:var(--surface)}
.reddit-avatar .social-icon{width:22px;height:22px}
.reddit-connection{padding:18px 20px}.reddit-connection+.reddit-connection{border-top:1px solid var(--line)}
.reddit-product{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:0;background:none;border:0;color:var(--ink)}
.reddit-product>.app-logo{width:44px;height:44px;border-radius:10px;flex-shrink:0}.reddit-product>span:not(.app-logo){min-width:0;flex:1}
.reddit-product strong{display:block;font-size:15px}.reddit-product small{display:block;font-size:12px;color:var(--muted);line-height:1.55;margin-top:3px}
.reddit-product>.icon{width:15px;flex-shrink:0;color:var(--accent-text)}
.reddit-product:hover strong{color:var(--accent-text)}.project-lead:hover strong{color:var(--ink)}
.reddit-role{display:inline-block;font-size:12px;font-weight:600;line-height:1.5;padding:3px 7px;border-radius:5px;color:var(--muted);background:var(--surface-3)}
.reddit-role.creator{color:var(--accent-text);background:var(--accent-soft)}
.reddit-evidence{margin-top:16px}.reddit-evidence p{font-size:12px;line-height:1.7;color:var(--ink-2);margin:9px 0}
.reddit-source{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;font-size:12px;color:var(--muted)}
.reddit-source .evidence-link{font-size:12px}.reddit-source>span{flex-basis:100%;font-size:12px}
.reddit-handle{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--accent-text)}
.reddit-app-panel h3{display:flex;align-items:center;gap:8px}.reddit-app-person{padding:16px 0;border-bottom:1px solid var(--line)}
.reddit-row-link{display:flex;align-items:center;gap:5px;padding:0;margin-top:5px;border:0;background:none;color:var(--muted);font-size:12px}.reddit-row-link .social-icon{width:13px;height:13px}
.category-button>.social-icon{width:18px;height:18px;flex-shrink:0}
@media(min-width:1650px){.reddit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:740px){.reddit-grid{grid-template-columns:1fr}.reddit-intro{align-items:flex-start;flex-direction:column;gap:15px}.reddit-controls{flex-wrap:wrap}.reddit-search{flex-basis:100%;max-width:none}.people-tabs button{padding:8px 10px;font-size:12px;gap:6px}.reddit-person,.reddit-connection{padding:16px}.reddit-intro .button{max-width:100%}}

/* Base */
*{box-sizing:border-box}
html{background:var(--paper);overflow-x:clip}
body{margin:0;overflow-x:clip;font-variant-numeric:tabular-nums;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
h1,h2,h3,h4{color:var(--ink);margin:0}
p{margin:0 0 .6em}
small,.fine{color:var(--muted);font-size:var(--fs-xs);line-height:1.5}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--accent);color:var(--on-accent);padding:10px 14px;border-radius:var(--r-md)}
.skip-link:focus{top:12px}
svg.icon{width:18px;height:18px;min-width:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
svg.social-icon{width:15px;height:15px;min-width:15px;flex:0 0 15px;vertical-align:middle}
select{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;font-size:var(--fs-sm)}
input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;margin:0}
.text-button{color:var(--muted);font-size:var(--fs-sm);padding:6px 4px;border-radius:var(--r-sm)}
.text-button:hover{color:var(--accent-text)}
.button{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--on-accent);padding:10px 16px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:650;text-decoration:none!important;white-space:nowrap}
.button:hover{background:var(--accent-hover);color:var(--on-accent)}
.button.secondary{background:var(--surface);color:var(--ink-2);border:1px solid var(--line)}
.button.secondary:hover{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink)}
.button.small{padding:8px 12px}
.button:disabled{background:var(--surface-3);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.close-button{display:grid;place-items:center;font-size:24px;line-height:1;color:var(--muted);width:36px;height:36px;flex:0 0 36px;border-radius:var(--r-md)}
.close-button:hover{background:var(--surface-3);color:var(--ink)}

/* Masthead */
.masthead{position:sticky;top:0;z-index:30;height:68px;padding:0 28px;display:flex;align-items:center;gap:28px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none!important}
.brand-mark{display:block;flex:none;width:34px;height:34px;color:var(--ink)}
.brand-mark-app{fill:var(--brand-accent)}
.brand-name{font-family:var(--font-display);font-size:23px;font-weight:650;letter-spacing:-.3px}
.view-tabs{display:flex;gap:2px;margin:0 auto;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:3px}
.view-tabs button{padding:8px 18px;border-radius:9px;font-size:var(--fs-md);font-weight:600;color:var(--ink-2)}
.view-tabs button:hover{color:var(--ink);background:var(--surface-3)}
.view-tabs button.active{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}
.masthead-tools{display:flex;align-items:center;gap:14px}
.theme-switch{display:flex;border:1px solid var(--line);border-radius:10px;padding:2px;background:var(--surface-2)}
.theme-switch button{display:grid;place-items:center;width:32px;height:30px;border-radius:7px;color:var(--muted)}
.theme-switch button svg.icon{width:16px;height:16px;min-width:16px}
.theme-switch button:hover{color:var(--ink)}
.theme-switch button.active{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}

/* Shell */
.layout{display:grid;grid-template-columns:232px minmax(0,1fr);max-width:1720px;margin:0 auto}
.sidebar{position:sticky;top:68px;height:calc(100dvh - 68px);overflow:auto;padding:24px 14px 18px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.side-top{padding:0 10px 6px}
.side-label{font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.sidebar nav{display:grid;gap:2px}
.category-button{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);text-align:left;font-size:var(--fs-md);color:var(--ink-2)}
.category-button .icon{width:17px;height:17px;min-width:17px;color:var(--muted)}
.category-button span:last-child{margin-left:auto;color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.category-button:hover{background:var(--surface-3);color:var(--ink)}
.category-button.active{background:var(--accent-soft);color:var(--accent-text);font-weight:650}
.category-button.active .icon,.category-button.active span:last-child{color:var(--accent-text)}
.mobile-gms{display:none}
.side-collections{margin-top:18px}
.side-collections>.side-label{display:block;padding:0 10px 6px}
.side-footer{margin-top:auto;padding:22px 8px 0;font-size:var(--fs-xs);color:var(--muted)}
.side-footer small{display:block;margin-top:4px}
main{min-width:0;padding:24px 32px}

/* Every tab: the existing title/subtitle, with optional finder below. */
.intro{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start;margin-bottom:18px}
.intro-text{min-width:0;display:flex;flex-direction:column}
h1{font-family:var(--font-display);font-size:var(--fs-3xl);line-height:1.12;letter-spacing:-.015em;font-weight:600;text-wrap:balance;margin:0 0 6px}
#page-subtitle{font-size:var(--fs-md);color:var(--muted);margin:0 0 14px;line-height:1.5}
.intro-points{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.intro-points>span{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-size:var(--fs-sm);font-weight:600}
.intro-points .icon{width:18px;height:18px;min-width:18px;color:var(--accent-text)}
.intro-points>span:nth-child(4){padding-left:18px;border-left:1px solid var(--line)}
.catalog-count{font-size:var(--fs-xs);color:var(--muted);margin:-8px 0 12px}
.catalog-count:empty{display:none}
.catalog-count strong{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.hero-board{width:100%}
.hero-board:empty{display:none}
.board-frame{display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 18px;gap:4px}
.board{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;border-radius:8px;overflow:hidden;box-shadow:0 0 0 1px var(--board-frame),var(--shadow-md)}
.sq{position:relative;display:grid;place-items:center;aspect-ratio:1;background:var(--board-light)}
.sq.dark{background:var(--board-dark)}
.sq .tile{display:grid;place-items:center;width:70%;aspect-ratio:1;background:var(--tile);border-radius:22%;box-shadow:var(--tile-shadow);overflow:hidden;transition:transform .18s ease,opacity .25s ease,filter .25s ease}
.sq .tile img{width:84%;height:84%;object-fit:contain}
.sq .tile b{font-size:12px;color:var(--tile-ink);font-weight:700;letter-spacing:-.2px}
.sq:hover .tile,.sq:focus-visible .tile{transform:scale(1.14);box-shadow:var(--tile-shadow-hover)}
.sq:focus-visible{outline-offset:-3px;border-radius:0}
.sq.dim .tile{opacity:.16;filter:grayscale(1);transform:scale(.86)}
.files{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(8,1fr);text-align:center}
.ranks{grid-column:1;grid-row:1;display:grid;grid-template-rows:repeat(8,1fr);align-items:center;text-align:center}
.files span,.ranks span{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}

.board-tip{position:fixed;z-index:40;pointer-events:none;background:var(--ink);color:var(--paper);font-size:var(--fs-sm);padding:6px 10px;border-radius:var(--r-sm);white-space:nowrap;box-shadow:var(--shadow-md)}
.board-tip b{font-variant-numeric:tabular-nums;opacity:.7;margin-right:6px;font-weight:600}

/* Filters */
/* One search card: search, Filters and Reset; then the selects; then how the list is shown. */
.filter-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 10px 0;box-shadow:var(--shadow-sm)}
.filter-main{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;align-items:center}
.filter-main>.search{grid-column:1/5;grid-row:1}
.filter-main>#more-filter{grid-column:5;grid-row:1}
.search{display:flex;align-items:center;gap:10px;padding:2px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--muted)}
.search:focus-within{border-color:var(--accent);background:var(--surface)}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:10px 0;font-size:var(--fs-lg);color:var(--ink);outline:none}
.search input::placeholder{color:var(--muted)}
.filter-main>label:not(.search){grid-row:2;min-width:0}
.filter-main select{width:100%;font-size:var(--fs-sm);padding:7px 10px}
.filter-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface)}
.filter-button[aria-expanded="true"],.filter-button:hover{border-color:var(--accent);color:var(--accent-text)}
.filter-button .icon{width:15px;height:15px;min-width:15px}
.filter-view{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:10px -10px 0;padding:8px 12px;border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg)}
.filter-view>label:first-child{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted)}
.filter-view select{padding:4px 8px;font-size:var(--fs-sm);max-width:200px}
.filter-view>.community-controls{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
.numbers-toggle{font-size:var(--fs-xs);font-weight:600;padding:3px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink-2)}
.numbers-toggle[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.numbers-toggle:disabled{background:var(--surface-3);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.advanced{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;border-top:1px solid var(--line);margin-top:10px;padding:12px 4px 2px}
.advanced label:not(.checkbox-label){display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted)}
.advanced select{max-width:220px}
.checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer}
.active-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);margin-top:10px;padding:10px 4px 0}
.active-filter{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);background:var(--accent-soft);color:var(--accent-text);padding:5px 10px;border-radius:999px}
.active-filter b{font-weight:700}

/* Panels: map, timeline, people */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;margin-bottom:28px;box-shadow:var(--shadow-sm)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px}
.section-heading h2{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.01em;margin-bottom:4px}
.section-heading p{color:var(--muted);font-size:var(--fs-sm);margin:0}
.geo-layout{display:grid;grid-template-columns:clamp(180px,22vw,280px) minmax(0,1fr);gap:24px;align-items:start}
.country-board-panel,.country-map-panel{min-width:0}
.country-board-panel{width:100%;max-width:280px}
#map-reset{white-space:nowrap;flex-shrink:0;min-height:40px}
.country-board-panel h3,.country-map-panel h3{font-size:var(--fs-md);font-weight:600;margin:0 0 12px}
.country-board-scope{font-size:var(--fs-sm);line-height:1.5;color:var(--muted);margin:12px 0 0}
.sq.sq-empty{pointer-events:none}
.world-wrap{position:relative;overflow:hidden;min-width:0;border-radius:var(--r-md);background:var(--surface-2);touch-action:none}
.world-wrap>svg{display:block;width:100%;height:auto;min-height:200px;cursor:grab}
.country-shape{stroke:var(--map-stroke);stroke-width:.7;vector-effect:non-scaling-stroke;transition:fill .2s}
.country-shape.m0{fill:var(--map-0)}.country-shape.m1{fill:var(--map-1)}.country-shape.m2{fill:var(--map-2)}.country-shape.m3{fill:var(--map-3)}
.country-shape[data-country]{cursor:pointer}
.country-shape[data-country]:hover{stroke:var(--map-select);stroke-width:1.2}
.country-shape.selected{stroke:var(--map-select);stroke-width:2.2}
.micro-country{stroke-width:1.5}
.map-tools{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;gap:4px}
.map-tools button{width:32px;height:32px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);font-size:18px;color:var(--ink-2)}
.map-tools button:hover{color:var(--accent-text);border-color:var(--accent)}
.map-legend{position:absolute;left:12px;bottom:10px;display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--ink-2);background:color-mix(in srgb,var(--surface) 88%,transparent);padding:5px 9px;border-radius:var(--r-sm)}
.map-legend .sw{width:12px;height:12px;border-radius:3px;margin-left:6px}
.map-legend .sw:first-child{margin-left:0}
.sw.m0{background:var(--map-0);box-shadow:inset 0 0 0 1px var(--line-strong)}.sw.m1{background:var(--map-1)}.sw.m2{background:var(--map-2)}.sw.m3{background:var(--map-3)}
.map-tooltip{position:absolute;z-index:2;pointer-events:none;background:var(--ink);color:var(--paper);font-size:var(--fs-sm);padding:7px 11px;border-radius:var(--r-sm);white-space:nowrap;box-shadow:var(--shadow-md)}
.country-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px 8px;margin-top:18px}
.country-list button{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);text-align:left;color:var(--ink-2)}
.country-list button:hover{background:var(--surface-3);color:var(--ink)}
.country-list button b{font-variant-numeric:tabular-nums;color:var(--ink)}
.country-list button.active{background:var(--accent-soft);color:var(--accent-text)}
.country-list button.active b{color:var(--accent-text)}
.coverage-note{margin-top:14px;font-size:var(--fs-sm);color:var(--muted)}
.coverage-note strong{color:var(--ink)}
.attribution{margin:6px 0 0;font-size:var(--fs-xs);color:var(--muted)}

.timeline-mode{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted)}
.timeline-mode select{max-width:220px}
.era-cards{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.era-card{display:inline-flex;align-items:baseline;gap:8px;border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm)}
.era-card b{font-size:var(--fs-lg);color:var(--ink);font-variant-numeric:tabular-nums}
.era-card:hover{border-color:var(--accent)}
.era-card.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}
.era-card.active b{color:var(--accent-text)}
.timeline-chart{overflow-x:auto;padding:4px 2px 2px;border-bottom:1px solid var(--line)}
.year-stacks{display:flex;align-items:flex-end;gap:3px;min-width:760px;min-height:200px}
.ycol{flex:1 1 0;min-width:16px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px}
.ystack{display:flex;flex-direction:column-reverse;align-items:center;gap:3px}
.ylogo{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--tile);box-shadow:0 0 0 1px var(--line),var(--shadow-sm);overflow:hidden;transition:transform .15s}
.ylogo img{width:18px;height:18px;object-fit:contain}
.ylogo b{font-size:12px;color:var(--tile-ink)}
.ylogo:hover,.ylogo:focus-visible{transform:scale(1.35);z-index:2}
.ytick{width:100%;height:3px;border-radius:2px;background:var(--surface-3)}
.ycol.has .ytick{background:var(--map-1)}
.ycol.active .ytick{background:var(--accent)}
.ylabel{font-size:var(--fs-xs);color:var(--muted);height:18px;line-height:18px;font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 2px;border-radius:4px}
.ylabel.quiet{color:transparent}
.ycol:hover .ylabel.quiet,.ylabel.quiet:focus-visible{color:var(--muted)}
.ycol.active .ylabel{color:var(--accent-text);font-weight:700}
.ylabel:hover{color:var(--accent-text)}
.range-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.range-controls label{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--muted)}
.range-controls input{width:84px;border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 8px;background:var(--surface);color:var(--ink);font-size:var(--fs-sm)}
.range-controls>span{margin-left:auto;font-size:var(--fs-xs);color:var(--muted)}
.undated{font-size:var(--fs-sm);color:var(--muted);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.undated:hover,.undated.active{color:var(--accent-text)}

.people-view{margin-bottom:28px}
.gm-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 18px;font-size:var(--fs-md);color:var(--ink-2)}
.gm-stats b{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--ink);margin-right:6px;font-variant-numeric:tabular-nums}
.gm-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.gm-controls label{min-width:0}
.gm-search{flex:1 1 260px}
.gm-controls input,.gm-controls select{width:100%;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);padding:10px 12px;font-size:var(--fs-md)}
.gm-legend{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 14px;font-size:var(--fs-xs);color:var(--muted)}
.gm-table-head,.gm-profile-row>summary{display:grid;grid-template-columns:minmax(220px,1fr) 150px 140px 80px;gap:14px;align-items:center}
.gm-table-head{padding:6px 16px;font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.gm-profile-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;overflow:hidden}
.gm-profile-row>summary{padding:14px 16px;cursor:pointer;list-style:none}
.gm-profile-row>summary::-webkit-details-marker{display:none}
.gm-profile-row>summary:hover{background:var(--surface-2)}
.gm-profile-row[open]>summary{background:var(--surface-2);border-bottom:1px solid var(--line)}
.gm-person{display:flex;align-items:center;gap:12px;min-width:0}
.gm-person strong{font-size:var(--fs-lg)}
.gm-person small{display:block;margin-top:2px}
.person-avatar{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--surface-3);color:var(--ink-2);font-size:var(--fs-xs);font-weight:700}
.gm-tag{display:inline-block;margin-left:6px;font-size:var(--fs-xs);font-weight:700;color:var(--gold);background:var(--gold-soft);border-radius:4px;padding:0 5px;vertical-align:middle}
.gm-rating b,.gm-world-rank b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.gm-rating small,.gm-world-rank small,.gm-app-count small{display:block}
.gm-app-count{text-align:right;color:var(--accent-text)}
.gm-app-count b{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}
.gm-app-count small{color:var(--accent-text)}
.expand-symbol{display:inline-block;margin-left:4px;transition:transform .2s}
.gm-profile-row[open] .expand-symbol{transform:rotate(180deg)}
.gm-connections{padding:12px 16px 14px}
.gm-profile-source{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--muted);padding-bottom:8px}
.gm-app-link{display:grid;grid-template-columns:minmax(170px,.7fr) 1fr;gap:16px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.gm-product{display:flex;align-items:center;gap:10px;text-align:left;font-weight:650}
.gm-product:hover{color:var(--accent-text)}
.gm-product .app-logo{width:30px;height:30px;flex-basis:30px;border-radius:8px}
.gm-role{display:block;font-size:var(--fs-sm);color:var(--ink-2)}
.gm-profile-gaps{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
.gm-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-xs);color:var(--muted);margin:4px 0}
.gm-meta b{color:var(--ink);font-variant-numeric:tabular-nums}
.gm-link-count{display:block;font-size:var(--fs-xs);color:var(--accent-text);padding:2px 0}

/* Results */
/* List header: the count and the note share one line, right above the rows. */
.results-toolbar{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:8px}
#result-count{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:650}
#result-context{color:var(--muted);font-size:var(--fs-sm);margin-left:8px}

.list-note{margin:0;display:flex;align-items:center;align-self:center}
.list-info{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--muted)}
.list-info .icon{width:18px;height:18px;color:inherit}
.list-info:hover,.list-info:focus-visible{color:var(--accent-text);background:var(--accent-soft)}
.table-heading,.app-row{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(190px,1.1fr) 150px minmax(170px,1fr) 64px;gap:16px;align-items:center}
.table-heading{padding:6px 18px;font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.app-row{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 16px;margin-bottom:6px;transition:border-color .15s,box-shadow .15s}
.app-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
.app-identity{display:grid;grid-template-columns:26px 40px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.editorial-rank{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;text-align:left}
.editorial-rank:hover{color:var(--accent-text)}
.app-row.top .editorial-rank{color:var(--gold);font-weight:700}
.app-logo{width:44px;height:44px;flex:0 0 44px;object-fit:contain;padding:5px;border-radius:11px;background:var(--tile);box-shadow:0 0 0 1px var(--line)}
.logo-fallback{display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;color:var(--tile-ink)}
.name-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.name-button{text-align:left;font-size:var(--fs-lg);font-weight:700;letter-spacing:-.1px;line-height:1.3;color:var(--ink)}
.name-button:hover{color:var(--accent-text)}
.all-in-one{font-size:var(--fs-xs);font-weight:650;color:var(--accent-text);background:var(--accent-soft);padding:1px 6px;border-radius:4px}
.identity-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:3px;font-size:var(--fs-xs);color:var(--muted)}
.platform-strip{display:inline-flex;gap:6px;align-items:center}
.platform-strip .icon{width:14px;height:14px;min-width:14px}
.gm-badge{display:inline-flex;align-items:center;gap:5px;margin-top:4px;font-size:var(--fs-xs);font-weight:650;color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line);padding:2px 7px;border-radius:999px}
.gm-badge .icon{width:13px;height:13px;min-width:13px}
.gm-badge:hover{border-color:var(--gold)}
.row-state{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:var(--fs-xs);color:var(--warn);background:var(--warn-soft);border-radius:999px;padding:1px 8px;margin-right:6px}
/* Rows: chips first, then one quiet line with the preview and the app's links. */
.row-features{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.row-features>.feature-chips,.row-features>.scan-hint{flex:1 1 100%}
/* HOM-161: the link line (preview, Official, review date, Report, Suggest) shows on row hover or keyboard focus for mouse users.
   Touch screens always show it. Its space stays reserved, so rows never jump. */
@media (hover:hover) and (pointer:fine){.app-row .row-features>.directory-preview,.app-row .row-features>.app-trust{opacity:0;transition:opacity .15s}.app-row:hover .row-features>.directory-preview,.app-row:hover .row-features>.app-trust,.app-row:focus-within .row-features>.directory-preview,.app-row:focus-within .row-features>.app-trust{opacity:1}}
@media (prefers-reduced-motion:reduce){.app-row .row-features>.directory-preview,.app-row .row-features>.app-trust{transition:none}}
.app-row .app-logo{width:40px;height:40px;flex-basis:40px}
.scan-hint{font-size:var(--fs-sm);color:var(--ink-2);margin:0}
.feature-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);line-height:1.3;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px 8px}
.chip .icon{width:14px;height:14px;min-width:14px;color:var(--muted)}
.chip.purpose{background:var(--accent-soft);border-color:transparent;color:var(--accent-text)}
.chip.purpose .icon{color:var(--accent-text)}
.chip.paid-chip{border-style:dashed}
a.chip-link{text-decoration:none!important}
a.chip-link:hover{border-color:var(--accent);color:var(--accent-text)}
.chip-more{font-size:var(--fs-xs);color:var(--muted);align-self:center}
.cost-button{display:grid;gap:5px;text-align:left}
.cost-tag{display:inline-block;width:max-content;font-size:var(--fs-xs);font-weight:700;border-radius:4px;padding:1px 7px;background:var(--surface-3);color:var(--ink-2)}
.cost-tag.free{background:var(--free-soft);color:var(--free)}
.cost-tag.freemium{background:var(--freemium-soft);color:var(--freemium)}
.cost-tag.paid{background:var(--paid-soft);color:var(--paid)}
.cost-tag.unknown{display:none}
.price-from{font-size:var(--fs-md);font-weight:700;white-space:nowrap;color:var(--ink)}
.price-from small{font-weight:400}
.cost-button:hover .price-from{color:var(--accent-text)}
.row-cost:has(.cost-tag.unknown) .price-from{font-weight:400;color:var(--ink-2)}
.community-cell{min-width:0}
.row-communities{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.social-link{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px 7px;font-variant-numeric:tabular-nums;white-space:nowrap}
.social-link:hover{border-color:var(--accent);color:var(--accent-text);text-decoration:none}
.social-link svg.social-icon{width:13px;height:13px;min-width:13px;flex-basis:13px}
.social-icon-link{justify-content:center;width:30px;min-height:30px;padding:5px}
.social-multi-account.social-icon-link{width:auto;min-width:30px}
.social-account-number{font-size:var(--fs-xs);font-weight:650;color:var(--ink-2)}
.social-overflow{display:contents}
.social-overflow:not(.is-expanded) .social-extra-link{display:none}
.social-more{display:inline-flex;align-items:center;min-height:30px;padding:4px 7px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--ink-2);background:var(--surface);cursor:pointer}
.social-more:hover{border-color:var(--accent);color:var(--accent-text)}
.social-more:focus-visible,.social-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.social-observed{white-space:normal}
.name-line .row-github{flex-shrink:0}
.row-actions{display:flex;flex-direction:column;align-items:center;gap:2px}
.save{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;color:var(--muted)}
.save:hover{background:var(--surface-3);color:var(--accent-text)}
.save.active{color:var(--saved)}
.compare-pick{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--muted);cursor:pointer}
.community-hidden .table-heading,.community-hidden .app-row{grid-template-columns:minmax(240px,1.3fr) minmax(220px,1.3fr) 160px 0 64px}
.community-hidden .community-cell,.community-hidden #audience-heading{visibility:hidden;overflow:hidden}
.empty{padding:44px 24px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface);color:var(--muted)}
.empty h3{font-size:var(--fs-xl);font-family:var(--font-display);margin-bottom:6px}
.page-footer{display:flex;justify-content:space-between;align-items:center;gap:12px 18px;flex-wrap:wrap;margin-top:26px;font-size:var(--fs-xs);color:var(--muted)}

.compare-bar{position:fixed;z-index:25;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;padding:10px 12px 10px 18px;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-md);font-size:var(--fs-sm);max-width:calc(100vw - 24px)}
.compare-bar>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast{position:fixed;z-index:60;bottom:24px;right:24px;max-width:80vw;background:var(--ink);color:var(--paper);font-size:var(--fs-sm);padding:12px 16px;border-radius:var(--r-md);box-shadow:var(--shadow-md)}

/* Dialogs */
dialog{padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-md);max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px)}
dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px)}
dialog[open]{animation:dlg-in .18s ease-out}
@keyframes dlg-in{from{opacity:0;transform:translateY(8px) scale(.99)}}
.app-dialog{width:900px;height:min(800px,calc(100dvh - 40px))}
.app-dialog[open]{display:flex;flex-direction:column}
.dialog-heading{display:flex;align-items:center;gap:16px;padding:22px 26px 16px;flex:0 0 auto}
.dialog-heading .app-logo{width:58px;height:58px;flex-basis:58px;border-radius:14px}
.heading-info{flex:1;min-width:0}
.dialog-heading h2{font-family:var(--font-display);font-size:30px;font-weight:600;letter-spacing:-.01em;line-height:1.1}
.heading-info p{margin:4px 0 0;font-size:var(--fs-sm);color:var(--muted)}
.heading-summary{margin-top:6px!important;color:var(--ink-2)!important;font-size:var(--fs-md)!important;max-width:62ch}
.heading-actions{display:flex;align-items:center;gap:8px}
.detail-tabs{flex:0 0 auto;display:flex;gap:4px;padding:0 22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.detail-tabs [role=tab]{position:relative;white-space:nowrap;padding:12px 10px;font-size:var(--fs-md);color:var(--muted);font-weight:600}
.detail-tabs [role=tab]:hover{color:var(--ink)}
.detail-tabs [role=tab][aria-selected="true"]{color:var(--accent-text)}
.detail-tabs [role=tab][aria-selected="true"]::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
.detail-body{flex:1 1 auto;min-height:0;overflow:auto;padding:22px 26px 28px}
.detail-body:focus-visible{outline-offset:-2px}
.detail-body h3{font-size:var(--fs-lg);margin:0 0 12px}
.detail-section{margin-bottom:24px}
.detail-section>h3 small{font-weight:400;margin-left:8px}
.fact-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;margin-bottom:22px}
.fact-strip>div>span:not(.platform-strip){display:block;font-size:var(--fs-xs);color:var(--muted);margin-bottom:4px}
.fact-strip strong{font-size:var(--fs-md)}
.fact-strip strong button{font-weight:700;color:var(--accent-text)}
.fact-strip .platform-strip .icon{width:18px;height:18px;min-width:18px}
.feature-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.feature-list li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-md);line-height:1.45;padding:10px 12px;background:var(--surface-2);border-radius:var(--r-md)}
.feature-list .icon{color:var(--accent-text);margin-top:1px}
.feature-list .evidence-link{margin-left:auto;align-self:center}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.store-links,.contact-links{display:flex;flex-wrap:wrap;gap:8px}
.availability-note{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r-md);padding:10px 12px;margin-bottom:18px}
.evidence-link{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--accent-text)}
.evidence-link .icon{width:12px;height:12px;min-width:12px}
.source-footnote{font-size:var(--fs-xs);color:var(--muted);margin-top:14px;line-height:1.6}
.source-footnote .text-button{font-size:var(--fs-xs);color:var(--accent-text)}
.detail-fold{border-top:1px solid var(--line);margin:18px 0 0;padding-top:12px;font-size:var(--fs-sm);color:var(--ink-2)}
.detail-fold+.detail-section{margin-top:22px}
summary{cursor:pointer;color:var(--ink-2);font-weight:600}
summary:hover{color:var(--accent-text)}
details p{font-size:var(--fs-sm);line-height:1.6;color:var(--ink-2);margin:8px 0}
.small-label{font-size:var(--fs-xs);color:var(--muted);margin-bottom:6px}
.origin-label{display:block;margin-top:4px;font-size:var(--fs-xs);color:var(--muted)}
.broad-functions{margin-bottom:20px}
.retired-panel{padding:22px;background:var(--warn-soft);border-radius:var(--r-md)}

/* Research: icon grid, highlights, variants, data sources */
.fx-groups{display:grid;gap:14px}
.fx-group h4{font-size:var(--fs-xs);color:var(--muted);font-weight:600;margin:0 0 6px}
.fx-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.fx-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.fx-icon{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--accent-soft);color:var(--accent-text)}
.fx-icon .icon{width:18px;height:18px}
.fx-label{font-size:var(--fs-sm);font-weight:650;line-height:1.25;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fx-note{font-size:var(--fs-xs);color:var(--muted);line-height:1.35}
.fx-tier{font-size:12px;font-weight:700;border-radius:4px;padding:0 5px;line-height:1.5}
.fx-tier.paid{background:var(--paid-soft);color:var(--paid)}
.fx-tier.free{background:var(--free-soft);color:var(--free)}
.fx-item.paid .fx-icon{background:var(--paid-soft);color:var(--paid)}
.hl-list{list-style:none;margin:0 0 4px;padding:0;display:grid;gap:8px}
.hl{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:start;font-size:var(--fs-md);line-height:1.45}
.hl-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:800}
.hl.unique .hl-mark{background:var(--gold-soft);color:var(--gold)}
.hl.strength .hl-mark{background:var(--free-soft);color:var(--free)}
.hl.limitation .hl-mark{background:var(--warn-soft);color:var(--warn)}
.meta-row{display:flex;flex-wrap:wrap;gap:18px 30px;margin:16px 0 0}
.meta-row h4{font-size:var(--fs-xs);color:var(--muted);font-weight:600;margin:0 0 6px}
.band-pills{display:flex;gap:4px}
.band{font-size:var(--fs-xs);font-weight:650;border-radius:999px;padding:2px 9px;background:var(--surface-3);color:var(--muted)}
.band.on{background:var(--accent);color:var(--on-accent)}
.ds-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);border-radius:999px;padding:3px 9px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}
.ds-chip .icon{width:13px;height:13px;min-width:13px}
.research-stamp{font-size:var(--fs-xs);color:var(--muted);margin-top:14px}

/* Pricing */
.pricing-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.billing-toggle{display:flex;background:var(--surface-3);border-radius:var(--r-md);padding:3px}
.billing-toggle button{padding:6px 12px;font-size:var(--fs-sm);border-radius:7px;color:var(--muted)}
.billing-toggle button.active{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:start}
.plan-grid.four-plans{grid-template-columns:repeat(2,minmax(0,1fr))}
.extra-offers{margin-top:14px}
.plan-card{border:1px solid var(--line);border-radius:var(--r-md);padding:16px;min-width:0;background:var(--surface)}
.plan-card h3{font-size:var(--fs-md);margin:0 0 10px}
.plan-price{font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1.1;overflow-wrap:anywhere}
.plan-period{font-size:var(--fs-xs);color:var(--muted);margin:4px 0 12px}
.plan-card ul{list-style:none;padding:0;margin:0 0 12px;font-size:var(--fs-sm)}
.plan-card li{display:flex;gap:8px;margin:6px 0;line-height:1.45}
.plan-card li::before{content:"✓";color:var(--free);font-weight:700}
.free-panel{background:var(--free-soft);border-radius:var(--r-md);padding:14px 16px;margin-bottom:14px}
.free-panel h3{color:var(--free);margin:0 0 8px}
.price-source{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--muted);margin-top:18px}

/* People, numbers, sources, notes */
.people-list{display:grid;gap:4px}
.person-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.person-row strong{font-size:var(--fs-md)}
.person-row small{display:block;margin-top:2px}
.person-group-title{font-size:var(--fs-xs);color:var(--muted);font-weight:600;margin:14px 0 2px}
.related-apps{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.related-apps button{font-size:var(--fs-xs);color:var(--accent-text)}
.person-title-link{display:inline-flex;vertical-align:middle;margin-left:5px}
.operator-evidence{padding:10px 12px;border-left:2px solid var(--line);color:var(--ink-2)}
.operator-evidence p{margin:5px 0;font-size:var(--fs-sm)}
.people-directory-list{display:grid;gap:10px}
.people-directory-card{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.people-directory-person{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.people-directory-person h3{display:inline-flex;align-items:center;gap:4px;margin:0 0 3px;font-size:var(--fs-lg)}
.people-directory-person .gm-tag{margin-left:2px}
.people-directory-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.people-directory-app{min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.people-directory-apphead{display:flex;align-items:center;gap:8px;text-align:left;color:var(--ink);font-weight:650;min-width:0}
.people-directory-apphead strong{overflow-wrap:anywhere}
.people-directory-apphead .app-logo{width:30px;height:30px;min-width:30px;border-radius:7px}
.people-directory-roles{padding-left:38px}
.people-directory-roles p{margin:5px 0 0;font-size:var(--fs-sm);line-height:1.5}
.people-directory-roles small{display:block;color:var(--muted);margin-top:2px}
.social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.social-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);min-width:0}
.social-card:hover{border-color:var(--accent);text-decoration:none}
.social-card>div{flex:1;min-width:0}
.social-card strong{display:block;font-size:var(--fs-sm)}
.social-card small{display:block;overflow-wrap:anywhere}
.social-count{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.social-count small{font-weight:400}
.table-scroll{overflow:auto}
.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.data-table th{text-align:left;font-size:var(--fs-xs);color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.data-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table td small{display:block}
.data-table .social-icon{margin-right:6px}
.metric-value{font-weight:700;font-variant-numeric:tabular-nums}
.source-group{margin-bottom:20px}
.source-group h3{font-size:var(--fs-md)}
.source-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm);font-weight:400}
.source-row a{overflow-wrap:anywhere}
.note-form textarea{display:block;width:100%;min-height:110px;margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--fs-md);line-height:1.5;resize:vertical}
.note-item{margin-top:12px;padding:12px;background:var(--surface-2);border-radius:var(--r-md);white-space:pre-wrap;overflow-wrap:anywhere}
.note-item small{display:block;margin-top:6px}
.tech-intro{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.tech-web-review{border:1px solid var(--line);border-radius:var(--r-md);padding:16px;margin-bottom:20px;overflow-wrap:anywhere}
.tech-web-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tech-web-heading h4{margin:0;font-size:var(--fs-md)}
.tech-web-observation{font-size:var(--fs-sm);color:var(--muted);margin:8px 0 16px}
.tech-web-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px 24px;margin:0 0 16px}
.tech-web-facts dt{font-size:var(--fs-xs);color:var(--muted);font-weight:650;margin-bottom:4px}
.tech-web-facts dd{margin:0;font-size:var(--fs-sm);color:var(--ink)}
.tech-web-notes{font-size:var(--fs-sm);padding-left:18px;margin:12px 0 0}
.tech-web-notes li+li{margin-top:8px}
.tech-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tech-section{min-width:0}
.tech-section h4{font-size:var(--fs-xs);color:var(--muted);font-weight:600;margin:0 0 8px}
.tech-card{border:1px solid var(--line);border-radius:var(--r-md);padding:12px;margin-bottom:8px;overflow-wrap:anywhere}
.tech-card-head{display:flex;justify-content:space-between;align-items:start;gap:8px}
.tech-card-head strong{font-size:var(--fs-md)}
.tech-status{font-size:var(--fs-xs);font-weight:650;white-space:nowrap;background:var(--free-soft);color:var(--free);padding:0 6px;border-radius:4px}
.tech-status.reported{background:var(--freemium-soft);color:var(--freemium)}
.tech-status.historical,.tech-status.inferred{background:var(--warn-soft);color:var(--warn)}
.tech-scope{font-size:var(--fs-sm);color:var(--muted);margin:6px 0}
.tech-scope>span{color:var(--ink);font-weight:650}
.tech-source{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--fs-xs);color:var(--muted)}
.tech-card details{margin-top:8px;font-size:var(--fs-sm)}
.tech-gaps{font-size:var(--fs-sm);color:var(--ink-2);padding-left:18px}
.history-list{list-style:none;padding:0;margin:8px 0}
.history-list>li{padding:8px 0;border-bottom:1px solid var(--line)}
.history-list summary{font-weight:400}

/* Compare */
.compare-dialog{width:1040px;height:min(880px,calc(100dvh - 40px))}
.compare-dialog[open]{display:flex;flex-direction:column}
.dialog-top{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 26px 14px}
.dialog-top h2{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:600}
#compare-body{flex:1;min-height:0;overflow:auto;padding:0 26px 26px}
.compare-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
.compare-table th,.compare-table td{text-align:left;vertical-align:top;padding:12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.compare-table thead th{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:2px solid var(--line-strong);vertical-align:bottom}
.compare-table thead th:first-child{width:20%}
.compare-table thead .app-logo{display:block;margin-bottom:8px}
.compare-table thead .name-button{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600}
.compare-table tbody th{color:var(--muted);font-weight:600;font-size:var(--fs-xs)}
.compare-table .compare-group th{background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm);font-weight:700;padding:9px 12px}
.compare-table ul{margin:0;padding-left:16px;line-height:1.7}
.compact-price{margin-bottom:8px;line-height:1.5}
.compact-price strong{display:block;font-size:var(--fs-sm)}
.compact-price small{display:block}
.same-cell{color:var(--ink-2)}
.same-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:var(--muted);background:var(--surface-3);border-radius:4px;padding:0 6px;margin-right:8px}
.diff-row td{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}
.diff-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.diff-list li{display:flex;gap:8px;align-items:flex-start;line-height:1.45}
.diff-list .icon{width:15px;height:15px;min-width:15px;margin-top:2px;color:var(--accent-text)}
.info-dialog{width:660px}
.info-dialog #info-body{padding:0 26px 26px}
.info-dialog h3{font-size:var(--fs-lg);margin:16px 0 6px}
.info-dialog p{color:var(--ink-2);line-height:1.65}

/* Responsive */
@media (max-width:1150px){
 .layout{grid-template-columns:200px minmax(0,1fr)}
 main{padding:26px 22px}
 .masthead{padding:0 20px;gap:18px}
 .view-tabs button{padding:8px 13px}
 .table-heading{display:none}
 .app-row,.community-hidden .app-row{grid-template-columns:minmax(0,1fr) 150px 64px;grid-template-areas:"id cost act" "feat feat act" "comm comm act";row-gap:10px}
 .app-identity{grid-area:id}.row-features{grid-area:feat}.row-cost{grid-area:cost}.community-cell{grid-area:comm}.row-actions{grid-area:act;align-self:center}
 .community-hidden .community-cell{display:none}
 .tech-groups{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
 .layout{display:block}
 .sidebar{position:static;height:auto;display:block;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line);background:var(--surface)}
 .side-top,.side-footer,.sidebar .side-collections{display:none}
 .sidebar nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
 .category-button{width:auto;flex:0 0 auto;white-space:nowrap;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:var(--fs-sm)}
 .category-button span:last-child{margin-left:6px}
 .sidebar .mobile-gms{display:flex}
 .gm-table-head,.gm-profile-row>summary{grid-template-columns:minmax(170px,1fr) 110px 110px 60px;gap:10px}
}
@media (max-width:680px){
 .masthead{height:auto;flex-wrap:wrap;gap:10px;padding:10px 14px}
 .brand-name{font-size:20px}
 .brand-mark{width:30px;height:30px}
 .masthead-tools{margin-left:auto}
 .masthead-tools #about{display:none}
 .view-tabs{order:3;width:100%;margin:0}
 .view-tabs button{flex:1;padding:8px 4px;font-size:var(--fs-sm)}
 main{padding:20px 14px}
 #page-subtitle{font-size:var(--fs-md)}
 .intro{grid-template-columns:minmax(0,1fr)}
 
 .filter-main{grid-template-columns:repeat(2,minmax(0,1fr))}
 .filter-main>.search{grid-column:1/3}
 .filter-main>label:not(.search){grid-row:auto}
 .filter-main>#more-filter{grid-column:1/-1;grid-row:4;justify-content:center}
 .filter-view>.community-controls{margin-left:0}
 .results-toolbar{flex-wrap:wrap;gap:8px}
 
 .app-row,.community-hidden .app-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id id" "feat feat" "cost act" "comm comm";padding:14px;gap:10px}
 .app-identity{grid-template-columns:24px 40px minmax(0,1fr);gap:8px}
 .app-logo{width:40px;height:40px;flex-basis:40px}
 .row-actions{flex-direction:row;align-self:end;gap:10px}
 .panel{padding:16px 14px}
 .section-heading{flex-direction:column}
 .geo-layout{display:block}
 .country-board-panel{margin:0 auto 20px}
 .country-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .country-list button{border:1px solid var(--line)}
 .range-controls>span{margin-left:0;flex-basis:100%}
 .app-dialog,.compare-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0}
 .dialog-heading{flex-wrap:wrap;padding:16px 16px 12px;gap:12px}
 .dialog-heading .app-logo{width:46px;height:46px;flex-basis:46px}
 .dialog-heading h2{font-size:24px}
 .heading-info{flex:1 1 calc(100% - 120px)}
 .heading-actions{width:100%}
 .heading-actions .close-button{position:absolute;top:12px;right:12px}
 .detail-tabs{padding:0 10px;mask-image:linear-gradient(90deg,currentColor 85%,transparent)}
 .detail-body{padding:18px 16px 24px}
 .fact-strip{grid-template-columns:1fr 1fr}
 .feature-list,.detail-grid,.social-grid,.tech-groups{grid-template-columns:1fr}
 .plan-grid,.plan-grid.four-plans{grid-template-columns:1fr}
 .dialog-top{padding:16px}
 #compare-body{padding:0 12px 20px}
 .compare-table th,.compare-table td{padding:10px 8px}
 .compare-table thead th:first-child{width:24%}
 .gm-table-head{display:none}
 .gm-profile-row>summary{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
 .gm-world-rank{grid-column:1}
 .gm-app-link{grid-template-columns:1fr;gap:6px}
 .compare-bar{bottom:12px;gap:10px;padding:8px 10px 8px 14px}
 .compare-bar>span{max-width:38vw}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.sq .tile,.ylogo{border:1px solid CanvasText}.cost-tag,.chip,.band.on{border:1px solid CanvasText}}

/* Discovery collections use the same colour tokens in both themes. */
.masthead{gap:18px}.view-tabs button{padding-inline:13px}.masthead-tools{gap:10px}
.security-trigger{font-size:var(--fs-xs);max-width:90px;text-align:left}
.collection-eyebrow{font-size:var(--fs-sm);font-weight:650;color:var(--accent-text)}

/* Pages without the left menu (Collections, Features, People) use the full width. */
body.collections-active .sidebar{display:none}
body.collections-active .layout,body.people-active .layout{grid-template-columns:minmax(0,1fr)}

.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}

.collection-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:18px 0 24px}
.collection-navigation>.text-button{font-weight:650;color:var(--accent-text);white-space:nowrap;font-size:13px}
.collection-switch{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.collection-switch button{font-size:12px;padding:6px 10px;border-radius:20px;color:var(--muted)}
.collection-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text);font-weight:650}
.collection-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.collection-app{display:flex;align-items:flex-start;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}
.collection-step{font-family:var(--font-display);font-size:24px;line-height:1.5;color:var(--muted);opacity:.65;font-variant-numeric:tabular-nums}
.collection-app-content{flex:1;min-width:0}.collection-app-heading{display:flex;align-items:center;gap:12px}
.collection-app-heading .app-logo{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:10px;font-size:14px}
.collection-app-heading>div{flex:1;min-width:0}.collection-job{display:block;color:var(--accent-text);font-size:var(--fs-sm);line-height:1.5}
.collection-app h2{font-size:21px;font-weight:650;margin:3px 0 0;letter-spacing:-.025em}.collection-app h2 button{text-align:left}
.collection-reason{font-size:14px;line-height:1.7;margin:18px 0 12px;color:var(--ink-2)}
.collection-access{display:flex;align-items:flex-start;gap:8px;min-height:50px;font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 17px}
.collection-access>.icon{width:14px;height:14px;min-width:14px;margin-top:3px}
.collection-app-bottom{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.collection-app-bottom .evidence-link{font-size:12px}
.app-trust{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;border-top:1px solid var(--line);margin-top:18px;padding-top:12px;font-size:12px;line-height:1.6;color:var(--muted)}
.app-trust a,.app-trust .text-button{font-size:12px;color:var(--muted)}.app-trust a:hover,.app-trust .text-button:hover{color:var(--accent-text)}
.app-trust.compact{border:0;margin:0;padding:0;gap:4px 10px;font-size:12px}.app-trust.compact a,.app-trust.compact .text-button{font-size:12px}
.detail-trust{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:12px}.detail-trust>.text-button{font-size:12px}

.security-copy{padding:0 26px 26px;font-size:14px;line-height:1.8;color:var(--ink-2)}.security-copy h3{font-size:15px;color:var(--ink);margin:22px 0 8px}.security-copy ul{padding-left:20px}.security-copy li{margin-bottom:9px}.security-copy .security-lead{font-family:var(--font-display);font-size:26px;line-height:1.35;color:var(--ink);margin-top:4px}

@media(min-width:801px) and (max-width:1150px){.masthead{padding-inline:18px;gap:12px}.brand-name{font-size:20px}.view-tabs button{padding-inline:9px;font-size:12px}.masthead-tools #about{display:none}.security-trigger{max-width:65px}}
@media(max-width:800px){.masthead{height:auto;min-height:100px;flex-wrap:wrap;padding:12px 18px;gap:10px}.masthead-tools{margin-left:auto}.view-tabs{order:3;width:100%;margin:0;justify-content:space-between;overflow-x:auto}.view-tabs button{padding:7px 9px;font-size:12px}.masthead-tools #about{display:none}.security-trigger{font-size:12px;max-width:none}.collection-grid{grid-template-columns:1fr 1fr}.collection-detail-list{grid-template-columns:1fr}.collection-navigation{flex-direction:column;align-items:flex-start}.collection-switch{justify-content:flex-start}.collection-app{padding:20px}.security-copy{padding-inline:20px}}
@media(max-width:500px){.brand-name{font-size:19px}.brand-mark{width:29px;height:29px}.masthead{padding-inline:12px}.masthead-tools{gap:8px}.theme-switch button{width:25px;height:27px}.security-trigger{max-width:60px}.collection-grid{grid-template-columns:1fr}.collection-app{gap:10px;padding:18px 14px}.collection-step{font-size:19px}.collection-app h2{font-size:19px}.collection-job{font-size:var(--fs-xs)}.collection-app-heading{gap:9px}.collection-app .save{padding:5px}.collection-app .app-trust{gap:5px 10px}.collection-switch button{padding-inline:8px;font-size:12px}}

/* Visual discovery: compact cards, real publisher assets, and labelled feature icons. */

.collection-navigation{padding:12px 0 16px}
.collection-switch button{display:flex;align-items:center;gap:5px}.collection-switch .icon{width:14px;height:14px;min-width:14px}
.collection-grid{gap:14px}

.collection-detail-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.collection-app{display:flex;flex-direction:column;gap:0;padding:14px;border-radius:13px;min-height:0}
.collection-app-heading{width:100%;gap:10px;margin-bottom:12px;min-height:37px}.collection-app-heading .app-logo{width:34px;height:34px;min-width:34px;min-height:34px;border:1px solid var(--line);object-fit:contain;padding:3px;background:var(--tile)}
.collection-app h2{font-size:16px;margin:0;line-height:1.25;letter-spacing:-.02em}.collection-mini-purpose{display:block;font-size:12px;margin-top:4px;color:var(--muted)}
.collection-app .save{margin-left:auto;font-size:23px}
.product-preview{display:block;position:relative;width:100%;aspect-ratio:1.95;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);text-align:left}
.product-preview>img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .18s}
.product-preview:hover>img{transform:scale(1.035)}
.product-preview.portrait>img{object-fit:contain;object-position:center}
.preview-label{position:absolute;inset:auto 0 0;padding:16px 8px 5px;background:linear-gradient(transparent,var(--scrim));color:var(--on-scrim);font-size:12px;line-height:1.4;display:flex;align-items:center;justify-content:space-between;gap:4px}
.preview-label .icon{width:12px;height:12px;min-width:12px}
.preview-unavailable{width:100%;aspect-ratio:1.95;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:var(--surface-2);border-radius:8px;border:1px solid var(--line)}
.preview-unavailable .app-logo{width:48px;height:48px;min-width:48px;padding:5px;background:var(--tile);object-fit:contain}.preview-unavailable>span{font-size:12px;color:var(--muted)}
.visual-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px;margin:12px 0 10px}
.visual-features>span{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:flex-start;text-align:center;font-size:12px;line-height:1.35;color:var(--ink-2);min-width:0;padding:5px 2px}
.visual-features .icon{width:21px;height:21px;min-width:21px;color:var(--accent-text);stroke-width:1.7}
.collection-app-bottom{width:100%;display:flex;gap:6px;justify-content:space-between;flex-wrap:nowrap}
.allowance{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:4px 6px;font-size:12px;line-height:1.4;max-width:75%}.allowance.free{color:var(--free);background:var(--free-soft)}
.allowance .icon{width:12px;height:12px;min-width:12px}.app-detail-button{display:flex;align-items:center;gap:4px;color:var(--accent-text);font-size:12px;white-space:nowrap}.app-detail-button .icon{width:12px;height:12px;min-width:12px}
.collection-notes{width:100%;margin-top:10px;font-size:12px;line-height:1.7;color:var(--muted)}.collection-notes summary{cursor:pointer;font-size:12px}.collection-notes p{margin:8px 0}.collection-notes .evidence-link{font-size:12px}
.collection-app .app-trust.compact{width:100%;border-top:1px solid var(--line);padding-top:8px;margin-top:9px;gap:6px 11px}
.app-trust.compact>a,.app-trust.compact>span,.app-trust.compact>button{display:inline-flex;align-items:center;gap:4px;font-size:12px}
.app-trust.compact .icon{width:11px;height:11px;min-width:11px}

.preview-dialog{width:min(1120px,95vw);max-height:94dvh;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);padding:0;box-shadow:var(--shadow-lg)}
#preview-body{padding:0 20px 18px}#preview-body>img{display:block;max-width:100%;max-height:74dvh;height:auto;margin:0 auto;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}#preview-body>p{font-size:12px;color:var(--muted);margin:12px 0 0}
.directory-preview{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.directory-preview img{width:40px;height:24px;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:4px}.directory-preview .icon{width:12px;height:12px;min-width:12px}
@media(min-width:1201px){.table-heading,.app-row{grid-template-columns:minmax(225px,1.1fr) minmax(225px,1.25fr) 130px minmax(140px,.8fr) 64px;gap:12px}.community-hidden .table-heading,.community-hidden .app-row{grid-template-columns:minmax(230px,1.1fr) minmax(250px,1.4fr) 130px 0 64px;gap:12px}.layout{max-width:1540px}}

/* Keep a person's apps next to their name, including up to five logos before expansion. */
body.people-active .sidebar{display:none}
.gm-table-head,.gm-profile-row>summary{grid-template-columns:minmax(205px,240px) minmax(300px,1fr) 90px 95px 46px;gap:12px}
.gm-profile-row>summary{padding:11px 14px}.gm-person{gap:9px}.gm-person strong{font-size:14px}.gm-person small{font-size:12px}.person-avatar{width:31px;height:31px;flex-basis:31px}.gm-rating b,.gm-world-rank b{font-size:14px}.gm-rating small,.gm-world-rank small{font-size:12px}.gm-app-count b{font-size:19px}
.gm-linked-apps{display:flex;align-items:flex-start;gap:7px;min-width:0}.gm-app-mini{display:flex;flex-direction:column;align-items:center;gap:4px;width:58px;min-width:0;color:var(--ink-2)}.gm-app-mini .app-logo{width:28px;height:28px;min-width:28px;border-radius:7px;border:1px solid var(--line);background:var(--tile);padding:3px;object-fit:contain}.gm-app-mini>span{font-size:12px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gm-app-mini:hover{color:var(--accent-text)}
.gm-app-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.gm-app-link{display:block;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);min-width:0}.gm-product{gap:7px;font-size:12px}.gm-product span{overflow-wrap:anywhere}.gm-role{font-size:12px;line-height:1.6;margin-top:7px}.gm-role .evidence-link{font-size:12px}

/* Recent evidence gets readable space; domain-only dates are explicitly marked. */
.timeline-focus{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:16px;margin-bottom:20px}
.timeline-focus-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.timeline-focus-heading h3{font-family:var(--font-display);font-size:30px;font-weight:550;margin:4px 0}.timeline-focus-heading h3>span{font-family:var(--font-ui);font-size:12px;color:var(--muted);margin-left:7px}.timeline-focus-heading>.text-button{font-size:12px;color:var(--accent-text)}
.timeline-recent{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.recent-app{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);display:flex;flex-direction:column;gap:5px;min-width:0}.recent-app.domain-only{border-style:dashed}.recent-app>button{display:flex;gap:8px;align-items:center;text-align:left;min-width:0}.recent-app .app-logo{width:30px;height:30px;min-width:30px;background:var(--tile);border-radius:7px;padding:3px;object-fit:contain}.recent-app strong{display:block;font-size:12px;overflow-wrap:anywhere}.recent-app small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.recent-app>.evidence-link{font-size:12px;align-self:flex-start;margin-left:38px}.recent-app>.evidence-link .icon{width:10px;height:10px}
.current-year{min-width:150px;flex:2 1 0;padding:8px;background:var(--accent-soft);border-radius:9px}.current-year .ystack{display:grid;grid-template-columns:repeat(4,26px);gap:4px}.current-year .ylogo{width:26px;height:26px}.ylogo.domain-only{border:1px dashed var(--muted)}
@media(min-width:1550px){.collection-detail-list{grid-template-columns:repeat(4,minmax(0,1fr))}.timeline-recent{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.collection-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.gm-table-head,.gm-profile-row>summary{grid-template-columns:minmax(180px,210px) minmax(200px,1fr) 80px 75px 40px;gap:8px}.gm-app-mini{width:43px}.gm-app-mini>span{font-size:12px}.gm-linked-apps{gap:4px}.gm-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timeline-recent{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gm-table-head{display:none}.gm-profile-row>summary{grid-template-columns:minmax(0,1fr) 75px 45px;gap:8px}.gm-person{grid-column:1}.gm-rating{grid-column:2}.gm-app-count{grid-column:3;grid-row:1}.gm-world-rank{display:none}.gm-linked-apps{grid-column:1/-1;grid-row:2;gap:10px;margin-left:39px;margin-top:4px}.gm-app-mini{width:auto;max-width:90px;flex-direction:row;gap:4px}.gm-app-mini .app-logo{width:22px;height:22px;min-width:22px}.gm-app-mini>span{font-size:12px}.gm-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gm-person strong{font-size:13px}.gm-linked-apps{flex-wrap:wrap}}
@media(max-width:520px){.collection-detail-list,.collection-grid{grid-template-columns:1fr}.product-preview{aspect-ratio:2.1}.collection-app{padding:13px}.collection-app h2{font-size:17px}.collection-app .app-logo{width:36px;height:36px;min-width:36px}.visual-features{margin:10px 0 8px}.visual-features>span{font-size:12px}.collection-app .app-trust{gap:12px}.collection-switch{gap:2px}.collection-switch button{font-size:12px;padding:6px}.collection-switch .icon{width:12px;height:12px;min-width:12px}.timeline-focus{padding:12px}.timeline-recent{grid-template-columns:1fr}.gm-app-mini>span{max-width:56px}.gm-linked-apps{margin-left:0;gap:8px}}

.product-preview,.preview-unavailable{aspect-ratio:auto;height:120px;flex:0 0 120px}
.visual-features{margin:8px 0}.visual-features>span{gap:4px;padding:3px 2px}.visual-features .icon{width:19px;height:19px;min-width:19px}
.collection-app-heading{margin-bottom:9px;min-height:34px}
@media(max-width:520px){.product-preview,.preview-unavailable{height:142px;flex-basis:142px}}

.recent-app{display:grid;grid-template-columns:minmax(0,1fr) 17px;align-items:center;gap:5px}.recent-app>.evidence-link{margin:0;align-self:center;justify-self:end;font-size:0}.recent-app>.evidence-link .icon{width:12px;height:12px}

/* Source-linked screenshot galleries */
.screenshot-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.screenshot-heading h3{margin:0}.screenshot-heading>span{font-size:12px;color:var(--muted)}
.screenshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.screenshot-tile{min-width:0;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);overflow:hidden;text-align:left;color:var(--ink)}
.screenshot-tile img{display:block;width:100%;height:115px;object-fit:contain;background:var(--surface-3)}.screenshot-tile>span{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:8px;font-size:12px;line-height:1.45}.screenshot-tile .icon{width:12px;height:12px;flex-shrink:0}.screenshot-tile:hover{border-color:var(--accent)}
.gallery-stage{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;min-height:250px;background:var(--surface-2);overflow:hidden}.gallery-main{display:block;width:auto;max-width:100%;height:auto;max-height:58dvh;object-fit:contain}.gallery-caption{padding:13px 0 8px}.gallery-caption strong{font-size:15px}.gallery-caption p{font-size:12px;color:var(--muted);margin:4px 0}.gallery-caption p:empty{display:none}.gallery-caption small{font-size:12px;color:var(--muted)}
.gallery-frame{position:relative}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-md);cursor:pointer}.gallery-arrow:hover,.gallery-arrow:focus-visible{border-color:var(--accent);color:var(--accent-text)}.gallery-arrow.prev{left:12px}.gallery-arrow.next{right:12px}.gallery-arrow .icon{width:22px;height:22px;color:inherit}.gallery-thumbs{display:flex;gap:9px;overflow-x:auto;padding:3px 0 10px;margin-top:12px}.gallery-thumbs button{flex:0 0 125px;max-width:125px;border:1px solid var(--line);padding:4px;background:var(--surface-2);color:var(--ink);border-radius:7px;text-align:left}.gallery-thumbs button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.gallery-thumbs img{display:block;width:100%;height:65px;object-fit:contain}.gallery-thumbs span{display:block;font-size:12px;padding:4px;line-height:1.4}
.access-note{padding:12px 14px;margin:0 0 16px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);font-size:12px;line-height:1.65;color:var(--ink-2)}
@media(max-width:650px){.screenshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screenshot-tile img{height:125px}.gallery-main{max-height:48dvh}.gallery-arrow{width:38px;height:38px}.gallery-arrow.prev{left:8px}.gallery-arrow.next{right:8px}.gallery-stage{min-height:180px}.gallery-thumbs button{flex-basis:100px;max-width:100px}}
.reddit-purpose-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px}.reddit-purpose-links button{display:flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);font-size:12px;color:var(--ink-2)}.reddit-purpose-links .icon{width:12px;height:12px}.reddit-gallery-link{display:flex;align-items:center;gap:5px;border:0;background:none;padding:0;margin-top:12px;font-size:12px;color:var(--accent-text)}.reddit-gallery-link .icon{width:13px;height:13px}
.gallery-caption strong{display:block;margin-bottom:5px}.gallery-caption small{display:block}.gallery-caption small .evidence-link{margin-left:6px}
button.chip-more{display:inline-flex;align-items:center;gap:4px;padding:4px 2px;border:0;border-radius:4px;background:none;color:var(--accent-text);cursor:pointer;font:inherit;font-size:12px}button.chip-more:hover{text-decoration:underline;text-underline-offset:3px}button.chip-more .icon{width:11px;height:11px}
/* Keep all three people directories reachable on narrow screens. */
.people-tabs{flex-wrap:wrap}.people-tabs button{flex-shrink:0}
@media(max-width:500px){.people-tabs{width:100%;gap:3px}.people-tabs button{justify-content:center;flex:1 1 46%;white-space:nowrap}.people-tabs button:last-child{flex-basis:100%}}
/* Full-page captures remain legible; scroll the image at its reading width. */
.gallery-stage.page-scroll{display:block;max-height:58dvh;overflow:auto;min-height:0}.gallery-stage.page-scroll .gallery-main{width:100%;max-height:none}.screenshot-tile.long-page img{object-fit:cover;object-position:top}
@media(max-width:650px){.gallery-stage.page-scroll{max-height:48dvh}}

/* Support remains separate from comparison and save feedback. */
body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.support-button{position:fixed;z-index:20;right:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;height:46px;padding:0 13px;border:1px solid var(--gold-line);border-radius:999px;background:var(--gold-soft);color:var(--gold);box-shadow:var(--shadow-md);font-size:var(--fs-sm);font-weight:650;text-decoration:none}
.support-label{min-width:0;max-width:0;margin-left:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .18s ease,margin-left .18s ease,opacity .18s ease}
.support-button:hover{background:var(--surface);border-color:var(--gold);text-decoration:none}
.support-button:focus-visible{outline-color:var(--gold)}
.support-button:focus-visible .support-label{max-width:160px;margin-left:9px;opacity:1}
@media(hover:hover){.support-button:hover .support-label{max-width:160px;margin-left:9px;opacity:1}}
body:has(.compare-bar:not([hidden])) .support-button,body:has(.toast:not([hidden])) .support-button{display:none}
@media(max-width:680px){.support-button{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.support-label{transition:none}}
