/* Xianni V9.5 · 3D visual layer. Existing gameplay remains intact underneath. */
#renderCanvas{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  display:block!important;z-index:4;opacity:0;pointer-events:none;outline:none;
  transition:opacity .55s ease;background:#0e1510;touch-action:none;
}
body.v9-3d-ready #renderCanvas{opacity:1;pointer-events:auto}
body.v9-3d-ready #game>canvas:not(#renderCanvas){opacity:0!important;pointer-events:none!important}
body.v9-3d-failed #renderCanvas{display:none!important}
body.v9-3d-ready #world-tint{mix-blend-mode:multiply;opacity:.25}

.v9-badge{position:fixed;z-index:58;left:50%;bottom:calc(var(--safe-bottom) + 9px);transform:translateX(-50%);pointer-events:none;
  padding:5px 10px;border:1px solid rgba(225,200,126,.22);border-radius:999px;background:rgba(8,12,8,.62);backdrop-filter:blur(6px);
  color:rgba(236,222,180,.63);font-size:8px;letter-spacing:.08em;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.v9-badge strong{color:#dbc277;font-weight:600}
.v9-render-warning{position:fixed;z-index:150;left:50%;top:calc(var(--safe-top) + 52px);transform:translateX(-50%);max-width:76vw;
  padding:7px 12px;border:1px solid rgba(210,159,92,.3);border-radius:10px;background:rgba(32,22,14,.88);color:#e3c89d;font-size:10px;text-align:center}

/* 3D scene is the world surface. HUD stays on top. */
#hud{z-index:40}
.overlay{z-index:120}
.side-panel{z-index:95}
.world-map-panel{z-index:115}
.server-broadcast{z-index:150}
.dialog-panel{z-index:140}
.manual-quiz-panel{z-index:160}
.event-banner,.toast{z-index:170}

/* V9: slightly more cinematic, less boxy HUD while keeping all existing buttons. */
body.v9-3d-ready .hud-panel{background:linear-gradient(180deg,rgba(10,14,11,.76),rgba(11,15,12,.58));border-color:rgba(222,204,145,.19);box-shadow:0 12px 38px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.025)}
body.v9-3d-ready .utility-dock{background:linear-gradient(180deg,rgba(13,19,15,.76),rgba(7,11,9,.62));border-color:rgba(230,205,133,.2)}
body.v9-3d-ready #minimap-box{background:rgba(7,11,9,.62);border-color:rgba(224,200,130,.19);box-shadow:0 12px 28px rgba(0,0,0,.2)}
body.v9-3d-ready .action-btn{backdrop-filter:blur(7px)}
body.v9-3d-ready .action-btn.attack{box-shadow:0 0 0 7px rgba(122,70,45,.11),0 11px 34px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,215,176,.08)}

@media(orientation:landscape) and (max-height:560px){
  .v9-badge{display:none}
}

/* V9.5 camera system */
.camera-mode-btn{position:fixed;z-index:74;right:calc(var(--safe-right) + 14px);top:calc(var(--safe-top) + 150px);display:flex;align-items:center;gap:7px;
  min-width:86px;height:32px;padding:0 10px;border:1px solid rgba(226,204,137,.25);border-radius:12px;background:linear-gradient(180deg,rgba(17,24,19,.88),rgba(7,11,9,.78));
  color:#d7c795;box-shadow:0 8px 24px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035);font-size:9px;backdrop-filter:blur(8px)}
.camera-mode-btn span{opacity:.62;font-size:8px;letter-spacing:.08em}.camera-mode-btn b{font-weight:600;color:#ecdba8}.camera-mode-btn.first-person{border-color:rgba(211,176,92,.42);box-shadow:0 0 0 3px rgba(210,174,89,.08),0 8px 24px rgba(0,0,0,.28)}
.camera-view-hint{position:fixed;z-index:72;left:50%;top:calc(var(--safe-top) + 62px);transform:translateX(-50%);padding:6px 11px;border-radius:999px;border:1px solid rgba(222,204,145,.18);background:rgba(7,11,9,.68);color:rgba(238,224,182,.82);font-size:9px;pointer-events:none;backdrop-filter:blur(7px);transition:opacity .2s ease}
.camera-view-hint.hidden{display:none}
body.v9-3d-ready #renderCanvas{touch-action:none}
@media(orientation:landscape) and (max-height:560px){.camera-mode-btn{top:calc(var(--safe-top) + 118px);right:calc(var(--safe-right) + 10px);height:29px;min-width:76px;padding:0 8px}.camera-view-hint{top:calc(var(--safe-top) + 46px)}}


/* V9.5.1 操作修复 */
.camera-mode-btn{
  top:42%!important;bottom:auto!important;right:calc(var(--safe-right) + 12px)!important;
  transform:translateY(-50%);z-index:185!important;min-width:92px;height:36px;
  pointer-events:auto!important;touch-action:manipulation!important;
}
.camera-view-hint{top:calc(var(--safe-top) + 72px)!important;z-index:184!important}
.action-btn.skill{touch-action:none!important;user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important}
.action-btn.skill.aiming{transform:scale(.96);box-shadow:0 0 0 5px rgba(223,198,113,.11),0 0 22px rgba(223,198,113,.22)!important}
#renderCanvas{touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}
@media(orientation:landscape) and (max-height:560px){
  .camera-mode-btn{top:43%!important;right:calc(var(--safe-right) + 8px)!important;height:34px;min-width:84px}
}

/* V9.6 · 修真能力快捷栏 + 美术层优化 */
.cultivation-ability-dock{
  position:fixed;z-index:76;right:calc(var(--safe-right) + 118px);bottom:calc(var(--safe-bottom) + 108px);
  display:grid;grid-template-columns:repeat(4,42px);gap:7px;padding:7px 9px;border:1px solid rgba(224,199,126,.18);
  border-radius:15px;background:linear-gradient(180deg,rgba(10,15,12,.75),rgba(6,9,7,.60));backdrop-filter:blur(8px);
  box-shadow:0 10px 34px rgba(0,0,0,.26);pointer-events:auto
}
.cultivation-ability-btn{width:42px;height:42px;padding:0;border:1px solid rgba(220,198,130,.22);border-radius:13px;background:radial-gradient(circle at 50% 28%,rgba(68,82,62,.82),rgba(12,18,14,.88));color:#dfcf9a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;box-shadow:inset 0 1px rgba(255,255,255,.035);touch-action:manipulation}
.cultivation-ability-btn span{font-family:serif;font-size:15px;line-height:16px;text-shadow:0 0 10px rgba(219,192,105,.2)}
.cultivation-ability-btn b{font-size:7px;line-height:10px;font-weight:500;opacity:.72;letter-spacing:.06em}
.cultivation-ability-btn.active{border-color:rgba(239,205,103,.66);color:#ffe483;background:radial-gradient(circle at 50% 30%,rgba(111,88,35,.86),rgba(27,23,12,.92));box-shadow:0 0 18px rgba(228,190,75,.18),inset 0 0 12px rgba(242,205,87,.08)}
.cultivation-ability-btn.cooldown{opacity:.48;filter:saturate(.65)}
.cultivation-ability-btn.locked{opacity:.38;filter:grayscale(.6)}
@media(orientation:landscape) and (max-height:560px){
  .cultivation-ability-dock{right:calc(var(--safe-right) + 105px);bottom:calc(var(--safe-bottom) + 90px);grid-template-columns:repeat(4,36px);gap:5px;padding:5px 7px}
  .cultivation-ability-btn{width:36px;height:36px;border-radius:11px}.cultivation-ability-btn span{font-size:13px}.cultivation-ability-btn b{font-size:6px}
}

/* V9.6.1 · 器物/神通分栏，避免与战斗区重叠 */
.cultivation-ability-dock{border-radius:14px;background:linear-gradient(180deg,rgba(12,18,14,.84),rgba(5,9,7,.72));box-shadow:0 12px 32px rgba(0,0,0,.3);pointer-events:auto}
.artifact-ability-dock{right:calc(var(--safe-right) + 318px);bottom:calc(var(--safe-bottom) + 34px);display:grid;grid-template-columns:20px 44px;grid-template-rows:44px 44px;gap:6px;padding:7px}
.spirit-ability-dock{right:calc(var(--safe-right) + 306px);bottom:calc(var(--safe-bottom) + 142px);display:grid;grid-template-columns:20px 42px 42px;grid-template-rows:42px 42px;gap:6px;padding:7px}
.ability-dock-title{grid-row:1/-1;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;color:rgba(229,208,145,.55);font:600 9px serif;letter-spacing:.12em;border-right:1px solid rgba(224,199,126,.12);padding-right:4px}
.artifact-ability-dock .cultivation-ability-btn,.spirit-ability-dock .cultivation-ability-btn{position:relative;width:42px;height:42px}
.artifact-ability-dock #treasure-btn{grid-column:2;grid-row:1}.artifact-ability-dock #sword-flight-btn{grid-column:2;grid-row:2}
.spirit-ability-dock #divine-sense-btn{grid-column:2;grid-row:1}.spirit-ability-dock #pressure-btn{grid-column:3;grid-row:1}.spirit-ability-dock #soul-out-btn{grid-column:2;grid-row:2}.spirit-ability-dock #possession-btn{grid-column:3;grid-row:2}
.cultivation-ability-btn.no-item{opacity:.48}.cultivation-ability-btn.no-item::after{content:"无";position:absolute;right:-3px;top:-4px;min-width:14px;height:14px;line-height:14px;border-radius:8px;background:#4a3028;color:#e9cfc2;font-size:7px;border:1px solid rgba(255,220,200,.15)}
.cultivation-ability-btn.locked::after{content:"锁";position:absolute;right:-3px;top:-4px;min-width:14px;height:14px;line-height:14px;border-radius:8px;background:#28342c;color:#b9c8b7;font-size:7px;border:1px solid rgba(255,255,255,.1)}

.artifact-panel{width:min(420px,42vw)}
.artifact-card{padding:10px;margin:8px 0;border:1px solid rgba(222,200,130,.16);border-radius:13px;background:rgba(18,24,19,.58)}
.artifact-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.artifact-card h4{margin:0;color:#efe1b2;font:600 15px serif}.artifact-card small{display:block;margin-top:4px;color:rgba(235,226,201,.58);font-size:8px;line-height:1.5}.artifact-card .artifact-level{color:#d6b95e;font-size:10px}.artifact-card .artifact-cost{margin-top:7px;display:flex;gap:8px;flex-wrap:wrap;color:#bfc7bb;font-size:8px}.artifact-card button{margin-top:8px;border:1px solid rgba(220,191,104,.28);border-radius:9px;background:#293025;color:#e4d4a3;padding:7px 10px;font-size:9px}.artifact-card button:disabled{opacity:.38}.artifact-missing{color:#d59f8a}.artifact-owned{color:#9fc5a2}.artifact-system-note{padding:9px;border-radius:11px;background:rgba(78,64,31,.18);color:#cdbf94;font-size:8px;line-height:1.6}

.tribulation-hud{position:fixed;z-index:188;left:50%;top:calc(var(--safe-top) + 70px);transform:translateX(-50%);width:min(420px,58vw);padding:9px 14px;border:1px solid rgba(229,199,105,.38);border-radius:13px;background:linear-gradient(180deg,rgba(28,22,16,.9),rgba(9,11,9,.82));box-shadow:0 0 30px rgba(212,181,72,.12),0 12px 34px rgba(0,0,0,.35);pointer-events:none;text-align:center;color:#e8d59a}.tribulation-hud>span{font-size:8px;letter-spacing:.3em;opacity:.65}.tribulation-hud strong{display:block;margin-top:2px;font:600 15px serif;color:#ffe8a1}.tribulation-hud b{display:block;margin-top:2px;font-size:10px}.tribulation-hud small{display:block;margin-top:4px;color:rgba(240,227,188,.65);font-size:8px}.tribulation-hud.strike{animation:tribFlash .35s ease}@keyframes tribFlash{0%{filter:brightness(1)}35%{filter:brightness(2.2);transform:translateX(-50%) scale(1.025)}100%{filter:brightness(1)}}

.sect-world-rule{padding:10px;margin:8px 0;border:1px solid rgba(220,199,127,.15);border-radius:12px;background:rgba(22,28,22,.55)}.sect-world-rule strong{color:#dbc789;font-size:11px}.sect-world-rule p{margin:5px 0 0;color:rgba(237,229,205,.64);font-size:8px;line-height:1.65}.sect-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.sect-route-grid button{width:100%}

/* 人物/NPC名称：扩大、加深底色与描边，横屏也清楚 */
body.v9-3d-ready .dialog-name{font-weight:700}

@media(orientation:landscape) and (max-height:560px){
  .artifact-ability-dock{right:calc(var(--safe-right) + 246px);bottom:calc(var(--safe-bottom) + 22px);transform:scale(.88);transform-origin:bottom right}
  .spirit-ability-dock{right:calc(var(--safe-right) + 240px);bottom:calc(var(--safe-bottom) + 110px);transform:scale(.86);transform-origin:bottom right}
  .tribulation-hud{top:calc(var(--safe-top) + 48px);width:min(380px,54vw);padding:6px 10px}
}
.inventory-item .item-icon{width:38px;height:38px;object-fit:contain;border-radius:9px;flex:0 0 38px;background:rgba(10,14,11,.45);box-shadow:inset 0 0 0 1px rgba(223,201,132,.12)}


/* V9.6.2 · 横屏界面整理 */
#inventory-panel{
  left:calc(var(--safe-left) + 14px)!important;right:auto!important;
  top:calc(var(--safe-top) + 74px)!important;bottom:auto!important;
  width:min(350px,36vw)!important;height:auto!important;max-height:72vh!important;
  padding:12px!important;border-radius:16px!important;overflow:hidden!important;
}
#inventory-panel .side-panel-head{min-height:38px!important;margin-bottom:6px!important}
#inventory-panel .inventory-panel-tip{font-size:8px;color:rgba(235,222,184,.62);padding:5px 7px;margin-bottom:6px;border-radius:8px;background:rgba(221,198,128,.055)}
#inventory-panel .inventory-list{max-height:38vh!important;overflow:auto!important;padding-right:3px!important}
#inventory-panel .inventory-item{min-height:46px!important;padding:6px 8px!important}
#inventory-panel .item-detail{max-height:22vh!important;overflow:auto!important;margin-top:7px!important;padding:8px!important}
#inventory-panel img{max-width:42px!important;max-height:42px!important;width:42px!important;height:42px!important;object-fit:contain!important}
#inventory-panel canvas,#inventory-panel svg{max-width:100%!important;max-height:160px!important}

/* 法宝/神通按钮放到小地图下方，两排小按钮，不再压住战斗键 */
.artifact-ability-dock,.spirit-ability-dock{
  right:calc(var(--safe-right) + 12px)!important;bottom:auto!important;transform:none!important;
  padding:5px 6px!important;gap:4px!important;border-radius:12px!important;
  grid-template-rows:34px!important;align-items:center!important;
}
.artifact-ability-dock{top:calc(var(--safe-top) + 188px)!important;grid-template-columns:18px 34px 34px!important}
.spirit-ability-dock{top:calc(var(--safe-top) + 232px)!important;grid-template-columns:18px 34px 34px 34px 34px!important}
.ability-dock-title{grid-row:1!important;grid-column:1!important;writing-mode:horizontal-tb!important;border-right:1px solid rgba(224,199,126,.12)!important;padding:0 3px 0 0!important;font-size:8px!important}
.artifact-ability-dock .cultivation-ability-btn,.spirit-ability-dock .cultivation-ability-btn{width:34px!important;height:34px!important;border-radius:10px!important}
.cultivation-ability-btn span{font-size:12px!important;line-height:12px!important}.cultivation-ability-btn b{font-size:6px!important;line-height:8px!important}
.artifact-ability-dock #treasure-btn{grid-column:2!important;grid-row:1!important}.artifact-ability-dock #sword-flight-btn{grid-column:3!important;grid-row:1!important}
.spirit-ability-dock #divine-sense-btn{grid-column:2!important;grid-row:1!important}.spirit-ability-dock #pressure-btn{grid-column:3!important;grid-row:1!important}.spirit-ability-dock #soul-out-btn{grid-column:4!important;grid-row:1!important}.spirit-ability-dock #possession-btn{grid-column:5!important;grid-row:1!important}
@media(orientation:landscape) and (max-height:560px){
  #inventory-panel{top:calc(var(--safe-top) + 54px)!important;width:min(330px,39vw)!important;max-height:75vh!important}
  .artifact-ability-dock{top:calc(var(--safe-top) + 158px)!important}.spirit-ability-dock{top:calc(var(--safe-top) + 198px)!important}
}
#inventory-panel{transform:none!important;box-sizing:border-box!important;z-index:132!important}
#inventory-panel *{box-sizing:border-box;max-width:100%}

/* V15.5.2 法宝 / 飞剑 / 御剑三按钮完全分离 */
.artifact-ability-dock{
  grid-template-columns:20px 44px 44px!important;
  grid-template-rows:44px 44px!important;
}
.artifact-ability-dock #treasure-btn{grid-column:2!important;grid-row:1!important}
.artifact-ability-dock #flying-sword-btn{grid-column:3!important;grid-row:1!important}
.artifact-ability-dock #sword-flight-btn{grid-column:2!important;grid-row:2!important}
#flying-sword-btn.realm-hidden,#sword-flight-btn.realm-hidden{display:none!important}
