/* KBIBLE V100 — mobile viewport-first layout correction.
   Goals: no header/content overlap, no tall control stacks, primary actions always reachable,
   compact but readable mobile hierarchy. Desktop layout is intentionally left unchanged. */
:root{--kb100-edge:10px;--kb100-gap:8px;--kb100-radius:16px;--kb100-header:64px;--kb100-dock-h:64px}

.kb-v100-speaking-dock,.kb-v100-voice-save-dock{display:none}

@media(max-width:900px){
  html{scroll-padding-top:calc(var(--kb100-header) + 10px)}
  body.kb-has-site-header main{scroll-margin-top:calc(var(--kb100-header) + 8px)}
  body.kb-has-site-header :where(.sp-page,.ls-page,.qt-page,.memory-page,.vocab-page,.plan-page,.prayer-page,.ccm-app-shell,.video-app-shell,.mp-app){padding-inline:var(--kb100-edge)!important}

  /* Shared mobile rhythm: dense enough for one-glance use, never cramped. */
  body.kb-has-site-header :where(.sp-card,.ls-card,.qt-card,.memory-card,.prayer-card,.course-panel,.vocab-panel,.fav-card,.voice-card){margin-block:8px!important}
  body.kb-has-site-header :where(.sp-section-head,.ls-section-head,.qt-section-head,.memory-section-head,.prayer-section-head){margin-bottom:8px!important}
  body.kb-has-site-header :where(.sp-section-note,.ls-section-note){display:none!important}

  /* HOME — fixed header owns its own lane; the cross starts after it, never under it. */
  body.kb-home-page .page-wrap{padding-top:var(--kb100-header)!important}
  body.kb-home-page .header{height:var(--kb100-header)!important;min-height:var(--kb100-header)!important}
  body.kb-home-page .header .header-inner{height:var(--kb100-header)!important;min-height:var(--kb100-header)!important;padding:7px 10px!important}
  body.kb-home-page .header .header-logo{width:38px!important;height:38px!important}
  body.kb-home-page .header .header-wordmark-top{font-size:1.08rem!important}
  body.kb-home-page .main{padding-top:0!important}
  body.kb-home-page .hero{padding:16px 10px 22px!important;min-height:0!important}
  body.kb-home-page .hero-glow-ring{top:0!important;height:180px!important}
  body.kb-home-page .hero-emblem{margin:2px 0 9px!important}
  body.kb-home-page .hero-emblem-ring{width:62px!important;height:62px!important;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 5%,transparent),0 0 28px -8px var(--glow)!important}
  body.kb-home-page .hero-emblem-icon{font-size:1.9rem!important}
  body.kb-home-page .hero-eyebrow{font-size:.62rem!important;letter-spacing:.18em!important;margin:5px 0 8px!important}
  body.kb-home-page .hero-title{font-size:clamp(1.72rem,7.4vw,2.25rem)!important;line-height:1.29!important;margin:.05rem auto .45rem!important;max-width:94vw!important}
  body.kb-home-page .hero-title.is-long{font-size:clamp(1.55rem,6.7vw,2.08rem)!important;line-height:1.31!important}
  body.kb-home-page .hero-title.is-very-long{font-size:clamp(1.43rem,6vw,1.88rem)!important;line-height:1.34!important}
  body.kb-home-page .hero-verse-ref{font-size:.76rem!important;margin-top:4px!important}
  body.kb-home-page .hero-divider{margin:12px auto!important}
  body.kb-home-page .hero-desc{font-size:.84rem!important;line-height:1.5!important;margin:0 auto 13px!important;max-width:92vw!important}
  body.kb-home-page .hero-membership-card{width:100%!important;margin:10px auto 14px!important;padding:12px!important;border-radius:18px!important}
  body.kb-home-page .hero-membership-top{gap:6px!important;margin-bottom:7px!important}
  body.kb-home-page .hero-membership-badge,body.kb-home-page .hero-membership-tag{font-size:.72rem!important;padding:6px 9px!important}
  body.kb-home-page .hero-membership-grid{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
  body.kb-home-page .hero-membership-copy strong{font-size:1.04rem!important;line-height:1.42!important;letter-spacing:-.025em!important}
  body.kb-home-page .hero-membership-copy p{display:none!important}
  body.kb-home-page .hero-membership-count{padding:9px 10px!important;border-radius:13px!important}
  body.kb-home-page .hero-membership-count span{font-size:.67rem!important}
  body.kb-home-page .hero-membership-count strong{font-size:.92rem!important;margin-top:2px!important}
  body.kb-home-page .hero-membership-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin-top:8px!important}
  body.kb-home-page .hero-membership-btn{min-height:42px!important;padding:8px!important;font-size:.78rem!important}
  body.kb-home-page .theme-picker,body.kb-home-page .mode-toggle-row{margin-block:10px!important}

  /* STANDALONE SPEAKING — one-screen cockpit instead of tall stacks. */
  .kb-speaking-studio .sp-page{padding-top:8px!important;padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}
  .kb-speaking-studio .sp-shell{gap:8px!important}
  .kb-speaking-studio .sp-card{padding:10px!important;border-radius:15px!important}
  .kb-speaking-studio .sp-studio-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:7px!important;margin-bottom:8px!important}
  .kb-speaking-studio .sp-studio-head>div:first-child p{display:none!important}
  .kb-speaking-studio .sp-nav-buttons{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:auto!important;gap:5px!important}
  .kb-speaking-studio .sp-nav-buttons button{min-height:36px!important;padding:5px 8px!important;font-size:.7rem!important}
  .kb-speaking-studio .sp-reference-bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:7px!important;padding:8px 9px!important;border-radius:13px!important}
  .kb-speaking-studio .sp-reference-bar>div:first-child{gap:6px!important;min-width:0!important}
  .kb-speaking-studio .sp-reference-bar>div:first-child span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.9rem!important}
  .kb-speaking-studio .sp-reference-bar strong{font-size:.65rem!important;padding:4px 6px!important}
  .kb-speaking-studio .sp-version-tabs{display:grid!important;grid-template-columns:repeat(2,58px)!important;gap:4px!important;width:auto!important}
  .kb-speaking-studio .sp-version-tabs button{min-height:36px!important;padding:5px!important;font-size:.72rem!important;white-space:nowrap!important}
  .kb-speaking-studio .sp-memory-controls{display:block!important;margin:7px 0!important}
  .kb-speaking-studio .sp-memory-controls>span{display:block!important;margin:0 0 5px!important;font-size:.66rem!important}
  .kb-speaking-studio .sp-memory-controls .sp-segment{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px!important;width:100%!important;max-width:none!important;overflow:visible!important;padding:0!important;background:transparent!important;border:0!important}
  .kb-speaking-studio .sp-memory-controls .sp-segment button{width:100%!important;min-width:0!important;min-height:36px!important;padding:4px 2px!important;font-size:.68rem!important;white-space:nowrap!important;border-radius:10px!important}
  .kb-speaking-studio .sp-target-panel{padding:9px!important;border-radius:14px!important}
  .kb-speaking-studio .sp-target-toolbar{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:7px!important}
  .kb-speaking-studio .sp-target-toolbar>div:first-child{display:flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important}
  .kb-speaking-studio .sp-target-toolbar>div:first-child span,.kb-speaking-studio .sp-target-toolbar>div:first-child small{display:inline!important;font-size:.66rem!important}
  .kb-speaking-studio .sp-target-toolbar>div:last-child{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;width:100%!important;overflow:visible!important}
  .kb-speaking-studio .sp-target-toolbar button{min-height:38px!important;padding:5px 3px!important;font-size:.68rem!important;white-space:normal!important}
  .kb-speaking-studio .sp-target-text{font-size:clamp(1.25rem,5.7vw,1.7rem)!important;line-height:1.42!important;padding:12px 2px 9px!important;min-height:0!important;max-height:31dvh!important;overflow:auto!important;overscroll-behavior:contain!important}
  .kb-speaking-studio .sp-chunk-list{max-height:72px!important;overflow:auto!important;padding-top:5px!important}
  .kb-speaking-studio .sp-recorder-panel{padding:9px!important;margin-top:8px!important;border-radius:14px!important}
  .kb-speaking-studio .sp-recorder-top{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important}
  .kb-speaking-studio .sp-wave{height:44px!important;margin:7px 0 5px!important}
  .kb-speaking-studio .sp-level-row{display:none!important}
  .kb-speaking-studio .sp-live-transcript{min-height:48px!important;margin-top:6px!important;padding:7px 8px!important;border-radius:11px!important}
  .kb-speaking-studio .sp-live-transcript p{min-height:0!important;margin-top:3px!important;font-size:.76rem!important;line-height:1.4!important}
  .kb-speaking-studio .sp-recorder-panel>.sp-record-actions{display:none!important}
  .kb-speaking-studio .sp-privacy-note{margin:7px 0 0!important;font-size:.64rem!important;line-height:1.35!important}
  .kb-speaking-studio .sp-result-overview{display:grid!important;grid-template-columns:82px minmax(0,1fr)!important;gap:7px!important;align-items:start!important}
  .kb-speaking-studio .sp-score-ring{width:82px!important;height:82px!important}
  .kb-speaking-studio .sp-score-ring strong{font-size:1.55rem!important}
  .kb-speaking-studio .sp-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .kb-speaking-studio .sp-metric-grid article{min-height:64px!important;padding:7px!important;border-radius:12px!important}
  .kb-speaking-studio .sp-metric-grid article span,.kb-speaking-studio .sp-metric-grid article small{font-size:.64rem!important}
  .kb-speaking-studio .sp-metric-grid article strong{font-size:1.05rem!important}
  .kb-speaking-studio .sp-result-grid{gap:7px!important}
  .kb-speaking-studio .sp-result-panel,.kb-speaking-studio .sp-weakness-panel{padding:9px!important;border-radius:13px!important}
  .kb-speaking-studio .sp-result-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  .kb-speaking-studio .sp-result-actions #retryBtn{grid-column:1/-1!important}

  /* Fixed action dock: recording controls never require scrolling. */
  .kb-v100-speaking-dock{position:fixed;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;left:8px;right:82px;bottom:max(8px,env(safe-area-inset-bottom,0px));z-index:2147481500;padding:6px;border:1px solid rgba(226,195,112,.25);border-radius:15px;background:rgba(5,18,14,.94);backdrop-filter:blur(18px) saturate(135%);box-shadow:0 12px 34px rgba(0,0,0,.36)}
  .kb-v100-speaking-dock>button{min-height:44px!important;padding:5px 3px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#11241e;color:#f5f0e6;font:800 .68rem/1.2 system-ui,-apple-system,"Noto Sans KR",sans-serif}
  .kb-v100-speaking-dock .kb-v100-dock-record{background:linear-gradient(135deg,#177e5c,#4fcfa4);color:#fff;border:0}
  .kb-v100-speaking-dock .kb-v100-dock-record.is-recording{background:linear-gradient(135deg,#b44a48,#ff7e79)}
  .kb-speaking-studio .kb-shalom-launcher{bottom:max(82px,calc(env(safe-area-inset-bottom,0px) + 74px))!important}
  body.kb-v100-has-speaking-dock{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}

  /* Quick keep area — immediately after every temporary KBVoice recording. */
  .kb-v100-voice-save-dock{position:fixed;display:block;left:8px;right:82px;bottom:max(8px,env(safe-area-inset-bottom,0px));z-index:2147481600}
  .kb-v100-keep-area{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto 32px;gap:5px;align-items:center;padding:6px;border:1px solid rgba(226,195,112,.26);border-radius:12px;background:rgba(8,24,19,.97);box-shadow:0 10px 30px rgba(0,0,0,.38);backdrop-filter:blur(16px)}
  .kb-v100-keep-area[hidden]{display:none!important}
  .kb-v100-speaking-dock .kb-v100-keep-area{grid-column:1/-1;margin-top:1px}
  .kb-v100-keep-copy{min-width:0;display:grid;line-height:1.15}
  .kb-v100-keep-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.69rem;color:#f4ecd9}
  .kb-v100-keep-copy span{font-size:.59rem;color:#aebfb6}
  .kb-v100-keep-btn,.kb-v100-archive-btn,.kb-v100-keep-close{min-height:36px!important;border-radius:9px;border:1px solid rgba(226,195,112,.2);font:800 .62rem/1 system-ui,-apple-system,"Noto Sans KR",sans-serif;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;white-space:nowrap}
  .kb-v100-keep-btn{background:#d9b96c;color:#1a1407}
  .kb-v100-archive-btn{background:#11241e;color:#f2ead8}
  .kb-v100-keep-close{padding:0;width:32px;background:transparent;color:#d9cdb7}

  /* Bible speaking modal: compact content + actions stay in view. */
  .kb-bible-v5 .speak-modal-card{display:flex!important;flex-direction:column!important;width:min(96vw,680px)!important;max-height:calc(100dvh - 12px)!important;padding:10px!important;border-radius:16px!important;overflow:auto!important}
  .kb-bible-v5 .speak-modal-card .reader-modal-head{position:sticky!important;top:-10px!important;z-index:4!important;margin:-10px -10px 6px!important;padding:10px!important;background:rgba(7,17,14,.97)!important;backdrop-filter:blur(16px)!important}
  .kb-bible-v5 .bible-speak-flow{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}
  .kb-bible-v5 .bible-speak-flow span{min-height:36px!important;padding:5px 3px!important;font-size:.62rem!important;text-align:center!important}
  .kb-bible-v5 .speak-target{font-size:clamp(1.15rem,5.3vw,1.55rem)!important;line-height:1.42!important;padding:9px!important;max-height:26dvh!important;overflow:auto!important}
  .kb-bible-v5 .bible-speak-version{padding:5px!important;gap:4px!important}
  .kb-bible-v5 .bible-speak-version button{min-height:38px!important;padding:5px!important}
  .kb-bible-v5 .speak-modal-actions{position:sticky!important;bottom:-10px!important;z-index:6!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:8px -10px -10px!important;padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px))!important;background:rgba(7,17,14,.97)!important;border-top:1px solid rgba(226,195,112,.18)!important;backdrop-filter:blur(16px)!important}
  .kb-bible-v5 .speak-modal-actions button{min-height:42px!important;padding:5px 3px!important;font-size:.66rem!important}
  .kb-bible-v5 #speakStart{grid-column:auto!important;background:#d9b96c!important;color:#1b1508!important}
  .kb-bible-v5 .speak-saved-box{margin-top:7px!important;padding-top:7px!important}
  .kb-bible-v5 .speak-saved-box>p{font-size:.65rem!important;line-height:1.35!important}

  /* Other speaking contexts: buttons stay compact; keep dock handles immediate save. */
  .page-plan-workspace :where(.plan-inline-actions,.plan-speak-actions){gap:6px!important}
  .page-plan-workspace :where(.plan-inline-actions,.plan-speak-actions) button{min-height:40px!important;padding:6px!important;font-size:.7rem!important}
  .page-vocab .vocab-pron-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  .page-vocab .vocab-pron-actions button{min-height:42px!important;padding:6px!important}
  .page-vocab .vocab-pron-card{max-height:calc(100dvh - 14px)!important;overflow:auto!important;padding:10px!important}

  /* Don't let floating Shalom cover the last readable line on generic mobile pages. */
  body:not(.kb-home-page):not(.kb-speaking-studio):not(.kb-bible-v5) .kb-shalom-launcher{right:8px!important}
}

@media(max-width:430px){
  :root{--kb100-edge:7px}
  body.kb-home-page .header .header-logo{width:36px!important;height:36px!important}
  body.kb-home-page .header .header-wordmark-top{font-size:1rem!important}
  body.kb-home-page .hero{padding-inline:8px!important}
  body.kb-home-page .hero-title{font-size:clamp(1.62rem,7.3vw,2.02rem)!important}
  body.kb-home-page .hero-membership-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kb-speaking-studio .sp-memory-controls .sp-segment{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .kb-speaking-studio .sp-memory-controls .sp-segment button{font-size:.64rem!important}
  .kb-speaking-studio .sp-target-toolbar{grid-template-columns:1fr!important}
  .kb-speaking-studio .sp-target-toolbar>div:last-child{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .kb-v100-speaking-dock,.kb-v100-voice-save-dock{left:6px;right:76px}
}

@media(max-width:350px){
  .kb-speaking-studio .sp-memory-controls .sp-segment{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .kb-speaking-studio .sp-memory-controls .sp-segment button:nth-child(4),.kb-speaking-studio .sp-memory-controls .sp-segment button:nth-child(5){grid-column:auto!important}
  .kb-v100-speaking-dock{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kb-v100-speaking-dock .kb-v100-dock-reset{display:none}
  .kb-v100-keep-area{grid-template-columns:minmax(0,1fr) auto 30px}
  .kb-v100-keep-area .kb-v100-archive-btn{display:none}
}

@media(max-width:900px){
  /* Cross-page viewport discipline: navigation stays compact; content/forms may stack naturally. */
  body.kb-has-site-header :where(.qt-tabs,.qt-question-chips,.memory-primary-tabs,.practice-modes,.target-version,.prayer-view-tabs,.prayer-jumpbar,.vocab-jump,.course-quick-nav){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important}
  body.kb-has-site-header :where(.prayer-segments,.prayer-category-filter,.plan-tool-tabs){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;overflow:visible!important}
  body.kb-has-site-header :where(.qt-tabs,.qt-question-chips,.memory-primary-tabs,.practice-modes,.target-version,.prayer-view-tabs,.prayer-jumpbar,.vocab-jump,.course-quick-nav,.prayer-segments,.prayer-category-filter,.plan-tool-tabs)>*{width:100%!important;min-width:0!important;min-height:38px!important;padding:5px 6px!important;white-space:normal!important;font-size:.7rem!important}
  body.kb-has-site-header :where(.sp-hero,.ls-hero,.qt-hero,.course-hero,.memory-hero,.prayer-hero,.vocab-hero,.ccm-hero,.video-hero,.toon-hero,.fav-hero,.mp-hero,.voice-archive-hero){margin-bottom:8px!important}
  body.kb-has-site-header :where(.sp-card,.ls-card,.qt-card,.course-panel,.memory-card,.prayer-card,.vocab-panel){min-height:0!important}
  body.kb-has-site-header :where(.sp-card,.ls-card,.qt-card,.course-panel,.memory-card,.prayer-card,.vocab-panel) p{max-width:100%!important}
}
