/* Accessibility overrides for captured layouts; the original styles stay intact. */
html{font-size:100%;scroll-padding-top:7rem}
body{font-size:1rem;line-height:1.5}
:root{--a11y-focus:#005fcc}
html[data-theme=dark]{--a11y-focus:#79c0ff}
:is(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--a11y-focus)!important;outline-offset:3px!important}
.mapItem:focus-visible,.groupRow:focus-visible{outline-offset:-3px!important}
:is(.mapItem,.groupRow,.clone-note,.clone-roadview-panel p,.noti_date,.noti_cate,.noti_name,.ft_copy,.ft_link,.sc_desc,#listCount){font-size:max(.875rem,14px)!important;line-height:1.5!important}
.noti_title span,#listCount :is(span,div){font-size:.875rem!important;line-height:1.5!important}
:is(.sc_op select,.sc_op input,.mapInfo strong,.mapBtn,.bt_btns a,.clone-local-form input,.clone-local-form select,.clone-local-form textarea){font-size:1rem!important;line-height:1.5!important}
.sc_op :is(select,input){min-height:2.75rem;max-width:100%;box-sizing:border-box}
.mapInfo{max-width:calc(100vw - 3rem)!important;overflow-wrap:anywhere}
.clone-dialog>div{max-height:calc(100dvh - 2rem);overflow:auto}
img{max-width:100%}
/* Small labels and utility controls need normal-text contrast in both themes. */
html:not([data-contrast=high]) .noti_title>span{color:#0969da!important;border-color:#0969da!important}
html[data-theme=dark]:not([data-contrast=high]) .noti_title>span{color:#79c0ff!important;border-color:#79c0ff!important}
html:not([data-contrast=high]) .hd_login a{background:#0969da!important;color:#fff!important}
html[data-theme=dark]:not([data-contrast=high]) .hd_login a{background:#0053a4!important;color:#fff!important}
html:not([data-contrast=high]) :is(#ft_copy,#ft_copy b,#ft_copy span,#ft_copy p,#ft_copy a){color:#c9d1d9!important}
html:not([data-contrast=high]) #backBtn{color:#57606a!important}
html[data-theme=dark]:not([data-contrast=high]) #backBtn{color:#c9d1d9!important}
html:not([data-contrast=high]) .topCon>span{color:#0969da!important;border-color:#0969da!important}
html:not([data-contrast=high]) .topCon>a{background:#0969da!important;color:#fff!important;border-color:#0969da!important}
html[data-theme=dark]:not([data-contrast=high]) .topCon>span{color:#79c0ff!important;border-color:#79c0ff!important}
html[data-theme=dark]:not([data-contrast=high]) .topCon>a{background:#0053a4!important;border-color:#0053a4!important}
html[data-theme=dark] #bo_list_total{color:#c9d1d9!important}
/* Reflow the fixed-height map into document flow on narrow/zoomed viewports. */
/* Keep announcement cards in complete rows when badges wrap. */
#container .latest_wr:has(> .notiWp){display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}
#container .latest_wr > .notiWp{display:flex;width:100%!important;margin:0!important;float:none!important;min-width:0;flex-direction:column}
#container .notiWp .yt_thum{height:auto;flex:none}
#container .notiWp .yt_thum img{height:auto;aspect-ratio:16/9;object-fit:cover}
#container .notiWp .bt_btns{margin-top:auto}
@media(max-width:1200px){#container .latest_wr:has(> .notiWp){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:48rem){
  html,body{min-width:0!important;height:auto!important;overflow-y:auto!important}
  #wrapper,#container_wr,#container{min-width:0!important;width:100%!important;max-width:100%!important;height:auto!important}
  html body #wrapper #container_wr:has(#ayMapWp){margin:0 auto!important;padding:0!important}
  #container:has(#ayMapWp){padding-top:0!important}
  #container .topSection{position:relative!important;top:auto!important;height:auto!important;min-height:4.5rem;box-sizing:border-box;padding:1rem 3.5rem 1rem 2.25rem!important}
  .topSection .titles{font-size:1rem!important;line-height:1.5!important;overflow-wrap:anywhere;word-break:normal!important}
  .topSection .topCon :is(a,span){font-size:.875rem!important;line-height:1.5!important}
  #backBtn{top:1rem!important;line-height:1!important}
  #ayMapWp{position:relative!important;inset:auto!important;display:flex!important;flex-direction:column!important;width:100%!important;height:auto!important;overflow:visible!important;box-shadow:none!important}
  #ayMapWp .sc_op{position:relative!important;inset:auto!important;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.35rem;width:100%!important;max-width:none!important;height:auto!important;box-sizing:border-box;padding:.75rem!important}
  #ayMapWp .sc_op select{width:100%!important;padding:.4rem .5rem!important;margin:0!important}
  .sc_op br{display:none}
  .sc_op #btn_search{grid-column:1/-1;padding:.5rem!important}
  #ayMapWp .mapList{width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:.5rem!important;overflow:visible!important;border-right:0!important;box-sizing:border-box}
  .mapList .mapItem,.mapList .groupRow{font-size:1rem!important;padding:.75rem!important;white-space:normal!important;overflow-wrap:anywhere}
  #ayMapWp #map{flex:none!important;width:100%!important;height:24rem!important;min-height:18rem!important}
  #bo_v,#bo_list,.tbl_wrap{max-width:100%!important;min-width:0!important}
  .tbl_wrap{overflow-x:auto}
  #bo_v :is(table,td,th){overflow-wrap:anywhere}
  #bgMenu{overflow-y:auto!important}
  #bgMenu .bgmn_wrap #bgmn{position:relative!important;inset:auto!important;transform:none!important;padding:1rem!important;text-align:left!important}
  #bgMenu .gnb_1da2{font-size:1rem!important;max-width:100%;overflow-wrap:anywhere}
  #bgMenu .gnb_1da2 span{font-size:.875rem!important}
  #bgMenu .gnb_1da2::after{display:none}
  #container:not(:has(#ayMapWp)) .titles{font-size:1.75rem!important;line-height:1.4!important}
  #container .latest_wr:has(> .notiWp){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:.75rem;min-width:0}
  #container .latest_wr .notiWp{width:100%!important;margin:0!important;float:none!important;min-width:0}
}
@media(max-width:25rem){
  .hosted-board-search{flex-wrap:wrap}
  .hosted-board-search input{min-width:0;flex:1 1 10rem;max-width:100%}
}
/* Contrast is independent of the chosen light/dark theme. */
html[data-contrast=high]{--a11y-bg:#fff;--a11y-panel:#fff;--a11y-text:#000;--a11y-link:#003d99;--a11y-border:#000;--a11y-focus:#003d99}
html[data-theme=dark][data-contrast=high]{--a11y-bg:#000;--a11y-panel:#000;--a11y-text:#fff;--a11y-link:#ffdf00;--a11y-border:#fff;--a11y-focus:#ffdf00}
html[data-contrast=high] :is(body,#wrapper,#container,#hd,#gnb,#ft,#bgMenu,.mapList,.mapItem,.groupRow,.groupSlide,.sc_op,.mapInfo,.clone-dialog>div,.clone-local-form,.clone-roadview-panel,#bo_v,#bo_list,.tbl_head01 td,.tbl_head01 th,.tbl_head01 tr,#listCount,.notiWp,.noti_title,.noti_date,.noti_cate,.noti_name){background:var(--a11y-bg)!important;color:var(--a11y-text)!important;border-color:var(--a11y-border)!important}
html[data-contrast=high] :is(input,select,textarea,.site-theme-toggle,.site-mobile-actions a){background:var(--a11y-panel)!important;color:var(--a11y-text)!important;border:2px solid var(--a11y-border)!important}
html[data-contrast=high] :is(a,.sc_tit,.sc_desc,.clone-note){color:var(--a11y-link)!important}
html[data-contrast=high] .topCon :is(a,span){background:var(--a11y-bg)!important;color:var(--a11y-link)!important;border-color:var(--a11y-border)!important}
html[data-contrast=high] :is(input,textarea)::placeholder{color:var(--a11y-text)!important;opacity:1}
html[data-contrast=high] :is(.mapBtn,.clone-primary,.clone-dialog button,.bt_btns a){background:var(--a11y-text)!important;color:var(--a11y-bg)!important;border:2px solid var(--a11y-text)!important}
html[data-contrast=high] :is(.mapItem:hover,.mapItem.active,.groupRow:hover,.groupRow.active){outline:2px solid var(--a11y-border)!important;outline-offset:-2px}
html[data-contrast=high] #mo_bar a span{background:var(--a11y-text)!important}
html[data-contrast=high] :is(#ft_copy,#ft_copy b,#ft_copy span,#ft_copy p){background:var(--a11y-bg)!important;color:var(--a11y-text)!important}
html[data-contrast=high] .noti_title>span{color:var(--a11y-link)!important;border-color:var(--a11y-border)!important}
html[data-contrast=high] .hd_login a{background:var(--a11y-bg)!important;color:var(--a11y-link)!important;border:1px solid var(--a11y-border)!important}
html[data-contrast=high] :is(#ft p,.ft_info,#bo_list_total){color:var(--a11y-text)!important}
html[data-contrast=high] .leaflet-tile-pane{filter:none}
@media(forced-colors:active){
  :root{--a11y-focus:Highlight}
  :is(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid Highlight!important}
  :is(button,.mapItem,.groupRow,.mapBtn,.site-theme-toggle,.site-mobile-actions a){border:1px solid ButtonText!important}
  .mapItem.active,.groupRow.active{outline:2px solid Highlight!important}
  #mo_bar a span{background:ButtonText!important}
  .leaflet-tile-pane{filter:none!important}
}

/* Place the IN badge after the label instead of covering its last letters. */
#gnb .gnb_1da .sp,#bgMenu .gnb_1da2 .sp{position:static!important;display:inline-block!important;vertical-align:middle;margin-left:.3em!important}
