@charset "UTF-8";

/* Academy map component. Leaflet's structural selectors are scoped to this map. */
.academy-map-root{
  --map-red:#c83b29;
  --map-red-dark:#9f2c1f;
  --map-red-soft:#fff1ee;
  --map-ink:var(--ink,#191919);
  --map-muted:var(--muted,#767a82);
  --map-line:var(--line,#e9eaed);
  --map-paper:var(--paper,#fff);
  width:100%;
  min-width:0;
  margin:24px 0;
  color:var(--map-ink);
  font-size:14px;
  line-height:1.55;
}
.academy-map-root,.academy-map-root *{box-sizing:border-box}
.academy-map-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--map-line);
  border-bottom:0;
  border-radius:8px 8px 0 0;
  background:#fafafa;
}
.academy-map-toolbar-label{margin-right:auto;font-size:14px}
.academy-map-toolbar>div:first-child{min-width:min(100%,260px);margin-right:auto}
.academy-map-toolbar h2{margin:0;font-size:17px;line-height:1.35}
.academy-map-toolbar p{margin:2px 0 0;color:#666b72;font-size:12px;line-height:1.45}
.academy-map-toolbar .map-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.academy-map-toolbar button,.academy-map-toolbar [role="button"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:8px 14px;
  border:1px solid #cfd1d5;
  border-radius:5px;
  background:#fff;
  color:var(--map-ink);
  font-size:14px;
  font-weight:700;
  line-height:1.3;
}
.academy-map-toolbar button:hover,.academy-map-toolbar button.is-active{border-color:var(--map-red);color:var(--map-red-dark);background:var(--map-red-soft)}
.academy-map-toolbar button:focus-visible,.academy-map-retry:focus-visible,.academy-map-save:focus-visible,.academy-map-marker-icon:focus-visible,.academy-map-root .leaflet-control a:focus-visible{
  outline:3px solid #6f6f6f;
  outline-offset:2px;
}
.academy-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(292px,340px);
  min-width:0;
  border:1px solid var(--map-line);
  background:var(--map-paper);
}
.academy-map-canvas-wrap{position:relative;min-width:0;overflow:hidden;border-right:1px solid var(--map-line);background:#f2f3f4}
.academy-map-layout>.academy-map{min-width:0;border-right:1px solid var(--map-line)}
.academy-map,.academy-map-canvas{position:relative;width:100%;height:420px;min-height:420px;overflow:hidden;background-color:#eef0f1;background-image:linear-gradient(#e4e6e8 1px,transparent 1px),linear-gradient(90deg,#e4e6e8 1px,transparent 1px);background-size:32px 32px;isolation:isolate}
.academy-map-root--tiles-off .academy-map-canvas::after{
  content:"배경지도 꺼짐";
  position:absolute;
  z-index:350;
  right:10px;
  top:10px;
  padding:5px 8px;
  border:1px solid rgba(25,25,25,.13);
  border-radius:4px;
  background:rgba(255,255,255,.92);
  color:#5f6368;
  font-size:12px;
  font-weight:700;
  pointer-events:none;
}
.academy-map-sidebar{display:flex;flex-direction:column;min-width:0;height:420px;overflow:hidden;background:#fff}
.academy-map-sidebar>h2,.academy-map-sidebar>h3{flex:none;margin:0;padding:14px 16px 0;font-size:16px;line-height:1.4}
.academy-map-totals{flex:none;padding:16px;border-bottom:1px solid var(--map-line)}
.academy-map-total-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.academy-map-total{min-width:0;padding:10px;border:1px solid var(--map-line);border-radius:5px;background:#fafafa}
.academy-map-total>span{display:block;color:#666b72;font-size:12px;font-weight:650}
.academy-map-total strong{display:block;margin-top:2px;font-size:20px;line-height:1.25;letter-spacing:-.04em}
.academy-map-total small{margin-left:3px;color:#5d6168;font-size:12px;font-weight:650}
.academy-map-small-print{margin-top:10px;color:#656a71;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.academy-map-small-print p{margin:4px 0 0}
.academy-map-records{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:16px;scrollbar-gutter:stable}
.academy-map-records-head{position:sticky;z-index:2;top:-16px;margin:-16px -16px 12px;padding:15px 16px 12px;border-bottom:1px solid var(--map-line);background:rgba(255,255,255,.97)}
.academy-map-records-head h2{margin:0;font-size:16px;line-height:1.35}
.academy-map-records-head p{margin:4px 0 0;color:#666b72;font-size:12px;line-height:1.5}
.academy-map-record-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.academy-map-record{min-width:0;padding:12px;border:1px solid var(--map-line);border-radius:6px;background:#fff;overflow-wrap:anywhere}
.academy-map-record:hover{border-color:#c9cbd0}
.academy-map-record-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.academy-map-kind{display:inline-flex;align-items:center;min-height:24px;padding:2px 7px;border-radius:999px;background:#f1f2f4;color:#555b62;font-size:12px;font-weight:700}
.academy-map-save{min-width:44px;min-height:44px;margin:-9px -8px -8px 0;padding:7px;border:0;background:transparent;color:var(--map-red-dark);font-size:12px;font-weight:750;white-space:nowrap}
.academy-map-save:hover{text-decoration:underline}
.academy-map-save[aria-pressed="true"]{color:#6f251b;background:var(--map-red-soft);border-radius:4px}
.academy-map-record-name{margin:0;font-size:15px;line-height:1.4;letter-spacing:-.035em}
.academy-map-record-name a:hover{color:var(--map-red-dark);text-decoration:underline;text-underline-offset:3px}
.academy-map-record-address{margin:5px 0 0;color:#646970;font-size:13px;line-height:1.55}
.academy-map-fee{display:block;margin:7px 0 0;color:#34383d;font-size:13px;font-weight:700;line-height:1.5}
.academy-map-records-empty{margin:24px 0;color:#666b72;font-size:14px;text-align:center}
.academy-map-state{border-right:1px solid var(--map-line);border-left:1px solid var(--map-line);background:#fff}
.academy-map-message{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 12px;border-top:1px solid var(--map-line);font-size:13px}
.academy-map-toolbar+.academy-map-state .academy-map-message:first-child{border-top:1px solid var(--map-line)}
.academy-map-message--loading{color:#4e5359;background:#f8f9fa}
.academy-map-message--success{color:#315a43;background:#f2f8f4}
.academy-map-message--empty,.academy-map-message--info{color:#555b62;background:#f8f8f8}
.academy-map-message--error{color:#7d2117;background:#fff1ee}
.academy-map-retry{flex:none;min-height:44px;padding:7px 12px;border:1px solid var(--map-red);border-radius:4px;background:#fff;color:var(--map-red-dark);font-size:13px;font-weight:750}
.academy-map-root--error .academy-map-layout{border-color:#e2b3ad}

/* Leaflet structure */
.academy-map .leaflet-pane,.academy-map .leaflet-tile,.academy-map .leaflet-marker-icon,.academy-map .leaflet-marker-shadow,.academy-map .leaflet-tile-container,.academy-map .leaflet-pane>svg,.academy-map .leaflet-pane>canvas{position:absolute;left:0;top:0}
.academy-map .leaflet-map-pane,.academy-map .leaflet-tile-pane,.academy-map .leaflet-overlay-pane,.academy-map .leaflet-shadow-pane,.academy-map .leaflet-marker-pane,.academy-map .leaflet-tooltip-pane,.academy-map .leaflet-popup-pane{position:absolute;left:0;top:0}
.academy-map .leaflet-container{overflow:hidden}
.academy-map .leaflet-tile,.academy-map .leaflet-marker-icon,.academy-map .leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}
.academy-map .leaflet-tile::selection{background:transparent}
.academy-map .leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}
.academy-map .leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;transform-origin:0 0}
.academy-map .leaflet-marker-icon,.academy-map .leaflet-marker-shadow{display:block}
.academy-map .leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}
.academy-map .leaflet-container .leaflet-marker-pane img,.academy-map .leaflet-container .leaflet-shadow-pane img,.academy-map .leaflet-container .leaflet-tile-pane img,.academy-map .leaflet-container img.leaflet-image-layer,.academy-map .leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}
.academy-map .leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}
.academy-map .leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}
.academy-map .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}
.academy-map .leaflet-container{-webkit-tap-highlight-color:transparent}
.academy-map .leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}
.academy-map .leaflet-tile{filter:inherit;visibility:hidden}
.academy-map .leaflet-tile-loaded{visibility:inherit}
.academy-map .leaflet-zoom-box{width:0;height:0;border:2px dotted #3388ff;background:rgba(255,255,255,.5)}
.academy-map .leaflet-pane{z-index:400}
.academy-map .leaflet-tile-pane{z-index:200}
.academy-map .leaflet-overlay-pane{z-index:400}
.academy-map .leaflet-shadow-pane{z-index:500}
.academy-map .leaflet-marker-pane{z-index:600}
.academy-map .leaflet-tooltip-pane{z-index:650}
.academy-map .leaflet-popup-pane{z-index:700}
.academy-map .leaflet-map-pane canvas{z-index:100}
.academy-map .leaflet-map-pane svg{z-index:200}
.academy-map .leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}
.academy-map .leaflet-top,.academy-map .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.academy-map .leaflet-top{top:0}.academy-map .leaflet-right{right:0}.academy-map .leaflet-bottom{bottom:0}.academy-map .leaflet-left{left:0}
.academy-map .leaflet-control{float:left;clear:both}
.academy-map .leaflet-right .leaflet-control{float:right}
.academy-map .leaflet-top .leaflet-control{margin-top:10px}
.academy-map .leaflet-bottom .leaflet-control{margin-bottom:10px}
.academy-map .leaflet-left .leaflet-control{margin-left:10px}
.academy-map .leaflet-right .leaflet-control{margin-right:10px}
.academy-map .leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .16s linear}
.academy-map .leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}
.academy-map .leaflet-zoom-animated{transform-origin:0 0}
.academy-map .leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}
.academy-map .leaflet-zoom-anim .leaflet-tile,.academy-map .leaflet-pan-anim .leaflet-tile{transition:none}
.academy-map .leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
.academy-map .leaflet-interactive{cursor:pointer}
.academy-map .leaflet-grab{cursor:grab}
.academy-map .leaflet-crosshair,.academy-map .leaflet-crosshair .leaflet-interactive{cursor:crosshair}
.academy-map .leaflet-popup-pane,.academy-map .leaflet-control{cursor:auto}
.academy-map .leaflet-dragging .leaflet-grab,.academy-map .leaflet-dragging .leaflet-grab .leaflet-interactive{cursor:grabbing}
.academy-map .leaflet-marker-icon,.academy-map .leaflet-marker-shadow,.academy-map .leaflet-image-layer,.academy-map .leaflet-pane>svg path,.academy-map .leaflet-tile-container{pointer-events:none}
.academy-map .leaflet-marker-icon.leaflet-interactive,.academy-map .leaflet-image-layer.leaflet-interactive,.academy-map .leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:auto}

/* Leaflet controls, markers, tooltip and popup */
.academy-map .leaflet-bar{border:1px solid rgba(25,25,25,.18);border-radius:5px;background:#fff;box-shadow:0 2px 10px rgba(25,25,25,.12);overflow:hidden}
.academy-map .leaflet-bar a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-bottom:1px solid #ddd;background:#fff;color:#222;font:700 22px/1 var(--sans,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif);text-decoration:none}
.academy-map .leaflet-bar a:last-child{border-bottom:0}
.academy-map .leaflet-bar a:hover{background:#f4f4f4;color:var(--map-red-dark)}
.academy-map .leaflet-bar a.leaflet-disabled{color:#aaa;background:#f4f4f4;cursor:default}
.academy-map .leaflet-control-attribution{max-width:calc(100vw - 24px);padding:3px 7px;background:rgba(255,255,255,.94);color:#555;font-size:11px;line-height:1.35;text-align:right}
.academy-map .leaflet-control-attribution a{color:#344e75;text-decoration:underline;text-underline-offset:2px}
.academy-map-marker-icon{border:0!important;background:transparent!important}
.academy-map-point,.academy-map-cluster{display:flex;width:var(--marker-size);height:var(--marker-size);align-items:center;justify-content:center;border-radius:50%;box-shadow:0 1px 0 rgba(0,0,0,.2),0 3px 10px rgba(46,25,21,.2)}
.academy-map-point{border:3px solid #fff;background:var(--map-red)}
.academy-map-cluster{border:3px solid #fff;background:var(--map-red);color:#fff;font-size:12px;font-weight:800;letter-spacing:-.045em;white-space:nowrap}
.academy-map-marker-icon:hover .academy-map-point,.academy-map-marker-icon:hover .academy-map-cluster,.academy-map-marker-icon:focus-visible .academy-map-point,.academy-map-marker-icon:focus-visible .academy-map-cluster{background:var(--map-red-dark)}
.academy-map-focus-icon{border:0!important;background:transparent!important}
.academy-map-focus-icon--aggregate{pointer-events:none!important}
.academy-map-focus-pin{position:relative;display:block;width:30px;height:30px;border:4px solid #fff;border-radius:50% 50% 50% 6px;background:var(--map-red-dark);box-shadow:0 3px 12px rgba(58,20,14,.3);transform:rotate(-45deg)}
.academy-map-focus-pin::after{content:"";position:absolute;left:7px;top:7px;width:8px;height:8px;border-radius:50%;background:#fff}
.academy-map-focus-ring{display:block;width:52px;height:52px;border:4px solid var(--map-red-dark);border-radius:50%;background:rgba(255,255,255,.18);box-shadow:0 0 0 3px rgba(255,255,255,.88),0 2px 10px rgba(58,20,14,.22)}
.academy-map .leaflet-tooltip{position:absolute;max-width:min(260px,70vw);padding:6px 9px;border:1px solid rgba(25,25,25,.16);border-radius:4px;background:#fff;color:#202124;box-shadow:0 2px 9px rgba(0,0,0,.13);font-size:13px;font-weight:750;line-height:1.4;overflow-wrap:anywhere;pointer-events:none;white-space:normal}
.academy-map .leaflet-tooltip-top{margin-top:-7px}
.academy-map .academy-map-focus-tooltip{max-width:min(260px,70vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.academy-map .leaflet-tooltip::before{position:absolute;border:6px solid transparent;background:transparent;content:"";pointer-events:none}
.academy-map .leaflet-tooltip-top::before{left:50%;bottom:0;margin-left:-6px;margin-bottom:-12px;border-top-color:#fff}
.academy-map .leaflet-popup{position:absolute;margin-bottom:20px;text-align:left}
.academy-map .leaflet-popup-content-wrapper{border:1px solid rgba(25,25,25,.13);border-radius:7px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.academy-map .leaflet-popup-content{width:260px;margin:16px;font-size:13px;line-height:1.5}
.academy-map .leaflet-popup-tip-container{position:absolute;left:50%;width:40px;height:20px;margin-left:-20px;overflow:hidden;pointer-events:none}
.academy-map .leaflet-popup-tip{width:17px;height:17px;margin:-10px auto 0;padding:1px;border:1px solid rgba(25,25,25,.13);background:#fff;box-shadow:3px 3px 5px rgba(0,0,0,.12);transform:rotate(45deg)}
.academy-map .leaflet-popup-close-button{position:absolute;z-index:2;right:4px;top:4px;display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent;color:#555;font:700 22px/1 sans-serif;text-decoration:none}
.academy-map-popup{padding-right:22px;overflow-wrap:anywhere}
.academy-map-popup-title{display:block;margin-bottom:8px;font-size:15px}
.academy-map-popup-summary{margin:0 0 8px;color:#63686f;font-size:12px}
.academy-map-popup-record{padding:8px 0;border-top:1px solid var(--map-line)}
.academy-map-popup-record:first-of-type{border-top:0}
.academy-map-popup-record h3{margin:0;font-size:14px;line-height:1.4}
.academy-map-popup-record h3 a:hover{color:var(--map-red-dark);text-decoration:underline}
.academy-map-popup-record p{margin:3px 0 0;color:#666b72;font-size:12px}

.map-source,.map-source-note,.map-privacy-note,.academy-map-source,.academy-map-privacy{
  margin:10px 0 0;
  color:#666b72;
  font-size:12px;
  line-height:1.6;
  overflow-wrap:anywhere;
}
.map-source a,.map-source-note a,.map-privacy-note a,.academy-map-source a,.academy-map-privacy a{color:#354f76;text-decoration:underline;text-underline-offset:2px}

@media (max-width:780px){
  .academy-map-root{margin:18px 0;font-size:14px}
  .academy-map-toolbar{padding:8px;border-radius:6px 6px 0 0}
  .academy-map-toolbar-label{width:100%;margin:0 0 1px}
  .academy-map-toolbar>div:first-child{width:100%;margin:0}
  .academy-map-toolbar .map-toolbar-actions{width:100%}
  .academy-map-toolbar button,.academy-map-toolbar [role="button"]{flex:1 1 132px}
  .academy-map-layout{display:block}
  .academy-map-canvas-wrap{border-right:0;border-bottom:1px solid var(--map-line)}
  .academy-map-layout>.academy-map{border-right:0;border-bottom:1px solid var(--map-line)}
  .academy-map,.academy-map-canvas{height:330px;min-height:330px}
  .academy-map-sidebar{height:auto;max-height:none;overflow:visible}
  .academy-map-totals{padding:12px}
  .academy-map-records{max-height:480px;padding:12px;overflow:auto}
  .academy-map-records-head{top:-12px;margin:-12px -12px 10px;padding:12px}
  .academy-map-state{border-bottom:0}
  .academy-map-message{align-items:flex-start;flex-wrap:wrap;padding:9px 10px}
  .academy-map-retry{width:100%}
  .academy-map .leaflet-control-attribution{font-size:10px}
  .academy-map .leaflet-popup-content{width:min(250px,calc(100vw - 100px));margin:14px}
}

@media (max-width:420px){
  .academy-map-total-grid{gap:6px}
  .academy-map-total{padding:8px}
  .academy-map-total strong{font-size:18px}
  .academy-map-record{padding:11px}
}

@media (prefers-reduced-motion:reduce){
  .academy-map .leaflet-fade-anim .leaflet-popup,.academy-map .leaflet-zoom-anim .leaflet-zoom-animated{transition:none}
}
