/* The research map uses the existing theme tokens; feature colours stay consistent. */
.features-active .sidebar{display:none}
.features-active .layout{grid-template-columns:minmax(0,1fr)}
.features-active .page-footer{margin-top:28px}
.feature-map-view{padding:14px 0 28px;min-width:0}
.fm-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:14px}
.fm-header p,.fm-section-top p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}
.fm-header>.button{flex:none}
.fm-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin-bottom:16px;padding:12px 0}
.fm-stats>div{display:flex;flex-direction:column;gap:6px;padding:0 25px;border-left:1px solid var(--line)}
.fm-stats>div:first-child{padding-left:0;border:0}
.fm-stats b{font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.8px}
.fm-stats b span{font-size:19px;color:var(--muted);font-weight:400}
.fm-stats>div>span{color:var(--muted);font-size:13px}
.fm-modes{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:20px}
.fm-modes button{display:flex;align-items:center;gap:8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:13px 18px;color:var(--muted);font-weight:500;font-size:14px;white-space:nowrap}
.fm-modes button.active{color:var(--accent-text);border-color:var(--accent)}
.fm-modes .icon{width:18px;height:18px}
.fm-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.fm-search{flex:1;min-width:180px;max-width:400px}
.fm-controls input,.fm-controls select,.fm-section-top select{height:41px;border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);background:var(--surface);font:inherit;font-size:13px;padding:8px 12px;max-width:100%}
.fm-controls input{width:100%}
.fm-ranges,.fm-layout-switch{display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px}
.fm-ranges button,.fm-layout-switch button{border:0;padding:7px 11px;border-radius:5px;background:none;color:var(--muted);font-size:12px;white-space:nowrap}
.fm-ranges button.active,.fm-layout-switch button.active{color:var(--accent-text);background:var(--accent-soft)}
.fm-section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.fm-section-top h2{font-family:var(--font-display);font-size:29px;line-height:1.15;font-weight:500;margin:0;letter-spacing:-.4px}
.fm-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px}
.fm-map-layout>div{min-width:0}
.fm-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:14px;min-height:16px}
.fm-legend span{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.fm-legend i{height:8px;width:8px;border-radius:2px}
.fm-treemap{width:100%;height:570px;position:relative;border-radius:10px;overflow:hidden;background:var(--paper)}
.fm-tile{position:absolute;border:2px solid var(--paper);border-radius:9px;background:var(--tile-color);color:var(--fm-tile-ink);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:clamp(6px,1vw,16px);overflow:hidden;text-align:left;min-width:0;transition:filter .15s}
.fm-tile:hover{filter:brightness(1.05)}
.fm-tile.selected{box-shadow:inset 0 0 0 3px var(--fm-tile-ink)}
.fm-tile:focus-visible{outline:3px solid var(--ink);outline-offset:-6px;z-index:1}
.fm-tile .icon{width:20px;height:20px;stroke-width:1.6}
.fm-tile-name{font-size:clamp(12px,1vw,15px);font-weight:600;line-height:1.15;overflow-wrap:normal;word-break:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0;max-width:100%}
.fm-tile strong{font-size:clamp(18px,2.3vw,31px);font-weight:500;line-height:1.1;letter-spacing:-.7px;flex-shrink:0}
.fm-tile strong small{font-size:12px;font-weight:400;letter-spacing:0;color:inherit;opacity:.8}
.fm-tile.compact{gap:3px;padding:8px}
.fm-tile.compact .fm-tile-icon{display:none}
.fm-tile.compact .fm-tile-name{font-size:12px;-webkit-line-clamp:2}
.fm-tile.compact strong{font-size:16px}
.fm-tile.compact strong small{display:none}
.fm-feature-detail{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:20px;position:sticky;top:100px;max-height:calc(100vh - 120px);overflow:auto;scrollbar-width:thin}
.fm-group-label{color:var(--muted);font-size:12px;display:flex;gap:6px;align-items:center}
.fm-group-label:before{content:'';width:8px;height:8px;background:var(--group-color);border-radius:2px}
.fm-feature-detail h3{display:flex;gap:9px;align-items:center;margin:12px 0 8px;font-size:19px;font-weight:600;line-height:1.25}
.fm-feature-detail h3 .icon{flex:none;width:21px;height:21px;color:var(--muted)}
.fm-feature-detail>p{font-size:13px;line-height:1.6;color:var(--muted);margin:8px 0 16px}
.fm-feature-count{display:flex;align-items:center;gap:14px;border-block:1px solid var(--line);padding:15px 0;margin-bottom:10px}
.fm-feature-count>strong{font-size:39px;font-weight:500;line-height:1}
.fm-feature-count>span{color:var(--muted);font-size:12px;line-height:1.7}
.fm-feature-count b{font-weight:500;color:var(--ink)}
.fm-app{min-width:0;padding:10px 0;border-bottom:1px solid var(--line)}
.fm-app>button{border:0;background:none;padding:0;display:flex;align-items:center;gap:9px;color:var(--ink);text-align:left;width:100%;min-height:34px}
.fm-app img,.fm-initial,.fm-milestone-app img{width:32px;height:32px;border:1px solid var(--line);border-radius:7px;object-fit:contain;background:var(--tile);flex:none}
.fm-initial{display:grid;place-items:center;color:var(--tile-ink);font-size:12px}
.fm-app>button>span:not(.fm-initial):not(.fm-arrow){min-width:0;flex:1}
.fm-app strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.fm-app small{font-size:12px;color:var(--muted);display:block;margin-top:4px}
.fm-arrow{color:var(--muted);font-size:13px}
.fm-app>a{font-size:12px;margin:4px 0 0 41px;display:inline-block;color:var(--muted);text-decoration:none}
.fm-app>a:hover{color:var(--accent-text);text-decoration:underline}
.fm-more{margin:12px 0}
.fm-overlap{margin-top:22px}
.fm-overlap h4{font-size:12px;color:var(--muted);font-weight:500;margin:0 0 10px}
.fm-overlap button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;color:var(--ink);font-size:12px;padding:7px 0;text-align:left}
.fm-overlap .icon{width:15px;height:15px;color:var(--muted);flex:none}
.fm-overlap span{flex:1}
.fm-overlap b{font-weight:500;color:var(--muted)}
.fm-history-link{font-size:12px;padding:13px 0 2px;margin-top:15px;color:var(--accent-text);border:0;background:none;text-align:left}
.fm-footnote{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0}
.fm-niches{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}
.fm-niches>span{width:100%;font-size:12px;color:var(--muted);margin-bottom:3px}
.fm-niches button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 9px;color:var(--ink);font-size:12px}
.fm-niches button[aria-pressed="true"]{border-color:var(--accent)}
.fm-niches .icon{width:13px;height:13px;color:var(--muted)}
.fm-niches b{font-weight:500;color:var(--muted)}
.fm-empty{padding:48px 20px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:10px;color:var(--muted);font-size:14px}
.fm-ranking{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px}
.fm-ranking>button{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:7px;padding:10px;background:var(--surface);color:var(--ink);min-height:58px}
.fm-ranking>button.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.fm-ranking .icon{flex:none;width:17px;height:17px;color:var(--muted)}
.fm-ranking>button>span{flex:1;font-size:12px;min-width:0}
.fm-ranking i{height:4px;margin-top:7px;display:block;border-radius:3px}
.fm-ranking b{font-size:15px;font-weight:500}
.fm-buckets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.fm-buckets button{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:13px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:18px 20px 24px}
.fm-buckets button.active{border-color:var(--accent);background:var(--accent-soft)}
.fm-buckets button>span{font-size:13px;color:var(--muted)}
.fm-buckets strong{font-size:30px;font-weight:500;line-height:1}
.fm-buckets strong small{font-size:12px;color:var(--muted);font-weight:400}
.fm-buckets i{display:block;height:4px;position:absolute;bottom:0;left:0;background:var(--accent)}
.fm-breadth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.fm-breadth-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:15px;min-width:0}
.fm-breadth-card .fm-app{padding:0 0 12px}
.fm-cap-dots{display:flex;gap:5px;flex-wrap:wrap;margin:15px 0 12px}
.fm-cap-dots button{width:29px;height:29px;border:0;border-radius:6px;background:var(--tile-color);display:grid;place-items:center;padding:5px;color:var(--fm-tile-ink)}
.fm-cap-dots .icon{width:17px;height:17px}
.fm-breadth-card summary{color:var(--muted);font-size:12px;cursor:pointer}
.fm-mini-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fm-mini-features button{font-size:12px;padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);text-align:left}
.fm-history-key{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;color:var(--muted);margin:22px 0 25px}
.fm-history-key>span{display:flex;align-items:center;gap:6px}
.fm-history-key i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.fm-history-key i.announcement{background:var(--gold)}
.fm-history-key i.documented_by{border:1.5px solid var(--muted);background:none}
.fm-history{max-width:1040px}
.fm-milestone{display:grid;grid-template-columns:95px minmax(0,1fr);gap:25px;position:relative;padding:0 0 27px}
.fm-milestone:before{content:'';position:absolute;left:106px;top:8px;bottom:0;width:1px;background:var(--line-strong)}
.fm-milestone:last-child:before{bottom:25px}
.fm-milestone:after{content:'';position:absolute;left:102px;top:8px;width:9px;height:9px;background:var(--surface);border:2px solid var(--accent);border-radius:50%}
.fm-milestone-date{text-align:right;padding-top:1px}
.fm-milestone-date strong{font-size:25px;font-weight:500;line-height:1.15;letter-spacing:-.6px;display:block}
.fm-milestone-date>span{font-size:12px;color:var(--muted)}
.fm-milestone-body{margin-left:14px;padding:18px 22px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.fm-kind{font-size:12px;font-weight:500;border-radius:4px;padding:3px 6px;color:var(--accent-text);background:var(--accent-soft)}
.fm-kind.documented_by{color:var(--muted);background:var(--paper)}
.fm-kind.announcement{color:var(--gold);background:var(--gold-soft)}
.fm-milestone h3{font-size:17px;font-weight:500;margin:12px 0 14px;line-height:1.4}
.fm-milestone-app{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:13px}
.fm-milestone-app button{display:flex;align-items:center;gap:7px;border:0;background:none;color:var(--ink);padding:0;font-size:12px;text-align:left}
.fm-milestone-app img,.fm-milestone-app .fm-initial{width:25px;height:25px;border-radius:5px}
.fm-milestone-app .fm-feature-link{color:var(--muted);font-size:12px}
.fm-feature-link .icon{width:14px;height:14px}
.fm-milestone details{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:10px}
.fm-milestone summary,.fm-method summary,.fm-questions summary{cursor:pointer}
.fm-milestone-body>a,.fm-questions a{font-size:12px;color:var(--accent-text);text-decoration:none}
.fm-milestone-body>a:hover,.fm-questions a:hover{text-decoration:underline}
.fm-method,.fm-questions{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:12px;color:var(--muted);line-height:1.7}
.fm-method p{max-width:950px}
.fm-questions article{max-width:850px;padding:12px 0;border-bottom:1px solid var(--line)}
.fm-questions h3{font-size:14px;font-weight:500;color:var(--ink)}
@media(min-width:1700px){.fm-treemap{height:650px}}
@media(max-width:1150px){.fm-map-layout{grid-template-columns:minmax(0,1fr) 280px;gap:17px}.fm-treemap{height:650px}.fm-feature-detail{padding:16px}.fm-tile-name{font-size:12px}.fm-tile.compact .fm-tile-name{font-size:12px}.fm-tile-icon{display:none}.fm-breadth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.fm-map-layout{grid-template-columns:1fr}.fm-feature-detail{position:static;max-height:none}.fm-treemap{height:610px}.fm-header{align-items:flex-start}.fm-header>.button{margin-top:8px}.fm-feature-detail .fm-apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.fm-feature-count{justify-content:flex-start}.fm-overlap{max-width:450px}.fm-tile-name{font-size:13px}.fm-tile.compact .fm-tile-name{font-size:12px}}
@media(max-width:520px){.fm-header{gap:12px;flex-direction:column;margin-bottom:20px}.fm-header p{font-size:13px}.fm-header>.button{font-size:12px;padding:6px 9px;margin-top:0}.fm-stats{gap:10px;padding:17px 0;margin-bottom:15px}.fm-stats>div{padding:0 0 0 12px}.fm-stats b{font-size:25px}.fm-stats b span{font-size:13px}.fm-stats>div>span{font-size:12px;line-height:1.5}.fm-modes{gap:0;justify-content:space-between}.fm-modes button{font-size:12px;gap:5px;padding:13px 7px}.fm-modes .icon{width:15px;height:15px}.fm-search{min-width:150px}.fm-controls>label:not(.fm-search){width:135px}.fm-controls select{width:100%;font-size:12px}.fm-ranges{width:100%;justify-content:space-between}.fm-ranges button{flex:1}.fm-section-top{align-items:flex-start;gap:12px;flex-wrap:wrap}.fm-section-top h2{font-size:25px}.fm-section-top p{font-size:12px}.fm-layout-switch button{padding:6px 9px;font-size:12px}.fm-treemap{height:650px}.fm-tile{border-width:1.5px;border-radius:6px;padding:6px;gap:4px}.fm-tile-name{font-size:12px;-webkit-line-clamp:3}.fm-tile strong{font-size:17px}.fm-tile strong small{display:none}.fm-tile.compact{padding:5px}.fm-tile.compact .fm-tile-name{font-size:12px}.fm-tile.compact strong{font-size:13px}.fm-legend{gap:7px 12px}.fm-legend span{font-size:12px}.fm-feature-detail .fm-apps{grid-template-columns:1fr}.fm-ranking{grid-template-columns:1fr}.fm-buckets{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fm-buckets button{padding:14px 15px 20px;gap:8px}.fm-buckets strong{font-size:27px}.fm-buckets button>span{font-size:12px}.fm-breadth-grid{grid-template-columns:1fr}.fm-history-key{gap:10px;font-size:12px}.fm-milestone{grid-template-columns:55px minmax(0,1fr);gap:14px}.fm-milestone:before{left:64px}.fm-milestone:after{left:60px}.fm-milestone-date strong{font-size:21px}.fm-milestone-date>span{font-size:12px}.fm-milestone-body{margin-left:7px;padding:14px}.fm-milestone h3{font-size:15px}.fm-milestone-app{gap:10px}.fm-milestone-app button{font-size:12px}.fm-footnote{font-size:12px}}
@media(max-width:650px){.view-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.view-tabs button{font-size:12px;padding-inline:4px}.features-active .masthead{position:relative}.fm-feature-detail{scroll-margin-top:15px}}

/* HOM-122: filters shared with the Apps page, above the map. */
.fm-filters{margin:0 0 18px}
.features-active .filter-panel .search,.features-active .filter-panel .currency-control{display:none}
.fm-scope-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fm-scope-row>:not([hidden]){margin-top:10px}
.fm-scope{margin:0;font-size:13px;color:var(--muted)}
.fm-scope strong{color:var(--ink);font-weight:650}
.fm-scope-row>.active-filters{border-top:0;padding:0;flex:1 1 auto}
.features-active .filter-view{display:none}
.features-active .filter-panel{padding-bottom:10px}
/* No app search here, so the selects, Filters and Reset share one row. */
.features-active .filter-main{display:flex;flex-wrap:wrap}
.features-active .filter-main>label:not(.search){flex:1 1 150px}
