
:root {
  --ink: #16303a;
  --muted: #64757d;
  --soft: #eff6f6;
  --line: #d8e3e5;
  --paper: #f5f8f8;
  --white: #ffffff;
  --brand: #0a5865;
  --brand-dark: #063b45;
  --accent: #e4b44f;
  --accent-soft: #fff6df;
  --danger: #a33c34;
  --success: #177364;
  --shadow: 0 18px 50px rgba(18, 53, 61, .12);
  --radius: 16px;
}
* { box-sizing: border-box; }
[hidden], .is-hidden { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.5; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 9999; padding: 10px 14px; background: var(--white); color: var(--brand-dark); border-radius: 8px; transform: translateY(-150%); box-shadow: var(--shadow); font-weight: 800; }
.skip-link:focus { transform: translateY(0); }

/* Header */
.site-header { position: relative; z-index: 2000; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.98); }
.header-inner { min-height: 70px; width: min(1380px, calc(100% - 32px)); margin: 0 auto; display: flex; align-items: center; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; color: var(--ink); text-decoration: none; }
.brand:hover { text-decoration: none; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(135deg, var(--brand), #087684); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .04em; }
.brand-copy { line-height: 1.08; display: grid; gap: 3px; }
.brand-copy small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .09em; }
.brand-copy strong { font-size: 18px; letter-spacing: -.04em; }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.main-nav a { display: inline-flex; align-items: center; min-height: 42px; padding: 9px 11px; border-radius: 9px; color: #304550; font-size: 13px; font-weight: 800; white-space: nowrap; }
.main-nav a:hover, .main-nav a.active { color: var(--brand-dark); background: var(--soft); text-decoration: none; }
.nav-toggle { display: none; width: 42px; height: 42px; padding: 10px; margin-left: auto; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.nav-toggle span:not(.sr-only) { display: block; height: 2px; width: 20px; margin: 4px auto; background: var(--brand-dark); border-radius: 2px; transition: transform .18s ease, opacity .18s ease; }

/* General visual components */
.eyebrow { margin: 0 0 7px; color: var(--brand); font-size: 10px; line-height: 1.25; font-weight: 900; letter-spacing: .12em; }
.button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 0; border-radius: 10px; background: var(--brand); color: #fff !important; font-size: 13px; font-weight: 850; text-decoration: none; transition: transform .15s ease, background .15s ease; }
.button:hover { background: var(--brand-dark); text-decoration: none; transform: translateY(-1px); }
.button.secondary { background: #edf4f5; color: var(--ink) !important; }
.button.secondary:hover { background: #dfecef; }
.button.full { width: 100%; }
.tag { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px; border-radius: 999px; background: #e8f4f1; color: #135d51; font-size: 10px; line-height: 1.1; font-weight: 850; }
.tag.yellow { background: var(--accent-soft); color: #8d5b00; }
.hidden { display: none !important; }
.notice { padding: 16px 18px; border: 1px solid #d9e6e8; border-radius: 12px; background: #fff; color: #41545c; font-size: 14px; line-height: 1.6; }

/* Home / map */
.map-page { display: grid; grid-template-columns: minmax(345px, 420px) minmax(0, 1fr); min-height: calc(100vh - 70px); background: #fff; }
.map-sidebar { z-index: 600; overflow: auto; background: #fff; border-right: 1px solid var(--line); }
.sidebar-header { padding: 29px 26px 20px; }
.sidebar-header h1 { max-width: 335px; margin: 0; font-size: clamp(28px, 2.2vw, 36px); line-height: 1.03; letter-spacing: -.055em; }
.intro { margin: 13px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.map-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 18px 0 14px; }
.map-stats div { padding: 10px 8px; border: 1px solid var(--line); border-radius: 10px; background: #fbfdfd; }
.map-stats strong { display: block; font-size: 18px; line-height: 1; }
.map-stats span { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.22; }
.quick-links { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 14px 0; }
.quick-links a { display: flex; gap: 6px; align-items: center; min-height: 38px; padding: 7px 9px; border: 1px solid #e1eaeb; border-radius: 9px; color: #38515a; font-size: 10px; font-weight: 800; line-height: 1.25; }
.quick-links a span { width: 17px; display: inline-grid; place-items: center; color: var(--brand); font-size: 14px; font-weight: 900; }
.quick-links a:hover { border-color: #bad3d7; background: #f6fbfb; text-decoration: none; }
.year-shortcut { display: inline-block; padding-top: 4px; color: var(--brand); font-size: 12px; font-weight: 850; }
.filter-block { display: grid; gap: 8px; padding: 19px 26px 21px; border-top: 1px solid var(--line); }
.filter-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; }
.filter-heading strong, .filter-block label { font-size: 12px; font-weight: 850; }
.filter-heading button { padding: 2px 0; border: 0; background: transparent; color: var(--brand); font-size: 11px; font-weight: 800; }
.filter-block input[type=search], .filter-block select, .admission-tools input, .admission-tools select, .admin-form input, .admin-form select, .admin-form textarea, .auth-card input, .calculator-card input { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #cbd8da; border-radius: 9px; background: #fff; outline: none; font-size: 14px; }
.filter-block input:focus, .filter-block select:focus, .admission-tools input:focus, .admission-tools select:focus, .admin-form input:focus, .admin-form select:focus, .admin-form textarea:focus, .auth-card input:focus, .calculator-card input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10,88,101,.12); }
.toggle { display: flex; gap: 8px; align-items: center; margin-top: 3px; color: #40545d; }
.toggle input { width: 16px; height: 16px; accent-color: var(--brand); }
.map-results-wrap { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.result-summary { min-height: 24px; padding: 10px 26px 5px; color: var(--muted); font-size: 11px; font-weight: 700; }
.map-results { max-height: 228px; overflow: auto; }
.map-result { display: block; padding: 11px 26px; border-bottom: 1px solid #edf2f3; color: var(--ink); }
.map-result:last-child { border-bottom: 0; }
.map-result:hover { background: #f4faf9; text-decoration: none; }
.map-result strong { display: block; font-size: 13px; line-height: 1.3; }
.map-result small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.institution-panel { padding: 23px 26px 27px; }
.institution-panel.empty { text-align: center; color: var(--muted); }
.panel-icon { width: 42px; height: 42px; display: grid; place-items: center; margin: 0 auto 8px; border-radius: 50%; background: var(--soft); color: var(--brand); font-size: 22px; }
.institution-panel h2 { margin: 5px 0; font-size: 18px; line-height: 1.23; letter-spacing: -.02em; }
.institution-panel p { margin: 7px 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.institution-panel .panel-title { color: var(--ink); font-size: 19px; }
.panel-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.panel-contacts { display: grid; gap: 8px; margin: 14px 0; }
.panel-contacts div { color: var(--muted); font-size: 13px; }
.panel-contacts strong { color: var(--ink); }
.panel-verified { margin: 12px 0 0 !important; font-size: 11px !important; }
.panel-verified.warning { color: #895a00; }
.panel-source { display: inline-block; margin-top: 5px; font-size: 12px; font-weight: 850; }
.panel-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.panel-nav-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.panel-nav-actions a, .panel-nav-actions button { min-height: 35px; display: inline-flex; justify-content: center; align-items: center; padding: 7px 9px; border: 1px solid #d8e4e6; border-radius: 8px; background: #fff; color: #34535a; font-size: 11px; font-weight: 800; }
.panel-nav-actions a:hover, .panel-nav-actions button:hover { background: #f4f9fa; text-decoration: none; }
.map-canvas-wrap { position: relative; min-width: 0; min-height: 480px; }
#map { position: absolute; inset: 0; z-index: 1; }
.map-help { position: absolute; z-index: 650; left: 17px; top: 17px; max-width: 365px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.85); border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: 0 5px 20px rgba(0,0,0,.08); color: #44555c; font-size: 11px; }
.map-floating-controls { position: absolute; z-index: 650; right: 16px; top: 16px; display: grid; gap: 7px; }
.map-floating-controls button { min-height: 37px; display: flex; align-items: center; gap: 6px; padding: 8px 10px; border: 1px solid rgba(206,221,224,.96); border-radius: 9px; background: rgba(255,255,255,.96); box-shadow: 0 4px 14px rgba(10,35,45,.1); color: #243e47; font-size: 11px; font-weight: 850; }
.map-floating-controls button:hover { background: #fff; }
.custom-pin { border: 0 !important; background: transparent !important; }
.pin { width: 32px; height: 32px; border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 4px 10px rgba(0,0,0,.25); background: var(--brand); }
.pin span { display: block; color: white; font-size: 13px; font-weight: 900; line-height: 26px; text-align: center; transform: rotate(45deg); }
.pin.kg { background: #d66c49; }.pin.primary { background: #4171ad; }.pin.secondary { background: #6655aa; }.pin.profiled { background: #087c8e; }.pin.vocational { background: #a96f13; }.pin.support { background: #477658; }
.user-location-dot { width: 18px; height: 18px; border: 4px solid #fff; border-radius: 50%; background: #2379e6; box-shadow: 0 0 0 7px rgba(35,121,230,.22); }

/* Public pages */
.content-shell { width: min(1140px, calc(100% - 32px)); margin: 0 auto; padding: 50px 0 64px; }
.content-shell.narrow { width: min(780px, calc(100% - 32px)); }
.page-heading { max-width: 760px; margin-bottom: 28px; }
.page-heading.wide { max-width: 830px; }
.page-heading h1, .institution-hero h1, .admin-top h1, .auth-card h1 { margin: 0; font-size: clamp(30px, 4vw, 46px); line-height: 1.08; letter-spacing: -.055em; }
.page-heading p { margin: 10px 0 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.action-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin: 26px 0 32px; }
.action-card { min-height: 176px; display: grid; align-content: start; gap: 9px; padding: 21px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(20,44,50,.03); }
.action-card:hover { border-color: #b9d2d6; box-shadow: 0 12px 28px rgba(20,44,50,.08); text-decoration: none; transform: translateY(-2px); }
.action-card.emphasis { border-color: #afd1d4; background: linear-gradient(150deg, #edf9f9, #fff); }
.card-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: #e6f4f4; color: var(--brand); font-size: 19px; font-weight: 900; }
.action-card strong { font-size: 16px; line-height: 1.28; }
.action-card small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.info-grid { display: grid; gap: 18px; margin: 26px 0; }
.info-grid.two-col { grid-template-columns: repeat(2, 1fr); }.info-grid.compact-top { margin-top: 22px; }
.info-card, .detail-card, .program-card, .calculator-card, .admission-row { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 3px 12px rgba(20,44,61,.04); }
.info-card { padding: 23px; }
.info-card h2, .detail-card h2, .program-section h2, .section-head h2 { margin: 0 0 12px; font-size: 20px; letter-spacing: -.025em; }
.info-card p, .info-card li { color: #4e626a; font-size: 14px; line-height: 1.63; }
.info-card ul, .info-card ol { padding-left: 20px; margin: 0; }
.info-card li + li { margin-top: 7px; }
.official-callout { display: flex; justify-content: space-between; gap: 26px; align-items: center; margin: 28px 0; padding: 27px; border-radius: var(--radius); background: var(--brand-dark); color: #fff; }
.official-callout .eyebrow { color: #b8dadd; }.official-callout h2 { margin: 0; font-size: 25px; letter-spacing: -.035em; }.official-callout p:not(.eyebrow) { max-width: 670px; margin: 10px 0 0; color: #d8e9ea; font-size: 14px; line-height: 1.65; }
.stacked-actions { min-width: 195px; display: grid; gap: 9px; }.stacked-actions .button { background: #fff; color: var(--brand-dark) !important; }.stacked-actions .button.secondary { background: transparent; border: 1px solid rgba(255,255,255,.35); color: #fff !important; }
.steps-section { padding: 27px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.section-head { margin-bottom: 21px; }
.steps-list { display: grid; gap: 18px; padding: 0; margin: 0; list-style: none; }.steps-list li { display: grid; grid-template-columns: 38px 1fr; gap: 12px; }.steps-list li > span { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; background: #e7f5f4; color: var(--brand); font-size: 13px; font-weight: 900; }.steps-list strong { font-size: 15px; }.steps-list p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.resource-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.resource-card { display: flex; flex-direction: column; min-height: 215px; padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.resource-label { color: var(--brand); font-size: 10px; font-weight: 900; letter-spacing: .11em; }.resource-card h2 { margin: 11px 0 7px; font-size: 19px; letter-spacing: -.025em; }.resource-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.58; }.resource-card div { display: grid; gap: 8px; margin-top: auto; padding-top: 20px; }.text-link { font-size: 12px; font-weight: 850; }.disclaimer, .source-note { margin-top: 25px; color: var(--muted); font-size: 12px; line-height: 1.6; }

/* Institution pages + admission */
.breadcrumbs { margin-bottom: 22px; color: var(--muted); font-size: 13px; }.breadcrumbs span { padding: 0 6px; }
.institution-hero { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding-bottom: 28px; border-bottom: 1px solid var(--line); }.short-name, .verified { margin: 6px 0; color: var(--muted); font-size: 14px; }.verified { font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 25px 0; }.detail-card { padding: 22px; }.detail-card p { color: var(--muted); font-size: 14px; line-height: 1.55; }.detail-card strong { color: var(--ink); }
.section-heading { display: flex; justify-content: space-between; gap: 20px; align-items: end; }.program-section { margin: 42px 0; }.program-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin-top: 18px; }.program-card { padding: 21px; }.program-card h3 { margin: 10px 0; font-size: 16px; line-height: 1.35; }.program-card p { color: var(--muted); font-size: 13px; line-height: 1.55; }.program-card dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; padding: 12px 0; margin: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.program-card dl div { display: grid; gap: 3px; }.program-card dt { color: var(--muted); font-size: 10px; text-transform: uppercase; font-weight: 800; }.program-card dd { margin: 0; font-size: 12px; font-weight: 850; }.formula { padding: 9px; border-radius: 8px; background: #f0f7f8; color: #264552 !important; }.score { font-size: 12px !important; }
.official-links, .admin-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }.admission-tools { display: grid; grid-template-columns: 1fr 210px; gap: 10px; margin-bottom: 17px; }.admission-list { display: grid; gap: 12px; }.admission-row { display: grid; grid-template-columns: 1fr 175px 115px; column-gap: 20px; align-items: center; padding: 20px; }.admission-main p { margin: 4px 0; color: var(--muted); font-size: 13px; }.admission-main h2 { margin: 3px 0; font-size: 16px; }.institution-name a { font-weight: 850; }.admission-facts { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }.admission-score { display: grid; padding-left: 18px; border-left: 1px solid var(--line); }.admission-score strong { font-size: 22px; }.admission-score small { color: var(--muted); font-size: 11px; }.admission-formula { grid-column: 1/-1; margin: 16px 0 0; font-size: 12px; }
.calculator-card { padding: 26px; }.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }.field-grid label, .admin-form > label, .auth-card label, .calculator-card label { display: grid; gap: 6px; font-size: 12px; font-weight: 850; }.span-2 { grid-column: span 2; }.hint { color: var(--muted); font-size: 12px; line-height: 1.55; }.calculator-result { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding: 18px; border-radius: 10px; background: #eaf6f4; }.calculator-result span { font-size: 13px; font-weight: 850; }.calculator-result strong { color: var(--success); font-size: 30px; }
.timeline { display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.timeline-item { display: grid; grid-template-columns: 155px 1fr; gap: 22px; padding: 23px; border-bottom: 1px solid var(--line); }.timeline-item:last-child { border-bottom: 0; }.timeline-date { display: grid; align-content: start; gap: 4px; color: var(--brand); }.timeline-date strong { font-size: 17px; }.timeline-date span { color: var(--muted); font-size: 12px; }.timeline-copy h2 { margin: 0 0 6px; font-size: 17px; }.timeline-copy p { margin: 0 0 10px; color: var(--muted); font-size: 14px; line-height: 1.55; }.timeline-copy a { font-size: 12px; font-weight: 850; }

/* Legal */
.legal-page .page-heading { margin-bottom: 25px; }.legal-content { padding: clamp(22px, 4vw, 38px); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.legal-content h2 { margin: 30px 0 10px; font-size: 19px; letter-spacing: -.02em; }.legal-content h2:first-child { margin-top: 0; }.legal-content p { margin: 0; color: #40555e; font-size: 14px; line-height: 1.75; }.legal-table { overflow: hidden; margin: 13px 0; border: 1px solid var(--line); border-radius: 10px; }.legal-table > div { display: grid; grid-template-columns: 1fr 1.6fr .7fr; gap: 8px; padding: 11px; border-bottom: 1px solid var(--line); color: #41545d; font-size: 12px; }.legal-table > div:first-child { background: #f4f9f9; color: var(--ink); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }.legal-table > div:last-child { border-bottom: 0; }

/* Footer */
.site-footer { border-top: 1px solid #d8e4e5; background: #0b2730; color: #d4e2e4; }.footer-grid { width: min(1260px, calc(100% - 32px)); display: grid; grid-template-columns: minmax(330px, 1.75fr) repeat(3, minmax(150px, 1fr)); gap: 38px; margin: 0 auto; padding: 42px 0 31px; }.footer-brand { color: #fff; font-size: 23px; font-weight: 900; letter-spacing: -.05em; }.footer-about p { max-width: 570px; color: #b6cccf; font-size: 12px; line-height: 1.7; }.footer-about .footer-disclaimer { color: #c2d5d7; }.footer-grid h2 { margin: 2px 0 11px; color: #fff; font-size: 13px; }.footer-links { display: grid; gap: 8px; padding: 0; margin: 0; list-style: none; }.footer-links a, .footer-button { padding: 0; border: 0; background: transparent; color: #bed5d8; font-size: 12px; line-height: 1.45; text-align: left; }.footer-links a:hover, .footer-button:hover { color: #fff; text-decoration: underline; }.footer-bottom { width: min(1260px, calc(100% - 32px)); display: flex; justify-content: space-between; gap: 16px; padding: 17px 0; margin: 0 auto; border-top: 1px solid rgba(207,228,230,.18); color: #a7c2c5; font-size: 11px; }.footer-bottom a { color: #c7dfe2; font-weight: 750; }

/* Cookie consent */
.cookie-banner { position: fixed; right: 16px; bottom: 16px; z-index: 3000; width: min(720px, calc(100% - 32px)); display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 12px 14px; border: 1px solid #cddfe1; border-radius: 12px; background: #fff; box-shadow: 0 14px 42px rgba(0,0,0,.18); }.cookie-copy { display: flex; flex: 1 1 300px; align-items: baseline; flex-wrap: wrap; column-gap: 8px; row-gap: 2px; }.cookie-copy strong { color: var(--ink); font-size: 12px; white-space: nowrap; }.cookie-copy p { margin: 0; color: #566971; font-size: 11px; line-height: 1.45; }.cookie-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }.cookie-actions .button { min-height: 32px; padding: 7px 9px; font-size: 10px; }.cookie-settings-link { border: 0; background: transparent; color: var(--brand); font-size: 10px; font-weight: 800; }
.cookie-modal { position: fixed; inset: 0; z-index: 3500; display: grid; place-items: center; padding: 18px; background: rgba(6,24,29,.6); }.cookie-modal-card { position: relative; width: min(600px, 100%); padding: 27px; border-radius: 16px; background: #fff; box-shadow: var(--shadow); }.cookie-modal-card h2 { margin: 0; font-size: 24px; letter-spacing: -.035em; }.modal-close { position: absolute; top: 13px; right: 15px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #eff4f4; color: var(--ink); font-size: 24px; line-height: 1; }.modal-intro { color: var(--muted); font-size: 13px; line-height: 1.6; }.cookie-choice { display: flex; gap: 11px; align-items: flex-start; padding: 13px 0; border-top: 1px solid var(--line); }.cookie-choice input { width: 17px; height: 17px; margin-top: 3px; accent-color: var(--brand); }.cookie-choice strong, .cookie-choice small { display: block; }.cookie-choice strong { font-size: 13px; }.cookie-choice small { margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 1.5; }.cookie-modal-actions { display: flex; justify-content: end; flex-wrap: wrap; gap: 8px; margin-top: 12px; }.toast { position: fixed; left: 50%; bottom: 23px; z-index: 4000; max-width: calc(100% - 32px); padding: 10px 14px; border-radius: 10px; background: #143640; color: #fff; font-size: 12px; font-weight: 750; box-shadow: var(--shadow); transform: translateX(-50%); }

/* Admin */
.admin-shell { width: min(1280px, calc(100% - 32px)); margin: 0 auto; padding: 44px 0 66px; }.admin-top { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }.admin-top h1 { font-size: 32px; }.admin-top p { color: var(--muted); font-size: 13px; }.admin-section { padding: 20px; margin-top: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.admin-section .section-heading h2 { margin: 0; font-size: 18px; }.admin-section .section-heading span { color: var(--muted); font-size: 12px; }.admin-table-wrap { overflow: auto; margin-top: 15px; }table { width: 100%; border-collapse: collapse; font-size: 12px; }th { color: var(--muted); font-size: 10px; text-align: left; text-transform: uppercase; letter-spacing: .04em; }th, td { padding: 12px 10px; border-top: 1px solid var(--line); vertical-align: top; }td small { color: var(--muted); }.admin-form { max-width: 900px; display: grid; gap: 18px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }.admin-form.compact { max-width: 620px; }.form-section { display: grid; gap: 13px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }.form-section:last-of-type { border-bottom: 0; }.form-section h2 { margin: 0; font-size: 17px; }.admin-form textarea { min-height: 110px; resize: vertical; }.checkbox-row { display: flex; flex-wrap: wrap; gap: 15px; font-size: 13px; }.checkbox-row label, .checkbox-line { display: flex !important; gap: 7px; align-items: center; }.error-message { padding: 10px; border: 1px solid #f3c0ba; border-radius: 9px; background: #fff0ee; color: #9b2e27; font-size: 13px; }.auth-shell { min-height: calc(100vh - 70px); display: grid; place-items: center; padding: 30px; }.auth-card { width: min(420px, 100%); display: grid; gap: 12px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }.auth-card h1 { margin-bottom: 8px; font-size: 29px; }.admin-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 22px; }.admin-stat-grid article { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.admin-stat-grid strong { display: block; font-size: 27px; line-height: 1; }.admin-stat-grid span { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; }.admin-stat-grid .attention { border-color: #efd495; background: #fffdf8; }.admin-checklist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }.admin-checklist div { padding: 6px 0 6px 12px; border-left: 3px solid var(--accent); }.admin-checklist strong { display: block; font-size: 20px; }.admin-checklist span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }

@media (max-width: 1020px) {
  .main-nav a { padding-inline: 8px; font-size: 12px; }.header-inner { width: min(100% - 24px, 1380px); }.map-page { grid-template-columns: 360px minmax(0,1fr); }.action-grid, .resource-grid { grid-template-columns: repeat(3, 1fr); }.footer-grid { grid-template-columns: 1.55fr 1fr 1fr; gap: 28px; }
}
@media (max-width: 820px) {
  .nav-toggle { display: block; }.main-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 10px 16px 15px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 14px 24px rgba(0,0,0,.08); }.main-nav.is-open { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }.main-nav a { min-height: 40px; }.nav-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.nav-toggle.is-open span:nth-child(2) { opacity: 0; }.nav-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .map-page { display: flex; flex-direction: column-reverse; min-height: 0; }.map-sidebar { overflow: visible; border-right: 0; }.map-canvas-wrap { min-height: 54vh; }.map-help { max-width: calc(100% - 135px); left: 10px; top: 10px; }.map-floating-controls { right: 10px; top: 10px; }.map-floating-controls button { width: 40px; height: 40px; justify-content: center; padding: 8px; border-radius: 50%; font-size: 18px; }.map-floating-controls button span { display: none; }.map-results { max-height: 190px; }
  .action-grid, .resource-grid { grid-template-columns: 1fr; }.action-card { min-height: 0; }.info-grid.two-col, .detail-grid, .program-grid { grid-template-columns: 1fr; }.official-callout { display: grid; }.stacked-actions { min-width: 0; grid-template-columns: 1fr 1fr; }.admission-row { grid-template-columns: 1fr; gap: 12px; }.admission-score { padding: 0; border-left: 0; }.admission-tools { grid-template-columns: 1fr; }.timeline-item { grid-template-columns: 1fr; gap: 7px; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-about { grid-column: 1/-1; }.admin-stat-grid, .admin-checklist { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .header-inner { min-height: 63px; width: calc(100% - 24px); gap: 10px; }.brand-mark { width: 37px; height: 37px; font-size: 9px; }.brand-copy small { font-size: 7px; }.brand-copy strong { font-size: 16px; }.site-header .main-nav { grid-template-columns: 1fr; }.content-shell { width: calc(100% - 28px); padding: 35px 0 45px; }.page-heading h1, .institution-hero h1 { font-size: 32px; }.page-heading p { font-size: 14px; }.sidebar-header { padding: 24px 18px 17px; }.filter-block, .institution-panel { padding-left: 18px; padding-right: 18px; }.result-summary, .map-result { padding-left: 18px; padding-right: 18px; }.quick-links { grid-template-columns: 1fr; }.map-stats { grid-template-columns: repeat(3,1fr); }.map-help { display: none; }.panel-actions { grid-template-columns: 1fr; }.panel-nav-actions { grid-template-columns: 1fr 1fr; }.official-callout { padding: 21px; }.stacked-actions { grid-template-columns: 1fr; }.legal-content { padding: 21px; }.legal-table { overflow-x: auto; }.legal-table > div { min-width: 500px; }.footer-grid { grid-template-columns: 1fr; gap: 25px; padding-top: 32px; }.footer-about { grid-column: auto; }.footer-bottom { display: grid; gap: 8px; }.cookie-banner { right: 10px; bottom: 10px; width: calc(100% - 20px); display: grid; gap: 8px; padding: 11px 12px; }.cookie-copy { display: block; }.cookie-copy strong { display: block; margin-bottom: 2px; }.cookie-actions { display: grid; grid-template-columns: 1fr 1fr auto; justify-content: stretch; }.cookie-actions .button { width: 100%; }.cookie-settings-link { min-height: 32px; padding: 0 5px; }.cookie-modal-card { padding: 23px 18px; }.cookie-modal-actions { display: grid; grid-template-columns: 1fr; }.field-grid { grid-template-columns: 1fr; }.span-2 { grid-column: span 1; }.admin-shell { width: calc(100% - 28px); padding: 30px 0 44px; }.admin-top { display: grid; }.admin-stat-grid, .admin-checklist { grid-template-columns: 1fr; }.section-heading { display: grid; }
}

.panel-route-note { margin: 12px 0 0; color: #5b7077; font-size: 11px; line-height: 1.45; }

/* v1.5: selection feedback and admin account controls */
.institution-panel { scroll-margin-top: 16px; }
.institution-panel.is-selected { outline: 3px solid rgba(218, 162, 46, .72); outline-offset: -3px; animation: selectedPanelPulse 1.1s ease-out; }
@keyframes selectedPanelPulse { 0% { box-shadow: 0 0 0 0 rgba(218, 162, 46, .55); } 72% { box-shadow: 0 0 0 13px rgba(218, 162, 46, 0); } 100% { box-shadow: none; } }
.admin-user-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }.admin-user-actions form { margin: 0; }.form-note { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.success-message { padding: 10px; border: 1px solid #b8dfc5; border-radius: 9px; background: #effaf2; color: #156a35; font-size: 13px; }.deadline-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 28px; }.deadline-jump a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--brand); background: #fff; font-size: 12px; font-weight: 800; }.deadline-jump a:hover { border-color: var(--brand); text-decoration: none; }.deadline-group { margin-top: 40px; scroll-margin-top: 24px; }.deadline-group-heading { display: flex; align-items: baseline; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }.deadline-group-heading .eyebrow { margin: 0; }.deadline-group-heading h2 { margin: 0; font-size: 24px; letter-spacing: -.025em; }.timeline-copy h3 { margin: 0; font-size: 16px; }
@media (max-width: 820px) { .institution-panel.is-selected { outline-offset: -2px; }.admin-user-actions { width: 100%; }.admin-user-actions > * { flex: 1 1 auto; }.deadline-group-heading { display: block; }.deadline-group-heading h2 { margin-top: 4px; } }

.admission-note { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.admission-source { margin: 8px 0 0; font-size: 12px; font-weight: 800; }

/* v1.5: keep the long institutional name usable on narrow screens. */
.brand-copy { min-width: 0; }
.brand-copy strong { white-space: nowrap; }
@media (max-width: 560px) {
  .brand-copy strong { font-size: 14px; letter-spacing: -0.035em; }
  .brand-copy small { font-size: 10px; }
  .brand-mark { width: 34px; height: 34px; font-size: 9px; }
}

/* v1.6: business navy + warm accent, content and map controls */
:root { --brand:#092f5b; --brand-dark:#061f3d; --accent:#f2a12b; --accent-soft:#fff2d8; --ink:#10243a; --muted:#5b6c7f; --line:#d4dfeb; --paper:#f5f8fc; --soft:#eef4fa; --shadow:0 14px 36px rgba(5,31,61,.12); }
body { background:var(--paper); color:var(--ink); }.site-header { border-bottom-color:#d7e2ee; }.brand-mark { background:linear-gradient(145deg,var(--brand),#164f87); }.button { background:var(--brand); }.button:hover { background:var(--brand-dark); }.button.secondary { color:var(--brand); border-color:#b9cce0; background:#fff; }.button.secondary:hover { border-color:var(--brand); background:#f4f8fd; }.eyebrow { color:#a76300; }.tag.yellow { color:#754700; background:var(--accent-soft); border-color:#f6c66e; }.quick-links a:hover,.map-result:hover { border-color:var(--accent); }.map-filter-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; margin:10px 0; }.map-filter-grid .toggle:last-child { grid-column:1/-1; }.custom-pin .pin { border-color:#fff; box-shadow:0 5px 13px rgba(6,31,61,.24); }.custom-pin.is-active .pin { transform:scale(1.18); box-shadow:0 0 0 5px rgba(242,161,43,.38),0 7px 15px rgba(6,31,61,.3); }.map-canvas-wrap { position:relative; }.leaflet-container { touch-action:none; }.map-selection-card { display:none; }.map-selection-card[hidden] { display:none !important; }.panel-feedback { margin:13px 0 0; font-size:12px; font-weight:800; }.panel-feedback a { color:var(--brand); }.portal-announcements { border-bottom:1px solid #f0ce8d; background:#fff9ec; }.announcements-inner { width:min(1380px,calc(100% - 40px)); margin:0 auto; padding:8px 0; display:grid; gap:6px; }.announcement { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 9px; color:#4e3500; font-size:13px; line-height:1.45; }.announcement-urgent { color:#872b16; }.announcement a { font-weight:800; color:inherit; text-decoration:underline; }.portal-form-page { padding-top:48px; padding-bottom:60px; }.portal-form { display:grid; gap:18px; padding:25px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(10,47,91,.05); }.muted { color:var(--muted); font-weight:500; }.legal-callout { margin-top:22px; padding:20px 22px; border-left:4px solid var(--accent); background:#fffaf0; border-radius:0 12px 12px 0; }.legal-callout h2 { margin:0 0 8px; font-size:18px; }.legal-callout p { margin:0; line-height:1.65; color:#40536a; }.filter-bar { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:24px 0; padding:16px; border:1px solid var(--line); border-radius:14px; background:#fff; }.filter-bar label { min-width:190px; }.archive-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:14px; background:#fff; }.public-table { min-width:820px; }.public-table a { font-weight:800; color:var(--brand); }.empty-state { padding:38px 25px; border:1px dashed #b9c9db; border-radius:15px; background:#fff; text-align:center; }.empty-state h1,.empty-state h2 { margin:0 0 10px; }.empty-state p { max-width:620px; margin:0 auto 18px; color:var(--muted); }.source-list { margin-top:36px; }.source-card { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:baseline; padding:15px 0; border-bottom:1px solid var(--line); }.source-card strong { color:var(--brand); }.source-card span { flex:1 1 320px; color:var(--muted); }.source-card a { font-weight:800; }.ranking-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.ranking-panel { padding:22px; border:1px solid var(--line); border-radius:16px; background:#fff; }.ranking-list { list-style:none; padding:0; margin:16px 0 0; display:grid; gap:4px; }.ranking-list li { display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; padding:12px 0; border-top:1px solid var(--line); }.rank-num { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; color:#785000; background:var(--accent-soft); font-weight:900; font-size:12px; }.ranking-list span { display:block; margin-top:3px; color:var(--muted); font-size:12px; }.ranking-list b { color:var(--brand); white-space:nowrap; }.changelog-list { display:grid; gap:12px; }.changelog-entry { padding:22px; border:1px solid var(--line); border-radius:15px; background:#fff; }.changelog-entry>div { display:flex; gap:10px; align-items:center; }.changelog-entry time { color:var(--muted); font-size:12px; }.changelog-entry h2 { margin:10px 0 8px; font-size:20px; }.changelog-entry p { margin:0; line-height:1.65; color:#41546a; }.map-card-close { position:absolute; right:10px; top:9px; width:30px; height:30px; border:0; border-radius:50%; color:#fff; background:var(--brand); font-size:21px; line-height:1; cursor:pointer; }.map-selection-card { position:absolute; z-index:1200; left:10px; right:10px; bottom:12px; padding:16px 42px 14px 16px; border:1px solid #bfcfe0; border-radius:15px; background:#fff; box-shadow:0 12px 35px rgba(6,31,61,.26); }.map-selection-card h2 { margin:4px 0 8px; font-size:17px; }.map-selection-card .panel-badges { margin-bottom:10px; }.map-selection-card .panel-actions { margin-top:8px; }.map-selection-card .button { min-height:36px; padding:8px 10px; font-size:12px; }.toast { background:var(--brand-dark); }
@media (max-width:820px){.map-selection-card.is-visible{display:block}.map-page{flex-direction:column-reverse}.map-canvas-wrap{min-height:55vh}.ranking-grid{grid-template-columns:1fr}.portal-form{padding:20px}.announcements-inner{width:calc(100% - 24px)}.map-filter-grid{grid-template-columns:1fr}.map-filter-grid .toggle:last-child{grid-column:auto}}
@media (max-width:560px){.filter-bar{display:grid;align-items:stretch}.filter-bar label{min-width:0}.source-card{display:grid}.ranking-panel{padding:18px}.portal-form-page{padding-top:32px}.map-selection-card{bottom:10px;left:8px;right:8px}.map-selection-card .panel-actions{grid-template-columns:1fr 1fr}.announcement{font-size:12px}}

.honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }


/* v1.7: visual system, map selection, icons and responsive density */
:root{--ink:#10253d;--muted:#5b6b7d;--soft:#eef4fa;--line:#d8e1ec;--paper:#f4f7fb;--white:#fff;--brand:#092a4a;--brand-dark:#061d34;--brand-mid:#154c7c;--accent:#ffc107;--accent-soft:#fff8dd;--shadow:0 18px 46px rgba(6,29,52,.13);--radius:18px}
body{background:var(--paper);color:var(--ink)}a{color:var(--brand-mid)}.site-header{background:rgba(255,255,255,.98);border-bottom:1px solid #d9e3ee;box-shadow:0 2px 14px rgba(9,42,74,.04)}.header-inner{min-height:76px}.brand{gap:11px}.brand-logo{width:45px;height:45px;display:block;flex:0 0 auto}.brand-mark{display:none}.brand-copy small{color:#728197;font-size:8px;letter-spacing:.13em}.brand-copy strong{color:var(--brand);font-size:19px;letter-spacing:-.045em}.main-nav{gap:3px}.main-nav a{color:#36506c;font-weight:800}.main-nav a i{margin-right:5px}.main-nav a:hover,.main-nav a.active{color:var(--brand);background:#edf4fb}.button{background:var(--brand);border:1px solid var(--brand);border-radius:10px}.button:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.button.secondary{background:#fff;border-color:#b9cce0;color:var(--brand)!important}.button.secondary:hover{background:#f1f6fc;border-color:var(--brand)}.eyebrow{color:#986900}.tag.yellow,.rank-num{background:var(--accent-soft);color:#765100;border-color:#f1d06c}.card-icon,.home-entry-icon{background:#fff4c9;color:#875d00}.input-with-icon{position:relative}.input-with-icon i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7890a9;font-size:14px;pointer-events:none}.input-with-icon input{padding-left:36px!important}
.map-page{grid-template-columns:minmax(350px,425px) minmax(0,1fr);min-height:calc(100vh - 76px);background:#fff}.map-sidebar{background:#fff;border-right:1px solid #d9e3ee}.sidebar-header{padding:30px 27px 20px}.sidebar-header h1{color:var(--brand);max-width:360px;font-size:clamp(31px,2.3vw,38px);letter-spacing:-.06em}.intro{color:#53677c;font-size:14px}.map-stats{gap:9px}.map-stats div{position:relative;min-height:86px;padding:12px 9px 9px;border:1px solid #dbe5ef;border-radius:13px;background:linear-gradient(155deg,#fff,#f7faff)}.map-stats i{display:block;color:#aa7500;font-size:15px;margin-bottom:7px}.map-stats strong{color:var(--brand);font-size:21px}.map-stats span{color:#68798d}.quick-links{gap:8px}.quick-links a{align-items:flex-start;gap:8px;min-height:49px;padding:9px 10px;border-color:#dbe5ef;background:#fff;color:#334d68;font-size:11px}.quick-links a i{width:20px;color:#a36f00;font-size:16px}.quick-links a:hover{border-color:#e7bd43;background:#fffdf5}.year-shortcut{display:inline-flex;gap:7px;align-items:center;color:var(--brand);font-size:12px}.filter-block{gap:9px;border-top-color:#d9e3ee;background:#fbfcfe}.filter-heading strong{color:var(--brand)}.filter-heading button{color:#9b6800}.filter-block input[type=search],.filter-block select{border-color:#cbd8e6}.filter-block input:focus,.filter-block select:focus{border-color:var(--brand-mid);box-shadow:0 0 0 3px rgba(9,42,74,.1)}.toggle{color:#435b73}.toggle input{accent-color:var(--brand)}.map-results-wrap{border-color:#d9e3ee}.map-result{position:relative;padding:12px 26px;border-bottom-color:#edf1f5}.map-result:hover{background:#fffaf0}.map-result:hover:after{content:'→';position:absolute;right:25px;top:50%;transform:translateY(-50%);color:#a26d00;font-weight:900}.map-sidebar-tip{display:flex;gap:9px;align-items:flex-start;padding:17px 26px;color:#607085;font-size:12px;line-height:1.45}.map-sidebar-tip i{color:#a36f00;margin-top:1px}.map-canvas-wrap{background:#dce7ee}.map-help{display:flex;gap:8px;align-items:flex-start;left:18px;top:18px;max-width:370px;border-color:rgba(211,224,237,.95);background:rgba(255,255,255,.97);color:#41576e}.map-help i{color:#a06b00}.map-floating-controls{top:18px;right:18px}.map-floating-controls button{border-color:#cbd9e7;color:#29445f}.map-floating-controls button i{font-size:14px;color:#a16e00}.map-floating-controls button:hover{border-color:#e4bd50;background:#fffdf5}.pin{background:var(--brand)!important}.pin.kg{background:#e77745!important}.pin.primary{background:#2568a8!important}.pin.secondary{background:#654db0!important}.pin.profiled{background:#0b7080!important}.pin.vocational{background:#ba7900!important}.pin.support{background:#3e806a!important}.pin i{display:block;color:#fff;font-size:13px;line-height:26px;text-align:center;transform:rotate(45deg)}.custom-pin.is-active .pin{transform:rotate(-45deg) scale(1.23);box-shadow:0 0 0 6px rgba(255,193,7,.42),0 10px 20px rgba(6,29,52,.33)}.leaflet-control-zoom a{color:var(--brand)!important}
.map-selection-card{position:absolute;z-index:1200;display:block;left:auto;right:20px;top:76px;bottom:auto;width:min(390px,calc(100% - 40px));max-height:calc(100% - 104px);overflow:auto;padding:22px 20px 18px;border:1px solid #c8d6e5;border-radius:16px;background:rgba(255,255,255,.985);box-shadow:0 18px 50px rgba(6,29,52,.26)}.map-selection-card[hidden]{display:none!important}.map-selection-card .eyebrow{padding-right:34px}.map-selection-card .panel-title{margin:4px 25px 7px 0;color:var(--brand);font-size:21px;line-height:1.18;letter-spacing:-.035em}.map-selection-card .panel-short{margin:0;color:#64768a;font-size:13px}.map-selection-card .panel-badges{margin:11px 0}.map-selection-card .panel-contacts{display:grid;gap:7px;margin:14px 0;padding:12px;border:1px solid #e1e8ef;border-radius:11px;background:#f8fbfe}.map-selection-card .panel-contacts div{display:flex;gap:8px;align-items:flex-start;color:#4c6075;font-size:12px}.map-selection-card .panel-contacts i{color:#a36f00;margin-top:2px}.map-selection-card .panel-contacts strong{display:block;color:#1e3a57;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.map-selection-card .panel-actions{margin-top:13px}.map-selection-card .panel-nav-actions{grid-template-columns:1fr 1fr 1fr;margin-top:8px}.map-selection-card .panel-nav-actions a,.map-selection-card .panel-nav-actions button{gap:5px;color:#33506d;border-color:#d7e2ed;background:#fff}.map-selection-card .panel-nav-actions a:hover,.map-selection-card .panel-nav-actions button:hover{border-color:#e5bb46;background:#fffaf0}.map-selection-card .panel-route-note{margin:11px 0 0;color:#748498;font-size:10px;line-height:1.4}.map-selection-card .panel-feedback{margin:10px 0 0;font-size:12px;font-weight:800}.map-card-close{right:13px;top:13px;background:var(--brand);color:#fff}.map-card-close:hover{background:var(--brand-dark)}
.home-content{padding-top:58px;padding-bottom:64px}.home-section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px}.home-section-head h2{margin:0;color:var(--brand);font-size:clamp(25px,3vw,34px);letter-spacing:-.045em}.home-section-head .text-link{font-size:13px;font-weight:850}.home-entry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.home-entry{position:relative;display:flex;min-height:185px;flex-direction:column;align-items:flex-start;padding:20px;border:1px solid #d9e4ee;border-radius:15px;background:#fff;color:var(--ink);box-shadow:0 4px 17px rgba(6,29,52,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.home-entry:hover{border-color:#e1bb48;box-shadow:0 16px 32px rgba(6,29,52,.1);transform:translateY(-3px);text-decoration:none}.home-entry strong{margin-top:13px;color:var(--brand);font-size:16px;line-height:1.25}.home-entry small{margin-top:7px;color:#627489;font-size:12px;line-height:1.5}.home-entry>i:last-child{position:absolute;right:18px;bottom:17px;color:#a36f00;font-size:17px}.home-note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.home-note-grid article{display:flex;gap:13px;padding:19px 18px;border-radius:14px;background:#edf4fb}.home-note-grid>article>i{color:#a36f00;font-size:20px}.home-note-grid h3{margin:0 0 5px;color:var(--brand);font-size:14px}.home-note-grid p{margin:0;color:#52677d;font-size:12px;line-height:1.55}.home-note-grid a{display:inline-block;margin-top:9px;font-size:12px;font-weight:850}.ranking-panel h2 i,.section-heading h2 i{color:#a36f00;margin-right:5px}.site-footer{background:#061d34;border-top:4px solid var(--accent)}.footer-brand{display:inline-flex;align-items:center;gap:9px}.footer-brand img{width:31px;height:31px}.footer-grid h2{color:#fff}.footer-bottom a{color:#fff;font-weight:800}.compact-cookie-banner{left:18px;right:18px;bottom:18px;max-width:760px;margin:auto;padding:13px 15px!important;border-color:#c6d6e5!important;box-shadow:0 14px 40px rgba(6,29,52,.24)!important}.compact-cookie-banner .cookie-copy{gap:2px}.compact-cookie-banner .cookie-copy p{margin:2px 0 0;font-size:12px}.compact-cookie-banner .cookie-actions{gap:7px}.compact-cookie-banner .button{min-height:36px;padding:7px 10px;font-size:12px}.compact-cookie-banner .cookie-settings-link{font-size:12px}.announcement{font-size:12px}.announcement strong{color:var(--brand)}
@media(max-width:1100px){.home-entry-grid{grid-template-columns:repeat(2,1fr)}.home-note-grid{grid-template-columns:1fr}.map-page{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}}
@media(max-width:820px){.site-header{position:sticky;top:0}.header-inner{min-height:64px;width:calc(100% - 24px)}.brand-logo{width:37px;height:37px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:7px}.main-nav a i{display:none}.map-page{display:flex;flex-direction:column}.map-sidebar{border-right:0;border-bottom:1px solid #d9e3ee;overflow:visible}.sidebar-header{padding:22px 16px 16px}.sidebar-header h1{font-size:29px}.map-stats{margin:15px 0 10px}.map-stats div{min-height:75px}.quick-links{grid-template-columns:1fr 1fr}.filter-block{padding:17px 16px}.map-results-wrap{display:none}.map-sidebar-tip{display:none}.map-canvas-wrap{min-height:62vh}.map-help{left:10px;top:10px;right:10px;max-width:none;padding:9px 10px;font-size:10px}.map-floating-controls{right:10px;top:auto;bottom:15px}.map-floating-controls button{width:39px;height:39px;min-height:39px;justify-content:center;padding:8px;border-radius:50%}.map-floating-controls button span{display:none}.map-selection-card{top:auto;right:9px;bottom:10px;left:9px;width:auto;max-height:48vh;padding:17px 15px 14px;border-radius:16px}.map-selection-card .panel-title{font-size:18px}.map-selection-card .panel-contacts{grid-template-columns:1fr 1fr}.map-selection-card .panel-contacts div:last-child{grid-column:1/-1}.map-selection-card .panel-actions{grid-template-columns:1fr 1fr}.map-selection-card .panel-nav-actions{grid-template-columns:1fr 1fr 1fr}.map-selection-card .panel-nav-actions button,.map-selection-card .panel-nav-actions a{font-size:10px;padding:6px}.home-content{padding-top:38px}.home-section-head{align-items:start;flex-direction:column;gap:8px}.home-entry{min-height:158px}.home-note-grid{grid-template-columns:1fr}.compact-cookie-banner{left:10px;right:10px;bottom:10px;display:block!important;padding:12px!important}.compact-cookie-banner .cookie-actions{margin-top:9px;display:grid;grid-template-columns:1fr 1fr}.compact-cookie-banner .cookie-settings-link{grid-column:1/-1;text-align:center}.compact-cookie-banner .button{width:100%}}
@media(max-width:540px){.map-selection-card .panel-contacts{grid-template-columns:1fr}.map-selection-card .panel-contacts div:last-child{grid-column:auto}.home-entry-grid{grid-template-columns:1fr}.home-entry{min-height:142px}.home-note-grid article{padding:16px}.compact-cookie-banner .cookie-copy p{font-size:11px}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:grid;gap:6px}.main-nav a{font-size:14px}}

/* v1.8: public forms, footer links and resilient small-screen layout */
.portal-form,
.admin-form,
.auth-card,
.calculator-card {
  isolation: isolate;
}
.portal-form .field-grid label,
.portal-form > label,
.portal-form .checkbox-line {
  display: grid;
  gap: 7px;
  color: #203b57;
  font-size: 13px;
  font-weight: 800;
}
.portal-form input:not([type="checkbox"]):not([type="radio"]),
.portal-form select,
.portal-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #bfcfe0;
  border-radius: 10px;
  background: #fff;
  color: #10253d;
  outline: none;
  padding: 11px 12px;
  font: inherit;
  font-size: 14px;
  line-height: 1.45;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.portal-form textarea {
  min-height: 140px;
  resize: vertical;
}
.portal-form input:focus,
.portal-form select:focus,
.portal-form textarea:focus {
  border-color: #154c7c;
  box-shadow: 0 0 0 4px rgba(21,76,124,.12);
}
.portal-form .checkbox-line {
  grid-template-columns: 18px minmax(0,1fr);
  align-items: start;
  padding: 12px 0 0;
  line-height: 1.5;
}
.portal-form .checkbox-line input {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  accent-color: var(--brand);
}
.portal-form .checkbox-line a {
  font-weight: 850;
}
.portal-form .form-character-count {
  justify-self: end;
  margin-top: -3px;
  color: #6f8094;
  font-size: 11px;
  font-weight: 650;
}
.portal-form.is-submitting .button[type="submit"],
.admin-form.is-submitting .button[type="submit"],
.auth-card.is-submitting .button[type="submit"] {
  cursor: wait;
  opacity: .78;
  transform: none;
}
.success-message {
  margin: 0 0 18px;
  padding: 13px 15px;
  border: 1px solid #a9d7c5;
  border-radius: 11px;
  background: #edf9f3;
  color: #166044;
  font-size: 14px;
  line-height: 1.55;
}
.error-message[role="alert"] {
  margin-top: 2px;
}
.portal-form .field-grid {
  align-items: start;
}
.portal-form :is(input, select, textarea):invalid:focus {
  border-color: #a33c34;
  box-shadow: 0 0 0 4px rgba(163,60,52,.11);
}
.footer-links a.external-link {
  display: inline-flex;
  align-items: flex-start;
  gap: .42rem;
  max-width: 100%;
}
.footer-links a.external-link span {
  min-width: 0;
}
.footer-links a.external-link i {
  flex: 0 0 auto;
  margin-top: .15em;
  font-size: .9em;
}
.footer-bottom > span:last-child {
  text-align: right;
}
.footer-bottom > span:last-child a {
  white-space: nowrap;
}
.resource-grid-wide {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.resource-card .text-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.resource-card .text-link i {
  flex: 0 0 auto;
}
@media (max-width: 1080px) {
  .footer-grid {
    grid-template-columns: minmax(250px, 1.4fr) repeat(2, minmax(180px, 1fr));
  }
  .footer-grid .footer-about {
    grid-column: 1 / -1;
  }
  .resource-grid-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .portal-form {
    padding: 19px 16px;
    border-radius: 14px;
  }
  .portal-form .field-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }
  .portal-form .span-2 {
    grid-column: auto;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .footer-grid .footer-about {
    grid-column: auto;
  }
  .footer-bottom {
    display: grid;
    gap: 7px;
  }
  .footer-bottom > span:last-child {
    text-align: left;
  }
  .resource-grid-wide {
    grid-template-columns: 1fr;
  }
}
