/* One layout system for the shared shell, discovery, lists and detail pages. */
:root {--bg:#f5f7f8;--paper:#fff;--card:#fff;--ink:#22342e;--muted:#62736c;--line:#dfe7e2;--accent:#14745a;--radius:12px;--app-w:1184px;--page-gap:24px;--panel-pad:24px;}
html,body {background:var(--bg);}
body {padding:0;font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;}
.mobile-shell {max-width:var(--app-w);min-height:100vh;margin:0 auto;padding:0 32px 40px;border:0;border-radius:0;box-shadow:none;background:#fff;overflow:visible;}
.app-header {position:relative;top:auto;display:flex;align-items:center;gap:24px;padding:24px 0;background:#fff;border:0;backdrop-filter:none;}
.brand {flex:0 0 auto;gap:10px;}
.brand-icon {width:40px;height:40px;background:var(--accent);border:0;border-radius:10px;font-size:22px;}
.brand strong {font-size:24px;letter-spacing:-.6px;}
.brand small {font-size:11px;margin-top:4px;}
.portal-header-links {margin-left:auto;font-size:13px;white-space:nowrap;color:var(--muted);}
.global-search {position:static;flex:1;min-width:0;max-width:560px;min-height:46px;border:1px solid #b8cec3;border-radius:10px;}
.global-search input {padding:0 16px;font-size:15px;}
.global-search button {flex:0 0 64px;width:64px;border:0;}
.portal-nav {display:flex;gap:32px;border-block:1px solid var(--line);}
.portal-nav a {display:block;padding:16px 0;border-bottom:3px solid transparent;font-size:15px;font-weight:700;white-space:nowrap;}
.portal-nav .is-current {color:var(--accent);border-bottom-color:var(--accent);}
.app-main {display:grid;grid-template-columns:minmax(0,1fr);gap:var(--page-gap);padding-top:32px;}
.app-main > *, .search-page > *, .detail-layout > *, .home-discovery > * {min-width:0;}
.app-main h1 {max-width:none;font-size:30px;line-height:1.4;letter-spacing:-.04em;}
.app-main h2 {line-height:1.45;}
.app-main p {overflow-wrap:anywhere;}
.app-main > .panel,.app-main > .results,.app-main > .region-hero,.app-main > .info-hero {margin:0;}
.portal-site .panel,.portal-site .results,.portal-site .detail-card,.portal-site .filter-card,.portal-site .region-hero,.portal-site .info-hero {padding:var(--panel-pad);border-radius:var(--radius);box-shadow:none;}
.portal-site .region-hero,.portal-site .info-hero {background:#f7faf8;border:1px solid var(--line);gap:16px;}
.portal-site .region-hero .lead,.portal-site .info-hero .lead {max-width:76ch;font-size:15px;line-height:1.8;margin-bottom:0;}
.portal-site .search-page,.portal-site .detail-layout,.portal-site .info-page {display:grid;grid-template-columns:minmax(0,1fr);gap:var(--page-gap);width:100%;max-width:none;margin:0;}
.portal-site .filter-card {display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr) 120px;gap:12px 16px;align-content:start;align-items:end;background:#f7faf8;}
.filter-card > .eyebrow,.filter-card > h1,.filter-card > .hint {grid-column:1/-1;margin:0;}
.filter-card > label,.filter-card > details {min-width:0;margin:0;}
.filter-card > label {display:grid;grid-template-rows:18px 44px;gap:8px;align-self:start;}
.filter-card > label > span {font-size:13px;line-height:18px;margin:0;}
.filter-card > label > input {height:44px;margin:0;}
.filter-card > button {align-self:start;margin-top:26px;min-height:44px;}
.filter-card .advanced-filter {align-self:start;margin-top:26px;}
.filter-card .advanced-filter summary {min-height:44px;}
.portal-site .result-title {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 20px;padding:0;}
.result-title h2 {font-size:21px;}
.result-title p {margin:0 0 6px;}
.result-tools {flex-wrap:wrap;}
.portal-site .result-list {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.portal-site .choice-card {padding:20px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;}
.choice-main {gap:10px;}
.choice-main h2 {font-size:19px;line-height:1.5;}
.choice-main p {line-height:1.75;}
.portal-site .choice-card-actions {grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;}
.portal-site .choice-card-actions a {min-height:42px;border-radius:8px;}
.portal-site .section-head {flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.portal-site .two-columns {grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--page-gap);align-items:start;}
.portal-site .district-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.portal-site .region-score {min-height:auto;display:flex;justify-content:flex-start;gap:12px;padding:12px 16px;}
.portal-site .region-score strong {font-size:22px;}
.portal-site .detail-layout .visit-hero {margin:0;}
.portal-site .cta-grid.secondary-actions {grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
.portal-site .visit-summary {grid-template-columns:repeat(3,minmax(0,1fr));}
.portal-site .visit-summary > div {min-width:0;}
.portal-site .comparison-panel {background:#f8fbf9;}
.portal-site .info-page .info-panel {padding:var(--panel-pad);}
.reading-grid {gap:var(--page-gap);}
.reading-card {display:flex;flex-direction:column;}
.reading-card .reading-link {margin-top:auto;}
.site-footer {display:grid;grid-template-columns:1fr 1fr;gap:16px 32px;margin:40px 0 0;padding:28px 0 0;border-top:1px solid var(--line);font-size:13px;line-height:1.8;}
.site-footer > nav,.site-footer > small {grid-column:1/-1;}
.site-footer > nav {display:flex;flex-wrap:wrap;gap:8px 20px;}
.bottom-nav {display:none;}
.skip-content {position:fixed;left:16px;top:-100px;z-index:100;background:#fff;padding:16px;border:2px solid var(--accent);}
.skip-content:focus {top:12px;}
.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;}
.portal-home {display:grid;gap:32px;}
.portal-search-zone {padding:32px;background:#f0f7f3;border:1px solid #e0ece4;border-radius:16px;}
.portal-kicker {margin:0 0 12px;color:var(--accent);font-size:13px;font-weight:700;}
.portal-search-zone h1 {margin:0 0 12px;font-size:34px;}
.portal-intro {margin:0 0 24px;color:var(--muted);font-size:16px;line-height:1.75;}
.hero-search.portal-search {display:flex;gap:8px;width:100%;max-width:780px;margin:0;padding:6px;background:#fff;border:2px solid var(--accent);border-radius:12px;}
.portal-search input {flex:1;min-width:0;padding:10px 14px;border:0;background:transparent;font-size:16px;}
.portal-search button {flex:0 0 80px;width:80px;border-radius:8px;}
.portal-search-examples {display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:16px;font-size:13px;}
.portal-search-examples > span {color:var(--muted);}
.home-section {min-width:0;}
.portal-section-head {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;}
.portal-section-head h2 {margin:0;font-size:22px;}
.portal-section-head > a {flex-shrink:0;font-size:13px;color:var(--accent);}
.portal-departments {display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;}
.portal-departments a {display:grid;justify-items:center;align-content:start;gap:12px;padding:18px 4px;background:#f8faf9;border:1px solid var(--line);border-radius:12px;text-align:center;}
.portal-departments a > span {display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e8f2ec;color:var(--accent);font-size:16px;}
.portal-departments b {font-size:13px;word-break:keep-all;}
.home-discovery {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;}
.home-discovery > section {padding:24px;border:1px solid var(--line);border-radius:12px;}
.portal-region-links {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.portal-region-links a {display:grid;place-items:center;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:14px;}
.portal-pharmacy-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.portal-pharmacy-links a {display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:58px;padding:14px;background:#f0f7f3;border-radius:8px;font-size:15px;font-weight:600;}
.home-caption {margin:16px 0 0;font-size:13px;line-height:1.7;color:var(--muted);}
.portal-story-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.portal-story {display:flex;flex-direction:column;min-width:0;padding:24px;border:1px solid var(--line);border-radius:12px;}
.portal-story small {font-size:13px;color:var(--accent);}
.portal-story h3 {margin:12px 0;font-size:19px;line-height:1.6;}
.portal-story p {margin:0 0 20px;font-size:14px;line-height:1.8;color:var(--muted);word-break:keep-all;}
.portal-read-link {margin-top:auto;font-size:13px;font-weight:700;color:var(--accent);}
.portal-home a:hover {color:#075c44;}
.portal-home a:focus-visible {outline:3px solid #28745d;outline-offset:3px;}
@media (max-width:1000px) {
  .app-header {flex-wrap:wrap;gap:16px;}
  .global-search {order:3;flex-basis:100%;max-width:none;}
  .portal-departments {grid-template-columns:repeat(4,minmax(0,1fr));}
  .portal-story-grid {gap:16px;}
  .portal-story {padding:20px;}
  .portal-site .district-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:760px) {
  :root {--page-gap:20px;--panel-pad:20px;}
  .mobile-shell {padding:0 20px calc(88px + env(safe-area-inset-bottom));}
  .app-header {padding:20px 0;}
  .brand strong {font-size:23px;}
  .portal-nav {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}
  .portal-nav a {padding:12px 4px;text-align:center;font-size:13px;}
  .app-main {padding-top:24px;}
  .app-main h1 {font-size:26px;}
  .portal-site .filter-card {grid-template-columns:minmax(0,1fr);gap:12px;}
  .filter-card .advanced-filter,.filter-card > button {margin:0;}
  .portal-site .two-columns,.home-discovery,.portal-story-grid {grid-template-columns:minmax(0,1fr);}
  .site-footer {grid-template-columns:minmax(0,1fr);}
  .portal-site .district-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .portal-site .visit-summary {grid-template-columns:minmax(0,1fr);}
  .portal-site .choice-card {padding:16px;}
  .portal-site .result-title {align-items:flex-start;}
  .portal-site .choice-card-actions {grid-template-columns:repeat(auto-fit,minmax(80px,1fr));}
  .portal-home {gap:28px;}
  .portal-search-zone {padding:24px 20px;}
  .portal-intro {font-size:14px;}
  .portal-search input {font-size:14px;padding:8px;}
  .portal-search button {flex-basis:58px;width:58px;}
  .portal-search-examples {gap:8px 14px;font-size:12px;}
  .portal-search-examples > span {display:none;}
  .portal-section-head {gap:10px;margin-bottom:16px;}
  .portal-section-head h2 {font-size:20px;}
  .portal-section-head > a {font-size:12px;}
  .portal-departments {gap:8px;}
  .portal-departments a {padding:14px 2px;gap:10px;}
  .portal-departments b {font-size:11px;}
  .portal-departments a > span {width:38px;height:38px;font-size:14px;}
  .home-discovery {gap:20px;}
  .home-discovery > section {padding:20px;}
  .portal-region-links {gap:6px;}
  .portal-region-links a {font-size:13px;padding:6px;}
  .portal-pharmacy-links a {font-size:14px;}
  .portal-story {padding:20px;}
  .bottom-nav {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));bottom:0;border-radius:0;}
}
@media (max-width:400px) {
  :root {--panel-pad:16px;}
  .mobile-shell {padding-left:16px;padding-right:16px;}
  .portal-search-zone {padding:20px 16px;}
  .portal-search input {font-size:13px;}
  .portal-site .cta-grid.secondary-actions {grid-template-columns:repeat(2,minmax(0,1fr));}
}
