/* Global top navigation and research operation sidebar. Loaded last. */
:root{--nav-height:56px;--controls-width:270px;--nav-font-size:13px;--nav-text-color:var(--ink)}
html{scroll-padding-top:calc(var(--nav-height) + 12px)}
.top-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;min-height:var(--nav-height);padding:6px 16px;background:white;border-bottom:1px solid var(--line)}
.top-nav .brand{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:8px;row-gap:1px;align-items:center;flex-shrink:0;min-width:0;font-size:15px;line-height:1.3;letter-spacing:0}
.top-nav .brand-mark{grid-row:1 / 3;width:30px;height:30px;border-radius:7px;font-size:16px}
.top-nav .brand>span:last-of-type{grid-column:2}
.top-nav .brand .build-label{grid-column:2;max-width:210px;font-size:9px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-nav nav{display:flex;gap:4px;min-width:0;flex-shrink:0}
.top-nav .nav-item{align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 10px;font-size:var(--nav-font-size);line-height:1.3;color:var(--nav-text-color);text-align:center;white-space:nowrap;margin:0}
.top-nav .nav-item.active{color:var(--green)}
.top-nav .nav-symbol{display:grid;place-items:center;width:18px;height:18px;flex-shrink:0;font-size:17px;line-height:1}
.top-nav .nav-symbol svg{width:18px;height:18px}
.top-nav .nav-text{display:block;line-height:1.3}
.top-nav .role-login{align-self:center;min-height:36px;padding:6px 8px;font-size:12px;line-height:1.3;text-align:center;border-radius:6px}
.top-nav .role-login:hover{background:var(--pale)}
body main,body.nav-collapsed main{margin-left:0;padding:18px 22px;max-width:none}
.page-header{margin-bottom:14px}.page-header>div{display:flex;align-items:center;gap:18px}.page-header p{margin:0}
.research-sidebar{position:fixed;top:var(--nav-height);left:0;bottom:0;width:var(--controls-width);background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}
.research-sidebar-body{overflow-y:auto;min-height:0;flex:1;padding:14px 16px;overscroll-behavior:contain}
.research-sidebar .research-controls{border:0;border-radius:0;box-shadow:none;padding:0;margin:0;display:block}
.research-sidebar .control-section+ .control-section{margin-top:18px;padding-top:14px}
.research-sidebar .control-section>summary{padding:4px 0 8px;font-size:14px}
.research-sidebar .sample-controls,.research-sidebar .research-top{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%;margin:0}
.research-sidebar .filter-year{justify-content:space-between}
.research-sidebar .ranges{display:grid;gap:12px;margin:0}
.research-sidebar .ranges fieldset{display:flex;gap:6px;min-width:0}
.research-sidebar .ranges legend{float:none;margin:0 0 6px;line-height:1.6}
.research-sidebar .ranges input{width:0;min-width:0;flex:1;padding:8px;font-size:13px}
.research-sidebar .research-top label{display:grid;gap:6px;font-size:12px;white-space:normal}
.research-sidebar .research-top select{width:100%;max-width:100%;min-width:0;padding:8px;font-size:13px}
.research-sidebar .period select{flex:1;min-width:0}.research-sidebar #open-filters{justify-content:center}.research-sidebar .compact-reset{justify-self:end}
.research-sidebar .method-info{display:block;margin-top:14px}.research-sidebar .method-info>div{position:static;width:100%;box-shadow:none;padding:10px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.research-sidebar-footer{padding:14px 16px;border-top:1px solid var(--line);background:white;flex-shrink:0}.research-sidebar-footer .button{width:100%;justify-content:center;color:var(--green)}
body.research-page main{margin-left:var(--controls-width);padding:14px 16px}
.mobile-filter-bar{display:none}
.research-page .chart-scroll{max-height:calc(100dvh - 240px);min-height:300px}
.research-page .group-panel{top:calc(var(--nav-height) + 14px)}.research-page .group-panel #group-body{max-height:calc(100dvh - 180px)}
.research-page .chart-heading{padding:14px 16px}.research-page .result-line{padding:12px 16px}
@media(min-width:1051px){.research-page .research-workspace{grid-template-columns:minmax(0,1fr) 10px var(--panel-width,380px);gap:0}.research-page .panel-collapsed{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 :root{--nav-height:105px}
 .top-nav{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;column-gap:8px;row-gap:4px;padding:6px 10px;min-height:var(--nav-height)}
 .top-nav .brand{grid-column:1;grid-row:1;font-size:15px}
 .top-nav .brand .build-label{max-width:100%}
 .top-nav .role-login{grid-column:2;grid-row:1;margin:0;min-height:44px;max-width:none;white-space:nowrap;padding:6px}
 .top-nav nav{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));width:100%;gap:2px}
 .top-nav .nav-item{min-width:0;min-height:44px;padding:4px 0;font-size:var(--nav-font-size)}
 .top-nav .nav-symbol{display:none}
 body main,body.research-page main,body.nav-collapsed main{margin-left:0;padding:12px}
 .page-header>div{flex-wrap:wrap;gap:8px}
 .research-sidebar{position:static;width:100%;border-right:0;border-bottom:1px solid var(--line)}.research-sidebar-body{padding:12px;overflow:visible}.research-sidebar-footer{padding:10px 12px}.research-sidebar .ranges input,.research-sidebar .research-top select{font-size:16px;min-height:44px}
 .research-sidebar .control-section+ .control-section{margin-top:12px;padding-top:8px}.research-sidebar .research-top{grid-template-columns:1fr 1fr}.research-sidebar .research-top label:nth-child(n+3){grid-column:1/-1}
 .mobile-filter-bar{display:flex;justify-content:flex-end;margin-bottom:10px}.mobile-filters-collapsed .research-sidebar{display:none}
 .research-page .chart-scroll{min-height:220px;max-height:65dvh}.research-page .group-panel #group-body{max-height:65dvh}.research-page .group-panel{scroll-margin-top:calc(var(--nav-height) + 12px)}
}
@media(max-width:760px){.mobile-filter-bar{margin:0;padding:8px 12px;background:white;border-bottom:1px solid var(--line)}}
.detail-tools{position:relative;background:white;z-index:3;padding:10px 0 6px;border-block:1px solid var(--line)}.detail-search-line{display:flex;gap:6px;align-items:center}.detail-search-line input{width:0;flex:1;min-width:0;border:1px solid #dce2e6;border-radius:5px;padding:8px;font-size:12px}.detail-search-line .button{padding:8px;font-size:12px;flex-shrink:0}.group-panel #group-body .detail-tools p{margin:6px 0;font-size:11px;line-height:1.6}.detail-filter-content{padding:16px 24px}.detail-filter-content p{font-size:12px;color:var(--muted);line-height:1.7}.detail-sort-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-sort-controls label{display:grid;gap:7px;font-size:13px}.detail-sort-controls select{width:100%;max-width:100%}.detail-range{display:flex;align-items:end;gap:6px}.detail-range input{width:0;min-width:0;flex:1;padding:8px;border:1px solid #dce2e6;border-radius:5px;font-size:14px}#detail-validation{color:#b23d3d}.detail-filter-content .multi-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.detail-search-line input,.detail-range input{font-size:16px;min-height:44px}.detail-filter-content{padding:12px}.detail-sort-controls{grid-template-columns:1fr}.detail-filter-content .multi-filters{grid-template-columns:1fr}}

/* Keep result updates from choosing the search controls as a scroll anchor. */
.detail-tools,#detail-entry-list{overflow-anchor:none}
.group-panel #group-body{overscroll-behavior-y:contain}
.range-page .range-history{display:none!important}.range-track:after{display:none}.range-segment{position:absolute;top:8px;height:5px;background:var(--green);border-radius:3px}.range-end{position:absolute;top:5px;width:11px;height:11px;transform:translateX(-50%);border:2px solid var(--green);background:white;border-radius:50%}.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:var(--label-width) minmax(60px,1fr) 90px 56px}.range-page .range-axis .axis-scale span{display:block!important;font-size:10px}.range-page .group-summary strong{font-size:16px}
@media(max-width:760px){.top-nav .nav-item{padding-inline:4px;font-size:var(--nav-font-size)}.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:minmax(0,var(--label-width)) minmax(30px,1fr) 80px;gap:4px}.range-page .range-axis .axis-scale span:not(:nth-child(3)){display:none!important}}
.source-link{color:var(--green);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.source-link:hover{color:#084735}.group-title-line{display:flex;align-items:center;gap:6px}.group-title-line h2{min-width:0;flex:1}.overview-toggle{flex-shrink:0;width:28px;height:28px;border:1px solid var(--line);border-radius:5px;color:var(--green);font-size:20px;display:grid;place-items:center;line-height:1}.overview-toggle:hover{background:var(--pale)}.panel-head>div:first-child{min-width:0;flex:1}
@media(pointer:coarse){.overview-toggle{width:44px;height:44px}}
/* Fixed SVG geometry keeps both disclosure states centered. */
.overview-toggle{padding:0;line-height:1;align-self:center}.overview-toggle svg{display:block;width:16px;height:16px;stroke-width:2}.overview-toggle[aria-expanded="false"] svg{transform:rotate(180deg)}
/* Share column edges between scale and range marks at every panel width. */
.range-page .range-axis .axis-scale{margin-inline:0}.range-page .chart-scroll{scrollbar-gutter:stable}.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:var(--label-width) minmax(40px,1fr) 106px 48px;padding-inline:6px}.range-page .range-axis .axis-scale span:first-child{transform:none}.range-page .range-axis .axis-scale span:last-child{transform:translateX(-100%)}
.range-title-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.range-page .chart-heading{gap:8px;flex-wrap:wrap}.range-toggle{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:11px;color:var(--muted);padding:4px 5px;border:1px solid var(--line);border-radius:5px;min-height:28px}.switch-track{position:relative;display:block;width:30px;height:16px;background:var(--green);border-radius:10px}.switch-track>span{position:absolute;left:2px;top:2px;width:12px;height:12px;background:white;border-radius:50%}.range-toggle[aria-checked="true"] .switch-track>span{left:16px}.range-toggle[aria-checked="false"] .switch-score,.range-toggle[aria-checked="true"] .switch-rank{color:var(--green);font-weight:600}
@media(max-width:760px){.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:minmax(0,var(--label-width)) minmax(30px,1fr) 96px;gap:4px;padding-inline:4px}.range-page .range-axis .axis-scale span:nth-child(3){transform:translateX(-50%)}.range-title-controls{gap:8px}.range-toggle{min-height:44px}}
@media(pointer:coarse){.range-toggle{min-height:44px}}
.range-page .range-axis>span{white-space:nowrap}.range-page .research-workspace .range-axis,.range-page .research-workspace .bar-row{grid-template-columns:var(--label-width) minmax(40px,1fr) 106px 56px}
@media(max-width:760px){.range-page .research-workspace .range-axis,.range-page .research-workspace .bar-row{grid-template-columns:minmax(0,var(--label-width)) minmax(30px,1fr) 96px}}

/* Professional counts and population sums occupy adjacent columns. */
.research-workspace .bar-axis,.research-workspace .bar-row{grid-template-columns:var(--label-width) minmax(40px,1fr) 58px var(--count-width,56px) var(--population-width,80px)}
.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:var(--label-width) minmax(40px,1fr) 106px var(--count-width,56px) var(--population-width,80px)}
.research-workspace .bar-row{min-height:29px}.research-workspace .bar-axis{height:36px}
.student-count{color:var(--green)}.bar-population{text-align:right;font-size:10px;white-space:nowrap}
.research-workspace .bar-count,.research-workspace .bar-axis>.count-heading,.research-workspace .bar-axis>.population-heading,.bar-population{display:block;font-variant-numeric:tabular-nums}
.group-summary>div:first-child{grid-column:1/-1}.group-panel #group-body .population-note{font-size:11px;line-height:1.6}
@media(max-width:760px){.research-workspace .bar-axis,.research-workspace .bar-row{grid-template-columns:minmax(0,var(--label-width)) minmax(24px,1fr) 54px var(--count-width,50px) var(--population-width,70px);gap:4px;padding-inline:4px}.range-page .research-workspace .bar-axis,.range-page .research-workspace .bar-row{grid-template-columns:minmax(0,var(--label-width)) minmax(24px,1fr) 86px var(--count-width,50px) var(--population-width,70px);gap:4px;padding-inline:4px}.research-workspace .bar-count,.bar-population{font-size:9px}}

/* Compact sample ranges keep labels and both bounds on one line. */
.research-controls .compact-ranges{display:grid;gap:8px;width:100%}
.research-controls .compact-ranges fieldset{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:0;min-width:0}
.research-controls .compact-ranges legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.research-controls .compact-ranges .range-label{font-size:12px;color:var(--muted);white-space:nowrap}
.research-controls .compact-ranges input{width:100%;min-width:0;padding:7px 6px;height:34px;font-size:12px}
.research-sidebar .sample-controls{gap:10px}.chart-search{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.chart-search input{width:100%;min-width:0;height:34px;padding:7px 8px;border:1px solid #dce2e6;border-radius:5px;font-size:12px}
.sample-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.sample-actions #open-filters{flex:1}.sample-actions .compact-reset{padding:7px 0}
@media(max-width:760px){.research-controls .compact-ranges input,.chart-search input{height:44px;min-height:44px;font-size:16px}.sample-actions button{min-height:44px}.research-sidebar .sample-controls{gap:8px}}

.query-syntax{font-size:11px;color:var(--muted);margin-top:-3px;line-height:1.6}.query-syntax summary{cursor:pointer}.query-syntax p{margin:6px 0;overflow-wrap:anywhere}.query-syntax code{font-size:11px;color:var(--ink)}.chart-search input[aria-invalid="true"]{border-color:#b23d3d}

.research-controls .compact-ranges .range-separator{font-size:12px;font-weight:400;color:var(--muted);text-align:center;line-height:1}

/* Statistics controls use the same inline label layout as sample ranges. */
.research-controls .compact-statistics{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:100%;align-items:center}
.research-controls .compact-statistics>label{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:6px;grid-column:auto;font-size:12px;white-space:nowrap;min-width:0}
.research-controls .compact-statistics label select,.research-controls .compact-statistics label select#metric{width:100%;min-width:0;max-width:100%;height:34px;padding:6px;font-size:12px}
.research-controls .compact-statistics .period{display:flex;align-items:center;gap:4px;min-width:0}
.research-controls .compact-statistics .period select{width:0;min-width:0;flex:1}
@media(max-width:760px){.research-controls .compact-statistics label select,.research-controls .compact-statistics label select#metric{height:44px;min-height:44px;font-size:16px}}

.research-workspace .bar-population,.research-workspace .population-heading{text-align:left}.entry-annual td:last-child{white-space:nowrap}

/* Navigation and account controls share the compact mobile type size. */
@media(max-width:760px){:root{--nav-font-size:12px}}
.classification-label{font-size:11px;color:var(--muted);font-weight:400;white-space:nowrap}.classification-change{padding:10px 20px;background:var(--pale);font-size:13px}.classification-change button{margin-left:12px}
@media(min-width:761px) and (max-width:1150px){.top-nav{gap:12px;padding-inline:12px}.top-nav .nav-item{padding-inline:8px}.top-nav .classification-label,.top-nav .nav-symbol{display:none}}

/* Keep detail browsing beside the four research destinations. */
.top-nav{gap:14px}.top-nav .nav-item{padding-inline:8px}.top-nav .nav-detail:first-of-type{margin-left:6px}.top-nav .role-login{margin-left:auto;flex-shrink:0}
@media(min-width:761px) and (max-width:1100px){
 :root{--nav-height:105px}
 .top-nav{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:6px 12px}
 .top-nav .brand{grid-column:1;grid-row:1}.top-nav .role-login{grid-column:2;grid-row:1;min-height:40px}
 .top-nav nav{grid-column:1/-1;display:flex;justify-content:center;gap:4px}.top-nav .nav-item{flex:1;min-height:40px}
}
@media(max-width:760px){
 :root{--nav-height:151px}
 .top-nav{gap:4px 8px}.top-nav nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
 .top-nav .nav-item{padding-inline:3px;min-height:44px}.top-nav .role-login{margin-left:0}
}

/* Nine visible destinations still fit two rows on compact screens. */
@media(max-width:760px){.top-nav nav:has(a[href="./me.html"]:not([hidden])){grid-template-columns:repeat(5,minmax(0,1fr))}}
