*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  :root{
    --bg:#080c0f;--bg2:#0d1419;--bg3:#111b22;--bg4:#16232c;--border:#1e3040;
    --green:#00e5a0;--green-dim:#004d36;--amber:#ffb830;--amber-dim:#4a3200;
    --red:#ff4560;--red-dim:#42131c;--grey:#7a8a94;--grey-dim:#1b2227;
    --text:#c8dde8;--text-dim:#6e8796;--glow-g:0 0 18px #00e5a066;--glow-a:0 0 18px #ffb83066;
  }
  html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:'Rajdhani',sans-serif;font-size:16px;overflow-x:hidden}
  body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:40px 40px;opacity:.25;pointer-events:none}
  body::after{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 70% 55% at 50% 25%,#0d2030 0%,transparent 70%);pointer-events:none}
  button,input{font:inherit}
  button{color:inherit}
  .hidden{display:none!important}

  /* LOGIN */
  #login-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);gap:20px;transition:opacity .45s,visibility .45s}
  #login-screen.hidden{display:flex!important;opacity:0;visibility:hidden;pointer-events:none}
  .login-logo{font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(1.4rem,4vw,2rem);letter-spacing:.1em;color:var(--green);text-shadow:var(--glow-g)}
  .login-logo span{color:var(--amber)}
  .login-subtitle{font-family:'Share Tech Mono',monospace;font-size:.75rem;color:var(--text-dim);letter-spacing:.2em;text-transform:uppercase}
  .login-box{display:flex;flex-direction:column;gap:12px;padding:32px 40px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;box-shadow:0 0 40px #00000088;min-width:290px}
  .login-label{font-family:'Share Tech Mono',monospace;font-size:.7rem;letter-spacing:.25em;color:var(--text-dim);text-transform:uppercase}
  .login-input{background:var(--bg3);border:1px solid var(--border);border-radius:5px;color:var(--green);font-family:'Share Tech Mono',monospace;font-size:1rem;padding:10px 12px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
  .login-input:focus{border-color:var(--green);box-shadow:var(--glow-g)}
  .login-input.error{border-color:var(--red);animation:shake .4s}
  .login-btn{padding:12px;background:var(--green-dim);border:1px solid var(--green);border-radius:5px;color:var(--green);font-family:'Orbitron',monospace;font-size:.85rem;font-weight:700;letter-spacing:.15em;cursor:pointer;transition:background .2s,box-shadow .2s}
  .login-btn:hover{background:#005538;box-shadow:var(--glow-g)}
  .login-error{font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--red);letter-spacing:.08em;min-height:1em;text-align:center}
  .back-link{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:var(--text-dim);text-decoration:none;letter-spacing:.1em;text-align:center;transition:color .2s}
  .back-link:hover{color:var(--green)}

  /* APP */
  #app{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:28px 20px 60px;transition:opacity .45s}
  #app.locked{opacity:0;pointer-events:none}
  header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px;padding-bottom:16px;border-bottom:1px solid var(--border)}
  .logo{font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(1rem,3vw,1.6rem);letter-spacing:.08em;line-height:1.1}
  .logo-mc{color:var(--green);text-shadow:var(--glow-g)}
  .logo-sub{display:block;font-size:.5em;font-weight:400;color:var(--text-dim);letter-spacing:.3em;margin-top:2px}
  .header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .status-pill{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border);border-radius:99px;padding:6px 12px;font-family:'Share Tech Mono',monospace;font-size:.67rem;color:var(--text-dim);letter-spacing:.12em}
  .status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:var(--glow-g)}
  .status-dot.refreshing{background:var(--amber);box-shadow:var(--glow-a);animation:pulse .8s infinite}
  .home-link{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--text-dim);text-decoration:none;letter-spacing:.1em;padding:6px 12px;border:1px solid var(--border);border-radius:99px;transition:color .2s,border-color .2s}
  .home-link:hover{color:var(--green);border-color:var(--green)}

  .section-kicker{font-family:'Share Tech Mono',monospace;font-size:.65rem;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase;margin-bottom:9px}
  .section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
  .section-title h2{font-family:'Orbitron',monospace;font-size:1rem;letter-spacing:.06em;color:var(--text)}
  .section-title p{font-size:.85rem;color:var(--text-dim)}

  /* PLAYER STATUS CARDS */
  .player-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}
  .player-card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--bg2);padding:16px;transition:background .25s,border-color .25s,opacity .25s,transform .25s}
  .player-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grey)}
  .player-card.offline{background:linear-gradient(135deg,#14191d,#0f1417);border-color:#37434b;opacity:.72}
  .player-card.offline::before{background:var(--grey)}
  .player-card.human{background:linear-gradient(135deg,#2a1117,#120e11);border-color:#7a2634}
  .player-card.human::before{background:var(--red);box-shadow:0 0 18px #ff456066}
  .player-card.bot{background:linear-gradient(135deg,#2a210d,#131109);border-color:#75571c}
  .player-card.bot::before{background:var(--amber);box-shadow:var(--glow-a)}
  .player-card.controlling{background:linear-gradient(135deg,#073326,#0d1714);border-color:#087e5a;box-shadow:0 0 28px #00e5a018}
  .player-card.controlling::before{background:var(--green);box-shadow:var(--glow-g)}
  .player-card.unknown{background:var(--bg2);border-color:var(--border)}
  .player-main{display:flex;gap:13px;align-items:center}
  .player-avatar{width:52px;height:52px;border-radius:7px;overflow:hidden;flex:0 0 auto;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:'Orbitron',monospace;font-weight:900;color:var(--text-dim)}
  .player-avatar img{width:100%;height:100%;display:block;image-rendering:pixelated}
  .player-copy{min-width:0;flex:1}
  .player-name{font-family:'Orbitron',monospace;font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .player-state{font-family:'Share Tech Mono',monospace;font-size:.73rem;letter-spacing:.06em;margin-top:3px}
  .offline .player-state,.unknown .player-state{color:#93a2aa}
  .human .player-state{color:var(--red)}
  .bot .player-state{color:var(--amber)}
  .controlling .player-state{color:var(--green)}
  .player-detail{font-size:.77rem;color:var(--text-dim);margin-top:2px}
  .player-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
  .player-btn{border:1px solid var(--border);border-radius:5px;background:var(--bg3);padding:8px 11px;font-family:'Share Tech Mono',monospace;font-size:.67rem;letter-spacing:.05em;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
  .player-btn:hover{border-color:var(--text-dim)}
  .player-btn.primary{border-color:var(--amber);color:var(--amber);background:#2a210d}
  .controlling .player-btn.primary{border-color:var(--green);color:var(--green);background:#073326}
  .player-btn.danger{border-color:#6f2330;color:#ff8092;background:#2b1117}
  .player-btn:disabled{opacity:.45;cursor:not-allowed}

  /* CONTROLLER */
  .controller-shell{border:1px solid var(--border);border-radius:12px;background:#0b1115;overflow:hidden;margin-bottom:22px;box-shadow:0 8px 32px #0006}
  .controller-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:var(--bg3);border-bottom:1px solid var(--border)}
  .controller-player{display:flex;align-items:center;gap:10px;min-width:0}
  .mini-avatar{width:32px;height:32px;border-radius:5px;border:1px solid var(--green);overflow:hidden;background:var(--green-dim)}
  .mini-avatar img{width:100%;height:100%;display:block;image-rendering:pixelated}
  .controller-player strong{font-family:'Orbitron',monospace;font-size:.78rem;color:var(--green);display:block}
  .controller-player span{font-family:'Share Tech Mono',monospace;font-size:.6rem;color:var(--text-dim);letter-spacing:.12em}
  .controller-tools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
  .small-btn{border:1px solid var(--border);border-radius:5px;background:var(--bg2);padding:7px 9px;font-family:'Share Tech Mono',monospace;font-size:.62rem;cursor:pointer;color:var(--text-dim)}
  .small-btn:hover{border-color:var(--green);color:var(--green)}
  .small-btn.stop{border-color:#6f2330;color:#ff8092}
  .raid-menu{position:relative}
  .raid-menu-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:25;min-width:190px;padding:7px;background:#0b1115;border:1px solid var(--border);border-radius:7px;box-shadow:0 10px 28px #000b;display:none}
  .raid-menu.open .raid-menu-panel{display:grid;gap:6px}
  .raid-option{width:100%;border:1px solid var(--border);border-radius:5px;background:var(--bg3);padding:9px 10px;color:var(--text);font-family:'Share Tech Mono',monospace;font-size:.62rem;text-align:left;cursor:pointer}
  .raid-option:hover{border-color:var(--amber);color:var(--amber)}
  .raid-option.stop-raid:hover{border-color:var(--red);color:var(--red)}

  .control-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,280px) minmax(0,1fr);gap:1px;background:var(--border);align-items:stretch}
  .control-column{background:var(--bg2);padding:18px;min-width:0}
  .movement-panel,.look-panel{display:flex;flex-direction:column}
  .control-title{font-family:'Orbitron',monospace;font-size:.76rem;letter-spacing:.08em;margin-bottom:3px}
  .control-hint{font-family:'Share Tech Mono',monospace;font-size:.6rem;color:var(--text-dim);line-height:1.45}

  .dpad{width:210px;height:210px;margin:18px auto 12px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:7px;touch-action:none}
  .dpad-btn{border:1px solid var(--border);border-radius:12px;background:var(--bg3);font-size:1.45rem;cursor:pointer;touch-action:none;user-select:none;transition:background .1s,border-color .1s,transform .1s}
  .dpad-btn.active{background:var(--green-dim);border-color:var(--green);color:var(--green);transform:scale(.97);box-shadow:var(--glow-g)}
  .dpad-btn.up{grid-column:2;grid-row:1}.dpad-btn.jump-forward{grid-column:3;grid-row:1;font-size:.9rem;font-family:'Share Tech Mono',monospace;font-weight:700}.dpad-btn.left{grid-column:1;grid-row:2}.dpad-btn.right{grid-column:3;grid-row:2}.dpad-btn.down{grid-column:2;grid-row:3}
  .dpad-center{grid-column:2;grid-row:2;border-radius:12px;background:#091014;border:1px solid #16232b}

  .farm-toggles{display:grid;grid-template-columns:1fr;gap:7px;margin-top:14px}
  .toggle-command{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid var(--border);border-radius:6px;background:var(--bg3);padding:9px 10px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
  .toggle-command strong{font-size:.78rem;font-weight:700}.toggle-command small{font-family:'Share Tech Mono',monospace;font-size:.54rem;color:var(--text-dim)}
  .toggle-command[aria-pressed="true"]{border-color:var(--green);background:#073326;color:var(--green)}
  .toggle-command[aria-pressed="true"] small{color:#58b99a}

  .joystick{position:relative;width:210px;height:210px;margin:18px auto 12px;border-radius:50%;border:1px solid var(--border);background:radial-gradient(circle at center,#20303a 0 14%,#111a20 15% 58%,#0b1115 59%);touch-action:none;cursor:grab;user-select:none}
  .joystick::before,.joystick::after{content:'';position:absolute;background:#2a3b47;opacity:.75}
  .joystick::before{width:1px;height:78%;top:11%;left:50%}.joystick::after{height:1px;width:78%;left:11%;top:50%}
  .joystick-ring{position:absolute;inset:18%;border:1px dashed #324753;border-radius:50%}
  .stick{position:absolute;width:62px;height:62px;left:50%;top:50%;margin-left:-31px;margin-top:-31px;border-radius:50%;background:var(--amber);border:3px solid #ffe0a3;box-shadow:0 7px 20px #0008;pointer-events:none;z-index:2;transition:box-shadow .1s}
  .look-readout{display:flex;justify-content:center;gap:22px;font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--text-dim)}
  .look-readout b{color:var(--text)}
  .speed-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:12px auto 0;max-width:320px;font-family:'Share Tech Mono',monospace;font-size:.58rem;color:var(--text-dim)}
  .speed-row input{width:100%;accent-color:var(--amber)}
  .utility-row{display:flex;justify-content:center;gap:8px;margin-top:12px}
  .utility-btn{border:1px solid var(--border);border-radius:5px;background:var(--bg3);padding:7px 11px;font-family:'Share Tech Mono',monospace;font-size:.62rem;cursor:pointer;color:var(--text-dim)}
  .utility-btn:hover{border-color:var(--amber);color:var(--amber)}

  .action-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:9px 10px;background:var(--bg2);border-top:1px solid var(--border)}
  .action-btn{min-height:46px;padding:5px 4px;border:1px solid var(--border);border-radius:6px;background:var(--bg3);cursor:pointer;touch-action:none;user-select:none;font-size:.8rem;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:background .1s,border-color .1s,transform .1s}
  .action-btn small{font-family:'Share Tech Mono',monospace;font-size:.44rem;color:var(--text-dim);font-weight:400;white-space:nowrap}
  .action-btn.active{background:var(--green-dim);border-color:var(--green);color:var(--green);transform:scale(.985)}
  .action-btn[aria-pressed="true"]{background:#073326;border-color:var(--green);color:var(--green)}

  .hotbar-wrap{padding:12px;background:#091014;border-top:1px solid var(--border)}
  .hotbar-label{font-family:'Share Tech Mono',monospace;font-size:.58rem;color:var(--text-dim);letter-spacing:.15em;margin-bottom:7px;text-transform:uppercase}
  .hotbar{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}
  .hotbar-slot{aspect-ratio:1/1;min-width:0;max-height:54px;border:1px solid var(--border);border-radius:5px;background:var(--bg3);cursor:pointer;font-family:'Orbitron',monospace;font-size:.72rem;font-weight:700;color:var(--text-dim)}
  .hotbar-slot:hover{border-color:var(--amber);color:var(--amber)}
  .hotbar-slot.selected{border-color:var(--green);background:var(--green-dim);color:var(--green);box-shadow:var(--glow-g)}

  .controller-empty{border:1px dashed var(--border);border-radius:10px;padding:28px 18px;text-align:center;margin-bottom:22px;background:#0a1014}
  .controller-empty strong{display:block;font-family:'Orbitron',monospace;font-size:.8rem;color:var(--text-dim);margin-bottom:5px}
  .controller-empty span{font-family:'Share Tech Mono',monospace;font-size:.63rem;color:#405664}

  /* CONSOLE */
  .console-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .console-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg3)}
  .console-title{font-family:'Share Tech Mono',monospace;font-size:.7rem;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase}
  .console-dots{display:flex;gap:5px}.console-dots span{width:8px;height:8px;border-radius:50%}.console-dots span:nth-child(1){background:#ff5f57}.console-dots span:nth-child(2){background:#febc2e}.console-dots span:nth-child(3){background:#28c840}
  #log{min-height:90px;max-height:210px;overflow-y:auto;padding:12px 16px;font-family:'Share Tech Mono',monospace;font-size:.72rem;line-height:1.8;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
  .log-entry{display:flex;gap:10px;animation:fadeDown .25s ease}.log-time{color:var(--text-dim);flex-shrink:0}.log-ok{color:var(--green)}.log-err{color:var(--red)}.log-info{color:var(--amber)}

  #toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:10px 20px;font-family:'Share Tech Mono',monospace;font-size:.75rem;letter-spacing:.08em;color:var(--green);box-shadow:0 8px 32px #000a;transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .35s;opacity:0;z-index:150;white-space:nowrap;max-width:calc(100vw - 30px);overflow:hidden;text-overflow:ellipsis}
  #toast.show{transform:translateX(-50%) translateY(0);opacity:1}#toast.err{color:var(--red);border-color:var(--red)}

  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
  @keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
  @keyframes fadeDown{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}

  /* BIG UPDATE: inventory / HUD / compass / raid dashboard */
  .activity-chip{display:inline-flex;margin-top:7px;padding:3px 7px;border:1px solid #37505e;border-radius:99px;background:#101a20;font-family:'Share Tech Mono',monospace;font-size:.56rem;letter-spacing:.08em;color:#8ea5b3}
  .controlling .activity-chip{border-color:#087e5a;color:var(--green);background:#06281e}
  .raid-menu-panel{min-width:300px!important;padding:12px!important;gap:9px!important}
  .raid-title{font-family:'Orbitron',monospace;font-size:.7rem;color:var(--amber);letter-spacing:.08em}
  .raid-lock{font-family:'Share Tech Mono',monospace;font-size:.6rem;color:var(--red);min-height:1em}
  .raid-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .raid-metric{padding:8px 6px;background:var(--bg3);border:1px solid var(--border);border-radius:5px;text-align:center}
  .raid-metric small{display:block;font-family:'Share Tech Mono',monospace;font-size:.48rem;color:var(--text-dim);letter-spacing:.08em}
  .raid-metric strong{display:block;margin-top:3px;font-family:'Orbitron',monospace;font-size:.66rem;color:var(--text)}
  .raid-option.immediate{border-color:#7b2432;color:#ff8192}
  .raid-option:disabled{opacity:.4;cursor:not-allowed}

  .joystick-wrap{position:relative;width:254px;height:254px;margin:4px auto 4px;display:flex;align-items:center;justify-content:center}
  .joystick-wrap .joystick{margin:0;width:210px;height:210px}
  .look-snap{position:absolute;width:30px;height:30px;border:1px solid var(--border);border-radius:50%;background:var(--bg3);font-family:'Share Tech Mono',monospace;font-size:.75rem;color:var(--text-dim);cursor:pointer;z-index:3}
  .look-snap:hover{border-color:var(--green);color:var(--green)}
  .look-snap.up{top:0;left:50%;transform:translateX(-50%)}
  .look-snap.down{bottom:0;left:50%;transform:translateX(-50%)}
  .look-snap.left{left:0;top:50%;transform:translateY(-50%)}
  .look-snap.right{right:0;top:50%;transform:translateY(-50%)}
  .look-bottom{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:7px;flex-wrap:wrap}
  .compass{position:relative;width:92px;height:92px;border:1px solid var(--border);border-radius:50%;background:radial-gradient(circle,#111b22 0 38%,#091014 39%);font-family:'Share Tech Mono',monospace;flex:0 0 auto}
  .compass-dir{position:absolute;border:0;background:transparent;color:var(--text-dim);font-size:.58rem;font-weight:700;cursor:pointer;padding:3px}
  .compass-dir:hover{color:var(--green)}
  .compass-dir.n{top:2px;left:50%;transform:translateX(-50%)} .compass-dir.s{bottom:2px;left:50%;transform:translateX(-50%)}
  .compass-dir.e{right:3px;top:50%;transform:translateY(-50%)} .compass-dir.w{left:3px;top:50%;transform:translateY(-50%)}
  .compass-pointer{position:absolute;width:2px;height:25px;background:var(--green);left:calc(50% - 1px);top:17px;transform-origin:50% 29px;box-shadow:var(--glow-g);pointer-events:none}
  .compass-center{position:absolute;inset:31px 20px;display:flex;align-items:center;justify-content:center;font-family:'Orbitron',monospace;font-size:.58rem;color:var(--green);pointer-events:none}

  /* Minecraft-style inventory. The rest of the site keeps the Worldtastic theme,
     but the editor intentionally mirrors the vanilla grey slot UI. */
  .inventory-overlay{padding:22px;background:#0a1014;border-bottom:1px solid var(--border)}
  .inventory-overlay.hidden{display:none!important}
  .mc-inventory-shell{width:min(100%,640px);margin:0 auto;background:#C6C6C6;border:4px solid;border-color:#FFF #555 #555 #FFF;padding:18px;box-shadow:6px 6px 0 #0008;color:#404040;font-family:'Minecraftia','Share Tech Mono',monospace}
  .inventory-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
  .inventory-head strong{font-family:'Minecraftia','Share Tech Mono',monospace;font-size:.82rem;color:#404040;letter-spacing:0}
  .inventory-edit-btn{border:2px solid;border-color:#FFF #373737 #373737 #FFF;background:#707070;color:#FFF;padding:8px 13px;font-family:'Minecraftia','Share Tech Mono',monospace;font-size:.66rem;cursor:pointer;min-width:138px;text-shadow:1px 1px #000}
  .inventory-edit-btn.editing{background:#8b3434;color:#fff}
  .inventory-edit-btn.syncing{background:#2f7b48;color:#fff;cursor:wait}
  .inventory-edit-btn:disabled{opacity:.75}
  .inventory-hint{font-family:'Minecraftia','Share Tech Mono',monospace;font-size:.52rem;color:#606060;line-height:1.55;margin-bottom:14px}
  .inventory-layout{display:block}
  .equipment-panel{padding:0;background:transparent;margin-bottom:16px}
  .inventory-subtitle{font-family:'Minecraftia','Share Tech Mono',monospace;font-size:.66rem;color:#404040;margin-bottom:7px}
  .equipment-slots{display:flex;align-items:center;gap:6px;width:100%}
  .equipment-slots .inv-slot.offhand-slot{margin-left:auto}
  .inventory-main-panel{min-width:0}
  .inventory-grid{display:grid;grid-template-columns:repeat(9,60px);gap:5px;justify-content:start}
  .inv-slot,.hotbar-slot{position:relative;display:flex;align-items:center;justify-content:center;background:#8B8B8B;border:2px solid;border-color:#373737 #FFF #FFF #373737;border-radius:0;cursor:default;overflow:visible}
  .inv-slot{width:60px;height:60px}
  .inventory-overlay.editing .inv-slot,.inventory-editing .hotbar-slot{cursor:pointer}
  .inventory-overlay.editing .inv-slot:hover,.inventory-editing .hotbar-slot:hover{background:#A0A0A0;border-color:#FFFF55}
  .inv-slot.drag-over,.hotbar-slot.drag-over{background:#A0A0A0!important;border-color:#FFFF55!important}
  .inv-slot.drag-over-invalid,.hotbar-slot.drag-over-invalid{background:#7b4747!important;border-color:#FF5555!important}
  .inv-slot.invalid-drop,.hotbar-slot.invalid-drop{animation:shake .35s;border-color:#FF3333!important}
  .inv-slot.equipment::after{content:attr(data-label);position:absolute;font-family:Arial,sans-serif;font-size:.48rem;color:#555;pointer-events:none;text-transform:uppercase}
  .mc-item{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;z-index:2;cursor:grab}
  .mc-item:active{cursor:grabbing}
  .mc-item img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated;pointer-events:none}
  .mc-item-count{position:absolute;right:-4px;bottom:-6px;z-index:7;font-family:'Minecraftia','Share Tech Mono',monospace;font-size:1rem;line-height:1;color:#FFF;text-shadow:1px 1px #000,2px 2px #000,3px 3px #000;pointer-events:none}
  .mc-missing{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#d0d 0 25%,#111 0 50%) 50%/12px 12px;font:7px/8px Arial,sans-serif;text-align:center;color:#fff;overflow:hidden}
  .mc-container-dot{position:absolute;left:-2px;top:-2px;width:8px;height:8px;border-radius:50%;background:#FFD966;border:1px solid #7a5c00}
  .durability-bar{position:absolute;bottom:2px;left:4px;width:40px;height:3px;background:#3a1414;pointer-events:none;z-index:4}
  .durability-bar-fill{height:100%}
  .hotbar-wrap{position:relative;padding:9px 12px 12px;background:#091014;border-top:1px solid var(--border)}
  .minecraft-hud{width:580px;max-width:100%;margin:0 auto 7px;user-select:none}
  .minecraft-status-bars{display:flex;align-items:center;justify-content:space-between;width:100%;height:28px}
  .minecraft-icon-row{display:flex;align-items:center;gap:0}
  .minecraft-icon-slot{width:26px;height:26px;display:block;flex:0 0 26px}
  .minecraft-icon-slot svg{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}
  .hunger-row{flex-direction:row-reverse}
  .minecraft-xp-wrap{position:relative;width:100%;padding-top:14px}
  .minecraft-xp-level{position:absolute;left:50%;top:-3px;transform:translateX(-50%);z-index:2;font-family:'Minecraftia','Share Tech Mono',monospace;font-weight:bold;font-size:17px;line-height:18px;color:#80ff20;text-shadow:1px 1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}
  .minecraft-xp-track{height:9px;width:100%;background:#2d2d2d;border:1px solid #000;box-shadow:inset 0 0 0 1px #111;overflow:hidden}
  .minecraft-xp-fill{height:100%;width:0;background:#80ff20;transition:width .08s linear}
  .hotbar-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;gap:0}
  .hotbar-line>.inventory-toggle{grid-column:1;justify-self:end;margin-right:12px}
  .hotbar-line>.hotbar{grid-column:2;justify-self:center}
  .inventory-toggle{border:1px solid var(--border);border-radius:5px;background:var(--bg3);padding:6px 8px;font-family:'Share Tech Mono',monospace;font-size:.52rem;color:var(--text-dim);cursor:pointer;white-space:nowrap}.inventory-toggle:hover,.inventory-toggle.open{border-color:var(--green);color:var(--green)}
  .hotbar{display:grid;grid-template-columns:repeat(9,60px);gap:5px;justify-content:center}
  .hotbar-slot{width:60px;height:60px;max-height:none;aspect-ratio:auto;padding:0;font-size:0}
  .hotbar-slot .mc-item{width:48px;height:48px}.hotbar-slot .mc-item img{width:48px;height:48px}.hotbar-slot .mc-missing{width:46px;height:46px}.hotbar-slot .durability-bar{width:40px;left:4px}
  .hotbar-slot.selected{border:2px solid #FFF;background:#999;box-shadow:0 0 0 2px #373737,0 0 0 3px #FFF;color:inherit}
  #inventory-tooltip{position:fixed;display:none;z-index:4000;pointer-events:none;max-width:310px;padding:7px 9px;background:rgba(16,0,16,.95);border:2px solid #280068;border-radius:3px;font-family:'Share Tech Mono',monospace;font-size:.62rem;line-height:1.4;color:#fff;box-shadow:inset 0 0 2px #5000FF,0 5px 18px #000b;text-shadow:1px 1px #202020}
  .tip-name{font-size:.72rem;font-weight:700}.tip-enchants{color:#55FFFF;margin-top:3px}.tip-id,.tip-extra,.tip-durability{color:#999;margin-top:4px}.tip-container{margin-top:6px;padding-top:5px;border-top:1px solid #50316d;color:#ddd}
  #inventory-cursor{position:fixed;display:none;width:60px;height:60px;align-items:center;justify-content:center;pointer-events:none;z-index:4500;filter:drop-shadow(2px 2px 2px #000)}
  .inventory-busy{pointer-events:none}
  #control-body.hidden{display:none!important}

  @media(max-width:760px){
    .mc-inventory-shell{width:min(100%,520px);padding:14px}.equipment-slots .inv-slot{width:46px;height:46px}.inventory-grid{grid-template-columns:repeat(9,46px);gap:3px}.inventory-grid .inv-slot{width:46px;height:46px}.inventory-grid .inv-slot{height:46px}.equipment-slots .inv-slot{height:46px}.inventory-grid .mc-item,.equipment-slots .mc-item{width:36px;height:36px}.inventory-grid .mc-item img,.equipment-slots .mc-item img{width:36px;height:36px}.inventory-grid .durability-bar,.equipment-slots .durability-bar{width:30px;left:3px}.hotbar{grid-template-columns:repeat(9,46px);gap:3px}.hotbar-slot{width:46px;height:46px}.hotbar-slot .mc-item,.hotbar-slot .mc-item img{width:36px;height:36px}.hotbar-slot .mc-missing{width:35px;height:35px}.hotbar-slot .durability-bar{width:30px;left:3px}.minecraft-hud{width:438px}.minecraft-icon-slot{width:20px;height:20px;flex-basis:20px}.minecraft-status-bars{height:22px}.minecraft-xp-level{font-size:14px}.hotbar-line{display:flex;flex-direction:column;align-items:center;gap:7px}.hotbar-line>.inventory-toggle{order:1;margin:0}.hotbar-line>.hotbar{order:2}.raid-menu-panel{position:fixed!important;left:12px!important;right:12px!important;top:90px!important;min-width:0!important}.hud-row{grid-template-columns:1fr 1fr}.xp-wrap{grid-column:1/-1}.joystick-wrap{width:230px;height:230px}
  }



  /* DYNMAP MINIMAP ------------------------------------------------------ */
  .bot-minimap-section{background:var(--bg2);padding:18px 12px;min-width:0;display:flex;flex-direction:column;align-items:stretch}
  .bot-minimap-heading{width:min(248px,100%);margin:0 auto 7px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:'Share Tech Mono',monospace;font-size:.56rem;letter-spacing:.16em;color:var(--text-dim)}
  .bot-minimap-heading>span:first-child{color:var(--text)}
  .bot-minimap{position:relative;width:min(248px,100%);aspect-ratio:1/1;margin:0 auto;overflow:hidden;border:1px solid #29404d;border-radius:8px;background:#151a1e;box-shadow:0 8px 22px #0007;isolation:isolate}
  .bot-minimap-tiles{position:absolute;inset:0;z-index:1;overflow:hidden}
  .bot-minimap-tile{position:absolute;width:128px;height:128px;display:block;max-width:none;max-height:none;object-fit:none;background:#151a1e;user-select:none;pointer-events:none}
  .bot-minimap-player{position:absolute;left:50%;top:50%;z-index:5;width:38px;height:38px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 2px 4px #000)}
  .bot-minimap-player img{width:32px;height:32px;display:block;margin:3px;border:2px solid #fff;background:#222;image-rendering:pixelated}
  .bot-minimap-readout{position:absolute;left:7px;bottom:7px;z-index:7;max-width:calc(100% - 14px);padding:5px 7px;border:1px solid #ffffff20;border-radius:5px;background:#081015d9;backdrop-filter:blur(4px);font-family:'Share Tech Mono',monospace;pointer-events:none}
  #bot-minimap-coords{font-size:.52rem;color:#d2e1e8;white-space:nowrap}
  #bot-minimap-world{margin-top:2px;font-size:.46rem;letter-spacing:.12em;color:var(--green)}
  .bot-minimap-error{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:20px;background:#091014d9;font-family:'Share Tech Mono',monospace;font-size:.62rem;letter-spacing:.1em;color:var(--red);text-align:center}
  .map-automation{width:min(248px,100%);margin:10px auto 0;display:grid;grid-template-columns:1fr;gap:6px}
  .map-automation .toggle-command{margin:0;min-height:39px;padding:7px 9px}
  .map-automation .toggle-command strong{font-size:.72rem}
  .map-automation .toggle-command small{font-size:.49rem}

  /* RESPONSIVE / MOBILE PASS --------------------------------------------- */
  @media(max-width:980px){
    #app{max-width:820px}
    .control-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .bot-minimap-section{grid-column:1/-1;grid-row:1;padding:14px 16px;display:grid;grid-template-columns:minmax(220px,250px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:16px;align-items:start}
    .bot-minimap-heading{grid-column:1;grid-row:1;width:100%;margin:0 0 7px}
    .bot-minimap{grid-column:1;grid-row:2;width:100%;max-width:250px}
    .map-automation{grid-column:2;grid-row:1/3;width:100%;margin:0;align-self:center;gap:8px}
    .map-automation .toggle-command{min-height:48px;padding:10px 11px}
    .movement-panel{grid-column:1;grid-row:2}
    .look-panel{grid-column:2;grid-row:2}
  }

  @media(max-width:760px){
    #app{width:100%;padding:16px 10px calc(38px + env(safe-area-inset-bottom))}
    header{margin-bottom:16px;gap:10px}
    .section-title{align-items:flex-start;flex-direction:column;gap:3px}
    .section-title p{font-size:.78rem}
    .player-card{padding:13px}
    button{touch-action:manipulation}
    .player-btn,.small-btn,.utility-btn,.toggle-command{min-height:44px}

    .controller-head{align-items:stretch;flex-direction:column;padding:11px}
    .controller-player{width:100%}
    .controller-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;justify-content:stretch}
    .controller-tools>.small-btn,.controller-tools>.raid-menu{min-width:0;width:100%}
    .raid-menu>.small-btn{width:100%;height:100%}
    .small-btn{padding:8px 6px;text-align:center}

    .control-grid{grid-template-columns:1fr}
    .movement-panel{grid-column:1;grid-row:1}
    .bot-minimap-section{grid-column:1;grid-row:2;display:flex;flex-direction:column;padding:14px 12px;align-items:center}
    .look-panel{grid-column:1;grid-row:3}
    .bot-minimap-heading,.bot-minimap,.map-automation{width:min(270px,78vw);max-width:270px}
    .bot-minimap{margin-left:auto;margin-right:auto}
    .map-automation{margin-top:10px}
    .map-automation .toggle-command{min-height:44px;padding:8px 10px}

    .control-column{padding:14px 12px}
    .dpad{width:min(214px,62vw);height:min(214px,62vw);margin:14px auto 8px}
    .dpad-btn{border-radius:10px}
    .joystick-wrap{width:min(232px,68vw);height:min(232px,68vw)}
    .joystick-wrap .joystick{width:82%;height:82%}
    .look-snap{width:36px;height:36px}
    .look-bottom{gap:11px}
    .speed-row{max-width:285px}

    .action-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px}
    .action-btn{min-height:52px;padding:6px 4px;font-size:.76rem}
    .action-btn small{font-size:.42rem}
    .farm-toggles{gap:6px}
    .toggle-command{padding:9px}

    .raid-menu-panel{top:max(78px,calc(env(safe-area-inset-top) + 70px))!important;left:10px!important;right:10px!important;max-height:calc(100dvh - 96px);overflow:auto}
    #toast{bottom:calc(16px + env(safe-area-inset-bottom))}
    #log{max-height:150px;padding:10px 12px;font-size:.66rem}
  }

  @media(max-width:520px){
    #app{padding-left:7px;padding-right:7px}
    header{align-items:flex-start;flex-direction:column;padding-bottom:11px}
    .header-right{width:100%;justify-content:flex-start}
    .status-pill{display:none}
    .home-link{display:inline-flex;align-items:center;min-height:40px}
    .logo{font-size:1.02rem}
    .login-box{width:calc(100vw - 24px);min-width:0;padding:26px 22px}

    .player-cards{grid-template-columns:1fr;gap:8px;margin-bottom:14px}
    .player-card{padding:11px}
    .player-avatar{width:44px;height:44px}
    .player-name{font-size:.8rem}
    .player-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .player-btn{width:100%;padding:8px 6px}

    .controller-shell{border-radius:8px}
    .controller-tools{grid-template-columns:1fr 1fr}
    .controller-tools>#stop-actions{grid-column:1/-1}
    .bot-minimap-section{padding:12px 7px}
    .bot-minimap-heading,.bot-minimap,.map-automation{width:min(252px,76vw);max-width:252px}
    #bot-minimap-coords{font-size:.49rem}
    #bot-minimap-world{font-size:.43rem}

    .control-hint{font-size:.55rem}
    .control-column{padding:12px 9px}
    .dpad{width:min(198px,60vw);height:min(198px,60vw)}
    .joystick-wrap{width:min(216px,66vw);height:min(216px,66vw)}
    .action-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:7px 6px}
    .action-btn{min-height:49px;font-size:.69rem}
    .action-btn small{font-size:.36rem;white-space:normal;line-height:1.15}
    .look-readout{gap:12px}
    .utility-row{gap:6px}
    .utility-btn{flex:1;max-width:150px}

    /* Make the 9-wide Minecraft inventory/hotbar genuinely phone-sized. */
    .controller-shell{--mobile-slot:clamp(26px,calc((100vw - 68px)/9),40px)}
    .inventory-overlay{padding:8px 3px}
    .mc-inventory-shell{width:100%;padding:9px 5px;border-width:3px;box-shadow:3px 3px 0 #0007;overflow:hidden}
    .inventory-head{align-items:stretch;flex-direction:column;gap:7px}
    .inventory-edit-btn{width:100%;min-height:40px}
    .inventory-hint{font-size:.45rem;line-height:1.4;margin-bottom:9px}
    .equipment-panel{margin-bottom:9px}
    .equipment-slots{gap:2px}
    .equipment-slots .inv-slot,.inventory-grid .inv-slot,.hotbar-slot{width:var(--mobile-slot);height:var(--mobile-slot)}
    .inventory-grid,.hotbar{grid-template-columns:repeat(9,var(--mobile-slot));gap:2px}
    .inventory-grid .mc-item,.equipment-slots .mc-item,.hotbar-slot .mc-item,
    .inventory-grid .mc-item img,.equipment-slots .mc-item img,.hotbar-slot .mc-item img{width:calc(var(--mobile-slot) - 8px);height:calc(var(--mobile-slot) - 8px)}
    .inventory-grid .mc-missing,.equipment-slots .mc-missing,.hotbar-slot .mc-missing{width:calc(var(--mobile-slot) - 9px);height:calc(var(--mobile-slot) - 9px)}
    .inventory-grid .durability-bar,.equipment-slots .durability-bar,.hotbar-slot .durability-bar{width:calc(var(--mobile-slot) - 10px);left:3px}
    .mc-item-count{right:-2px;bottom:-4px;font-size:.72rem}
    .inv-slot.equipment::after{font-size:.37rem}
    .hotbar-wrap{padding:8px 3px 10px}
    .hotbar-line{gap:6px}
    .minecraft-hud{width:calc(var(--mobile-slot) * 9 + 16px);max-width:100%;margin-bottom:6px}
    .minecraft-icon-slot{width:clamp(13px,4vw,17px);height:clamp(13px,4vw,17px);flex-basis:clamp(13px,4vw,17px)}
    .minecraft-status-bars{height:20px}
    .minecraft-xp-wrap{padding-top:12px}
    .minecraft-xp-level{font-size:13px}
    .minecraft-xp-track{height:7px}
    .inventory-toggle{min-height:38px;padding:6px 10px;font-size:.5rem}
    #inventory-tooltip{max-width:calc(100vw - 20px);font-size:.56rem}
  }

  /* Landscape phones should not become an endless vertical controller. */
  @media(max-width:900px) and (orientation:landscape) and (max-height:520px){
    #app{max-width:900px;padding-top:10px}
    header{margin-bottom:10px}
    .control-grid{grid-template-columns:minmax(0,1fr) 210px minmax(0,1fr)}
    .movement-panel{grid-column:1;grid-row:1}
    .bot-minimap-section{grid-column:2;grid-row:1;display:flex;flex-direction:column;padding:10px 7px}
    .look-panel{grid-column:3;grid-row:1}
    .bot-minimap-heading,.bot-minimap,.map-automation{width:190px;max-width:190px}
    .map-automation{gap:4px;margin-top:6px}
    .map-automation .toggle-command{min-height:34px;padding:5px 7px}
    .map-automation .toggle-command strong{font-size:.62rem}
    .map-automation .toggle-command small{display:none}
    .control-column{padding:10px 8px}
    .control-hint{display:none}
    .dpad{width:168px;height:168px;margin:8px auto 5px}
    .joystick-wrap{width:178px;height:178px}
    .look-bottom{margin-top:3px;gap:7px}
    .compass{width:72px;height:72px}
    .compass-pointer{height:19px;top:13px;transform-origin:50% 23px}
    .compass-center{inset:24px 15px}
    .speed-row{margin-top:6px}
    .utility-row{margin-top:6px}
  }

  @media(hover:none){
    .player-btn:hover,.small-btn:hover,.utility-btn:hover,.toggle-command:hover,.dpad-btn:hover,.action-btn:hover{filter:none}
  }
