/* FIREFLY — core skeleton stílus. A réteg-modulok saját CSS-t adhatnak hozzá. */
:root{
  --ff-bg:#070a14; --ff-bg2:#0d1322; --ff-card:#121a2e; --ff-line:#26324f;
  --ff-ink:#e7ecf7; --ff-dim:#9fb0cf; --ff-amber:#ffb347; --ff-cyan:#46d6ff;
  --ff-green:#4be08a; --ff-red:#ff5a6e; --ff-gold:#ffd166;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--ff-bg);
  color:var(--ff-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-user-select:none;user-select:none;touch-action:none}
#ff-root{position:fixed;inset:0;z-index:1}
.ff-scene{position:absolute;inset:0;width:100%;height:100%;display:none}
.ff-scene.active{display:block}
.ff-scene canvas{display:block;width:100%;height:100%}

/* Loading */
#ff-loading{position:fixed;inset:0;z-index:100;background:var(--ff-bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:opacity .4s}
#ff-loading.hide{opacity:0;pointer-events:none}
.ff-load-ship{font-size:56px;animation:ffbob 1.4s ease-in-out infinite}
@keyframes ffbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.ff-load-title{font-size:34px;font-weight:800;letter-spacing:8px;color:var(--ff-amber)}
.ff-load-sub{color:var(--ff-dim);font-size:13px}

/* HUD */
#ff-hud{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;
  padding:8px 12px;pointer-events:none;font-size:14px;font-weight:700;
  background:linear-gradient(180deg,rgba(7,10,20,.85),transparent)}
.ff-hud-left,.ff-hud-right{display:flex;gap:12px}
.ff-stat{background:rgba(18,26,46,.7);border:1px solid var(--ff-line);border-radius:8px;padding:4px 10px}

/* Navbar */
#ff-navbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:center;gap:8px;
  padding:8px;background:linear-gradient(0deg,rgba(7,10,20,.85),transparent)}
.ff-nav-btn{background:var(--ff-card);border:1px solid var(--ff-line);color:var(--ff-ink);
  border-radius:10px;padding:8px 16px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s}
.ff-nav-btn:hover{border-color:var(--ff-amber);background:#16203a}

/* Toast */
#ff-toast-box{position:fixed;bottom:64px;left:50%;transform:translateX(-50%);z-index:30;
  display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}
.ff-toast{background:var(--ff-card);border:1px solid var(--ff-line);border-radius:10px;
  padding:8px 16px;font-size:14px;font-weight:600;opacity:0;transform:translateY(10px);transition:.3s}
.ff-toast.show{opacity:1;transform:translateY(0)}
.ff-toast-good{border-color:var(--ff-green);color:var(--ff-green)}
.ff-toast-bad{border-color:var(--ff-red);color:var(--ff-red)}
.ff-toast-warn{border-color:var(--ff-gold);color:var(--ff-gold)}

/* Modal */
#ff-modal-bg{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.7);
  display:flex;align-items:center;justify-content:center;padding:20px}
#ff-modal{background:var(--ff-card);border:1px solid var(--ff-amber);border-radius:16px;
  padding:24px;max-width:520px;width:100%;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.6)}

/* Stub-jelző (agentek lecserélik) */
.ff-stub{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:10px;color:var(--ff-dim);text-align:center;padding:20px}
.ff-stub h2{color:var(--ff-amber);margin:0;font-size:24px}
