/* Safe participant-facing UI cleanup. ASCII-only file to avoid encoding drift. */
:root{
  --clean-bg:#0c1a2e;
  --clean-bg-2:#102540;
  --clean-panel:#ffffff;
  --clean-ink:#0a2a40;
  --clean-muted:#557185;
  --clean-line:#b8d5e4;
  --clean-cyan:#29b6e8;
  --clean-green:#4ec98a;
  --clean-shadow:0 10px 28px rgba(0,20,60,.35);
}

html,
body,
#main-screen,
#main-app{
  background:
    linear-gradient(180deg,#0c1a2e 0%,#102540 50%,#163050 100%) !important;
  background-attachment:fixed !important;
  color:#d4e8f8 !important;
}

body[class*="vp-page-"]{
  min-height:100vh !important;
  background:
    radial-gradient(ellipse 80% 40% at 20% 0%,rgba(41,182,232,.10) 0%,transparent 55%),
    radial-gradient(ellipse 60% 35% at 80% 15%,rgba(127,216,244,.08) 0%,transparent 50%),
    linear-gradient(180deg,#0c1a2e 0%,#102540 52%,#163050 100%) !important;
  background-attachment:fixed !important;
  color:#d4e8f8 !important;
  text-shadow:none !important;
}

body[class*="vp-page-"] *{
  text-shadow:none !important;
}

.vp-page-game #main-app,
.vp-page-quest #main-app,
.vp-page-nutrition #main-app,
.vp-page-adventure #main-app,
.vp-page-settings .page{
  background:transparent !important;
}

#vitalia-forest-bg{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  object-fit:cover;
  z-index:-3;
  opacity:0;
  pointer-events:none;
  transition:opacity .45s ease;
}

.vp-forest-ready #vitalia-forest-bg{
  opacity:.16;
}

.vp-page-adventure.vp-forest-ready #vitalia-forest-bg,
.vp-page-game.vp-forest-ready #vitalia-forest-bg{
  opacity:.08;
  filter:saturate(.7) brightness(1.18);
}

.vp-page-quest,
.vp-page-nutrition,
.vp-page-settings{
  background:#f7fcff !important;
}

body::before,
.aurora-stage,
#loading-screen,
#login-screen #loading-screen,
#goal-banner,
.goal-banner,
#save-toast,
#ach-notify,
#lv-toast,
#_toast,
.coach-toast,
.bonus-toast,
.bt-notify,
#tutorial-overlay,
#spot-overlay,
.jump-fab{
  display:none !important;
  opacity:0 !important;
  pointer-events:none !important;
}

#loading-screen.hidden,
#loading-screen:not(.show){
  display:none !important;
}

.bottom-nav{
  display:none !important;
}

a[href*="party.html"],
.ch-card-pt,
.menu-board-section,
.sera-recipe-banner,
.photo-cta,
.quick-note,
.daily-note,
.guide-note,
#adv-howto,
.mission-card,
.news-card,
.achievement-card,
.qol-trend-card,
.sh-foot,
#ch-main-btn,
#ch-detail-btn,
.home-3btn,
#daily-mission{
  display:none !important;
}

.main-header,
.adv-header,
header{
  background:rgba(255,255,255,.94) !important;
  border-bottom:1px solid var(--clean-line) !important;
  box-shadow:0 6px 24px rgba(20,70,100,.10) !important;
  backdrop-filter:blur(14px) !important;
}

.main-header *,
.adv-header *,
header *{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.main-content,
.adv-main,
.app-shell,
main{
  width:100% !important;
  max-width:980px !important;
  margin:0 auto !important;
  padding-bottom:104px !important;
}

.main-content{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 300px !important;
  align-items:start !important;
  gap:16px !important;
  padding:16px 14px 112px !important;
}

.vp-page-quest .main-content,
.vp-page-nutrition .main-content{
  max-width:1180px !important;
  grid-template-columns:minmax(0,1fr) 320px !important;
  gap:20px !important;
  padding:20px 18px 116px !important;
}

.vp-page-quest .quest-board,
.vp-page-nutrition .food-board{
  display:flex !important;
  flex-direction:column !important;
  gap:16px !important;
  min-width:0 !important;
}

.vp-page-quest .quest-side,
.vp-page-nutrition .quest-side{
  position:sticky !important;
  top:78px !important;
  align-self:start !important;
  max-height:calc(100vh - 100px) !important;
  overflow:auto !important;
  padding-right:4px !important;
}

.vp-page-nutrition #main-screen > .hc-card,
.vp-page-nutrition #main-screen > .vrpg-hero{
  display:none !important;
}

.quest-side{
  position:static !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  min-width:0 !important;
}

.vp-page-quest .quest-side > div:first-child,
.vp-page-nutrition .quest-side > div:first-child{
  display:grid !important;
  grid-template-columns:54px minmax(0,1fr) !important;
  align-items:center !important;
  gap:12px !important;
  background:#fff !important;
  border:1px solid var(--clean-line) !important;
  border-radius:16px !important;
  padding:14px !important;
  box-shadow:var(--clean-shadow) !important;
}

.vp-page-quest .quest-side > div:first-child > div:first-child,
.vp-page-nutrition .quest-side > div:first-child > div:first-child{
  width:54px !important;
  height:54px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  border:1px solid #d3e7f0 !important;
  background:#eef8fc !important;
}

.vp-page-quest .quest-side > div:first-child img,
.vp-page-nutrition .quest-side > div:first-child img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 14% !important;
}

.vp-page-quest .quest-side > div:first-child > div:last-child,
.vp-page-nutrition .quest-side > div:first-child > div:last-child{
  min-width:0 !important;
}

.quest-board,
.food-board{
  min-width:0 !important;
}

.player-card,
.page,
.section,
.goal-card,
.bmi-card,
.toggle-row,
.acct-card,
.summary-card,
.stat-card,
.progress-card,
.achievement-item,
.settings-card,
.quest-hero,
.side-panel,
.linked-panel,
.board-section,
.chapter-card,
.battle-card,
.history-card,
.global-progress,
.stat-bar-card,
.score-block,
.metric-card,
.log-item,
.achievement-panel,
.nutrition-link,
.food-search-wrap,
.portion-bar,
.nut-summary,
.hc-card,
.sh-rec-btn,
.sh-summary,
.sh-adv,
.sh-mission,
.ch-menu-sheet,
.ch-card,
.ch-sub-btn,
.form-card,
.survey-card,
.baseline-card,
form,
fieldset{
  background:var(--clean-panel) !important;
  background-image:none !important;
  border:1px solid var(--clean-line) !important;
  border-radius:16px !important;
  box-shadow:var(--clean-shadow) !important;
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.page{
  width:min(980px,100%) !important;
  margin:0 auto !important;
  padding:18px 14px 112px !important;
  box-shadow:none !important;
  border:0 !important;
}

.section{
  padding:18px !important;
  margin:0 0 16px !important;
}

.page-title,
.page-sub,
.section-title,
.toggle-label,
.toggle-desc,
.goal-title,
.goal-desc,
.acct-lbl,
.acct-val,
.form-hint,
.save-msg{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.page-sub,
.toggle-desc,
.goal-desc,
.form-hint{
  color:var(--clean-muted) !important;
  -webkit-text-fill-color:var(--clean-muted) !important;
}

.lp-hero,
.lp-ch,
.lp-badge{
  text-shadow:none !important;
}

.lp-rune,
.lp-subtitle{
  color:#1e7fa4 !important;
  -webkit-text-fill-color:#1e7fa4 !important;
}

.lp-title{
  color:#0a4870 !important;
  -webkit-text-fill-color:#0a4870 !important;
  background:none !important;
}

#login-screen .lp-title,
#loading-screen .ls-title{
  color:#0a4870 !important;
  -webkit-text-fill-color:#0a4870 !important;
  background:none !important;
  animation:none !important;
  filter:none !important;
}

.lp-tagline,
.lp-tagline *,
.lp-ch-role{
  color:#4f6e82 !important;
  -webkit-text-fill-color:#4f6e82 !important;
}

.lp-ch{
  background:rgba(255,255,255,.94) !important;
  border:1px solid var(--clean-line) !important;
  box-shadow:0 10px 28px rgba(20,70,100,.14) !important;
}

.lp-ch-name{
  color:#0a4870 !important;
  -webkit-text-fill-color:#0a4870 !important;
}

.lp-badge{
  background:#ffffff !important;
  border:1px solid var(--clean-line) !important;
  color:#1e7fa4 !important;
  -webkit-text-fill-color:#1e7fa4 !important;
}

.quest-hero,
.hc-card{
  display:grid !important;
  grid-template-columns:84px minmax(0,1fr) 132px !important;
  gap:12px 16px !important;
  align-items:center !important;
  padding:18px !important;
  margin-bottom:0 !important;
  min-height:132px !important;
}

.quest-hero::before,
.quest-hero::after{
  display:none !important;
}

.qh-char,
.hc-portrait{
  width:84px !important;
  height:84px !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#eef8fc !important;
  border:1px solid #d3e7f0 !important;
  box-shadow:none !important;
}

.qh-info{
  min-width:0 !important;
}

.qh-name{
  font-size:1rem !important;
  line-height:1.35 !important;
  margin-bottom:6px !important;
}

.qh-role{
  font-size:.72rem !important;
  line-height:1.35 !important;
  margin-bottom:3px !important;
}

.qh-stats{
  grid-column:auto !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  padding:10px !important;
  border:1px solid #e4f1f6 !important;
  border-radius:14px !important;
  background:#f7fcff !important;
}

.qh-stat-div{
  display:none !important;
}

.clean-nutrition-hero .qh-bar-fill{
  background:linear-gradient(90deg,#1f8a66,#7ee8b0) !important;
}

.qh-char img,
.hc-portrait img,
#kaito-face,
#sera-face,
.km-char-face img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 14% !important;
}

.qh-role,
.qh-week-lbl,
.section-note,
.attack-sub,
.chapter-narration,
.battle-weakness,
.gp-stats,
.xp-note,
.sh-rec-meta,
.pstat-label,
.ch-card-meta,
small,
.help,
.hint{
  color:var(--clean-muted) !important;
  -webkit-text-fill-color:var(--clean-muted) !important;
}

.qh-name,
.section-label,
.chapter-title,
.battle-name,
.history-head,
.gp-head,
.hc-name,
h1,h2,h3,h4,label,legend{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.side-panel{
  padding:16px !important;
}

.side-panel > div:first-child{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.side-panel img{
  display:block !important;
}

#kaito-comment,
#sera-comment,
.kaito-bubble,
.sera-bubble,
.side-panel p,
.side-panel div,
.linked-panel,
.linked-panel *,
.metric-card *,
.stat-bar-card *,
.score-block *{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.kaito-bubble,
.sera-bubble{
  background:rgba(247,252,255,.96) !important;
  border:1px solid #d6e9f2 !important;
  border-radius:12px !important;
  padding:10px 12px !important;
}

.qh-bar,
.xp-wrap,
.goal-bar-wrap,
.gp-bar,
.battle-hp-bar,
.stat-bar-wrap,
.hist-bar-wrap,
.hc-bar{
  background:#e8f3f8 !important;
}

.qh-bar-fill,
.xp-fill,
.goal-bar-fill,
.gp-fill,
.hist-bar,
.stat-bar-fill,
.hc-bar-fill{
  background:linear-gradient(90deg,#1e7fa4,#5fd0e8) !important;
}

.board-section,
.chapter-card,
.battle-card,
.history-card,
.global-progress{
  padding:18px !important;
  margin-bottom:0 !important;
}

.section-head{
  display:grid !important;
  grid-template-columns:38px minmax(0,1fr) !important;
  align-items:center !important;
  gap:10px !important;
  margin-bottom:12px !important;
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.section-label,
.panel-head,
.linked-head,
.section-title{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

.section-icon{
  width:38px !important;
  height:38px !important;
  border-radius:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef8fc !important;
  border:1px solid #d2e8f1 !important;
}

.card-grid,
.resto-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(136px,1fr)) !important;
  gap:10px !important;
}

.attack-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
}

.ex-card,
.food-card,
.rc,
.attack-card,
.menu-card,
button,
.btn,
.h-nav-btn{
  border-radius:12px !important;
}

.ex-card,
.food-card,
.rc,
.attack-card,
.menu-card{
  background:#fff !important;
  border:1px solid #cfe1eb !important;
  color:var(--clean-ink) !important;
  box-shadow:none !important;
  min-height:96px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:4px !important;
}

.vp-page-quest .ex-card,
.vp-page-nutrition .food-card,
.vp-page-nutrition .rc{
  min-height:104px !important;
}

.food-search-wrap,
.portion-bar,
.nut-summary{
  margin:0 !important;
}

.ex-card *,
.food-card *,
.rc *,
.attack-card *,
.menu-card *{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

input,
textarea,
select{
  color:var(--clean-ink) !important;
  background:#fff !important;
  border:1px solid #bdd8e6 !important;
  border-radius:10px !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

input::placeholder,
textarea::placeholder{
  color:#8aa4b4 !important;
  -webkit-text-fill-color:#8aa4b4 !important;
}

#vitalia-common-nav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  transform:none;
  width:100%;
  height:64px;
  z-index:999;
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:0;
  padding:0 max(8px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(8px, env(safe-area-inset-right));
  background:linear-gradient(180deg,rgba(248,252,255,.97) 0%,rgba(255,255,255,.98) 100%);
  border-top:1.5px solid rgba(30,127,164,.18);
  border-radius:0;
  box-shadow:0 -10px 32px rgba(20,70,100,.14),0 -1px 0 rgba(41,182,232,.10);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
}

#vitalia-common-nav[hidden]{
  display:none !important;
}

.vcn-tab{
  flex:1 1 0;
  min-width:0;
  max-width:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  text-decoration:none;
  color:var(--clean-muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:0;
  border-radius:12px 12px 0 0;
  position:relative;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}

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

.vcn-mark{
  width:22px;
  height:22px;
  position:relative;
  display:block;
  color:currentColor;
  opacity:.9;
}

.vcn-label{
  line-height:1;
  white-space:nowrap;
}

.vcn-tab:hover,
.vcn-tab:focus-visible{
  background:#eef8fd;
  color:var(--clean-cyan);
  outline:none;
}

.vcn-tab.is-active{
  color:var(--clean-cyan);
  background:linear-gradient(180deg,rgba(41,182,232,.12) 0%,rgba(255,255,255,.0) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 -2px 14px rgba(41,182,232,.14);
  transform:translateY(-3px);
}

.vcn-tab.is-active .vcn-icon,
.vcn-tab.is-active .vcn-label,
.vcn-tab.is-active .vcn-mark{
  color:var(--clean-cyan);
  -webkit-text-fill-color:var(--clean-cyan);
}

.vcn-tab.is-active .vcn-icon{
  background:transparent;
}

.vcn-tab.is-active::before{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  top:0;
  height:3px;
  border-radius:0 0 3px 3px;
  background:var(--clean-cyan);
}

.vcn-tab[data-tab="home"] .vcn-mark::before{
  content:"";
  position:absolute;
  left:3px;
  top:5px;
  width:15px;
  height:15px;
  border:2px solid currentColor;
  border-top:0;
  border-radius:3px;
}

.vcn-tab[data-tab="home"] .vcn-mark::after{
  content:"";
  position:absolute;
  left:4px;
  top:1px;
  width:13px;
  height:13px;
  border-left:2px solid currentColor;
  border-top:2px solid currentColor;
  transform:rotate(45deg);
  border-radius:2px;
}

.vcn-tab[data-tab="exercise"] .vcn-mark::before{
  content:"";
  position:absolute;
  left:3px;
  right:3px;
  top:10px;
  height:3px;
  border-radius:999px;
  background:currentColor;
}

.vcn-tab[data-tab="exercise"] .vcn-mark::after{
  content:"";
  position:absolute;
  left:0;
  top:6px;
  width:22px;
  height:11px;
  border-left:5px solid currentColor;
  border-right:5px solid currentColor;
  border-radius:4px;
}

.vcn-tab[data-tab="nutrition"] .vcn-mark::before{
  content:"";
  position:absolute;
  left:5px;
  top:3px;
  width:14px;
  height:16px;
  border:2px solid currentColor;
  border-radius:14px 2px 14px 2px;
  transform:rotate(-18deg);
}

.vcn-tab[data-tab="nutrition"] .vcn-mark::after{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  width:2px;
  height:12px;
  border-radius:999px;
  background:currentColor;
  transform:rotate(38deg);
}

.vcn-tab[data-tab="adventure"] .vcn-mark::before{
  content:"";
  position:absolute;
  left:3px;
  top:2px;
  width:16px;
  height:18px;
  border:2px solid currentColor;
  border-radius:8px 8px 10px 10px;
  clip-path:polygon(50% 0,100% 14%,90% 78%,50% 100%,10% 78%,0 14%);
}

.vcn-tab[data-tab="adventure"] .vcn-mark::after{
  content:"";
  position:absolute;
  left:9px;
  top:6px;
  width:4px;
  height:9px;
  border-radius:999px;
  background:currentColor;
}

.vcn-tab[data-tab="settings"] .vcn-mark::before{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:16px;
  height:16px;
  border:2px solid currentColor;
  border-radius:50%;
  box-shadow:0 -5px 0 -3px currentColor,0 5px 0 -3px currentColor,5px 0 0 -3px currentColor,-5px 0 0 -3px currentColor;
}

.vcn-tab[data-tab="settings"] .vcn-mark::after{
  content:"";
  position:absolute;
  left:8px;
  top:8px;
  width:6px;
  height:6px;
  border:2px solid currentColor;
  border-radius:50%;
}

.vitalia-ai-open{
  overflow:hidden !important;
}

#vitalia-ai-overlay{
  position:fixed;
  inset:0;
  z-index:2000;
  display:none;
  background:rgba(5,16,26,.62);
  backdrop-filter:blur(8px);
  padding:10px;
}

#vitalia-ai-overlay.open{
  display:flex;
}

.vai-panel{
  width:min(980px,100%);
  height:min(860px,100%);
  margin:auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--clean-line);
  border-radius:16px;
  box-shadow:0 24px 70px rgba(5,24,40,.28);
}

.vai-header{
  height:56px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-bottom:1px solid var(--clean-line);
  background:linear-gradient(180deg,#f0f8ff,#f7fcff);
  color:var(--clean-ink);
  flex:0 0 auto;
}

.vai-title{
  flex:1;
  min-width:0;
  text-align:center;
  font-weight:900;
  color:var(--clean-ink);
}

.vai-close,
.vai-open{
  appearance:none;
  border:1px solid #bdd8e6 !important;
  background:#fff !important;
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
  border-radius:10px !important;
  padding:8px 10px;
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
}

.vai-frame{
  flex:1;
  width:100%;
  min-height:0;
  border:0;
  background:#fff;
}

@media (max-width:820px){
  .main-content{
    grid-template-columns:1fr !important;
    padding:12px 12px 104px !important;
    gap:14px !important;
  }
  .vp-page-quest .main-content,
  .vp-page-nutrition .main-content{
    grid-template-columns:1fr !important;
    max-width:560px !important;
    padding:12px 12px 108px !important;
    gap:14px !important;
  }
  .vp-page-quest .quest-board,
  .vp-page-nutrition .food-board{
    order:0 !important;
    gap:14px !important;
  }
  .quest-side{
    order:1 !important;
  }
  .vp-page-quest .quest-side,
  .vp-page-nutrition .quest-side{
    position:static !important;
    max-height:none !important;
    overflow:visible !important;
    padding-right:0 !important;
  }
  .quest-board,
  .food-board{
    order:0 !important;
  }
  .quest-hero{
    grid-template-columns:64px minmax(0,1fr) !important;
    padding:12px !important;
    min-height:112px !important;
  }
  .quest-hero .qh-week-lbl{
    display:-webkit-box !important;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden !important;
  }
  .qh-stats{
    grid-column:1 / -1 !important;
    grid-template-columns:1fr 1fr !important;
    padding:8px !important;
  }
  .qh-char,
  .hc-portrait{
    width:64px !important;
    height:64px !important;
  }
  .card-grid,
  .resto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .attack-grid{
    grid-template-columns:1fr !important;
  }
  #vitalia-ai-overlay{
    padding:0;
  }
  .vai-panel{
    width:100%;
    height:100%;
    border-radius:0;
    border:0;
  }
  .vai-title{
    font-size:14px;
  }
  #vitalia-common-nav{
    bottom:0;
    width:100%;
    height:70px;
    border-radius:0;
    padding:0 6px env(safe-area-inset-bottom);
  }
  .vcn-tab{
    font-size:11px;
    gap:4px;
  }
  .vcn-mark{
    width:21px;
    height:21px;
  }
  .vcn-icon{
    display:none !important;
  }
}

/* Home contrast hardening: keep the playable home readable on light UI. */
body.vp-page-game.app-active,
body.vp-page-game.app-active #main-screen{
  background:
    linear-gradient(180deg,#f7fcff 0%,#edf8fd 48%,#f5fbff 100%) !important;
  color:var(--clean-ink) !important;
}

body.vp-page-game.app-active #main-screen{
  min-height:100vh !important;
  padding-bottom:calc(96px + env(safe-area-inset-bottom, 0)) !important;
}

body.vp-page-game.app-active .g-main{
  width:min(1040px,100%) !important;
  margin:0 auto !important;
  padding:16px 14px 112px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

body.vp-page-game.app-active #vitalia-forest-bg{
  opacity:.07 !important;
  filter:saturate(.75) brightness(1.2) !important;
}

body.vp-page-game.app-active .g-header{
  background:rgba(255,255,255,.96) !important;
  border-bottom:1px solid var(--clean-line) !important;
  box-shadow:0 6px 24px rgba(20,70,100,.10) !important;
}

body.vp-page-game.app-active .g-header *,
body.vp-page-game.app-active .g-logo *,
body.vp-page-game.app-active .gold-text{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  background:none !important;
  text-shadow:none !important;
}

body.vp-page-game.app-active .g-btn{
  background:#fff !important;
  border:1px solid var(--clean-line) !important;
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
  box-shadow:0 4px 14px rgba(20,70,100,.08) !important;
}

body.vp-page-game.app-active .simple-home{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

body.vp-page-game.app-active .player-card,
body.vp-page-game.app-active .qol-trend-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-mission,
body.vp-page-game.app-active .sh-rec-btn,
body.vp-page-game.app-active #main-screen .sh-rec-btn,
body.vp-page-game.app-active #main-screen .sh-rec-btn.rec-qol,
body.vp-page-game.app-active #main-screen .sh-rec-btn.rec-ex,
body.vp-page-game.app-active #main-screen .sh-rec-btn.rec-nu,
body.vp-page-game.app-active #main-screen .sh-rec-btn.rec-co,
body.vp-page-game.app-active #main-screen #sh-rec-qol{
  background:#fff !important;
  background-image:none !important;
  border:1px solid var(--clean-line) !important;
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  text-shadow:none !important;
  box-shadow:var(--clean-shadow) !important;
}

body.vp-page-game.app-active .player-card *,
body.vp-page-game.app-active .qol-trend-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-mission *,
body.vp-page-game.app-active .sh-rec-btn *,
body.vp-page-game.app-active #main-screen .sh-rec-btn *,
body.vp-page-game.app-active #main-screen .sh-rec-btn.rec-qol *,
body.vp-page-game.app-active #main-screen #sh-rec-qol *{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  text-shadow:none !important;
}

body.vp-page-game.app-active .player-name,
body.vp-page-game.app-active .hc-name,
body.vp-page-game.app-active .sh-rec-name,
body.vp-page-game.app-active .sh-sum-val,
body.vp-page-game.app-active .qol-trend-head{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  font-weight:900 !important;
}

body.vp-page-game.app-active .lv-title,
body.vp-page-game.app-active .xp-note,
body.vp-page-game.app-active .xp-note *,
body.vp-page-game.app-active .hc-role,
body.vp-page-game.app-active .hc-stat,
body.vp-page-game.app-active .sh-rec-meta,
body.vp-page-game.app-active #main-screen .sh-rec-meta,
body.vp-page-game.app-active #main-screen #sh-meta-qol,
body.vp-page-game.app-active .sh-sum-lbl,
body.vp-page-game.app-active .qol-trend-empty{
  color:var(--clean-muted) !important;
  -webkit-text-fill-color:var(--clean-muted) !important;
}

body.vp-page-game.app-active #main-screen #sh-rec-qol{
  min-height:76px !important;
  border-radius:16px !important;
}

body.vp-page-game.app-active #main-screen #sh-rec-qol .sh-rec-name,
body.vp-page-game.app-active #main-screen #sh-rec-qol .sh-rec-arrow{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
}

body.vp-page-game.app-active #main-screen #sh-rec-qol .sh-rec-icon{
  background:#eef8fc !important;
  border:1px solid #d2e8f1 !important;
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
}

body.vp-page-game.app-active .hc-card{
  grid-template-columns:76px minmax(0,1fr) !important;
  grid-template-areas:
    "portrait name"
    "portrait role"
    "portrait stat"
    "portrait bar" !important;
  min-height:118px !important;
  padding:14px !important;
}

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

body.vp-page-game.app-active .sh-sum-bar,
body.vp-page-game.app-active .xp-bar,
body.vp-page-game.app-active .player-card-bar,
body.vp-page-game.app-active .hc-bar{
  background:#e8f3f8 !important;
}

body.vp-page-game.app-active .sh-sum-fill,
body.vp-page-game.app-active .xp-fill,
body.vp-page-game.app-active .player-card-bar-fill,
body.vp-page-game.app-active .hc-bar-fill{
  background:linear-gradient(90deg,#1e7fa4,#5fd0e8) !important;
}

body.vp-page-game.app-active .sh-m-done,
body.vp-page-game.app-active button.sh-m-done{
  background:linear-gradient(135deg,#1f8a66,#35b884) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border:0 !important;
}

body.vp-page-game.app-active #vitalia-common-nav{
  background:rgba(255,255,255,.98) !important;
  border-top:1px solid #bdd8e6 !important;
  box-shadow:0 -10px 28px rgba(20,70,100,.18) !important;
}

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

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

@media (max-width:820px){
  body.vp-page-game.app-active .g-main{
    max-width:560px !important;
    padding:12px 12px 108px !important;
  }
  body.vp-page-game.app-active .home-char-trio{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
  }
  body.vp-page-game.app-active .hc-card{
    grid-template-columns:64px minmax(0,1fr) !important;
    min-height:104px !important;
    border-radius:14px !important;
  }
  body.vp-page-game.app-active .player-stats{
    display:none !important;
  }
  body.vp-page-game.app-active .g-header{
    gap:8px !important;
    overflow-x:auto !important;
  }
  body.vp-page-game.app-active .g-user{
    display:none !important;
  }
}

/* Product-grade unified app skin for the five core screens. */
body.vp-page-game.app-active,
body.vp-page-quest,
body.vp-page-nutrition,
body.vp-page-adventure,
body.vp-page-settings{
  min-height:100vh !important;
  background:
    radial-gradient(circle at 16% 4%, rgba(126,232,176,.28) 0, transparent 28%),
    radial-gradient(circle at 84% 12%, rgba(95,208,232,.24) 0, transparent 30%),
    linear-gradient(180deg,#f7fcff 0%,#eef8fd 52%,#f6fff9 100%) !important;
  color:var(--clean-ink) !important;
}

body.vp-page-game.app-active::after,
body.vp-page-quest::after,
body.vp-page-nutrition::after,
body.vp-page-adventure::after,
body.vp-page-settings::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(30,127,164,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,127,164,.035) 1px, transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 72%);
}

body.vp-page-quest.vp-forest-ready #vitalia-forest-bg,
body.vp-page-nutrition.vp-forest-ready #vitalia-forest-bg,
body.vp-page-settings.vp-forest-ready #vitalia-forest-bg{
  opacity:.06 !important;
  filter:saturate(.72) brightness(1.22) !important;
}

body.vp-page-adventure.vp-forest-ready #vitalia-forest-bg{
  opacity:.13 !important;
  filter:saturate(.8) brightness(1.05) !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:66px !important;
  padding:10px clamp(14px,3vw,28px) !important;
  background:rgba(255,255,255,.90) !important;
  border-bottom:1px solid rgba(30,127,164,.18) !important;
  box-shadow:0 12px 34px rgba(20,70,100,.10) !important;
  backdrop-filter:blur(18px) saturate(1.15) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15) !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 *{
  text-shadow:none !important;
}

body.vp-page-game.app-active .g-logo,
body.vp-page-quest .h-left,
body.vp-page-nutrition .h-left,
body.vp-page-adventure .adv-title,
body.vp-page-settings > header > a{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  font-family:"Noto Serif JP",serif !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
}

body.vp-page-quest .h-title,
body.vp-page-nutrition .h-title,
body.vp-page-adventure .adv-title{
  font-size:clamp(1rem,2vw,1.18rem) !important;
}

body.vp-page-game.app-active .g-btn,
body.vp-page-quest .h-nav-btn,
body.vp-page-nutrition .h-nav-btn,
body.vp-page-adventure .adv-back,
body.vp-page-settings .back-btn,
body.vp-page-quest #logout-btn,
body.vp-page-nutrition #logout-btn,
body.vp-page-game.app-active #logout-btn{
  min-height:38px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  padding:8px 13px !important;
  border:1px solid rgba(30,127,164,.28) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.92) !important;
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
  box-shadow:0 5px 16px rgba(20,70,100,.08) !important;
  font-weight:900 !important;
  text-decoration:none !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:0 auto !important;
  padding:clamp(14px,2.2vw,24px) clamp(12px,2vw,20px) 112px !important;
}

body.vp-page-quest .main-content,
body.vp-page-nutrition .main-content{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 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-mission,
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{
  position:relative !important;
  overflow:hidden !important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,253,255,.92)) !important;
  border:1px solid rgba(30,127,164,.22) !important;
  border-radius:18px !important;
  box-shadow:
    0 12px 32px rgba(20,70,100,.11),
    inset 0 1px 0 rgba(255,255,255,.86) !important;
}

body.vp-page-game.app-active .player-card::before,
body.vp-page-game.app-active .hc-card::before,
body.vp-page-quest .quest-hero::before,
body.vp-page-nutrition .quest-hero::before,
body.vp-page-adventure .chapter-card::before,
body.vp-page-settings .section::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  background:linear-gradient(120deg, rgba(255,255,255,.42), transparent 34%, rgba(126,232,176,.08)) !important;
  opacity:.85 !important;
}

body.vp-page-quest .quest-hero,
body.vp-page-nutrition .quest-hero{
  display:grid !important;
  grid-template-columns:88px minmax(0,1fr) 148px !important;
  grid-template-areas:"portrait info stats" !important;
  align-items:center !important;
  min-height:150px !important;
  gap:16px !important;
  padding:18px !important;
}

body.vp-page-quest .qh-char,
body.vp-page-nutrition .qh-char{
  grid-area:portrait !important;
  width:88px !important;
  height:88px !important;
  border-radius:24px !important;
  border:1px solid rgba(30,127,164,.18) !important;
  background:#fff !important;
  box-shadow:0 12px 28px rgba(20,70,100,.14) !important;
}

body.vp-page-quest .qh-info,
body.vp-page-nutrition .qh-info{
  grid-area:info !important;
  min-width:0 !important;
}

body.vp-page-quest .qh-stats,
body.vp-page-nutrition .qh-stats{
  grid-area:stats !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  padding:12px !important;
  background:rgba(238,248,252,.86) !important;
  border:1px solid rgba(30,127,164,.16) !important;
  border-radius:16px !important;
}

body.vp-page-quest .qh-role,
body.vp-page-nutrition .qh-role,
body.vp-page-settings .page-sub{
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
}

body.vp-page-quest .qh-name,
body.vp-page-nutrition .qh-name,
body.vp-page-adventure .chapter-title,
body.vp-page-settings .page-title,
body.vp-page-settings .section-title{
  color:var(--clean-ink) !important;
  -webkit-text-fill-color:var(--clean-ink) !important;
  font-family:"Noto Serif JP",serif !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
}

body.vp-page-nutrition .clean-nutrition-hero .qh-role{
  font-size:.82rem !important;
  line-height:1.35 !important;
  margin-bottom:4px !important;
}

body.vp-page-nutrition .clean-nutrition-hero .qh-name{
  font-size:1.08rem !important;
  line-height:1.35 !important;
  margin-bottom:8px !important;
}

body.vp-page-nutrition .clean-nutrition-hero .qh-bar-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  min-width:0 !important;
}

body.vp-page-nutrition .clean-nutrition-hero .qh-bar{
  flex:1 1 auto !important;
  min-width:60px !important;
}

body.vp-page-nutrition .clean-nutrition-hero .qh-week-lbl{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  font-size:.74rem !important;
  line-height:1.55 !important;
  margin-top:6px !important;
}

body.vp-page-quest .section-head,
body.vp-page-nutrition .section-head{
  grid-template-columns:44px minmax(0,1fr) !important;
  gap:12px !important;
  margin-bottom:14px !important;
}

body.vp-page-quest .section-icon,
body.vp-page-nutrition .section-icon{
  width:44px !important;
  height:44px !important;
  border-radius:14px !important;
  background:linear-gradient(145deg,#effaff,#fff) !important;
  border:1px solid rgba(30,127,164,.18) !important;
  box-shadow:0 8px 20px rgba(20,70,100,.08) !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-adventure .chapter-card,
body.vp-page-settings input,
body.vp-page-settings select,
body.vp-page-settings textarea{
  background:#fff !important;
  border:1px solid rgba(30,127,164,.18) !important;
  border-radius:14px !important;
  box-shadow:0 5px 16px rgba(20,70,100,.07) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body.vp-page-quest .ex-card:hover,
body.vp-page-nutrition .food-card:hover,
body.vp-page-nutrition .rc:hover,
body.vp-page-adventure .attack-card:hover,
body.vp-page-settings .theme-opt:hover{
  transform:translateY(-2px) !important;
  border-color:rgba(30,127,164,.36) !important;
  box-shadow:0 12px 28px rgba(20,70,100,.13) !important;
}

body.vp-page-adventure .battle-enemy-stage{
  border-radius:18px !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at center, rgba(95,208,232,.18), transparent 58%),
    linear-gradient(180deg,#f8fdff,#eaf7fb) !important;
  border:1px solid rgba(30,127,164,.18) !important;
}

body.vp-page-settings .page{
  display:flex !important;
  flex-direction:column !important;
  gap:16px !important;
}

body.vp-page-settings .section{
  margin:0 !important;
}

#vitalia-common-nav{
  height:76px !important;
  padding:6px max(8px, env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-right)) !important;
  background:rgba(255,255,255,.92) !important;
  border-top:1px solid rgba(30,127,164,.20) !important;
  box-shadow:0 -14px 36px rgba(20,70,100,.16) !important;
}

.vcn-tab{
  height:58px !important;
  border-radius:18px !important;
  gap:5px !important;
  color:#627f92 !important;
  -webkit-text-fill-color:#627f92 !important;
}

.vcn-tab.is-active{
  color:var(--clean-cyan) !important;
  -webkit-text-fill-color:var(--clean-cyan) !important;
  background:linear-gradient(180deg,#e7f9ff,#ffffff) !important;
  transform:translateY(-6px) !important;
  box-shadow:0 12px 26px rgba(30,127,164,.16), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

.vcn-tab.is-active::before{
  left:24% !important;
  right:24% !important;
  top:4px !important;
  height:4px !important;
  border-radius:999px !important;
}

.vcn-mark{
  width:24px !important;
  height:24px !important;
}

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

.vrpg-fab,
.vrpg-fab-tweaks,
.vrpg-tweaks,
#coach-fab{
  display:none !important;
  opacity:0 !important;
  pointer-events:none !important;
}

body[class*="vp-page-"] .bottom-nav,
body[class*="vp-page-"] #bottom-nav,
.bottom-nav[hidden]{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

#ch-menu-overlay:not(.open){
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

body[class*="vp-page-"] a[href*="account.html"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

body[class*="vp-page-"] .pipe,
body[class*="vp-page-"] .h-pipe{
  display:none !important;
}

@media (max-width:820px){
  body.vp-page-quest .main-content,
  body.vp-page-nutrition .main-content{
    grid-template-columns:1fr !important;
    max-width:560px !important;
    gap:14px !important;
  }

  body.vp-page-quest .quest-hero,
  body.vp-page-nutrition .quest-hero{
    grid-template-columns:68px minmax(0,1fr) !important;
    grid-template-areas:
      "portrait info"
      "stats stats" !important;
    min-height:0 !important;
    padding:14px !important;
  }

  body.vp-page-quest .qh-char,
  body.vp-page-nutrition .qh-char{
    width:68px !important;
    height:68px !important;
    border-radius:18px !important;
  }

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

  body.vp-page-nutrition .clean-nutrition-hero .qh-role{
    font-size:.76rem !important;
  }

  body.vp-page-nutrition .clean-nutrition-hero .qh-name{
    font-size:1rem !important;
  }

  body.vp-page-nutrition .clean-nutrition-hero .qh-week-lbl{
    font-size:.7rem !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:58px !important;
    padding:8px 12px !important;
  }

  body.vp-page-quest .h-right,
  body.vp-page-nutrition .h-right,
  body.vp-page-game.app-active .g-user{
    display:none !important;
  }

  #vitalia-common-nav{
    height:76px !important;
  }

  .vcn-tab{
    height:60px !important;
    border-radius:16px !important;
  }
}
