/* Mobile installed-web-app layout. This is deliberately layered after the
   known-good frontend rather than rebuilding its application bundle. */
@media (max-width: 767px) {
  html:has(.chimidoni-app.is-docked),
  html:has(.chimidoni-app.is-docked) body,
  html:has(.chimidoni-app.is-docked) #root {
    height: 100%;
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: none;
  }
  html:has(.chimidoni-app.is-docked) body {
    position: fixed;
    inset: 0;
    width: 100%;
  }
  .chimidoni-app.is-docked {
    position: fixed;
    inset: 0 0 auto;
    /* iOS 26 standalone PWAs can omit the home-indicator inset from
       visualViewport.height. Extend the shell, not body padding. */
    height: calc(var(--ch-viewport-height, 100dvh) + env(safe-area-inset-bottom, 0px));
    min-height: 0;
    overflow: hidden;
    padding: 0;
  }
  .chimidoni-app.is-docked .ch-frame {
    position: absolute;
    inset: 0;
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    padding-bottom: 0;
    overflow: hidden;
  }
  .chimidoni-app.is-docked .ch-scroll {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .chimidoni-app .ch-frame {
    background: linear-gradient(155deg, #e5dcfa, #e0edff 45%, #ece0fa);
    background-attachment: scroll;
  }
  .chimidoni-app .ch-game-header {
    min-height: 56px;
    background: #e5dcfa;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .chimidoni-app .ch-auth-header .ch-game-header { background: transparent; }
  .chimidoni-app.is-docked .ch-dock-slot {
    padding: 6px 12px max(6px, env(safe-area-inset-bottom, 0px));
    background: #e5dcfa;
  }
  .chimidoni-app.is-docked .ch-dock {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    margin: 0;
    background: #eee8ff;
    border-color: #cfc2ef;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .chimidoni-app .snake-shell { min-height: 0; background: transparent; }
  .chimidoni-app .snake-hero { margin: 16px auto 24px; gap: 16px; }
  .chimidoni-app .snake-hero h1 {
    font-size: clamp(28px, 8vw, 36px);
    line-height: 1.4;
    letter-spacing: 0;
  }
  .chimidoni-app .snake-hero__art { max-height: 210px; }
  .chimidoni-app .snake-hero__image { width: 100%; height: 210px; object-fit: cover; }
  .chimidoni-app .snake-lobby-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .chimidoni-app .snake-create-card { background: #e6e0ff; border-color: #c7b9ed; }
  .chimidoni-app .snake-join-card { background: #d9efe9; border-color: #aed3c9; }
}

html:has(.chimidoni-app.is-docked),
html:has(.chimidoni-app.is-docked) body,
html:has(.chimidoni-app.is-docked) #root {
  background-color: #e5dcfa;
}

/* Doz: replace the old forest palette with the new lavender / peach game theme. */
.chimidoni-app.dano-world.theme-light .doz-page {
  --doz-ink: #2b2566;
  --doz-muted: #716d89;
  --doz-deep: #f0edff;
  --doz-deeper: #e7e1ff;
  --doz-panel: rgba(255,255,255,.9);
  --doz-panel-strong: #fff;
  --doz-line: rgba(125,108,240,.19);
  --doz-line-strong: rgba(125,108,240,.38);
  --doz-teal: #4b9f8e;
  --doz-aqua: #548e88;
  --doz-gold: #efb44d;
  --doz-coral: #ef8968;
  min-height: calc(100dvh + env(safe-area-inset-bottom,0px) - 80px);
  padding-bottom: max(110px,env(safe-area-inset-bottom,0px));
}
.chimidoni-app.dano-world.theme-light .doz-page::before {
  opacity: .18;
  background-image: radial-gradient(circle at 8% 12%,rgba(239,180,77,.25) 0 2px,transparent 3px),radial-gradient(circle at 91% 68%,rgba(125,108,240,.15) 0 2px,transparent 3px);
}
.chimidoni-app.dano-world.theme-light .doz-lobby-card {
  color: var(--doz-ink); border-color: #ded7fb; border-radius: 26px;
  background: linear-gradient(145deg,#fff 0%,#f0edff 58%,#e4f2ee 100%);
  box-shadow: 0 7px 0 #d8d0f5,0 16px 30px rgba(60,40,140,.1);
}
.chimidoni-app.dano-world.theme-light .doz-lobby-art::after { background: linear-gradient(90deg,rgba(43,37,102,.02),rgba(43,37,102,.2)); }
.chimidoni-app.dano-world.theme-light .doz-page .doz-hero-panel {
  min-height: 245px; border-color: #d8d0f5; border-radius: 30px;
  background: radial-gradient(circle at 12% 12%,rgba(255,255,255,.8),transparent 33%),linear-gradient(145deg,#cfe6ff 0%,#e2dcff 58%,#ffe0d1 100%);
  box-shadow: 0 6px 0 #cfc4f4,0 18px 36px rgba(60,40,140,.1);
}
.chimidoni-app.dano-world.theme-light .doz-hero-panel::after { border-color: rgba(91,76,181,.13); box-shadow: 0 0 0 28px rgba(91,76,181,.035),0 0 0 57px rgba(91,76,181,.025); }
.chimidoni-app.dano-world.theme-light .doz-hero-copy h1 { color: #2b2566; }
.chimidoni-app.dano-world.theme-light .doz-hero-copy h1 em { color: #ef795d; }
.chimidoni-app.dano-world.theme-light .doz-hero-copy>p:last-child { color: #504b7b; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-mini-board { border-color: rgba(112,95,205,.28); border-radius: 22px; background: rgba(255,255,255,.58); box-shadow: 9px 12px 0 rgba(88,70,165,.12); }
.chimidoni-app.dano-world.theme-light .doz-mini-board span { border-color: rgba(112,95,205,.13); border-radius: 10px; background: rgba(255,255,255,.56); }
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-panel,.doz-queue-card,.doz-waiting-room,.doz-result-card) {
  border-color: #ded7f5; border-radius: 24px; background: rgba(255,255,255,.9);
  box-shadow: 0 5px 0 rgba(125,108,240,.1),0 14px 28px rgba(60,40,140,.07);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-section-heading h2,.doz-match-topline h1) { color: #2b2566; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-mode-card { border-color: #e4def8; border-radius: 16px; background: #fff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-mode-card.is-selected { border-color: #9b8bef; background: #eeeaff; box-shadow: inset 0 -3px #9b8bef; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-mode-icon { color: #5d4cb6; border-radius: 12px; background: #eeeaff; }
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-difficulty-picker button,.doz-secondary-button,.doz-icon-button) { color: #514b7a; border-color: #e0daf4; border-radius: 13px; background: #fff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-difficulty-picker button.is-selected { color: #51429f; border-color: #a99bed; background: #eeeaff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-invite-form input { color: #2b2566; border-color: #ded7f5; border-radius: 13px; background: #fff; }
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-primary-button,.doz-queue-ai-button) { color: #fff; border-radius: 16px; background: #f18768; box-shadow: 0 4px 0 #d66d53; }
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-primary-button,.doz-queue-ai-button):hover { box-shadow: 0 6px 0 #d66d53; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-stats-strip>div { border-color: #e3dcf6; background: #eeeaff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-stats-strip>div:nth-child(2) { background: #e4f3ed; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-stats-strip>div:nth-child(3) { background: #ffe9df; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-stats-strip>div:nth-child(4) { background: #fff2d7; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-stats-strip strong { color: #5e50b4; }
.chimidoni-app.dano-world.theme-light .doz-page :is(.doz-history-row,.doz-empty) { border-color: #e5dff7; border-radius: 14px; background: #fbfaff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-board-wrap { border-color: #d8d0f5; border-radius: 25px; background: linear-gradient(145deg,#f4f1ff,#e9e5ff); box-shadow: 0 6px 0 #d8d0f5,0 16px 30px rgba(60,40,140,.08); }
.chimidoni-app.dano-world.theme-light .doz-page .doz-board { border-color: #d7cef4; border-radius: 20px; background: #e7e2ff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-cell { color: #706b89; border-color: #ded8f4; border-radius: 14px; background: #fff; box-shadow: 0 3px 0 rgba(125,108,240,.08); }
.chimidoni-app.dano-world.theme-light .doz-page .doz-cell.is-x { color: #ef795d; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-cell.is-o { color: #7160cf; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-cell.is-winning { border-color: #70b99c; background: #e1f4eb; box-shadow: inset 0 0 0 2px rgba(75,159,142,.16); }
.chimidoni-app.dano-world.theme-light .doz-page .doz-turn-chip.is-mine { color: #51429f; border-color: #d6cdf6; background: #e9e4ff; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-share-card { border-color: #f2d992; border-radius: 16px; background: #fff6dc; }
.chimidoni-app.dano-world.theme-light .doz-page .doz-share-card strong { color: #6b58c6; }

/* Spy: keep its theme consistent and extend the scrolling screen to the inset. */
.chimidoni-app.dano-world.theme-light .spy-game {
  --spy-ink: #2b2566; --spy-muted: #716d89; --spy-paper: #fff; --spy-pink: #ffe5dc;
  --spy-lilac: #eeeaff; --spy-violet: #7160cf; --spy-coral: #ef8566;
  --spy-gold: #efb44d; --spy-teal: #4b9f8e; --spy-line: rgba(125,108,240,.19);
  min-height: calc(100dvh + env(safe-area-inset-bottom,0px) - 48px);
  padding-bottom: max(34px,env(safe-area-inset-bottom,0px));
}
.chimidoni-app.dano-world.theme-light .spy-hero { border-color: #ded7f5; border-radius: 28px; background: radial-gradient(circle at 85% 32%,rgba(255,255,255,.76),transparent 30%),linear-gradient(125deg,#cfe6ff 0%,#e7e1ff 56%,#ffe4d7 100%); box-shadow: 0 6px 0 #d8d0f5,0 16px 32px rgba(60,40,140,.08); }
.chimidoni-app.dano-world.theme-light :is(.spy-mode-panel,.spy-panel-card,.spy-lobby,.spy-action-card,.spy-result-card,.spy-board-footer) { border-color: #ded7f5; border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 5px 0 rgba(125,108,240,.09),0 12px 26px rgba(60,40,140,.06); -webkit-backdrop-filter: none; backdrop-filter: none; }
.chimidoni-app.dano-world.theme-light .spy-primary-button { color: #fff; border-radius: 15px; background: #f18768; box-shadow: 0 4px 0 #d66d53; }
.chimidoni-app.dano-world.theme-light :is(.spy-outline-button,.spy-mode-option,.spy-player-token) { color: #2b2566; border-color: #e0daf4; border-radius: 15px; background: #fff; }
.chimidoni-app.dano-world.theme-light :is(.spy-mode-option,.spy-player-token).is-selected { border-color: #a99bed; background: #eeeaff; }
.chimidoni-app.dano-world.theme-light .spy-location-choice { border-color: #d7e9f7; border-radius: 16px; background: #f1f8ff; }
.chimidoni-app.dano-world.theme-light .spy-game :is(input,textarea,select) { font-size: 16px; }
@media (max-width: 680px) {
  .chimidoni-app.dano-world.theme-light .spy-game { min-height: calc(100dvh + env(safe-area-inset-bottom,0px) - 58px); padding-bottom: max(24px,env(safe-area-inset-bottom,0px)); }
}
@media (max-width: 640px) {
  .chimidoni-app.dano-world.theme-light .doz-page { min-height: calc(100dvh + env(safe-area-inset-bottom,0px) - 80px); padding-right: 12px; padding-left: 12px; }
  .chimidoni-app.dano-world.theme-light .doz-page .doz-hero-panel { min-height: 205px; grid-template-columns: minmax(0,1fr) 90px; gap: 10px; padding: 20px 16px; border-radius: 24px; }
}