/* ============================================================
   GAME.CSS — L'Échoppe (mini-jeu d'alchimie), s'appuie sur theme.css
   ============================================================ */

:root {
    /* Alias/overrides propres à l'Échoppe */
    --font-title: var(--font-goth);
    --text-muted: var(--text-muted-warm);
}

html, body {
    margin: 0; padding: 0; box-sizing: border-box;
    background-color: var(--bg-dark); color: var(--text-main); font-family: var(--font-ui);
    height: 100%; width: 100%; overflow: hidden;
    display: flex; flex-direction: column;
    overscroll-behavior: none; -webkit-user-select: none; user-select: none;
}

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

#ambient-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; transition: background 3s ease; }

/* --- HUD --- */
header {
    flex-shrink: 0; position: relative; z-index: 10;
    display: flex; justify-content: space-between; align-items: center;
    padding: calc(15px + env(safe-area-inset-top)) var(--sp-5) var(--sp-4) var(--sp-5);
    background: linear-gradient(to bottom, rgba(5,2,2,0.98), transparent);
    border-bottom: 1px solid rgba(138,3,3,0.25);
}
.hud-left { display: flex; flex-direction: column; gap: var(--sp-1); }
.currency { display: flex; align-items: center; gap: var(--sp-2); font-family: var(--font-title); color: var(--accent-gold); font-size: var(--fs-lg); text-shadow: 0 0 10px rgba(212, 175, 55, 0.4); }
.level-badge { font-size: var(--fs-xs); text-transform: uppercase; background: var(--accent-blood); color: white; padding: 2px 8px; border-radius: 20px; font-weight: 600; letter-spacing: 1px; display: inline-block; width: max-content; }
.xp-bar-container { width: 100px; height: 3px; background: #1a0a0a; border-radius: 2px; margin-top: var(--sp-1); overflow: hidden; }
.xp-bar-fill { height: 100%; width: 0%; background: var(--accent-pink); transition: width 0.5s var(--ease-standard); }
.hud-right { text-align: right; }
.env-info { font-size: var(--fs-sm); color: var(--accent-pink); letter-spacing: 1px; text-transform: uppercase; font-weight: 500; }
.env-sub { font-size: var(--fs-xs); color: var(--text-muted); text-align: right; }

/* --- ZONE DE VUE --- */
.game-view {
    display: none;
    flex: 1;
    width: 100%;
    padding: var(--sp-4) var(--sp-5);
    z-index: 5;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.game-view::-webkit-scrollbar { display: none; }
.game-view.active { display: flex; animation: view-fade-in var(--dur-view) var(--ease-soft); }
@keyframes view-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* --- COMPTOIR --- */
#view-counter { justify-content: center; align-items: center; }
.stage-wrapper { width: 100%; max-width: 400px; display: flex; flex-direction: column; align-items: center; gap: var(--sp-4); }
.entity-sprite { width: 120px; height: 120px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 4rem; position: relative; animation: float 4s ease-in-out infinite; }
.entity-aura { position: absolute; width: 100%; height: 100%; border-radius: 50%; filter: blur(20px); z-index: -1; opacity: 0.4; transition: all 1s ease; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.dialogue-box { background: var(--panel-bg); border: 1px solid rgba(255,182,193,0.15); border-radius: var(--radius-md); padding: var(--sp-4); width: 100%; box-shadow: var(--shadow-soft); position: relative; }
.dialogue-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--sp-3); }
.dialogue-name { font-family: var(--font-title); color: var(--accent-pink); font-size: var(--fs-md); }
.dialogue-mood { font-size: var(--fs-xs); text-transform: uppercase; color: var(--accent-gold); letter-spacing: 0.5px; }
.dialogue-text { font-size: var(--fs-sm); line-height: 1.6; color: var(--text-dim); min-height: 50px; }

.action-list { display: flex; flex-direction: column; gap: var(--sp-2); width: 100%; margin-top: var(--sp-3); }
.btn-action { background: var(--accent-blood-soft); border: 1px solid var(--accent-blood); color: var(--text-main); padding: 14px; border-radius: var(--radius-sm); font-family: var(--font-ui); transition: all var(--dur-fast) var(--ease-standard); cursor: pointer; display: flex; justify-content: space-between; align-items: center; text-align: left; }
.btn-action:active { transform: scale(0.98); }
.btn-action.ready { border-color: var(--accent-pink); background: var(--accent-pink-soft); color: var(--accent-pink); box-shadow: 0 0 15px rgba(255,182,193,0.2) inset; }
.btn-action.locked { opacity: 0.5; border-color: #332222; pointer-events: none; }
.btn-dismiss { background: transparent; border: 1px solid #221818; color: var(--text-muted); padding: 12px; border-radius: var(--radius-sm); font-family: var(--font-ui); font-size: var(--fs-sm); cursor: pointer; text-align: center; transition: all var(--dur-base); }
.btn-dismiss:active { transform: scale(0.98); background: rgba(255,255,255,0.04); }

/* --- JARDIN & ATELIER --- */
.garden-section-title { font-family: var(--font-title); font-size: var(--fs-sm); color: var(--accent-gold); text-transform: uppercase; letter-spacing: 1px; margin: var(--sp-4) 0 var(--sp-3) 0; padding-left: 5px; }
.garden-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); width: 100%; max-width: 400px; margin: 0 auto; flex-shrink: 0; }
.pot { background: rgba(10,5,5,0.8); border: 1px dashed #332222; border-radius: var(--radius-md); height: 105px; display: flex; flex-direction: column; justify-content: center; align-items: center; cursor: pointer; position: relative; overflow: hidden; transition: all var(--dur-fast) ease; }
.pot.ready { border: 1px solid var(--accent-pink); background: var(--accent-pink-soft); box-shadow: 0 0 20px rgba(255,182,193,0.15) inset; }
.pot-icon { font-size: 1.8rem; filter: grayscale(100%) opacity(0.2); transition: all var(--dur-slow) ease; }
.pot.ready .pot-icon { filter: grayscale(0%) opacity(1) drop-shadow(0 0 15px rgba(255,255,255,0.5)); transform: scale(1.1); }
.pot-timer { font-size: var(--fs-xs); color: var(--text-muted); margin-top: var(--sp-2); background: rgba(0,0,0,0.6); padding: 2px 8px; border-radius: 10px; font-family: monospace; }

.upgrades-list { display: flex; flex-direction: column; gap: var(--sp-2); width: 100%; max-width: 400px; margin: 0 auto; padding-bottom: var(--sp-5); }
.up-card { background: rgba(15,10,10,0.6); border: 1px solid #221515; border-radius: var(--radius-md); padding: var(--sp-3); display: flex; justify-content: space-between; align-items: center; transition: all var(--dur-base); }
.up-card.bought { opacity: 0.5; border-color: rgba(255,182,193,0.1); }
.up-info h4 { font-size: var(--fs-sm); color: var(--text-main); }
.up-info p { font-size: var(--fs-xs); color: var(--text-muted); line-height: 1.3; margin-top: 3px; }
.btn-buy-up { background: var(--accent-blood); color: white; border: none; padding: 8px 14px; border-radius: 6px; font-size: var(--fs-xs); font-family: var(--font-ui); font-weight: 500; cursor: pointer; transition: all var(--dur-fast); }
.btn-buy-up:active { transform: scale(0.95); }
.btn-buy-up.disabled { background: #1a0a0a; color: #443; cursor: not-allowed; }

/* --- ALAMBIC --- */
.cauldron-area { display: flex; flex-direction: column; align-items: center; gap: var(--sp-5); height: 100%; width: 100%; max-width: 400px; margin: 0 auto; }
.cauldron { width: 140px; height: 140px; border-radius: 50%; border: 2px solid #332222; background: radial-gradient(circle at 30% 30%, #111, #000); display: flex; flex-direction: column; justify-content: center; align-items: center; cursor: pointer; transition: all var(--dur-base); flex-shrink: 0; box-shadow: var(--shadow-deep); }
.cauldron.active { border-color: var(--accent-pink); box-shadow: 0 0 40px rgba(138,3,3,0.5) inset, 0 0 20px rgba(255,182,193,0.3); background: radial-gradient(circle at 30% 30%, rgba(138,3,3,0.6), #000); }
.craft-slots { display: flex; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.craft-slot { width: 35px; height: 35px; border-radius: 50%; border: 1px dashed #554444; display: flex; justify-content: center; align-items: center; font-size: 1.1rem; background: rgba(0,0,0,0.5); transition: border-color var(--dur-fast); }
.craft-btn-text { font-family: var(--font-title); font-size: var(--fs-sm); color: var(--text-muted); letter-spacing: 1.5px; transition: color var(--dur-base); }
.cauldron.active .craft-btn-text { color: var(--accent-pink); text-shadow: 0 0 10px var(--accent-pink); }

.inv-container { width: 100%; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.inv-list { display: flex; flex-direction: column; gap: var(--sp-2); overflow-y: auto; padding-right: 5px; flex: 1; }
.inv-item { background: rgba(15,8,8,0.9); border-radius: var(--radius-md); border: 1px solid #2c1a1a; display: flex; flex-direction: row; align-items: center; padding: 10px 15px; cursor: pointer; transition: all var(--dur-fast); gap: var(--sp-4); width: 100%; }
.inv-item:active { transform: scale(0.98); }
.inv-item.selected { border-color: var(--accent-pink); background: rgba(138,3,3,0.15); transform: scale(0.98); }
.inv-icon { font-size: 1.8rem; }
.inv-details { display: flex; flex-direction: column; flex: 1; text-align: left; }
.inv-name { font-size: var(--fs-sm); color: var(--text-main); font-weight: 500; }
.inv-qty-text { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }

.r-1 { border-left: 3px solid var(--rare-1); }
.r-2 { border-left: 3px solid var(--rare-2); }
.r-3 { border-left: 3px solid var(--rare-3); }
.r-4 { border-left: 3px solid var(--rare-4); }

/* --- GRIMOIRE --- */
.grimoire-tabs { display: flex; gap: 5px; margin-bottom: var(--sp-4); border-bottom: 1px solid #221414; padding-bottom: var(--sp-3); flex-shrink: 0; width: 100%; justify-content: space-around; }
.g-tab { font-family: var(--font-title); font-size: var(--fs-sm); color: var(--text-muted); cursor: pointer; text-transform: uppercase; letter-spacing: 1px; transition: 0.3s; padding: 10px 6px; position: relative; }
.g-tab.active { color: var(--accent-gold); text-shadow: 0 0 8px rgba(212,175,55,0.4); }
.g-tab.active::after { content: ''; position: absolute; bottom: -11px; left: 0; width: 100%; height: 2px; background-color: var(--accent-gold); box-shadow: 0 0 8px var(--accent-gold); }

.recipe-list { display: flex; flex-direction: column; gap: var(--sp-3); width: 100%; padding-bottom: var(--sp-5);}
.recipe-card { background: rgba(10,5,5,0.8); border: 1px solid #1f1212; padding: 14px; border-radius: var(--radius-md); display: flex; align-items: center; gap: var(--sp-3); position: relative; }
.recipe-card.unknown { border: 1px dashed #3a2222; background: rgba(0,0,0,0.5); }
.recipe-icon { font-size: 2rem; min-width: 45px; text-align: center; }
.recipe-card.unknown .recipe-icon { filter: grayscale(100%) opacity(0.25); }
.recipe-info h4 { font-size: var(--fs-md); color: var(--accent-pink); margin-bottom: 4px; }
.recipe-card.unknown h4 { color: var(--text-muted); }
.recipe-info p { font-size: var(--fs-sm); color: #aaa; line-height: 1.4; }
.recipe-reqs { display: flex; gap: 5px; margin-top: var(--sp-2); flex-wrap: wrap; }
.req-badge { font-size: var(--fs-xs); background: rgba(255,255,255,0.05); border: 1px solid #332222; border-radius: 5px; padding: 3px 6px; color: #ccc; display: flex; align-items: center; gap: 4px;}
.req-badge.missing { color: #ff6b6b; border-color: rgba(138,3,3,0.5); opacity: 0.5; }

/* --- REGISTRE : PROCHAIN OBJECTIF --- */
.next-goal-card { width: 100%; max-width: 400px; margin: 0 auto var(--sp-5) auto; background: rgba(212,175,55,0.06); border: 1px solid rgba(212,175,55,0.35); border-radius: var(--radius-md); padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }
.next-goal-row { display: flex; flex-direction: column; gap: var(--sp-1); }
.next-goal-row + .next-goal-row { border-top: 1px solid rgba(212,175,55,0.2); padding-top: var(--sp-3); }
.next-goal-label { font-family: var(--font-title); font-size: var(--fs-sm); color: var(--accent-gold); letter-spacing: 0.5px; }
.next-goal-detail { font-size: var(--fs-xs); color: var(--text-dim); }

/* --- REGISTRE : QUÊTES DU JOUR & SUCCÈS --- */
.quest-list { display: flex; flex-direction: column; gap: var(--sp-2); width: 100%; max-width: 400px; margin: 0 auto var(--sp-5) auto; }
.quest-card { background: rgba(10,5,5,0.8); border: 1px solid #221515; border-radius: var(--radius-md); padding: var(--sp-3) var(--sp-4); transition: all var(--dur-base); }
.quest-card.done { border-color: var(--accent-gold); background: rgba(212,175,55,0.08); }
.quest-label { font-size: var(--fs-sm); color: var(--text-main); margin-bottom: var(--sp-2); }
.quest-progress-bar { height: 6px; background: #1a0a0a; border-radius: 4px; overflow: hidden; margin-bottom: var(--sp-2); }
.quest-progress-fill { height: 100%; background: var(--accent-pink); transition: width 0.4s var(--ease-standard); }
.quest-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-2); }
.quest-reward { font-size: var(--fs-xs); color: var(--accent-gold); }
.btn-claim { background: var(--accent-blood); color: white; border: none; padding: 7px 14px; border-radius: 6px; font-size: var(--fs-xs); font-family: var(--font-ui); font-weight: 500; cursor: pointer; transition: all var(--dur-fast); flex-shrink: 0; }
.btn-claim:active { transform: scale(0.95); }
.btn-claim:disabled { background: #1a0a0a; color: #443; cursor: not-allowed; }

.achievement-grid { display: flex; flex-direction: column; gap: var(--sp-2); width: 100%; max-width: 400px; margin: 0 auto; padding-bottom: var(--sp-5); }
.achievement-item { display: flex; align-items: center; gap: var(--sp-3); background: rgba(10,5,5,0.7); border: 1px solid #221515; border-radius: var(--radius-md); padding: var(--sp-3); opacity: 0.45; transition: all var(--dur-base); }
.achievement-item.unlocked { opacity: 1; border-color: rgba(212,175,55,0.4); background: rgba(212,175,55,0.06); }
.achievement-icon { font-size: 1.4rem; min-width: 30px; text-align: center; }
.achievement-info h4 { font-size: var(--fs-sm); color: var(--text-main); }
.achievement-info p { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }

/* --- NOTIFICATIONS --- */
#notifications { position: absolute; top: calc(10px + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); z-index: 100; display: flex; flex-direction: column; gap: var(--sp-2); align-items: center; pointer-events: none; width: 90%; }
.toast { background: rgba(10,5,5,0.98); border: 1px solid #332222; border-left: 3px solid var(--accent-pink); color: white; padding: 15px 20px; border-radius: var(--radius-sm); font-size: var(--fs-sm); animation: td-slide-up-fade 4s forwards; box-shadow: var(--shadow-deep); width: 100%; }
.toast.success { border-left-color: var(--accent-gold); }

/* --- NAVIGATION --- */
nav {
    flex-shrink: 0; position: relative; width: 100%; height: 75px;
    background: rgba(8, 4, 4, 0.98); backdrop-filter: blur(15px);
    border-top: 1px solid #1c1111; display: flex; justify-content: space-around; align-items: center; z-index: 10; padding-bottom: env(safe-area-inset-bottom);
}
.nav-btn { display: flex; flex-direction: column; align-items: center; gap: var(--sp-1); color: #4b4242; cursor: pointer; transition: color var(--dur-fast); flex: 1 1 0; min-width: 0; position: relative; }
.nav-btn.active { color: var(--accent-pink); }
.nav-icon { font-size: 1.25rem; transition: transform var(--dur-fast) ease; }
.nav-btn.active .nav-icon { transform: translateY(-2px); filter: drop-shadow(0 0 6px rgba(255,182,193,0.4)); }
.nav-label {
    font-size: 0.56rem; font-family: var(--font-title); letter-spacing: 0.2px; text-transform: uppercase;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; padding: 0 2px;
}
.nav-badge { position: absolute; top: -4px; right: 22px; width: 8px; height: 8px; background: var(--accent-gold); border-radius: 50%; display: none; }
