/* Labo → Psyché */
body.psyche { --accent: #8f7bff; --bord: rgba(143,123,255,.3); --chaud: #ff8a3d; }
header { display: flex; align-items: center; gap: 10px; }
.p-puces { margin-left: auto; display: flex; gap: 6px; }
.p-puce { font-size: .75rem; padding: 3px 8px; border: 1px solid var(--bord); border-radius: 20px; color: var(--doux); white-space: nowrap; }
#p-coeur.bat { color: var(--rouge); }
.p-demo { font-size: .78rem; color: var(--doux); border-left: 3px solid var(--accent); padding: 4px 10px; margin: 0 0 8px; }
.p-scene { position: relative; height: min(56vh, 520px); min-height: 300px; border: 1px solid var(--bord); border-radius: 16px; overflow: hidden;
  background: radial-gradient(ellipse at 50% 40%, #12102a 0%, #05060c 70%); margin-bottom: 10px; touch-action: none; }
#p-canvas { width: 100%; height: 100%; display: block; }
.p-pensee { position: absolute; left: 10px; right: 10px; bottom: 44px; padding: 8px 12px; border-radius: 12px; background: rgba(6,8,16,.72); backdrop-filter: blur(6px);
  font-size: .9rem; color: var(--blanc); pointer-events: none; transition: opacity .4s; }
.p-pensee small { display: block; font-size: .65rem; letter-spacing: .14em; color: var(--accent); text-transform: uppercase; }
.p-pensee.reve small { color: #d58bff; } .p-pensee.parole small { color: var(--vert); }
.p-info { position: absolute; top: 10px; left: 10px; max-width: 70%; padding: 8px 12px; border-radius: 12px; background: rgba(6,8,16,.85); font-size: .85rem; }
.p-info b { color: var(--accent); display: block; } .p-info small { color: var(--doux); }
.p-ctrl { position: absolute; right: 8px; bottom: 8px; display: flex; gap: 4px; }
.p-ctrl button { padding: 4px 9px; font-size: .8rem; background: rgba(6,8,16,.7); }
.p-ctrl button.actif { border-color: var(--accent); color: var(--accent); }
.p-legende { position: absolute; left: 10px; bottom: 12px; font-size: .68rem; color: var(--doux); display: flex; align-items: center; gap: 5px; }
.p-legende i { width: 10px; height: 10px; border-radius: 50%; background: #3fd0ff; opacity: .5; display: inline-block; }
.p-legende i.chaud { background: var(--chaud); opacity: 1; box-shadow: 0 0 8px var(--chaud); }
.p-fil { max-height: 45vh; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.p-msg { padding: 8px 12px; border-radius: 14px; max-width: 85%; line-height: 1.4; }
.p-msg.moi { align-self: flex-end; background: color-mix(in srgb, var(--accent) 22%, transparent); }
.p-msg.elle { align-self: flex-start; background: rgba(255,255,255,.06); }
.p-msg small { display: block; color: var(--doux); font-size: .7rem; margin-top: 3px; }
.p-barre { display: grid; grid-template-columns: 110px 1fr 38px; gap: 8px; align-items: center; font-size: .85rem; margin: 5px 0; }
.p-barre .barre { height: 8px; } .p-barre span:last-child { text-align: right; color: var(--doux); font-size: .75rem; }
.p-barre.centre .barre { position: relative; } .p-barre.centre .barre i { position: absolute; top: 0; bottom: 0; }
.p-region { display: flex; justify-content: space-between; gap: 8px; padding: 7px 4px; border-bottom: 1px solid rgba(255,255,255,.06); cursor: pointer; }
.p-region small { color: var(--doux); display: block; } .p-region b { font-weight: 600; }
.p-region .v { font-variant-numeric: tabular-nums; color: var(--accent); }
.p-ev { padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: .88rem; }
.p-ev small { color: var(--doux); margin-right: 6px; }
.p-ev.reve { color: #d58bff; } .p-ev.parole { color: var(--vert); } .p-ev.sommeil, .p-ev.reveil { color: var(--doux); font-style: italic; }
.p-danger { margin-top: 14px; }
