/* Physical-phone corrections, scoped to the owner-requested surfaces. */
.sojourner-page .sojourner-status,
.sojourner-page .theme-helper { color: #f4dfaf; }
.sojourner-page .sojourner-table { overflow: visible; }
.sojourner-page .sojourner-column {
  height: calc(var(--sojourner-card-height) + var(--face-up-before, 0) * var(--sojourner-faceup-offset) + var(--face-down-before, 0) * var(--sojourner-facedown-offset));
}
.sojourner-road-end-panel { max-width: min(520px, calc(100vw - 32px)); }
.sojourner-road-end-panel::backdrop, .sojourner-win::backdrop { background: rgba(4, 18, 36, .78); }
.sojourner-win { width: min(460px, calc(100vw - 32px)); max-height: 90dvh; overflow-y: auto; text-align: center; background: #0a3161; color: #fff0cd; border: 2px solid #d7b66a; border-radius: 12px; padding: 20px; }
.sojourner-win:not([open]) { display: none; }
.sojourner-win h2 { color: #f7d66a; }
.sojourner-win form { display: inline; }
.sojourner-win-flag { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; max-width: 260px; margin: 24px auto; overflow: visible; }
.sojourner-win-card { border-radius: 2px; border: 1px solid #d7b66a; height: 15px; font: bold 10px Georgia, serif; animation: sojourner-card-firework 4s ease-out both; }
.sojourner-win-card.is-canton { color: #fff9ef; background: #123e75; }
.sojourner-win-card.is-red { color: #fff9ef; background: #bf0d3e; }
.sojourner-win-card.is-cream { color: #0a3161; background: #fff9ef; }
@keyframes sojourner-card-firework {
  0%, 40% { transform: none; opacity: 1; }
  80% { transform: translate(var(--burst-x), var(--burst-y)) rotate(var(--burst-rotation)); opacity: 0; }
  81% { transform: none; opacity: 0; }
  100% { transform: none; opacity: 1; }
}

/* The same soft radial light as the approved cabinet/planner, without a frame. */
body :is(.miles-return-ticket, .road-ideas-hotspot)::before {
  background: radial-gradient(ellipse at center, rgba(255, 216, 125, .78), rgba(232, 184, 91, .4) 38%, transparent 72%);
  box-shadow: none; filter: blur(4px); opacity: .88;
  animation: bureau-glow-pulse 3.2s ease-in-out infinite;
  pointer-events: none;
}
body .miles-return-ticket { animation: bureau-ticket-glow 3.2s ease-in-out infinite; }
body .miles-scene:has(.miles-filing-drawer.is-open) .miles-return-ticket { visibility: visible; z-index: 4; }
.miles-state-story-hint { display: none; }
.miles-state-sheet[data-planner-mode="stateStory"] .miles-state-story-hint { display: block; position: absolute; bottom: 100%; left: 0; width: 100%; margin: 0 0 8px; text-align: center; color: #e8b85b; font-size: .78rem; }
.promises-book-stage:has(.promises-book.has-overlay-open) > .promises-turn-button { visibility: hidden; pointer-events: none; }
.promises-book-stage:has(.promises-supply-panel) > .promises-turn-button { visibility: hidden; pointer-events: none; }
.promises-book { touch-action: pan-y; }

@media (max-width: 760px), (max-width: 1024px) and (max-height: 600px) and (orientation: landscape) {
  .games-page .game-tile-crossword::before { inset: 0; background-size: cover; }
  .sojourner-page .sojourner-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .sojourner-page .sojourner-actions .game-action-button { flex: 0 1 auto; width: auto; min-height: 44px; padding: 8px 10px; }
  .sojourner-page .sojourner-actions a { flex-basis: 100%; }
  body .miles-filing-drawer.is-open { top: calc(100% - 50px); left: 2%; width: 82%; height: 350px; min-height: 350px; }
  body .miles-scene:has(.miles-filing-drawer.is-open) { margin-bottom: 350px; }
  body .miles-drawer-index { top: 22%; right: -6%; width: 44px; gap: 3px; }
  body .miles-drawer-index__tab, body .miles-drawer-index__tab[aria-selected="true"] { min-height: 36px; font-size: .68rem; }
  body .miles-drawer-paging { bottom: 0; right: 8%; left: 0; gap: 4px; }
  body .miles-drawer-paging button { min-height: 44px; font-size: .65rem; padding-inline: 5px; }
  body .miles-filing-drawer__close { min-height: 44px; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__clippings-panel { height: 41%; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-add { left: 110%; width: 85%; font-size: .58rem; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-controls { left: 50%; right: auto; width: 50%; }
  body .promises-book[data-page-mode="single"] { aspect-ratio: 2 / 3; height: auto; }
  body .promises-book[data-page-mode="single"] .promises-story-page.promises-template-page { grid-template-rows: auto auto minmax(0, 1fr) auto; }
  body .promises-book[data-page-mode="single"] .promises-template-body { min-height: 0; overflow-y: auto; overflow-x: hidden; }
  body .promises-book[data-page-mode="single"] .promises-template-field textarea { overflow-y: auto; }
  body .promises-book[data-page-mode="single"] :is(.promises-photo-placeholder, .promises-template-helper, .promises-story-hint) { font-size: .6rem; line-height: 1.2; }
  body .promises-book[data-page-mode="single"] :is(input, textarea)::placeholder { font-size: .65rem; }
  body .promises-book[data-page-mode="single"] .promises-photo-mat > span { font-size: .65rem; line-height: 1.2; }
  body .promises-book[data-page-mode="single"] .promises-archive-bookmark-top {
    border-color: #234f79;
    background: linear-gradient(90deg, #123555, #467fb0 38%, #729bc0 48%, #285981 65%, #163c62);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 5px 8px rgba(4,24,43,.24);
  }
  body .promises-book[data-page-mode="single"] .promises-archive-bookmark-top .bookmark-ribbon__label { font-size: .54rem; letter-spacing: .01em; line-height: 1; max-height: 76px; }
}
@media (max-width: 600px) and (orientation: portrait) {
  .sojourner-page[data-layout="compact-table"] .sojourner-orientation-prompt { display: block; padding: 8px; text-align: center; color: #0a3161; }
  .sojourner-page[data-layout="compact-table"] .sojourner-orientation-prompt .eyebrow { display: none; }
  .sojourner-page[data-layout="compact-table"] .sojourner-orientation-prompt h2 { font-size: 1rem; margin: 0 0 5px; }
  .sojourner-page[data-layout="compact-table"] .sojourner-orientation-prompt p { font-size: .85rem; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .sojourner-win-card, body :is(.miles-return-ticket, .road-ideas-hotspot)::before { animation: none; }
  body .miles-return-ticket { animation: none; filter: drop-shadow(0 0 18px rgba(255,216,125,.85)); }
}

/* Phone/tablet finishing: keep the existing room, paper art and data controls. */
body .miles-scene-copy { align-items: flex-start; gap: 8px; }
body .miles-scene-copy :is(h1,.miles-room-hint) { text-align: left; }
body .miles-state-sheet[data-planner-mode="stateStory"] { overflow: visible; }
@media (min-width: 761px) and (max-width: 1280px) {
  body .miles-state-sheet[data-planner-mode="myPlans"] {
    top: 12px; left: 50%; width: min(calc(100% - 12px), calc((100dvh - 220px) * 1.3333));
    min-width: 0; max-width: none; transform: translateX(-50%);
  }
  body .miles-state-sheet[data-planner-mode="myPlans"].is-open { transform: translateX(-50%); }
  body .miles-scene:has(.miles-state-sheet[data-planner-mode="myPlans"].is-open) { min-height: calc(100dvh - 196px); }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-plan-field :is(input,textarea) { font-size: 14px; line-height: 1.25; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-plan-field > span { font-size: 11px; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-heading { font-size: 12px; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-add { min-height: 44px; font-size: 11px; }
  body .miles-filing-drawer.is-open { left: 2%; top: 30%; width: 48%; min-width: 310px; height: 360px; transform: none; }
}
@media (max-width: 1280px) {
  body .miles-filing-drawer.is-open .miles-drawer-index { top: 20%; right: -5%; width: 48px; gap: 4px; }
  body .miles-filing-drawer.is-open .miles-drawer-index__tab { min-height: 44px; font-size: 11px; transform: none; }
  body .miles-filing-drawer.is-open .miles-drawer-index__tab[aria-selected="true"] { transform: translateX(3px); }
}
@media (min-width: 761px) and (max-width: 1280px) and (orientation: portrait) {
  body .miles-scene { height: max(580px, calc(100dvh - 220px)); min-height: 0; max-height: none; }
}

/* Samsung portrait follow-up: preserve integrated control coordinates while
   keeping paper separation, visible overflow and usable field interiors. */
@media (max-width: 760px) and (orientation: portrait) {
  body .miles-filing-drawer.is-open .miles-filing-drawer__close { top: 3%; }
  body .miles-filing-drawer.is-open .miles-folder-stack { right: 26%; }
  body .miles-filing-drawer.is-open .miles-state-folder { min-width: 60px; }
  body .miles-state-sheet[data-planner-mode="stateStory"] { top: calc(100% + 48px); }
  body .miles-state-sheet[data-planner-mode="stateStory"] .miles-state-story-hint { margin-bottom: 16px; line-height: 1.3; }
  body .miles-state-sheet[data-planner-mode="myPlans"] { overflow: visible; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-plan-field { display: block; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-plan-field > span { position: absolute; bottom: 100%; margin-bottom: 2px; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-plan-field :is(input,textarea) { font-size: 12px; line-height: 1.15; padding: 2px 3px; }
}

/* Phone Planner: the pocket note owns collection entry; keep the approved
   Close control coordinates and give its existing state artwork the space. */
@media (max-width: 760px) {
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-add,
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-controls { display: none; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .pocket-empty-card { margin-top: 0; height: 100%; min-height: 0; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon { grid-template-rows: minmax(0, 1fr) auto; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon svg { width: 96%; height: 96%; }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon-label { font-size: 6px; line-height: 1; letter-spacing: 0; padding-bottom: 2px; }
}

/* The phone hit target is 14% wide/min-height 40px; the painted medallion
   retains the original 8.6% width at 66.4% left. Fit contents to the artwork,
   not the enlarged target. Restore the compact 905edcf label/row balance. */
.miles-state-sheet__state-icon-content { display: contents; }
@media (max-width: 760px) and (orientation: portrait) {
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon-content {
    display: grid;
    position: absolute;
    left: 19.285714%; /* (66.4 - 63.7) / 14 */
    top: 0;
    width: 61.428571%; /* 8.6 / 14 */
    aspect-ratio: 1;
    /* Normalize the historical .78/.16 weights to fill the available space. */
    grid-template-rows: minmax(0, 78fr) auto minmax(5px, 16fr);
    place-items: center;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon-label {
    width: auto;
    /* The historical .34rem label is wider than the phone's painted circle. */
    font-size: clamp(.25rem, .36vw, .4rem);
    line-height: 1;
    letter-spacing: 0;
    padding: 0;
    margin: 0;
  }
  body .miles-state-sheet[data-planner-mode="myPlans"] .miles-state-sheet__state-icon-label > span { display: block; }
}
