/* AM-A12 — correctifs de stabilisation, carnet de restauration (AM-ART-035 V3), signalisation de grille, jauge du Corail, outils QA. */
/* INC-06 : pas de menu natif de sélection/copie/recherche sur les SURFACES DE JEU. Le zoom d'accessibilité (pincer), le focus clavier, les libellés ARIA et la sélection de texte
   des fenêtres d'assistance / QA restent actifs. */
#scene,#board,#board .cell,#coral-produce,#order-carousel,#order-card,#v2,.bd,.ov,.pitb,.pit,.chest,.nb,.hot,.drag-ghost,.spcard,#coral-gauge,.carnet,.hud2,#hud-values{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
img{-webkit-touch-callout:none;-webkit-user-drag:none}
.abox,.abox *,#qa-root,#qa-root *,input,textarea,.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
/* INC-01 : scènes. Centrage SÛR (jamais de contenu coupé en haut), bouton toujours atteignable, une seule couche, hauteur dynamique iOS. */
.ov{height:100vh;height:100dvh;justify-content:flex-start;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));overscroll-behavior:contain;transition:none;opacity:1;-webkit-overflow-scrolling:touch}
.ov::before,.ov::after{content:"";flex:1 0 0}
.ov .okb{position:sticky;bottom:6px;flex:none}
.ov .pbub{flex:none}.ov .lvbig{flex:none}
.scene-err{flex:none;width:100%;max-width:420px;background:#4a1d17;border:3px solid #e07a5f;border-radius:14px;padding:10px 12px;font:600 14px/1.35 system-ui;color:#fff;display:flex;flex-direction:column;gap:6px}.scene-err[hidden]{display:none}.scene-err small{opacity:.85;font-weight:500}.scene-err .ab{min-height:44px}
.tipstat{display:block;max-width:420px;text-align:center;font:700 11px system-ui;letter-spacing:.05em;text-transform:uppercase;color:#ffd08a;opacity:.9}
.okb[aria-busy=true]{opacity:.6}
/* INC-04 : jauge du Corail (coordonnées de la scène 1024×1536) */
#coral-gauge{position:absolute;left:300px;top:1338px;width:424px;height:34px;pointer-events:none;display:flex;align-items:center;gap:12px}
#coral-gauge .cg-bar{flex:1;height:22px;border-radius:12px;background:rgba(3,15,29,.82);border:3px solid #c9a84d;overflow:hidden}
#coral-gauge i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#2fb7e8,#7fe3ff);transition:width .3s}
#coral-gauge .cg-t{font:800 27px/1 system-ui;color:#fff;text-shadow:0 2px 4px #001;white-space:nowrap;min-width:150px}
#coral-gauge[data-status=low] i{background:linear-gradient(90deg,#e0a21d,#ffd45a)}#coral-gauge[data-status=low] .cg-t{color:#ffe08a}
#coral-gauge[data-status=exhausted] i{background:#8a98a2}#coral-gauge[data-status=exhausted] .cg-t{color:#ffb3a0}
#coral-produce.worn{filter:grayscale(.85) brightness(.8)}
/* Signalisation de la grille : vert = commande ordinaire, or + paillettes = objectif prioritaire (l'or l'emporte) */
#board .cell.sig-green{border-radius:16px;box-shadow:0 0 0 4px rgba(120,255,150,.95) inset,0 0 22px 6px rgba(80,255,130,.85)!important}
#board .cell.sig-green::after{content:"✓";position:absolute;top:2px;right:4px;font:900 26px/1 system-ui;color:#eaffee;text-shadow:0 0 6px #0a6b2d,0 0 3px #0a6b2d;pointer-events:none}
#board .cell.sig-gold{border-radius:16px;box-shadow:0 0 0 5px #ffd24a inset,0 0 26px 8px rgba(255,205,60,.95)!important;outline:none}
#board .cell.sig-gold::after{content:"✦";position:absolute;top:0;right:3px;font:900 30px/1 system-ui;color:#fff6c2;text-shadow:0 0 8px #c98a00,0 0 3px #7a5200;pointer-events:none;animation:sg-tw 1.2s ease-in-out infinite alternate}
#board .cell.sig-gold::before{content:"✦  ✧  ✦";position:absolute;left:0;right:0;bottom:2px;text-align:center;font:700 22px/1 system-ui;letter-spacing:.2em;color:#fff1a8;text-shadow:0 0 6px #d9a000;pointer-events:none;animation:sg-tw 1.6s ease-in-out infinite alternate-reverse}
#board .cell.sig-both.sig-gold::after{content:"✦"}
#board .cell.sig-both{background-image:radial-gradient(circle at 12% 88%,rgba(90,255,140,.95) 0 9px,transparent 10px)!important}
@keyframes sg-tw{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){#board .cell.sig-gold::after,#board .cell.sig-gold::before{animation:none!important}}
#board .cell.deliverable.sig-gold,#board .cell.sp-glow{outline:none}
/* Carnet de restauration (page Objectifs) */
#v-goals{padding:calc(max(8px,env(safe-area-inset-top)) + 8px) 8px 8px;display:flex;align-items:center;justify-content:center;overflow:hidden}#v-goals[hidden]{display:none}
.carnet{position:relative;height:100%;max-height:min(100%,calc((100vw - 16px)*1.5));aspect-ratio:2/3;max-width:100%}
.carnet .cv{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3;opacity:0;transform:scale(.92);pointer-events:none;transition:opacity .5s,transform .6s}
.carnet.opening .cv{opacity:1;transform:none;pointer-events:auto}.carnet.opened .cv{opacity:0;transform:scale(1.06);pointer-events:none}
.carnet .pg{position:absolute;inset:0;opacity:0;transition:opacity .5s .25s}.carnet.opened .pg{opacity:1}.carnet:not(.opening):not(.opened) .pg{opacity:1}
.carnet .paper{position:absolute;inset:8% 7.3% 9% 7.3%;background:radial-gradient(ellipse at 50% 40%,#f5e6bd,#e8d3a2 75%,#d9bf86);border-radius:18px}
.carnet .frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.carnet .inner{position:absolute;left:10.5%;right:10.5%;top:15%;bottom:12.5%;display:flex;flex-direction:column;color:#3b2a10;overflow:auto;-webkit-overflow-scrolling:touch}
#v-goals .carnet .ctitle{margin:0 0 6px;font:800 clamp(13px,3.6vw,16px)/1.1 Georgia,serif;text-align:center;color:#4a3410;letter-spacing:.02em}
.carnet .gclose{position:absolute;right:-1%;top:-1%;width:max(48px,13%);height:auto;aspect-ratio:1;padding:0;border:0;background:none;z-index:5;touch-action:manipulation}.carnet .gclose img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.carnet .goals-list{display:flex;flex-direction:column;gap:8px;flex:1}
.carnet .goal{background:rgba(255,248,226,.55);border:2px solid #b8913a;border-radius:14px;padding:8px 10px;margin:0;color:#3b2a10;box-shadow:none}
.carnet .goal.cur{padding:8px 10px 10px;border-width:2px}
.carnet .goal .gk{font:800 11px system-ui;letter-spacing:.09em;text-transform:uppercase;color:#8a5a00;margin-bottom:3px}
.carnet .goal h2{margin:0 0 4px;font:800 clamp(14px,3.9vw,17px)/1.2 Georgia,serif;color:#3b2a10}
.carnet .goal .cost{display:flex;align-items:center;gap:8px;font:900 22px system-ui;color:#7a4a00}.carnet .goal .cost img{width:30px;height:30px;object-fit:contain}.carnet .goal .cost.sp img{height:40px;width:auto}
.carnet .pv{margin-left:auto;font:700 13px system-ui;color:#6b4a14}
.carnet .gnote{margin-top:4px;font:600 12.5px/1.3 system-ui;color:#5a4318}.carnet .scene-wait{background:rgba(255,230,170,.7);border:2px dashed #b8913a;border-radius:12px;padding:8px 10px}
.cbar{position:relative;width:100%;aspect-ratio:3/1;margin:-14px 0 -14px}.cbar img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.grew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.grew small{font:800 11px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00}
.rchip{display:inline-flex;align-items:center;gap:4px;background:#3b2a10;color:#ffe9a8;border-radius:12px;padding:3px 10px;font:800 13px system-ui}.rchip img{width:18px;height:18px}
.cbtn{position:relative;display:block;width:min(100%,210px);margin:2px auto 0;aspect-ratio:3/1;padding:0;border:0;background:none;touch-action:manipulation;min-height:48px}
.cbtn img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.cbtn span{position:relative;z-index:1;display:block;font:900 clamp(14px,4.2vw,18px)/1 system-ui;color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.65);padding:0 18%}.cbtn.grey span{color:#e6e6e6}
.cbtn:disabled{cursor:default}.cbtn:disabled.grey{filter:none}.cbtn:active:not(:disabled){transform:scale(.97)}
.carnet .ghist{margin-top:auto;min-height:46px;border-radius:12px;border:2px solid #b8913a;background:rgba(255,248,226,.5);color:#4a3410;font:800 14px system-ui}.carnet .ghist:disabled{opacity:.45}
.gbook{position:relative;width:100%;margin-top:4px}.gbook img{display:block;width:100%;height:auto}.gbook .gdone{position:absolute;left:9%;top:14%;width:36%;bottom:14%;margin:0;padding:0;list-style:none;overflow:auto;font:700 clamp(10px,2.7vw,13px)/1.25 Georgia,serif;color:#3b2a10;display:grid;align-content:start;gap:5px}
/* Assistance / QA */
.abox.wide{max-width:560px}.abox pre,.abox textarea{width:100%;max-height:260px;overflow:auto;background:#06131f;color:#cfe6f5;border:1px solid #315f84;border-radius:8px;padding:8px;font:12px/1.35 ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
.abox .tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.abox .tabs .ab{flex:0 1 auto;min-height:44px;padding:0 12px}.abox .tabs .ab.on{background:#c9a84d;color:#061b32}
.abox .row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #1d3d5a;font-size:13px}.abox .pass{color:#7be0a0;font-weight:800}.abox .fail{color:#ff9d8a;font-weight:800}.abox .skip{color:#ffd27a;font-weight:800}
.abox table{width:100%;border-collapse:collapse;font-size:12px}.abox td,.abox th{border-bottom:1px solid #1d3d5a;padding:4px 6px;text-align:left;vertical-align:top}
.qa-frame{position:fixed;left:-9999px;top:0;width:414px;height:896px;border:0}

/* A12 (INC-01) : les boîtes de dialogue ne doivent JAMAIS hériter des règles du sprite de guidage « .pit » (96 px, pointer-events:none) — filet de sécurité en plus du renommage en « pitdlg » */
.ov{pointer-events:auto;width:auto}
