/* Shared shell for Theme 1 and future themes. Loaded after legacy skin files. */
body.gimyo-app-shell {
  --journey-width: 1120px;
  --journey-gutter: clamp(14px, 3vw, 32px);
  overflow-x: clip;
}
body.gimyo-app-shell,
body.gimyo-app-shell * { box-sizing: border-box; }
body.gimyo-app-shell [hidden] { display: none !important; }

/* The only header content is the service name. */
body.gimyo-app-shell > .site-brand-bar {
  position: relative;
  z-index: 20;
  width: 100%;
  min-height: 60px;
  display: flex;
  align-items: center;
  padding: 10px max(var(--journey-gutter), calc((100% - var(--journey-width)) / 2));
  border-bottom: 2px solid #1c2b49;
  background: #e8f7ff;
}
body.gimyo-app-shell .site-brand {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  max-width: 100%;
  color: #1c2b49;
  font: 700 clamp(19px, 2.3vw, 26px)/1.4 "Song Myung", serif;
  letter-spacing: -.02em;
  text-decoration: none;
  word-break: keep-all;
}
body.gimyo-app-shell .site-brand:focus-visible,
body.gimyo-app-shell .theme-choice:focus-visible { outline: 3px solid #d28014; outline-offset: 3px; }

/* One content axis for comic, search, map/list and lower links. */
body.gimyo-app-shell :is(main.gimyo-main, main.home-main, main.parking-main) {
  width: min(var(--journey-width), calc(100% - var(--journey-gutter) - var(--journey-gutter))) !important;
  max-width: var(--journey-width) !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 0 0 clamp(28px, 5vw, 56px) !important;
}
body.gimyo-app-shell :is(main.gimyo-main, main.home-main, main.parking-main) > * {
  min-width: 0;
  max-width: 100%;
}
body.gimyo-app-shell .theme-switcher {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  margin: clamp(16px, 2.3vw, 24px) 0;
}
body.gimyo-app-shell .theme-choice {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 54px;
  padding: 10px 12px;
  border: 2px solid #1c2b49;
  border-radius: 13px;
  color: #1c2b49;
  background: #fffaf0;
  font: 800 clamp(12px, 1.25vw, 16px)/1.4 "Noto Sans KR", sans-serif;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: keep-all;
}
body.gimyo-app-shell .theme-choice--active {
  color: #fff;
  background: #125e72;
  border-color: #125e72;
}
body.gimyo-app-shell .theme-choice--disabled,
body.gimyo-app-shell .theme-choice:disabled {
  color: #687580;
  background: #e9edf0;
  border-color: #c4cbd1;
  cursor: not-allowed;
  opacity: 1;
}

/* Theme 1: comic first, then the search flow, then three information links. */
body.gimyo-app-shell .gimyo-main > .usage-guide-banner {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 clamp(18px, 2.5vw, 26px) !important;
  padding: 0 !important;
  background: none !important;
}
body.gimyo-app-shell .gimyo-main > .usage-guide-banner img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}
body.gimyo-app-shell .gimyo-main > #recommend {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.gimyo-app-shell .gimyo-main .gimyo-toolbar {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: 100% !important;
  gap: 14px !important;
  margin: 0 0 10px !important;
}
body.gimyo-app-shell .gimyo-main .center-picker,
body.gimyo-app-shell .gimyo-main .category-area,
body.gimyo-app-shell .gimyo-main .recommendation-context {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
}
body.gimyo-app-shell .gimyo-main .center-picker {
  display: grid !important;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 16px !important;
}
body.gimyo-app-shell .gimyo-main .center-picker .center-actions {
  width: 100% !important;
  min-width: 0 !important;
}
body.gimyo-app-shell .gimyo-main .category-area {
  padding: 14px 16px !important;
  border: 2px solid #1c2b49 !important;
  border-radius: 18px !important;
  background: #fffdf6 !important;
}
body.gimyo-app-shell .gimyo-main .section-label {
  display: block;
  margin: 0 0 10px;
  font: 800 17px/1.4 "Noto Sans KR", sans-serif;
  color: #1c2b49;
}
body.gimyo-app-shell .gimyo-main .category-area .category-picker {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  gap: 10px !important;
  margin: 0 !important;
}
body.gimyo-app-shell .gimyo-main .category-area .category-picker button {
  display: flex !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 50px !important;
  padding: 9px 8px !important;
  text-align: center !important;
  font-size: 14px !important;
}
body.gimyo-app-shell .gimyo-main .recommendation-context {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  padding: 15px 18px !important;
  border-radius: 15px !important;
}
body.gimyo-app-shell .gimyo-main .gimyo-toolbar > .gimyo-tools {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: 100% !important;
  min-height: 40px;
  margin: -5px 0 0 !important;
}
body.gimyo-app-shell .gimyo-main .language-picker select {
  min-height: 40px !important;
  padding: 6px 10px !important;
  font-size: 12px !important;
}
body.gimyo-app-shell .gimyo-main #status {
  width: 100%;
  margin: 0 0 8px;
  padding: 2px 0;
  font-size: 13px;
}
body.gimyo-app-shell .gimyo-main #location-status {
  margin: 0 0 8px !important;
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
body.gimyo-app-shell .gimyo-main .view-switch {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 12px 0 14px !important;
  padding: 6px !important;
}
body.gimyo-app-shell .gimyo-main .view-switch button {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  min-height: 49px !important;
  padding: 9px 12px !important;
  font-size: clamp(14px, 1.35vw, 17px) !important;
}
body.gimyo-app-shell .gimyo-main .workspace,
body.gimyo-app-shell .gimyo-main .workspace > .list-panel,
body.gimyo-app-shell .gimyo-main .workspace > .map-wrap,
body.gimyo-app-shell .gimyo-main .workspace #cards,
body.gimyo-app-shell .gimyo-main .workspace .actions {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}
body.gimyo-app-shell .gimyo-main .workspace {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.gimyo-app-shell .gimyo-main .workspace > .list-panel,
body.gimyo-app-shell .gimyo-main .workspace > .map-wrap {
  margin: 0 !important;
}
body.gimyo-app-shell .gimyo-main .workspace #cards {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
body.gimyo-app-shell .gimyo-main > .how-journey {
  width: 100% !important;
  max-width: none !important;
  margin: clamp(20px, 3vw, 32px) 0 0 !important;
  padding: 16px !important;
  box-shadow: none !important;
}
body.gimyo-app-shell .gimyo-main .how-steps {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
  gap: 12px !important;
}
body.gimyo-app-shell .gimyo-main .how-step {
  min-width: 0 !important;
  width: 100% !important;
}

/* Theme 1 homepage and Theme 2 use precisely the same outer boundaries. */
body.gimyo-app-shell .home-main > .hero {
  width: 100%;
  margin-top: 8px;
}
body.gimyo-app-shell .parking-main > .parking-hero,
body.gimyo-app-shell .parking-main > .parking-search {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}
body.gimyo-app-shell .parking-main > .parking-hero {
  margin-top: 4px !important;
}
body.gimyo-app-shell .parking-main .parking-concept {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
}
body.gimyo-app-shell .parking-main > .parking-search {
  margin: 24px 0 0 !important;
}
@media (max-width: 760px) {
  body.gimyo-app-shell { --journey-gutter: 14px; }
  body.gimyo-app-shell > .site-brand-bar { min-height: 54px; padding: 8px 14px; }
  body.gimyo-app-shell .theme-switcher {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0 14px;
  }
  body.gimyo-app-shell .theme-choice { min-height: 48px; padding: 8px 6px; font-size: 12px; }
  body.gimyo-app-shell .theme-choice:first-child { grid-column: 1 / -1; }
  body.gimyo-app-shell .gimyo-main > .usage-guide-banner { margin-bottom: 16px !important; }
  body.gimyo-app-shell .gimyo-main .gimyo-toolbar { gap: 10px !important; }
  body.gimyo-app-shell .gimyo-main .center-picker {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 12px !important;
    border-radius: 14px !important;
    box-shadow: none !important;
  }
  body.gimyo-app-shell .gimyo-main .center-picker .center-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  body.gimyo-app-shell .gimyo-main .center-picker .center-actions button {
    min-width: 0 !important;
    min-height: 53px !important;
    padding: 8px 9px !important;
    gap: 7px !important;
    box-shadow: none !important;
  }
  body.gimyo-app-shell .gimyo-main .center-picker .center-choice-icon {
    flex-basis: 28px !important;
    width: 28px !important;
    height: 28px !important;
    font-size: 17px !important;
  }
  body.gimyo-app-shell .gimyo-main .center-picker .center-choice-name { font-size: 12px !important; }
  body.gimyo-app-shell .gimyo-main .center-picker-heading p { display: none !important; }
  body.gimyo-app-shell .gimyo-main .category-area {
    padding: 12px !important;
    border-radius: 14px !important;
  }
  body.gimyo-app-shell .gimyo-main .section-label { font-size: 15px; margin-bottom: 8px; }
  body.gimyo-app-shell .gimyo-main .category-area .category-picker {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  body.gimyo-app-shell .gimyo-main .category-area .category-picker button {
    min-height: 44px !important;
    padding: 6px !important;
    font-size: 13px !important;
  }
  body.gimyo-app-shell .gimyo-main .recommendation-context {
    align-items: flex-start !important;
    padding: 12px !important;
    gap: 8px !important;
  }
  body.gimyo-app-shell .gimyo-main .range-context h2 { font-size: 17px !important; }
  body.gimyo-app-shell .gimyo-main .range-context p { font-size: 11px !important; }
  body.gimyo-app-shell .gimyo-main #recommendation-category { font-size: 11px !important; }
  body.gimyo-app-shell .gimyo-main .view-switch {
    margin: 10px 0 !important;
    padding: 4px !important;
  }
  body.gimyo-app-shell .gimyo-main .view-switch button { min-height: 46px !important; font-size: 14px !important; }
  body.gimyo-app-shell .gimyo-main .workspace > .list-panel,
  body.gimyo-app-shell .gimyo-main .workspace > .map-wrap {
    padding: 12px !important;
    border-radius: 13px !important;
  }
  body.gimyo-app-shell .gimyo-main > .how-journey { padding: 11px !important; }
  body.gimyo-app-shell .gimyo-main .how-steps { gap: 6px !important; }
  body.gimyo-app-shell .gimyo-main .how-step {
    justify-content: center !important;
    min-height: 52px !important;
    padding: 7px 4px !important;
    border-radius: 10px !important;
    text-align: center !important;
  }
  body.gimyo-app-shell .gimyo-main .how-step-art { display: none !important; }
  body.gimyo-app-shell .gimyo-main .how-step-label { font-size: 12px !important; }
  body.gimyo-app-shell .parking-main > .parking-search { margin-top: 16px !important; }
}
@media (max-width: 370px) {
  body.gimyo-app-shell .theme-choice { font-size: 11px; }
  body.gimyo-app-shell .gimyo-main .center-picker .center-actions button { padding: 6px !important; }
  body.gimyo-app-shell .gimyo-main .center-picker .center-choice-name { font-size: 11px !important; }
  body.gimyo-app-shell .gimyo-main .recommendation-context { flex-wrap: wrap !important; }
}

/* P1 mobile-web map/list controls — shared with future theme shells.
   Range actions belong to the workspace, not the hidden list panel. */
body.gimyo-app-shell .gimyo-main .workspace > :is(#map-panel, #list-panel)[hidden] {
  display: none !important;
}
body.gimyo-app-shell .gimyo-main .workspace > .actions {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  gap: 10px !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: none !important;
}
body.gimyo-app-shell .gimyo-main .workspace > .actions button {
  flex: 1 1 180px !important;
  min-width: 0 !important;
  min-height: 48px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
body.gimyo-app-shell .gimyo-main .workspace > .actions button[hidden] {
  display: none !important;
}
body.gimyo-app-shell .gimyo-main .workspace #cards .card-copy,
body.gimyo-app-shell .gimyo-main .workspace #cards .card-copy b,
body.gimyo-app-shell .gimyo-main .workspace #cards .card-copy p {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 760px) {
  body.gimyo-app-shell .gimyo-main .gimyo-toolbar {
    gap: 10px !important;
  }
  body.gimyo-app-shell .gimyo-main .recommendation-context {
    display: block !important;
    padding: 12px !important;
  }
  /* Category is already visible in the selected category button. Keep
     its aria-live content available to assistive technology, not repeated
     visually in the constrained mobile layout. */
  body.gimyo-app-shell .gimyo-main #recommendation-category {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }
  body.gimyo-app-shell .gimyo-main .workspace > .actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 10px 0 0 !important;
  }
  body.gimyo-app-shell .gimyo-main .workspace > .actions #reroll {
    grid-column: 1 / -1;
  }
  body.gimyo-app-shell .gimyo-main .workspace > .actions button {
    width: 100% !important;
    min-height: 46px !important;
    padding: 10px 8px !important;
    font-size: clamp(12px, 3.4vw, 14px) !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
  }
  body.gimyo-app-shell .gimyo-main .workspace > .map-wrap #map {
    width: 100% !important;
    height: min(58svh, 440px) !important;
    min-height: 230px !important;
    max-height: none !important;
  }
  body.gimyo-app-shell .gimyo-main .workspace #cards .card.card {
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body.gimyo-app-shell .gimyo-main .view-switch {
    scroll-margin-top: 12px;
  }
}
@media (max-width: 370px) {
  body.gimyo-app-shell .gimyo-main .workspace > .actions button {
    padding-inline: 5px !important;
    font-size: 12px !important;
  }
}

/* P1: shared theme selector + full width list/map workflow. */
body.gimyo-app-shell .gimyo-main .center-picker .anchor-branches {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
}
body.gimyo-app-shell .gimyo-main .anchor-branches > summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  padding: 8px 4px;
  min-height: 44px;
  color: #1c2b49;
}
body.gimyo-app-shell .gimyo-main .anchor-choice-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 8px;
  padding: 5px 0 10px;
}
body.gimyo-app-shell .gimyo-main .anchor-choice-grid button {
  border: 1px solid #6daea5;
  border-radius: 10px;
  background: #fff;
  color: #1c2b49;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  min-width: 0;
  min-height: 44px;
  padding: 8px;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}
body.gimyo-app-shell .gimyo-main .anchor-choice-grid button[aria-pressed="true"] {
  border: 2px solid #1c2b49;
  background: #e4f8ef;
}
body.gimyo-app-shell .gimyo-main .workspace {
  grid-template-columns: minmax(0,1fr) !important;
}
body.gimyo-app-shell .gimyo-main .workspace > .actions {
  grid-column: 1 / -1 !important;
}
@media (max-width: 760px) {
  body.gimyo-app-shell .gimyo-main .anchor-choice-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}
