/* Final unified product skin for Vitalia core app screens. */
:root{
  --vf-bg:#0c1a2e;
  --vf-bg-soft:#102540;
  --vf-panel:rgba(255,255,255,.96);
  --vf-ink:#0b2940;
  --vf-muted:#557190;
  --vf-line:rgba(30,127,164,.22);
  --vf-cyan:#1e7fa4;
  --vf-green:#1f8a66;
  --vf-gold:#b78928;
  --vf-purple:#1e7fa4;
  --vf-shadow:0 16px 42px rgba(20,70,100,.13);
}

body.vp-page-game.app-active,
body.vp-page-quest,
body.vp-page-nutrition,
body.vp-page-adventure,
body.vp-page-settings{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  color:#d4e8f8 !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(41,182,232,.12), transparent 35%),
    radial-gradient(circle at 86% 10%, rgba(127,216,244,.09), transparent 38%),
    linear-gradient(180deg,#0c1a2e 0%,#102540 56%,#163050 100%) !important;
  background-attachment:fixed !important;
  letter-spacing:0 !important;
}

body.vp-page-game.app-active *,
body.vp-page-quest *,
body.vp-page-nutrition *,
body.vp-page-adventure *,
body.vp-page-settings *{
  letter-spacing:0 !important;
  text-shadow:none !important;
  box-sizing:border-box !important;
}

body.vp-page-game.app-active #vitalia-forest-bg,
body.vp-page-quest #vitalia-forest-bg,
body.vp-page-nutrition #vitalia-forest-bg,
body.vp-page-adventure #vitalia-forest-bg,
body.vp-page-settings #vitalia-forest-bg{
  opacity:.10 !important;
  filter:saturate(.84) brightness(1.12) !important;
}

body.vp-page-game.app-active .bg-particle,
body.vp-page-game.app-active .sparkle-layer,
body.vp-page-game.app-active .sparkle,
body.vp-page-quest .lv-particle,
body.vp-page-nutrition .lv-particle{
  display:none !important;
}

body.vp-page-game.app-active .g-header,
body.vp-page-quest .main-header,
body.vp-page-nutrition .main-header,
body.vp-page-adventure .adv-header,
body.vp-page-settings > header{
  min-height:64px !important;
  background:rgba(10,22,48,.88) !important;
  border-bottom:1px solid rgba(41,182,232,.20) !important;
  box-shadow:0 4px 20px rgba(0,10,30,.35) !important;
  backdrop-filter:blur(20px) saturate(1.2) !important;
  -webkit-backdrop-filter:blur(20px) saturate(1.2) !important;
}

body.vp-page-game.app-active .g-main,
body.vp-page-quest .main-content,
body.vp-page-nutrition .main-content,
body.vp-page-adventure .adv-main,
body.vp-page-settings .page{
  width:min(1120px,100%) !important;
  max-width:1120px !important;
  margin-inline:auto !important;
  padding:18px clamp(12px,2vw,22px) 112px !important;
}

body.vp-page-game.app-active .g-main{
  padding-top:28px !important;
}

body.vp-page-game.app-active .home-char-trio{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}

body.vp-page-quest .main-content,
body.vp-page-nutrition .main-content{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(280px,320px) !important;
  gap:20px !important;
  align-items:start !important;
}

body.vp-page-game.app-active .player-card,
body.vp-page-game.app-active .hc-card,
body.vp-page-game.app-active .sh-summary,
body.vp-page-game.app-active .sh-adv,
body.vp-page-game.app-active .sh-rec-btn,
body.vp-page-quest .quest-hero,
body.vp-page-nutrition .quest-hero,
body.vp-page-quest .board-section,
body.vp-page-nutrition .board-section,
body.vp-page-quest .quest-side > *,
body.vp-page-nutrition .quest-side > *,
body.vp-page-adventure .global-progress,
body.vp-page-adventure .chapter-card,
body.vp-page-adventure .battle-card,
body.vp-page-adventure .history-card,
body.vp-page-settings .section,
body.vp-page-settings .goal-card,
body.vp-page-settings .bmi-card,
body.vp-page-settings .nutrition-link{
  background:var(--vf-panel) !important;
  background-image:linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,253,255,.92)) !important;
  border:1px solid var(--vf-line) !important;
  border-radius:18px !important;
  box-shadow:var(--vf-shadow) !important;
  color:var(--vf-ink) !important;
  overflow:hidden !important;
}

body.vp-page-game.app-active .player-card *,
body.vp-page-game.app-active .hc-card *,
body.vp-page-game.app-active .sh-summary *,
body.vp-page-game.app-active .sh-adv *,
body.vp-page-game.app-active .sh-rec-btn *,
body.vp-page-quest .quest-hero *,
body.vp-page-nutrition .quest-hero *,
body.vp-page-quest .board-section *,
body.vp-page-nutrition .board-section *,
body.vp-page-adventure .chapter-card *,
body.vp-page-settings .section *{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

body.vp-page-game.app-active .g-logo,
body.vp-page-quest .h-title,
body.vp-page-nutrition .h-title,
body.vp-page-adventure .adv-title,
body.vp-page-settings .page-title,
body.vp-page-quest .qh-name,
body.vp-page-nutrition .qh-name,
body.vp-page-adventure .chapter-title{
  font-family:"Noto Serif JP","Yu Mincho",serif !important;
  color:#d4e8f8 !important;
  -webkit-text-fill-color:#d4e8f8 !important;
  font-weight:900 !important;
}
body.vp-page-settings .section-title{
  font-family:"Noto Serif JP","Yu Mincho",serif !important;
  color:var(--vf-ink) !important;
  -webkit-text-fill-color:var(--vf-ink) !important;
  font-weight:900 !important;
}

body.vp-page-game.app-active .hc-role,
body.vp-page-game.app-active .sh-rec-meta,
body.vp-page-game.app-active .sh-sum-lbl,
body.vp-page-quest .qh-role,
body.vp-page-nutrition .qh-role,
body.vp-page-settings .page-sub,
body.vp-page-adventure .chapter-meta{
  color:var(--vf-muted) !important;
  -webkit-text-fill-color:var(--vf-muted) !important;
}

body.vp-page-game.app-active .hc-card,
body.vp-page-quest .quest-hero,
body.vp-page-nutrition .quest-hero{
  display:grid !important;
  grid-template-columns:86px minmax(0,1fr) 132px !important;
  gap:16px !important;
  align-items:center !important;
  min-height:124px !important;
  padding:18px !important;
}

body.vp-page-game.app-active .home-char-trio > .hc-card{
  display:grid !important;
  grid-template-columns:82px minmax(0,1fr) !important;
  grid-template-areas:
    "portrait name"
    "portrait role"
    "portrait stat"
    "portrait bar" !important;
  align-items:center !important;
  min-height:132px !important;
  padding:18px !important;
  gap:6px 16px !important;
}

body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-portrait{ grid-area:portrait !important; }
body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-name{ grid-area:name !important; }
body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-role{ grid-area:role !important; }
body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-stat{ grid-area:stat !important; }
body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-bar{ grid-area:bar !important; }
body.vp-page-game.app-active .home-char-trio > .hc-card > .hc-cta{ display:none !important; }

body.vp-page-game.app-active .hc-name{
  font-size:1.1rem !important;
  line-height:1.25 !important;
}

body.vp-page-game.app-active .hc-role,
body.vp-page-game.app-active .hc-stat{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:1.45 !important;
  font-size:.78rem !important;
}

body.vp-page-game.app-active .hc-bar{
  width:100% !important;
  min-width:0 !important;
}

body.vp-page-quest .quest-hero > *,
body.vp-page-nutrition .quest-hero > *,
body.vp-page-quest .board-section > *,
body.vp-page-nutrition .board-section > *,
body.vp-page-quest .quest-side > * > *,
body.vp-page-nutrition .quest-side > * > *{
  min-width:0 !important;
}

body.vp-page-quest .qh-info,
body.vp-page-nutrition .qh-info{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
}

body.vp-page-quest .qh-name,
body.vp-page-nutrition .qh-name{
  font-size:clamp(1.18rem,2vw,1.55rem) !important;
  line-height:1.25 !important;
}

body.vp-page-quest .qh-role,
body.vp-page-nutrition .qh-role{
  font-size:.78rem !important;
}

body.vp-page-quest .qh-stats,
body.vp-page-nutrition .qh-stats{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  align-self:stretch !important;
}

body.vp-page-quest .qh-stat,
body.vp-page-nutrition .qh-stat{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  min-height:42px !important;
  padding:8px 10px !important;
  background:#f3fbff !important;
  border:1px solid rgba(30,127,164,.16) !important;
  border-radius:12px !important;
}

body.vp-page-quest .qh-stat-div,
body.vp-page-nutrition .qh-stat-div{
  display:none !important;
}

body.vp-page-quest .section-head,
body.vp-page-nutrition .section-head{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) !important;
  gap:12px !important;
  align-items:center !important;
  padding-bottom:12px !important;
  border-bottom:1px solid rgba(30,127,164,.12) !important;
}

body.vp-page-quest .section-label,
body.vp-page-nutrition .section-label{
  font-size:1rem !important;
  line-height:1.35 !important;
  color:var(--vf-ink) !important;
  -webkit-text-fill-color:var(--vf-ink) !important;
}

body.vp-page-quest .section-note,
body.vp-page-nutrition .section-note{
  color:var(--vf-muted) !important;
  -webkit-text-fill-color:var(--vf-muted) !important;
  line-height:1.65 !important;
}

body.vp-page-game.app-active .hc-portrait,
body.vp-page-quest .qh-char,
body.vp-page-nutrition .qh-char{
  width:78px !important;
  height:78px !important;
  border-radius:20px !important;
  background:#fff !important;
  border:1px solid rgba(30,127,164,.18) !important;
  box-shadow:0 10px 26px rgba(20,70,100,.13) !important;
}

body.vp-page-quest .quest-side,
body.vp-page-nutrition .quest-side{
  position:sticky !important;
  top:82px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  max-height:calc(100vh - 102px) !important;
  overflow:auto !important;
}

body.vp-page-quest .quest-side > *,
body.vp-page-nutrition .quest-side > *{
  max-height:none !important;
}

body.vp-page-quest .quest-side > *:not(:has(button)):not(:has(input)):not(:has(textarea)),
body.vp-page-nutrition .quest-side > *:not(:has(button)):not(:has(input)):not(:has(textarea)){
  display:none !important;
}

body.vp-page-quest .ex-card,
body.vp-page-nutrition .food-card,
body.vp-page-nutrition .rc,
body.vp-page-adventure .attack-card,
body.vp-page-settings input,
body.vp-page-settings select,
body.vp-page-settings textarea,
body.vp-page-settings .theme-opt{
  background:#fff !important;
  border:1px solid rgba(30,127,164,.20) !important;
  border-radius:14px !important;
  box-shadow:0 5px 16px rgba(20,70,100,.07) !important;
  color:var(--vf-ink) !important;
  -webkit-text-fill-color:var(--vf-ink) !important;
}

body.vp-page-quest .ex-card,
body.vp-page-nutrition .food-card{
  min-height:72px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}

body.vp-page-adventure .adv-main{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(300px,380px) !important;
  gap:20px !important;
}

body.vp-page-adventure .chapter-card{
  min-height:360px !important;
  padding:24px !important;
}

body.vp-page-adventure .global-progress{
  align-self:start !important;
  padding:18px !important;
}

body.vp-page-adventure .chapter-card,
body.vp-page-adventure .global-progress{
  color:var(--vf-ink) !important;
  -webkit-text-fill-color:var(--vf-ink) !important;
}

body.vp-page-adventure .chapter-card em,
body.vp-page-adventure .chapter-card strong{
  color:var(--vf-purple) !important;
  -webkit-text-fill-color:var(--vf-purple) !important;
}

body.vp-page-adventure .pixe-dialog,
body.vp-page-adventure [class*="dialog"],
body.vp-page-adventure [class*="speech"]{
  background:linear-gradient(145deg,#f8fffb,#ffffff) !important;
  border-color:rgba(31,138,102,.18) !important;
  color:var(--vf-ink) !important;
  -webkit-text-fill-color:var(--vf-ink) !important;
}

body.vp-page-game.app-active .xp-bar,
body.vp-page-game.app-active .hc-bar,
body.vp-page-quest .qh-bar,
body.vp-page-nutrition .qh-bar,
body.vp-page-settings .bmi-bar-bg{
  background:#e7f3f8 !important;
  border-radius:99px !important;
}

body.vp-page-game.app-active .xp-fill,
body.vp-page-game.app-active .hc-bar-fill,
body.vp-page-quest .qh-bar-fill,
body.vp-page-nutrition .qh-bar-fill{
  background:linear-gradient(90deg,var(--vf-cyan),#5fd0e8) !important;
  border-radius:99px !important;
}

body.vp-page-game.app-active .rec-qol,
body.vp-page-game.app-active #sh-rec-qol,
body.vp-page-game.app-active .qol-trend-card,
body.vp-page-game.app-active .qol-card,
body.vp-page-adventure #battle-card,
body.vp-page-adventure .battle-card,
body.vp-page-adventure .history-card,
body.vp-page-adventure #boss-tap-wrap,
body.vp-page-adventure #boss-tap-btn,
body.vp-page-adventure #_toast,
body.vp-page-quest #_toast,
body.vp-page-nutrition #_toast,
body.vp-page-quest .bonus-toast,
body.vp-page-nutrition .bonus-toast,
body.vp-page-quest #save-toast,
body.vp-page-nutrition #save-toast,
body.vp-page-quest #lv-toast,
body.vp-page-nutrition #lv-toast,
body.vp-page-game.app-active .news-card,
body.vp-page-game.app-active .guide-note,
body.vp-page-quest .news-card,
body.vp-page-nutrition .news-card,
body.vp-page-quest .guide-note,
body.vp-page-nutrition .guide-note{
  display:none !important;
}

body.vp-page-game.app-active #login-screen,
body.vp-page-game.app-active #loading-screen,
body.vp-page-quest #login-screen,
body.vp-page-nutrition #login-screen{
  color:#d4e8f8 !important;
  background:transparent !important;
}

body.vp-page-quest #consent-modal,
body.vp-page-nutrition #consent-modal{
  background:rgba(8,31,47,.70) !important;
  backdrop-filter:blur(16px) saturate(1.1) !important;
  -webkit-backdrop-filter:blur(16px) saturate(1.1) !important;
}

body.vp-page-quest #consent-modal > div,
body.vp-page-nutrition #consent-modal > div{
  width:min(860px,100%) !important;
  max-height:min(760px,92vh) !important;
  overflow:auto !important;
  background:linear-gradient(180deg,#ffffff,#f3fbff) !important;
  color:var(--vf-ink) !important;
  border:1px solid var(--vf-line) !important;
  border-radius:20px !important;
  box-shadow:0 26px 70px rgba(0,28,52,.26) !important;
}

body.vp-page-quest #consent-modal *,
body.vp-page-nutrition #consent-modal *{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

body.vp-page-quest #consent-modal button,
body.vp-page-nutrition #consent-modal button,
body.vp-page-quest #guest-btn,
body.vp-page-nutrition #guest-btn{
  min-height:44px !important;
  border-radius:14px !important;
  font-weight:900 !important;
}

#vitalia-common-nav{
  left:50% !important;
  transform:translateX(-50%) !important;
  width:min(620px,100%) !important;
  height:78px !important;
  padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px)) !important;
  background:linear-gradient(180deg,rgba(248,252,255,.97),rgba(255,255,255,.98)) !important;
  border:1.5px solid rgba(41,182,232,.18) !important;
  border-bottom:0 !important;
  border-radius:22px 22px 0 0 !important;
  box-shadow:0 -20px 48px rgba(20,70,100,.16),0 -1px 0 rgba(41,182,232,.12) !important;
  backdrop-filter:blur(22px) saturate(1.2) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.2) !important;
}

.vcn-tab{
  height:60px !important;
  border-radius:17px !important;
  color:#627f92 !important;
  -webkit-text-fill-color:#627f92 !important;
  gap:4px !important;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease !important;
}

.vcn-tab:focus-visible{
  outline:3px solid rgba(30,127,164,.28) !important;
  outline-offset:2px !important;
}

.vcn-tab.is-active{
  transform:translateY(-6px) !important;
  color:var(--vf-cyan) !important;
  -webkit-text-fill-color:var(--vf-cyan) !important;
  background:linear-gradient(180deg,#e6f8ff,#fff) !important;
  box-shadow:0 14px 26px rgba(30,127,164,.17) !important;
}

.vcn-icon{
  display:block !important;
  font-size:21px !important;
  line-height:1 !important;
}

.vcn-mark{
  display:none !important;
}

.vcn-label{
  font-size:11px !important;
  font-weight:900 !important;
  line-height:1.1 !important;
}

#coach-modal .coach-panel{
  background:linear-gradient(180deg,#0d1e34,#0c1a2e) !important;
  border:1px solid rgba(41,182,232,.30) !important;
  box-shadow:0 28px 70px rgba(0,8,30,.78) !important;
}

#coach-modal .coach-hdr,
#coach-modal .coach-char,
#coach-modal .coach-grow,
#coach-modal .coach-input-wrap{
  background:rgba(8,16,34,.88) !important;
  color:#d4e8f8 !important;
}

#coach-modal .coach-bubble-luna{
  background:#fff !important;
  border:1px solid rgba(41,182,232,.20) !important;
  color:#0a2a40 !important;
}

#coach-modal .coach-bubble-user{
  background:linear-gradient(135deg,#1e7fa4,#29b6e8) !important;
  border:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

#coach-modal #coach-input{
  color:#d4e8f8 !important;
  -webkit-text-fill-color:#d4e8f8 !important;
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(41,182,232,.24) !important;
  border-radius:14px !important;
  min-height:48px !important;
}

#coach-modal #coach-input::placeholder{
  color:rgba(127,216,244,.35) !important;
  -webkit-text-fill-color:rgba(127,216,244,.35) !important;
}

#coach-modal #coach-send{
  min-width:52px !important;
  min-height:48px !important;
  border-radius:14px !important;
  background:linear-gradient(135deg,#1e7fa4,#29b6e8) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  box-shadow:0 4px 16px rgba(41,182,232,.32) !important;
}

@media (max-width:820px){
  body.vp-page-game.app-active .g-main,
  body.vp-page-quest .main-content,
  body.vp-page-nutrition .main-content,
  body.vp-page-adventure .adv-main,
  body.vp-page-settings .page{
    max-width:560px !important;
    padding:12px 12px 108px !important;
  }

  body.vp-page-game.app-active .home-char-trio{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  body.vp-page-game.app-active .home-char-trio > .hc-card{
    grid-template-columns:64px minmax(0,1fr) !important;
    min-height:108px !important;
    padding:14px !important;
  }

  body.vp-page-quest .main-content,
  body.vp-page-nutrition .main-content{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  body.vp-page-quest .quest-side,
  body.vp-page-nutrition .quest-side{
    position:static !important;
    max-height:none !important;
  }

  body.vp-page-game.app-active .hc-card,
  body.vp-page-quest .quest-hero,
  body.vp-page-nutrition .quest-hero{
    grid-template-columns:64px minmax(0,1fr) !important;
    min-height:102px !important;
    padding:14px !important;
  }

  body.vp-page-quest .qh-stats,
  body.vp-page-nutrition .qh-stats{
    grid-column:1 / -1 !important;
    grid-template-columns:1fr 1fr !important;
  }

  body.vp-page-adventure .adv-main{
    display:block !important;
  }

  body.vp-page-game.app-active .hc-portrait,
  body.vp-page-quest .qh-char,
  body.vp-page-nutrition .qh-char{
    width:64px !important;
    height:64px !important;
    border-radius:17px !important;
  }

  #vitalia-common-nav{
    width:100% !important;
    height:76px !important;
    border-radius:18px 18px 0 0 !important;
    padding-inline:7px !important;
  }
}

/* Late polish overrides: keep quest/nutrition/adventure aligned even when page scripts restyle inline blocks. */
body.vp-page-quest .quest-hero,
body.vp-page-nutrition .quest-hero{
  grid-template-columns:86px minmax(0,1fr) 132px !important;
  padding:18px !important;
  gap:16px !important;
}

body.vp-page-quest .qh-char,
body.vp-page-nutrition .qh-char{
  grid-column:1 !important;
  grid-row:1 !important;
}

body.vp-page-quest .qh-info,
body.vp-page-nutrition .qh-info{
  grid-column:2 !important;
  grid-row:1 !important;
}

body.vp-page-quest .qh-stats,
body.vp-page-nutrition .qh-stats{
  grid-column:3 !important;
  grid-row:1 !important;
}

body.vp-page-quest .quest-side > [hidden],
body.vp-page-nutrition .quest-side > [hidden],
body.vp-page-adventure [hidden]{
  display:none !important;
}

body.vp-page-adventure .adv-main{
  grid-template-columns:minmax(0,1fr) minmax(300px,380px) !important;
}

@media (max-width:820px){
  body.vp-page-quest .quest-hero,
  body.vp-page-nutrition .quest-hero{
    grid-template-columns:64px minmax(0,1fr) !important;
  }

  body.vp-page-quest .qh-stats,
  body.vp-page-nutrition .qh-stats{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }

  body.vp-page-adventure .adv-main{
    display:block !important;
  }
}
