*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0b0910;--bg2:#141018;--bg3:#1b1520;--bg4:#241b2b;
  --border:#302536;--border2:#44314c;
  --text:#ddd3e3;--muted:#8d7e95;--dim:#5b5163;
  --accent:#8d4ca4;--accent2:#6e367f;
  --green:#6a9d7f;--blue:#7c89a8;--purple:#9f72b6;
  --gold:#c3a06b;--red:#b56a78;--teal:#7397a0;
  --r1:#706673;--r2:#6a9d7f;--r3:#7c89a8;--r4:#9f72b6;--r5:#c3a06b;
}
body{font-family:Segoe UI,system-ui,sans-serif;background:
  radial-gradient(circle at top,rgba(104,32,96,.16) 0%,rgba(104,32,96,0) 22%),
  radial-gradient(circle at 80% 20%,rgba(118,38,52,.12) 0%,rgba(118,38,52,0) 18%),
  linear-gradient(135deg,#06050a 0%,#0a0810 28%,#120915 58%,#08070b 100%);
  background-attachment:fixed;color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:#0b0a10}
::-webkit-scrollbar-thumb{background:#3b2a42;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#55345d}

/* ── AUTH ── */
#auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:radial-gradient(ellipse at 50% 0%,#241128,var(--bg))}
.auth-card{background:linear-gradient(180deg,rgba(24,18,30,.96),rgba(16,12,20,.98));border:1px solid #3c2b43;border-radius:16px;padding:36px;width:100%;max-width:400px;box-shadow:0 14px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.03)}
.auth-logo{font-size:22px;font-weight:700;color:#fff;text-align:center;margin-bottom:2px;letter-spacing:1.6px;text-transform:uppercase;text-shadow:0 0 14px rgba(128,72,138,.18)}
.auth-sub{font-size:12px;color:var(--muted);text-align:center;margin-bottom:24px}
.auth-tabs{display:flex;gap:0;margin-bottom:20px;background:#130f18;border:1px solid #2e2434;border-radius:8px;padding:3px}
.auth-tab{flex:1;padding:7px;text-align:center;font-size:13px;cursor:pointer;border-radius:6px;color:var(--muted);transition:all .15s}
.auth-tab.active{background:linear-gradient(180deg,#7e4a92,#5f2f70);color:#fff;box-shadow:0 0 14px rgba(126,74,146,.22)}
.field{margin-bottom:12px}
.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}
.field input{width:100%;padding:10px 12px;background:#120e17;border:1px solid #32263a;border-radius:8px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}
.field input:focus{border-color:#6f427f;box-shadow:0 0 0 3px rgba(111,66,127,.16);background:#15101b}
.btn-auth{width:100%;padding:11px;border-radius:8px;border:1px solid #734584;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;background:linear-gradient(180deg,#7e4a92,#5b2e6a);color:#fff;transition:all .15s;box-shadow:0 8px 18px rgba(68,18,78,.22)}
.btn-auth:hover{background:linear-gradient(180deg,#9056a6,#69367a);border-color:#8f5aa1}.btn-auth:active{transform:scale(.98)}
.err-msg{color:var(--red);font-size:12px;margin-top:8px;text-align:center;min-height:16px}

/* ── APP LAYOUT ── */
#app{display:none;min-height:100vh;flex-direction:column}

/* ── TOPBAR ── */
.topbar{height:52px;background:
  radial-gradient(circle at 18% 0,rgba(118,54,128,.09),transparent 28%),
  linear-gradient(180deg,rgba(20,14,26,.96),rgba(14,10,18,.98));border-bottom:1px solid #342739;box-shadow:inset 0 -1px 0 rgba(255,255,255,.02),0 8px 22px rgba(0,0,0,.18);display:flex;align-items:center;gap:8px;padding:0 16px;position:sticky;top:0;z-index:50}
.tl{font-size:14px;font-weight:700;color:#f1e8f4;letter-spacing:1.6px;margin-right:4px;text-transform:uppercase;text-shadow:0 0 10px rgba(128,72,138,.16);position:relative;padding-left:14px;flex-shrink:0}
.tl::before{content:"✧";position:absolute;left:0;top:50%;transform:translateY(-52%);font-size:9px;color:#9e77aa;text-shadow:0 0 10px rgba(158,119,170,.26)}
.wallet-row{display:flex;gap:6px;flex:1;align-items:center;min-width:0}
.wchip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:500;white-space:nowrap;cursor:default;flex-shrink:0}
.wchip.k{background:#1c1024;border:1px solid #4a2b56;color:#ca9ddb}
.wchip.m{background:#1b150d;border:1px solid #4b3620;color:var(--gold)}
.wchip.h{background:#111913;border:1px solid #294032;color:var(--green)}
.wchip.s{background:#10131c;border:1px solid #283247;color:var(--blue)}
.wchip.e{background:#1a0f13;border:1px solid #40242f;color:#d08a96}
.wchip.d{background:#170c10;border:1px solid #3f1f2a;color:#b56a78}
.wchip.c{background:#100f1a;border:1px solid #32284a;color:#9b84c1}
/* Wallet "Mats" toggle-Button */
.wallet-more-btn{background:#18131f;border:1px solid #3a2a44;color:#8a7090;cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;letter-spacing:.3px}
.wallet-more-btn:hover,.wallet-more-btn.open{background:#221830;border-color:#5a3a6a;color:#c9a6ff}
/* Wallet-Popup Panel */
.wallet-popup{position:fixed;top:54px;left:50%;transform:translateX(-50%);width:340px;background:linear-gradient(180deg,rgba(22,15,30,.98),rgba(14,10,20,.99));border:1px solid #3e2a4a;border-top:none;border-radius:0 0 12px 12px;padding:10px 14px;z-index:200;box-shadow:0 12px 28px rgba(0,0,0,.55);animation:slideDown .15s ease-out}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.wallet-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wallet-popup-row{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:7px;background:#17111f;border:1px solid #2e2038}
.wp-label{font-size:11px;color:var(--muted);flex:1}
.wp-val{font-size:12px;font-weight:600;color:#ddd3e3}
/* Topbar-Action-Buttons Gruppe */
.topbar-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.topbar-icon-btn{background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:14px;cursor:pointer;padding:3px 7px;transition:all .15s;line-height:1}
.topbar-icon-btn:hover{border-color:#5a3a6a;color:#c9a6ff;background:#18111f}
.topbar-lang-sel{background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:12px;cursor:pointer;padding:3px 4px;font-family:inherit}
.tr{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ubadge{font-size:11px;color:var(--muted)}
/* Level-Bar breiter */
.lv-bar-bg{width:100px;height:5px;background:#231b2b;border-radius:3px;overflow:hidden}
.lv-exp{font-size:10px;color:#6a5a72;white-space:nowrap}
.btn-sm{padding:5px 12px;border-radius:6px;border:1px solid transparent;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;letter-spacing:.3px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.16);position:relative;overflow:hidden}
.btn-sm::before{content:"";position:absolute;left:10px;right:10px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);opacity:.55;pointer-events:none}
.bp{background:linear-gradient(180deg,#7e4a92,#5a2f69);color:#fff;border-color:#734584}.bp:hover{background:linear-gradient(180deg,#9056a6,#68387b)}
.bg{background:linear-gradient(180deg,#1a1420,#141019);color:var(--text);border:1px solid #312538}.bg:hover{background:linear-gradient(180deg,#221a2a,#18131f)}
.bd{background:linear-gradient(180deg,#291118,#1c0c12);color:var(--red);border:1px solid #512533}.bd:hover{background:linear-gradient(180deg,#33131c,#220d15)}
.bgo{background:linear-gradient(180deg,#2b2115,#1b140d);color:var(--gold);border:1px solid #58432a}.bgo:hover{background:linear-gradient(180deg,#342718,#21170f)}

/* ── LEVEL BAR ── */
.level-bar-top{display:flex;align-items:center;gap:6px;padding:3px 10px 3px 6px;background:#110d18;border:1px solid #32263a;border-radius:12px}
.lv-num{font-size:11px;font-weight:600;color:#cba3db;white-space:nowrap}
.lv-bar-bg{width:80px;height:4px;background:#231b2b;border-radius:2px;overflow:hidden}
.lv-bar-fill{height:100%;background:linear-gradient(90deg,#7e4a92,#b06cc0);border-radius:2px;transition:width .5s}
.lv-exp{font-size:9px;color:#555;white-space:nowrap}

/* ── PERMADEATH TOAST ── */
.death-toast{position:fixed;top:calc(60px + env(safe-area-inset-top,0px));right:max(20px,env(safe-area-inset-right,0px));background:#1a0a0a;border:1px solid #5a1a1a;border-radius:10px;padding:12px 14px;font-size:12px;z-index:999;max-width:300px;display:none;animation:slideIn .3s}
.death-toast .dt-title{color:#f04747;font-weight:600;margin-bottom:4px}
.death-toast .dt-name{color:#ccc}
.death-toast .dt-ctx{font-size:10px;color:#666;margin-top:2px}

/* ── EXP POPUP ── */
.exp-popup{position:fixed;bottom:calc(60px + env(safe-area-inset-bottom,0px));right:max(20px,env(safe-area-inset-right,0px));background:#0a0a18;border:1px solid #2a2a5a;border-radius:8px;padding:8px 12px;font-size:12px;z-index:998;display:none;animation:slideIn .2s}
.exp-popup .ep-exp{color:#c9a6ff;font-weight:600}
.exp-popup .ep-lvl{color:#e8a020;font-weight:600}

/* ── TODE LOG ── */
.tod-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg2);border:1px solid #2a1010;border-radius:7px;margin-bottom:5px}
.tod-badge{padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;background:#1a0808;color:#e05555;border:1px solid #3a1010;flex-shrink:0}
.tod-info{flex:1;font-size:11px}
.tod-name{color:#ccc;font-weight:500}
.tod-sub{color:var(--muted);font-size:10px;margin-top:1px}
.tod-ctx{color:var(--red);font-size:10px}

/* ── SIDEBAR NAV ── */
.layout{display:flex;flex:1;overflow:hidden}
.sidebar{width:56px;background:
  radial-gradient(circle at top,rgba(76,28,72,.22) 0%,rgba(18,10,24,0) 28%),
  linear-gradient(180deg,rgba(10,8,14,.97) 0%,rgba(14,10,18,.985) 42%,rgba(10,8,12,.995) 100%);
  border-right:1px solid #2d2230;box-shadow:inset -1px 0 0 rgba(160,96,168,.08),inset 0 1px 0 rgba(255,255,255,.02),0 0 24px rgba(34,10,38,.18);
  display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px;flex-shrink:0;transition:width .2s ease;overflow-x:hidden;overflow-y:auto}
.nav-btn{width:40px;height:40px;border:1px solid transparent;background:none;cursor:pointer;border-radius:8px;color:#514756;font-size:18px;display:flex;align-items:center;justify-content:center;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;position:relative;flex-shrink:0;overflow:hidden}
.nav-btn::before{content:"";position:absolute;left:7px;right:7px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(214,192,220,.14),transparent);opacity:0;transition:opacity .16s ease;pointer-events:none}
.nav-btn:hover{background:linear-gradient(180deg,rgba(38,22,40,.8),rgba(20,14,26,.9));border-color:#3a2a3e;color:#a293a8;box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 0 14px rgba(82,28,74,.18)}
.nav-btn.active{background:linear-gradient(180deg,rgba(48,26,50,.92),rgba(22,16,28,.98));border-color:#5a3d61;color:#ddd2e2;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 20px rgba(112,44,98,.2)}
.nav-btn:hover{transform:translateY(-1px) scale(1.04)}
.nav-btn:hover::before,.nav-btn.active::before{opacity:1}
.nav-glyph{display:inline-flex;align-items:center;justify-content:center;min-width:1.1em;line-height:1;font-size:1.05em;filter:saturate(.78) brightness(.9);text-shadow:0 0 8px rgba(255,255,255,.04)}
.sidebar.expanded .nav-glyph{font-size:1.1em}
.glyph-gacha,.glyph-tower,.glyph-ranking,.glyph-achievements{color:#c3a06b;text-shadow:0 0 12px rgba(195,160,107,.18)}
.glyph-quests,.glyph-story,.glyph-lobby,.glyph-mats{color:#91827f}
.glyph-chars,.glyph-awakening,.glyph-gilde,.glyph-profile,.glyph-galerie{color:#9b7aa6;text-shadow:0 0 12px rgba(155,122,166,.22)}
.glyph-teams,.glyph-equip,.glyph-pvp,.glyph-expeditionen{color:#7b8798;text-shadow:0 0 10px rgba(123,135,152,.12)}
.glyph-dungeons,.glyph-bossraids{color:#b16a74;text-shadow:0 0 12px rgba(177,106,116,.22)}
.glyph-alchemie,.glyph-synthese,.glyph-admin{color:#7397a0;text-shadow:0 0 12px rgba(115,151,160,.18)}
.nav-btn .tip{display:none}
.sidebar.expanded{width:170px;align-items:stretch;padding:8px 6px}
.sidebar.expanded .nav-btn{width:100%;height:36px;justify-content:flex-start;padding:0 10px;gap:8px;font-size:16px}
.sidebar.expanded .nav-btn .tip{display:inline;font-size:12px;color:inherit;position:static;opacity:1;background:none;border:none;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar.expanded .nav-sep{width:100%}
.sidebar-toggle{font-size:16px!important;opacity:.36}
.sidebar-toggle:hover{opacity:1}
.nav-tip{position:fixed;background:#100d14;border:1px solid #36293a;border-radius:6px;padding:4px 8px;font-size:11px;color:#c2b3c8;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s;z-index:9999;box-shadow:0 8px 22px rgba(0,0,0,.5)}
.skill-tip{position:fixed;background:#0f0b14;border:1px solid #2f2433;border-radius:8px;padding:10px 12px;max-width:260px;pointer-events:none;opacity:0;transition:opacity .12s;z-index:9998;box-shadow:0 4px 18px rgba(0,0,0,.78)}
.nav-sep{width:30px;height:1px;background:linear-gradient(90deg,transparent,rgba(130,78,120,.34),transparent);margin:6px 0}
.nav-group-label{display:none;font-size:9px;font-weight:700;color:#5a445e;letter-spacing:1.4px;text-transform:uppercase;padding:0 10px;margin:2px 0}
.sidebar.expanded .nav-group-label{display:block}
.sidebar.expanded .nav-sep{width:100%;background:linear-gradient(90deg,rgba(130,78,120,.2),rgba(130,78,120,.08),transparent)}

/* ── MAIN CONTENT ── */
.main{flex:1;overflow-y:auto;padding:18px 20px}
.panel{display:none;width:100%}.panel.active{display:block;width:100%;animation:panelRise .26s ease-out}#panel-synthese.active{display:flex;flex-direction:column;height:calc(100dvh - 110px);height:calc(100vh - 110px);overflow:hidden}
@supports(height:100dvh){#panel-synthese.active{height:calc(100dvh - 110px)}}

/* ── CARDS & GRIDS ── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.grid-sm{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;overflow:hidden;transition:border-color .2s,transform .15s,box-shadow .15s,background .15s;box-shadow:inset 0 1px 0 rgba(255,255,255,.02);position:relative}
.card::before{content:"";position:absolute;left:10px;right:10px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,118,181,.18),transparent);pointer-events:none}
.card::after{content:"";position:absolute;top:10px;bottom:10px;right:0;width:1px;background:linear-gradient(180deg,transparent,rgba(89,58,97,.18),transparent);pointer-events:none}
.card:hover{border-color:#4a3553;transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.28),0 0 22px rgba(74,41,82,.12);background:linear-gradient(180deg,rgba(24,18,30,.97),rgba(16,12,20,.99))}
.card.sel{border-color:#8a55a0;background:linear-gradient(180deg,#1f1428,#160f1e);box-shadow:0 0 0 1px rgba(138,85,160,.3),0 0 20px rgba(109,68,124,.22),inset 0 1px 0 rgba(255,255,255,.05);transform:translateY(-1px)}
.ch{padding:12px 14px 10px;border-bottom:1px solid var(--bg3)}
.cb{padding:12px 14px}
.cf{padding:8px 14px;border-top:1px solid var(--bg3);display:flex;justify-content:space-between;align-items:center}
.cname{font-size:14px;font-weight:600;color:#fff;line-height:1.35}
.csub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.45}
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:12px;font-size:10px;font-weight:500}
.r1{background:#1c1c1c;color:var(--r1);border:1px solid #2a2a2a}
.r2{background:#122012;color:var(--r2);border:1px solid #1a3a1a}
.r3{background:#0e1622;color:var(--r3);border:1px solid #1a2a3a}
.r4{background:#14101e;color:var(--r4);border:1px solid #2a1a3a}
.r5{background:#1e1608;color:var(--r5);border:1px solid #3a2a08}
.row{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:11px;line-height:1.45}
.stat-bar-bg{flex:1;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}
.stat-bar{height:100%;border-radius:2px}
.sv{width:20px;text-align:right;font-size:10px;font-weight:500}
.class-row{font-size:11px;color:var(--muted);margin-top:4px}
.talent-list{padding-top:6px;border-top:1px solid var(--bg3);margin-top:6px}
.ti{display:flex;align-items:flex-start;gap:5px;margin:3px 0;font-size:10px}
.tp{padding:1px 4px;border-radius:3px;font-size:9px;font-weight:600;flex-shrink:0}
.tp.p{background:#122012;color:var(--green)}
.tp.a{background:#0e1622;color:var(--blue)}
.tname{color:#bbb;font-weight:500}
.tdesc{color:var(--muted)}
.empty{text-align:center;padding:40px;color:var(--dim);font-size:13px;grid-column:1/-1}
.ph{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px 14px;margin-bottom:18px;position:relative;padding-bottom:10px}
.ph::after{content:"";position:absolute;left:0;bottom:0;width:min(220px,42%);height:1px;background:linear-gradient(90deg,rgba(156,108,168,.42),rgba(156,108,168,.08),transparent)}
.ph::before{content:"";position:absolute;left:0;bottom:-3px;width:110px;height:7px;background:radial-gradient(circle at 20% 50%,rgba(155,110,168,.18),transparent 60%);pointer-events:none}
.pt{font-size:18px;font-weight:700;color:#f4ebf6;letter-spacing:1.15px;text-transform:uppercase;text-shadow:0 0 14px rgba(122,70,134,.22);position:relative;padding-left:16px}
.pt::before{content:"✦";position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:10px;color:#a879b6;text-shadow:0 0 10px rgba(168,121,182,.28)}
.pt::after{content:"";position:absolute;left:14px;right:-8px;bottom:-3px;height:1px;background:linear-gradient(90deg,rgba(168,121,182,.26),transparent);pointer-events:none}
.crow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.crow > label,
.crow > span{line-height:1.4}

/* ── FILTER BAR ── */
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.filter-btn{padding:6px 11px;border-radius:12px;border:1px solid #34283b;background:#16111b;color:var(--muted);font-size:11px;cursor:pointer;transition:all .15s;min-height:34px}
.filter-btn.active{background:linear-gradient(180deg,#7e4a92,#5d2f6d);color:#fff;border-color:#7a4c8d;box-shadow:0 0 14px rgba(126,74,146,.18)}
.filter-btn.r1a{background:#1c1c1c;color:#777;border-color:#2a2a2a}.filter-btn.r1a.active{background:#333;color:#ccc}
.filter-btn.r2a{background:#122012;color:var(--r2);border-color:#1a3a1a}.filter-btn.r2a.active{background:#1a3a1a;color:#fff}
.filter-btn.r3a{background:#0e1622;color:var(--r3);border-color:#1a2a3a}.filter-btn.r3a.active{background:#1a2a3a;color:#fff}
.filter-btn.r4a{background:#14101e;color:var(--r4);border-color:#2a1a3a}.filter-btn.r4a.active{background:#2a1a3a;color:#fff}
.filter-btn.r5a{background:#1e1608;color:var(--r5);border-color:#3a2a08}.filter-btn.r5a.active{background:#3a2a08;color:#fff}
.sort-sel{background:#15111a;color:var(--text);border:1px solid #35293c;border-radius:8px;padding:7px 10px;font-size:11px;font-family:inherit;min-height:36px}

/* ── SYNTHESE ── */
.synth-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.synth-layout{grid-template-columns:1fr}}
.synth-opfer{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #32263a;border-radius:10px;padding:12px}
.synth-ziel{background:linear-gradient(180deg,#17111d,#110c16);border:1px solid #46314f;border-radius:10px;padding:12px;box-shadow:0 0 18px rgba(102,54,118,.12)}
.synth-slot{padding:8px;border-radius:7px;border:2px dashed var(--border);margin-bottom:6px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .15s}
.synth-slot:hover{border-color:var(--accent);background:#0e1020}
.synth-slot.filled{border-style:solid;border-color:var(--red)}
.synth-slot.ziel-filled{border-style:solid;border-color:#5865f2}
.synth-chance{font-size:11px;color:var(--muted);margin:8px 0;line-height:1.6}
.synth-result{margin-top:10px;padding:10px;border-radius:8px}
.sr-success{background:#0a1a0a;border:1px solid #1a3a1a}
.sr-fail{background:#1a0a0a;border:1px solid #3a1a1a}
.char-mini{font-size:11px;color:#ccc;font-weight:500}
.char-mini-sub{font-size:9px;color:var(--muted)}

/* ── CHAR LEVEL BADGE ── */
.clv-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 5px;border-radius:4px;font-size:10px;font-weight:600;background:#140f1a;border:1px solid #43304b;color:#cba3db}
.skill-lv{font-size:9px;padding:0 3px;border-radius:2px;background:#120e17;border:1px solid #35293c;color:#9d8eb2}

/* ── BOSS RAID ── */
.boss-raid-panel{background:radial-gradient(circle at top,rgba(132,40,70,.14) 0%,rgba(132,40,70,0) 24%),linear-gradient(135deg,#120b12,#1a0d14,#0f0b14);border:1px solid #5a2b39;border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 0 22px rgba(86,24,46,.14)}
.boss-hp-wrap{margin:10px 0}
.boss-hp-bar{height:16px;background:#1a0808;border-radius:8px;overflow:hidden;border:1px solid #3a1010}
.boss-hp-fill{height:100%;background:linear-gradient(90deg,#8b0000,#e05555);border-radius:8px;transition:width 1s}
.boss-name{font-size:18px;font-weight:700;color:#ff6b6b;text-shadow:0 0 12px rgba(255,50,50,.4)}
.team-wave{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}
.wave-slot{background:var(--bg3);border:2px dashed var(--border);border-radius:8px;padding:8px 4px;text-align:center;font-size:10px}
.wave-slot.wartend{border-color:var(--muted);color:var(--muted)}
.wave-slot.kaempft{border-color:var(--gold);background:#1a1a08;animation:pulse 1s infinite alternate}
.wave-slot.gesiegt{border-color:var(--green);background:#0a1a0a;color:var(--green)}
.wave-slot.besiegt{border-color:var(--red);background:#1a0808;color:var(--dim)}
@keyframes pulse{from{box-shadow:0 0 4px var(--gold)}to{box-shadow:0 0 12px var(--gold)}}
.raid-select{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #3f2c46;border-radius:10px;padding:12px}
.team-pick{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}
.tp-slot{border:2px dashed var(--border);border-radius:8px;padding:8px 4px;text-align:center;font-size:10px;cursor:pointer;transition:all .15s;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.tp-slot:hover{border-color:var(--accent);background:#0e1020}
.tp-slot.picked{border-color:var(--gold);background:#181408}
.raid-log{background:var(--bg3);border-radius:6px;padding:8px;margin-top:6px;font-size:10px;color:var(--muted);max-height:100px;overflow-y:auto}
/* ── FAVOURITEN ── */
.fav-btn{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:2px;opacity:.4;transition:all .15s;z-index:2}
.fav-btn:hover{opacity:1;transform:scale(1.2)}
.fav-btn.aktiv{opacity:1;filter:drop-shadow(0 0 4px gold)}


/* ── AWAKENING ── */
.awk-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;transition:all .2s;position:relative}
.awk-card:hover{border-color:#5a3a8a;background:#0e0818}
.awk-glow-1{border-color:#333}
.awk-glow-2{border-color:#1a4a1a}
.awk-glow-3{border-color:#1a2a5a}
.awk-glow-4{border-color:#2a1a5a}
.awk-glow-5{border-color:#4a3a10}
.awk-glow-6{border-color:#5a1a1a;box-shadow:0 0 8px rgba(255,100,100,.2)}
.awk-glow-7{border-color:#105a5a;box-shadow:0 0 8px rgba(0,200,255,.2)}
.awk-glow-8{border-color:#5a105a;box-shadow:0 0 12px rgba(255,0,255,.3)}
.awk-result{border-radius:10px;padding:14px;margin-bottom:12px;text-align:center}
.awk-success{background:linear-gradient(135deg,#080818,#0a1a28);border:1px solid #2a2060;animation:awk-glow 2s ease-in-out}
.awk-fail{background:#100808;border:1px solid #2a1010}
@keyframes awk-glow{0%{box-shadow:0 0 0 rgba(155,121,212,0)}50%{box-shadow:0 0 30px rgba(155,121,212,.5)}100%{box-shadow:0 0 5px rgba(155,121,212,.2)}}
.stone-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:12px;background:linear-gradient(135deg,#18082a,#280a40);border:1px solid #5a2a8a;color:#c9a6ff;font-size:12px;font-weight:600}
.awk-stars{font-size:22px;letter-spacing:2px;margin:6px 0}
.chance-bar{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;margin:6px 0}
.chance-fill{height:100%;border-radius:3px;transition:width .5s}

/* ── KAMPF LOG MODAL ── */
.kampf-modal{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:400;display:flex;align-items:center;justify-content:center;padding:16px}
.kampf-modal-box{background:linear-gradient(180deg,#140f19,#0f0b13);border:1px solid #3a2c42;border-radius:14px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 42px rgba(0,0,0,.42)}
.km-header{padding:14px 16px;border-bottom:1px solid #2b2131;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:linear-gradient(180deg,#18111d,#130f17)}
.km-title{font-size:15px;font-weight:700;color:#f2e7f5;letter-spacing:.7px;text-transform:uppercase}
.km-body{overflow-y:auto;padding:14px;flex:1}
.km-footer{padding:12px 16px;border-top:1px solid #1a1a2a;flex-shrink:0}
.runde-block{margin-bottom:8px;border-radius:7px;overflow:hidden;border:1px solid #2c2232}
.runde-header{padding:6px 10px;background:#15101a;font-size:11px;font-weight:600;color:#a292aa;cursor:pointer;display:flex;justify-content:space-between;user-select:none}
.runde-header:hover{background:#1a1420}
.runde-body{padding:8px 10px;background:#110d16}
.log-line{font-size:11px;padding:3px 0;border-bottom:1px solid #111;line-height:1.5;display:flex;align-items:center;gap:6px}
.log-line:last-child{border:none}
.ll-treffer{color:#ccc}
.ll-kritisch{color:#e8a020;font-weight:500}
.ll-skill{color:#c9a6ff;font-weight:500}
.ll-besiegt{color:var(--red)}
.ll-sieg{color:var(--green);font-weight:600}
.ll-niederlage{color:var(--red);font-weight:600}
.ll-ausgewichen{color:#555}
.ll-verfehlt{color:#444}
.ll-traenk{color:var(--green)}
.ll-info{color:#555;font-style:italic}
.log-typ-icon{width:16px;text-align:center;flex-shrink:0}
.helden-status{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:8px}
.held-stat-card{background:#16111b;border:1px solid #32263a;border-radius:8px;padding:10px}
.held-stat-name{font-size:11px;font-weight:600;color:#ccc;margin-bottom:6px}
.stat-bar-mini{margin-bottom:4px}
.stat-bar-mini-lbl{display:flex;justify-content:space-between;font-size:9px;color:#555;margin-bottom:2px}
.stat-bar-mini-bg{height:4px;background:#111;border-radius:2px;overflow:hidden}
.stat-bar-mini-fill{height:100%;border-radius:2px}
.ergebnis-banner{text-align:center;padding:12px;border-radius:8px;margin-bottom:12px;font-size:16px;font-weight:700}
.eb-sieg{background:#0a1a0a;border:1px solid #1a4a1a;color:var(--green)}
.eb-niederlage{background:#1a0a0a;border:1px solid #4a1a1a;color:var(--red)}
.eb-unentschieden{background:#1a1a0a;border:1px solid #4a4a1a;color:var(--gold)}

/* ── RANKING ── */
.rank-table{width:100%;border-collapse:collapse}
.rank-table th{font-size:10px;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.6px}
.rank-table td{padding:10px;border-bottom:1px solid var(--bg3);font-size:12px;line-height:1.45}
.rank-table tr:hover td{background:var(--bg3)}
.rank-num{font-size:14px;font-weight:700;width:36px;text-align:center}
.r1-gold{color:var(--gold)}.r2-silver{color:#aaa}.r3-bronze{color:#cd7f32}
.rank-me{background:#16101d!important}
.rank-me td{color:#cfacd9}
.etage-pill{display:inline-block;padding:2px 8px;border-radius:10px;background:#17111d;border:1px solid #483152;color:#bca1c7;font-weight:600;font-size:11px}
.mein-rang-card{background:linear-gradient(135deg,#140f1b,#1a1322);border:1px solid #483152;border-radius:10px;padding:14px;margin-bottom:14px;display:flex;align-items:center;gap:16px;box-shadow:0 0 18px rgba(92,48,108,.1)}
.mein-rang-nr{font-size:32px;font-weight:700;color:#cfacd9}

/* ── EQUIPMENT ── */
.item-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #32263a;border-radius:8px;padding:10px;transition:all .15s}
.item-card:hover{border-color:#4b3654;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.item-slot{min-height:60px;border:2px dashed #3a2d42;border-radius:7px;padding:8px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .15s;background:rgba(18,14,23,.55)}
.item-slot:hover{border-color:#7b4a8f;background:#17111d}
.item-slot.filled{border-style:solid;border-color:var(--gold)}
.item-slot.waffe{border-color:#3a1010}.item-slot.ruestung{border-color:#0a1a3a}.item-slot.accessoire{border-color:#1a0a3a}
.item-badge{padding:1px 5px;border-radius:3px;font-size:9px;font-weight:600}
.ib-w{background:#2a0808;color:#e05555;border:1px solid #4a1010}
.ib-r{background:#111722;color:#8e9db8;border:1px solid #2f3c54}
.ib-a{background:#1a1021;color:#cfacd9;border:1px solid #4c3355}
.stat-gain{color:var(--gold);font-size:10px}
.beruf-badge{padding:2px 7px;border-radius:10px;font-size:10px;font-weight:500;background:#0a180a;color:var(--green);border:1px solid #1a3a1a}
.traenk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.traenk-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #32263a;border-radius:10px;padding:12px;text-align:center}
.traenk-icon{font-size:28px;margin-bottom:4px}
.traenk-cnt{font-size:22px;font-weight:700;color:#fff}
/* ── GACHA ── */
.gacha-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media(max-width:650px){.gacha-layout{grid-template-columns:1fr}}
.gacha-banner{background:radial-gradient(circle at top,rgba(136,70,150,.16) 0%,rgba(136,70,150,0) 26%),linear-gradient(135deg,#130e18,#1a1221,#120d18);border:1px solid #43304b;border-radius:12px;padding:20px;text-align:center;box-shadow:0 0 24px rgba(84,40,98,.12)}
.gacha-title{font-size:18px;font-weight:600;color:#fff;margin-bottom:4px}
.gacha-sub{font-size:12px;color:#9d8eb2;margin-bottom:16px}
.wtabs{display:flex;gap:4px;margin-bottom:12px}
.wtab{flex:1;padding:6px;text-align:center;font-size:12px;cursor:pointer;border-radius:6px;border:1px solid #34283b;color:var(--muted);transition:all .15s;background:#16111b}
.wtab.k{border-color:#4a2b56;background:#1b1023;color:#ca9ddb}
.wtab.m{border-color:#564022;background:#1b150d;color:var(--gold)}
.pull-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.pull-btn{padding:12px 8px;border-radius:10px;border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:12px;transition:all .15s;min-height:52px}
.pull-btn:active{transform:scale(.97)}
.pbk{background:linear-gradient(180deg,#22132a,#180f1f);color:#cfacd9;border:1px solid #69407a}.pbk:hover{background:linear-gradient(180deg,#2a1733,#1d1225)}
.pbm{background:linear-gradient(180deg,#2b2115,#1c150e);color:var(--gold);border:1px solid #6a5332}.pbm:hover{background:linear-gradient(180deg,#342718,#21170f)}
.pcost{font-size:10px;opacity:.7;display:block;margin-top:2px}
.gacha-info{font-size:10px;color:#84768f;line-height:1.7;margin-top:8px}
.gacha-carousel{display:flex;gap:6px;overflow-x:auto;padding:8px 0;margin-bottom:4px;scrollbar-width:thin}
.pull-grid-wide{grid-template-columns:repeat(4,1fr) !important;gap:5px}
.pull-btn-compact{padding:8px 4px !important;font-size:11px !important}
.pull-btn-full{grid-column:1/-1}
.pcost-block{font-size:9px !important;display:block !important;margin-top:2px}
.pcost-inline{font-size:9px !important;display:inline !important;margin-left:6px}
.panel-stack-sm{margin-top:10px}
.side-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.02);position:relative}
.side-card::before{content:"";position:absolute;left:12px;right:12px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(171,122,183,.18),transparent);pointer-events:none}
.side-card::after{content:"";position:absolute;right:10px;top:10px;width:18px;height:18px;border-top:1px solid rgba(168,121,182,.14);border-right:1px solid rgba(168,121,182,.14);opacity:.55;pointer-events:none}
.side-card-tight-top{margin-top:8px}
.side-card-spaced{margin-top:10px}
.sc-title{font-size:11px;color:#aa9ab1;font-weight:700;margin-bottom:8px;text-transform:uppercase;letter-spacing:1.15px;position:relative;padding-left:12px}
.sc-title::before{content:"◈";position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:9px;color:#8a617c}
.lore-panel{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;padding:14px;margin-bottom:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.02);position:relative}
.lore-panel::before{content:"";position:absolute;left:12px;right:12px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(171,122,183,.18),transparent);pointer-events:none}
.lore-panel::after{content:"";position:absolute;right:10px;bottom:10px;width:18px;height:18px;border-bottom:1px solid rgba(168,121,182,.12);border-right:1px solid rgba(168,121,182,.12);opacity:.7;pointer-events:none}
.lore-panel-title{font-size:12px;font-weight:700;margin-bottom:6px;letter-spacing:.85px;color:#e1d6e6;text-transform:uppercase}
.lore-panel-title.danger{color:#c78692}
.lore-section-title{font-size:12px;color:#d3c7d8;font-weight:700;margin-bottom:8px;letter-spacing:.6px}
.lore-section-title.with-top-gap{margin-top:14px}
.lore-copy{font-size:11px;color:#94859b;line-height:1.7}
.lore-strong{color:#d9d0df}
.lore-danger{color:#c78692;font-weight:700}
.lore-gold{color:#c3a06b;font-weight:700}
.lore-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.lore-stat-card{flex:1;background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;padding:12px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.lore-stat-value{font-size:22px;font-weight:900}
.lore-stat-value.war{color:#cf8a72}
.lore-stat-value.arcane{color:#c9a6dd}
.lore-stat-label{font-size:10px;color:var(--muted)}
.lore-inline-form{display:flex;gap:6px;align-items:center}
.lore-select{flex:1;background:#17111d;color:var(--text);border:1px solid #35293c;border-radius:6px;padding:6px 8px;font-size:11px;font-family:inherit}
.lore-btn-blue{background:linear-gradient(180deg,#1b2533,#121923);border-color:#415066;color:#8ea0ba}
.lore-btn-blue:hover{background:linear-gradient(180deg,#212d3d,#151d28)}
.lore-btn-red{background:linear-gradient(180deg,#291118,#1c0c12);border-color:#512533;color:#d38896}
.lore-btn-red:hover{background:linear-gradient(180deg,#33131c,#220d15)}
.lore-btn-muted{background:linear-gradient(180deg,#17121b,#120e16);border-color:#35293c;color:#9e92a5}
.lore-btn-muted:hover{background:linear-gradient(180deg,#1c1521,#15101b)}
.text-input,
.select-input{
  background:#17111d;
  color:var(--text);
  border:1px solid #35293c;
  border-radius:8px;
  padding:8px 10px;
  font-size:12px;
  font-family:inherit;
  min-height:38px;
}
.text-input{width:100%}
.select-input{min-width:160px}
.flex-1{flex:1}
.inline-select-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-select-label{font-size:11px;color:var(--muted)}
.pvp-head-row{justify-content:space-between;margin-bottom:10px}
.muted-inline{font-size:11px;color:var(--muted)}
.muted-center-line{font-size:11px;color:var(--muted);margin-bottom:12px;text-align:center}
.muted-center-pad{color:var(--muted);text-align:center;padding:20px}
.muted-center-block{font-size:11px;color:var(--muted);text-align:center;padding:8px}
.stack-list{display:flex;flex-direction:column;gap:8px}
.filter-search-row{display:flex;gap:6px;align-items:center}
.btn-block{width:100%}
.filter-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}
.filter-sep{border-left:1px solid var(--border);margin:0 2px}
.filter-btn-strong{font-weight:700}
.filter-btn-war{background:#0a1a2a;border:1px solid #1a3a5a;color:#5b9bd5}
.filter-btn-gold{background:#1a1400;border:1px solid #3a2a00;color:#e8a020}
.filter-btn-ochre{background:#1a1000;border:1px solid #4a3a00;color:#e0a020}
.filter-btn-hidden{background:#15152a;border:1px solid #c0c0ff;color:#e8e8ff;font-weight:900;text-shadow:0 0 4px #a0a0ff}
.filter-btn-secret{background:#2a1a00;border:1px solid #e8a020;color:#ffd700;font-weight:900;text-shadow:0 0 4px #c8a020}
.filter-btn-versteckt{background:#0a1a2a;border:1px solid #4a9eff;color:#6ac0ff;font-weight:900;text-shadow:0 0 4px #4a9eff}
.quest-bonus-box{
  margin-top:14px;
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));
  border:1px solid #312538;
  border-radius:10px;
  padding:12px;
  text-align:center;
}
.quest-bonus-title{font-size:12px;font-weight:700;color:var(--gold)}
.quest-bonus-copy{font-size:10px;color:var(--muted);margin-top:4px}
.chars-level-bar{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));
  border:1px solid #312538;
  border-radius:10px;
  padding:12px 16px;
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  box-shadow:0 10px 24px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.02);
}
.chars-level-bar > div:first-child{
  font-size:22px;
  font-weight:700;
  color:#c9a6ff;
  min-width:60px;
  display:flex;
  align-items:center;
  gap:6px;
}
.chars-level-bar > div:first-child > span:last-child{
  font-size:12px;
  color:var(--muted);
  cursor:default;
  font-weight:400;
}
.chars-level-bar > div:nth-child(2){flex:1;min-width:150px}
.chars-level-bar > div:nth-child(2) > div:first-child{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}
.chars-level-bar > div:nth-child(2) > div:first-child > span:first-child{color:var(--muted)}
.chars-level-bar > div:nth-child(2) > div:first-child > span:last-child{color:#c9a6ff}
.chars-level-bar > div:nth-child(2) > div:nth-child(2){height:8px;background:var(--bg3);border-radius:4px;overflow:hidden}
.chars-level-fill{height:100%;background:linear-gradient(90deg,#5865f2,#9b79d4);border-radius:4px;transition:width .5s}
.chars-level-bar > div:nth-child(2) > div:last-child{font-size:10px;color:var(--dim);margin-top:3px}
.chars-level-bar > div:nth-child(2) > div:last-child > span:last-child{color:var(--muted)}
.chars-level-bar > div:last-child{display:flex;flex-direction:column;gap:3px;text-align:right}
.chars-level-bar > div:last-child > div:first-child{font-size:10px;color:var(--muted)}
.chars-level-bar > div:last-child > div:last-child{font-size:12px;color:#e8a020;font-weight:500}
.tower-mode-tabs{display:flex;gap:4px;margin-bottom:12px}
.tower-stat-grid{margin-bottom:14px}
.tower-stat-grid .lore-stat-value:first-child{color:var(--gold)}
.tower-team-row{margin-bottom:10px}
.tower-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.tower-inline-row{display:flex;gap:6px;align-items:center;margin-bottom:8px}
.tower-inline-row-spaced{margin-bottom:14px}
.tower-small-select{padding:6px 8px;font-size:11px;min-height:34px}
.tower-etage-select{min-width:80px}

/* Boss Raid + PvP cleanup for formerly inline-styled blocks */
#panel-bossraids > div:nth-of-type(2),
#panel-pvp > div:nth-of-type(2),
#panel-pvp > div:nth-of-type(3),
#panel-pvp > div:nth-of-type(4){
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border:1px solid #312538 !important;
  border-radius:10px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
#panel-bossraids > div:nth-of-type(2) > div:first-child{
  color:#c78692 !important;
  font-weight:700 !important;
  letter-spacing:.4px;
}
#panel-bossraids > div:nth-of-type(2) > div:nth-child(2){
  color:#94859b !important;
  line-height:1.72 !important;
}
#panel-bossraids > div:nth-of-type(2) b{color:#d9d0df !important}
#panel-bossraids > div:nth-of-type(2) span[style*="#ff6b6b"]{color:#c78692 !important;font-weight:700}
#panel-bossraids > div:nth-of-type(2) span[style*="var(--gold)"]{color:#c3a06b !important;font-weight:700}
#boss-raid-etagen{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;margin-bottom:14px}
#boss-raid-historie,#pvp-rangliste{max-height:200px;overflow-y:auto}
#boss-raid-etagen > div,
#boss-raid-historie > div,
#pvp-gegner-list > div,
#pvp-rangliste > div{
  color:var(--muted) !important;
  font-size:11px !important;
}
#panel-pvp > div:nth-of-type(2){display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
#panel-pvp > div:nth-of-type(2) > div{flex:1;min-width:0}
#panel-pvp > div:nth-of-type(2) > div > div:first-child{font-weight:900}
#panel-pvp > div:nth-of-type(2) > div:first-child > div:first-child{color:#cf8a72 !important}
#panel-pvp > div:nth-of-type(2) > div:last-child > div:first-child{color:#c9a6dd !important}
#panel-pvp > div:nth-of-type(3) > div:first-child,
#panel-pvp > div:nth-of-type(4) > div:first-child > div:first-child,
#panel-pvp > div:nth-of-type(5){
  color:#e1d6e6 !important;
  font-weight:700 !important;
}
#panel-pvp select{
  background:#17111d !important;
  color:var(--text) !important;
  border:1px solid #35293c !important;
  border-radius:6px !important;
}
#panel-pvp button[onclick="pvpSetzeVerteidigung()"]{
  background:linear-gradient(180deg,#1b2533,#121923) !important;
  border:1px solid #415066 !important;
  color:#8ea0ba !important;
}
#panel-pvp button[onclick="pvpEntferneVerteidigung()"]{
  background:linear-gradient(180deg,#291118,#1c0c12) !important;
  border:1px solid #512533 !important;
  color:#d38896 !important;
}
#panel-pvp button[onclick="pvpNeueGegner()"]{
  background:linear-gradient(180deg,#17121b,#120e16) !important;
  border:1px solid #35293c !important;
  color:#9e92a5 !important;
}

/* Story panel */
#panel-story select{
  background:#17111d !important;
  color:var(--text) !important;
  border:1px solid #35293c !important;
  border-radius:6px !important;
}
#story-kapitel-list > div,
#story-dialog-box > div{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border:1px solid #312538 !important;
  border-radius:10px !important;
}

/* Tower panel */
#panel-tower select{
  background:#17111d !important;
  color:var(--text) !important;
  border:1px solid #35293c !important;
  border-radius:6px !important;
}
#panel-tower > div > div[style*="background:var(--bg2)"],
#panel-tower > div > div > div[style*="background:var(--bg2)"]{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border:1px solid #312538 !important;
  border-radius:10px !important;
}
#panel-tower button[id^="tower-tab"],
#panel-tower button[id^="inf-"],
#panel-tower button[id^="solo-"]{
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
#panel-tower button[id="tower-tab-team"],
#panel-tower button[id="inf-aufsteig-btn"],
#panel-tower button[id="synth-single-start-btn"],
#panel-tower button[id="synth-team-start-btn"]{
  background:linear-gradient(180deg,#7e4a92,#5b2e6a) !important;
  border-color:#734584 !important;
  color:#f2e8f5 !important;
}
#panel-tower button[id="tower-tab-solo"],
#panel-tower button[id="inf-rerun-btn"]{
  background:linear-gradient(180deg,#22132a,#180f1f) !important;
  border-color:#69407a !important;
  color:#cfacd9 !important;
}
#panel-tower button[id="inf-train-btn"],
#panel-tower button[id="inf-auto-btn"]{
  background:linear-gradient(180deg,#172118,#101713) !important;
  border-color:#35513f !important;
  color:#8fb59c !important;
}

/* Materials + Equipment */
#panel-mats > div[style*="font-size:12px"],
#panel-equip > div[style*="font-size:11px"]{
  color:#b6a8bd !important;
}
#panel-equip .crow button[style*="background:#1a0a2a"]{
  background:linear-gradient(180deg,#21132a,#170f1f) !important;
  border-color:#5a3a68 !important;
  color:#cfacd9 !important;
}
#panel-equip .crow select,
#panel-synthese input,
#panel-synthese select,
#panel-berufe select,
#panel-berufe input,
#panel-alchemie input{
  background:#17111d !important;
  color:var(--text) !important;
  border:1px solid #35293c !important;
  border-radius:6px !important;
}

/* Settings panel */
#panel-berufe > div > div[style*="background:var(--bg2)"]{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border:1px solid #312538 !important;
  border-radius:10px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
#panel-berufe > div > div[style*="background:#1a0a0a"]{
  background:linear-gradient(180deg,#241116,#180c11) !important;
  border:1px solid #522c37 !important;
}
#panel-berufe button[style*="background:var(--accent)"]{
  background:linear-gradient(180deg,#7e4a92,#5b2e6a) !important;
  border-color:#734584 !important;
}
#panel-berufe button[style*="background:var(--bg3)"]{
  background:linear-gradient(180deg,#1a1420,#141019) !important;
  border-color:#312538 !important;
  color:var(--text) !important;
}

/* Alchemie + Synthese + Awakening */
#panel-alchemie > div[style*="font-size:11px"],
#panel-alchemie > div[style*="font-size:12px"],
#panel-synthese > div[style*="background:#0a0818"],
#panel-synthese > div > div[style*="background:#0a0818"],
#panel-awakening > div[style*="background:#0e0818"]{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border-color:#43304b !important;
  color:#b9abbe !important;
}
#panel-synthese button[style*="background:linear-gradient(135deg,#5865f2,#9b79d4)"]{
  background:linear-gradient(180deg,#7e4a92,#5b2e6a) !important;
  color:#f2e8f5 !important;
}

/* Ranking */
#panel-ranking > div > div[style*="display:flex;justify-content:space-between"],
#panel-ranking > div > div[style*="display:flex;gap:4px"],
#panel-ranking > div > div[style*="background:var(--bg2)"]{
  color:#d8cede !important;
}
#panel-ranking button[id^="rank-tab"]{
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
#panel-ranking button[id="rank-tab-solo"]{
  background:linear-gradient(180deg,#31171b,#221015) !important;
  border-color:#7a4a52 !important;
  color:#d79aa4 !important;
}
#panel-ranking button[id="rank-tab-team"],
#panel-ranking button[id="rank-tab-dungeon"],
#panel-ranking button[id="rank-tab-level"]{
  background:linear-gradient(180deg,#17121b,#120e16) !important;
  border-color:#35293c !important;
  color:#9e92a5 !important;
}
#panel-ranking table,
#panel-ranking div[style*="background:var(--bg2);border:1px solid var(--border);border-radius:10px;overflow:hidden"]{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border-color:#312538 !important;
}

/* Gacha cleanup */
#banner-carousel > *{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98)) !important;
  border:1px solid #35293c !important;
  border-radius:10px !important;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}
#panel-gacha > div > div:first-child > div:nth-child(2){
  background:linear-gradient(180deg,rgba(19,14,24,.96),rgba(13,10,18,.98)) !important;
  border:1px solid #312538 !important;
  border-radius:10px !important;
  color:#9b8da3 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
#panel-gacha > div > div:first-child > div:nth-child(2) > div:first-child{
  color:#d7ccd7 !important;
  letter-spacing:.5px;
}
#panel-gacha > div > div:first-child > div:nth-child(2) span[style*="#c9a6ff"]{color:#c7a0d5 !important}
#panel-gacha > div > div:first-child > div:nth-child(2) span[style*="#f0c040"]{color:#c3a06b !important}
#panel-gacha > div > div:first-child > div:nth-child(2) span[style*="#5b9bd5"]{color:#8ca0ba !important}
#panel-gacha > div > div:first-child > div:nth-child(2) span[style*="#ffd700"]{color:#d1b06d !important}

/* Guild + profile */
#panel-gilde{max-width:900px}
.guild-hero{
  background:
    radial-gradient(circle at top right,rgba(145,72,92,.18),transparent 34%),
    linear-gradient(135deg,#140f1a,#17111f,#120d18);
  border:1px solid #43304b;
  border-radius:12px;
  padding:16px;
  margin-bottom:14px;
  box-shadow:0 16px 30px rgba(0,0,0,.2);
  position:relative;
}
.guild-hero::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(211,176,109,.24),transparent);pointer-events:none}
.guild-hero-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.guild-name{font-size:18px;font-weight:700;color:#f1e6f4;letter-spacing:1px;text-transform:uppercase}
.guild-desc{font-size:10px;color:#918296;margin-top:2px;line-height:1.6}
.guild-leader-box{text-align:right}
.guild-leader-label{font-size:10px;color:var(--muted)}
.guild-leader-name{font-size:12px;color:#c7a0d5;font-weight:700}
.guild-count{font-size:11px;color:#9c8ca3}
.guild-section-title{font-size:12px;font-weight:700;color:#d8cede;margin-bottom:8px;letter-spacing:.6px}
.guild-member-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.guild-member-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));
  border:1px solid #312538;
  border-radius:8px;
}
.guild-member-name{font-size:11px;color:#d8cede;line-height:1.4}
.guild-member-name.leader{color:#d1b06d;font-weight:700}
.guild-member-role{font-size:9px;color:#776a80;margin-left:6px}
.guild-mini-btn,
.guild-full-btn,
.guild-search-btn,
.guild-join-btn{
  border-radius:8px;
  cursor:pointer;
  font-family:inherit;
  transition:all .15s;
}
.guild-mini-btn{padding:3px 8px;font-size:9px}
.guild-mini-btn-danger,
.guild-full-btn-danger{
  background:linear-gradient(180deg,#291118,#1c0c12);
  border:1px solid #512533;
  color:#d38896;
}
.guild-full-btn{width:100%;padding:10px;font-size:12px}
.guild-full-btn-primary{
  background:linear-gradient(180deg,#6f457f,#532d62);
  border:1px solid #734584;
  color:#f2e8f5;
  font-size:13px;
  font-weight:700;
}
.guild-empty{text-align:center;padding:20px;margin-bottom:14px}
.guild-empty-icon{font-size:32px;margin-bottom:8px}
.guild-empty-title{font-size:14px;color:#d8cede;font-weight:700;margin-bottom:4px}
.guild-empty-copy{font-size:11px;color:#918296;line-height:1.6}
.guild-input{
  flex:1;
  padding:9px 10px;
  background:#17111d;
  color:var(--text);
  border:1px solid #35293c;
  border-radius:8px;
  font-size:12px;
  font-family:inherit;
  min-height:38px;
}
.guild-input-block{display:block;width:100%;margin-bottom:8px;font-size:12px}
.guild-search-row{display:flex;gap:6px;margin-bottom:10px}
.guild-search-btn{
  padding:8px 14px;
  background:linear-gradient(180deg,#1a1420,#141019);
  border:1px solid #312538;
  color:#d8cede;
}
.guild-search-result{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:12px;
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));
  border:1px solid #312538;
  border-radius:10px;
  margin-bottom:6px;
}
.guild-search-name{font-size:12px;font-weight:700;color:#f1e6f4}
.guild-search-meta{font-size:10px;color:#918296}
.guild-join-btn{
  padding:6px 14px;
  background:linear-gradient(180deg,#1b2533,#121923);
  border:1px solid #415066;
  color:#8ea0ba;
  font-size:11px;
  font-weight:700;
}
.guild-search-empty{text-align:center;padding:12px}
#panel-profile .stats-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
#panel-profile .stat-chip{
  background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));
  border:1px solid #312538;
  border-radius:10px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
  position:relative;
}
#panel-profile .stat-chip::before{content:"";position:absolute;left:10px;right:10px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(171,122,183,.16),transparent);pointer-events:none}
#panel-profile .stat-chip .val{color:#f1e6f4}
#panel-profile .stat-chip .lbl{color:#9a8ca2}

/* Settings, guide, modal, expedition and achievement polish */
#panel-berufe > div > div[style*="font-size:12px;font-weight:600;color:#ccc"],
#panel-berufe > div > div[style*="font-size:12px;font-weight:600;color:#fff"]{color:#e1d6e6 !important}
#panel-berufe span[style*="font-size:11px;color:var(--muted)"]{color:#96889d !important}
#panel-achievements button[onclick="achvAlleAbholen()"]{
  background:linear-gradient(180deg,#35260d,#251a0a) !important;
  border:1px solid #6a5332 !important;
  color:#d1b06d !important;
}
#panel-expeditionen > div[style*="font-size:10px;color:var(--muted)"]{color:#96889d !important}
#exp-char-modal,
#team-char-modal > div > div,
#guide-modal .kampf-modal-box > div[style*="background:#08080f"],
#guide-content{
  background:linear-gradient(180deg,rgba(22,16,28,.97),rgba(14,10,18,.99)) !important;
  border-color:#312538 !important;
}
.guide-tab-btn{
  background:linear-gradient(180deg,#1a1420,#141019) !important;
  border-color:#312538 !important;
  color:#a899b0 !important;
}
.guide-tab-btn.active,
.guide-tab-btn[style*="var(--accent)"]{
  background:linear-gradient(180deg,#6f457f,#532d62) !important;
  border-color:#734584 !important;
  color:#f2e8f5 !important;
}
.pity-row{margin-bottom:8px}
.pity-lbl{display:flex;justify-content:space-between;font-size:11px;margin-bottom:3px}
.pity-bg{height:5px;background:var(--bg3);border-radius:3px;overflow:hidden}
.pity-fill{height:100%;border-radius:3px;transition:width .4s}
.pb-rar{background:var(--blue)}.pb-epi{background:var(--purple)}.pb-leg{background:var(--gold)}
.soft-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:#1a1030;color:#c9a6ff;border:1px solid #3a2060;margin-left:4px}
.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:8px}
.day-slot{padding:5px 2px;border-radius:5px;border:1px solid var(--border);text-align:center;font-size:9px;color:var(--dim)}
.day-slot.done{background:#0a1a0a;border-color:#1a3a1a;color:var(--green)}
.day-slot.today{background:#1a1a08;border-color:#4a4a10;color:var(--gold)}
.stat-mini{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:3px 0}
.stat-mini span{color:#ccc}

/* ── PULL RESULT ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}
.result-box{background:linear-gradient(180deg,rgba(21,16,27,.98),rgba(14,10,18,.99));border:1px solid #3a2b42;border-radius:14px;padding:20px;width:100%;max-width:760px;max-height:90vh;overflow-y:auto;box-shadow:0 18px 40px rgba(0,0,0,.42)}
.result-title{font-size:16px;font-weight:700;color:#f2e8f5;text-align:center;margin-bottom:14px;letter-spacing:.8px;text-transform:uppercase}
.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:14px}
.rc{border-radius:8px;padding:10px 8px;text-align:center;border:1px solid #35293c;position:relative;background:#17111d}
.rc.r4{border-color:#52365c;background:#18101d}
.rc.r3{border-color:#384252;background:#11151c}
.rc.pity::after{content:'PITY';position:absolute;top:5px;right:5px;font-size:8px;padding:1px 4px;border-radius:3px;background:#1a1a08;color:var(--gold);border:1px solid var(--gold)}
.rc-stars{font-size:14px;margin-bottom:4px}
.rc-name{font-size:11px;font-weight:500;color:#ccc;line-height:1.3}
.rc-rar{font-size:10px;margin-top:3px}
.rc-class{font-size:9px;color:var(--muted);margin-top:2px}
.rc-race{font-size:9px;color:var(--teal);margin-top:1px}

/* ── TEAMS ── */
.team-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;margin-bottom:12px;overflow:hidden}
.team-hdr{padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2b2031;background:linear-gradient(180deg,#1a1420,#151019);position:relative;flex-wrap:wrap}
.team-hdr::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(115,72,126,.26),transparent)}
.tname-in{background:none;border:none;color:#fff;font-size:14px;font-weight:600;font-family:inherit;outline:none;flex:1;min-width:100px}
.tname-in:focus{border-bottom:1px solid #5a3a7a}
.team-hdr-stats{display:flex;gap:10px;align-items:center;flex-shrink:0}
.team-hdr-stat{font-size:10px;font-weight:500;display:flex;align-items:center;gap:3px}
.team-hdr-actions{display:flex;gap:6px;align-items:center;margin-left:auto;flex-shrink:0}
/* Member rows */
.team-member-row{padding:0;border-bottom:1px solid rgba(30,20,38,.8)}
.team-member-row:last-child{border-bottom:none}
/* Header: Sprite + Identity */
.tmr-header{display:flex;gap:10px;align-items:center;padding:10px 14px 6px}
.tmr-sprite{width:40px;height:40px;image-rendering:pixelated;flex-shrink:0;border-radius:6px;background:#0a0a18;border:1px solid #2a2040}
.tmr-identity{flex:1;min-width:0}
.tmr-name{font-size:12px;font-weight:600;color:#f0e8f5;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.tmr-name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tmr-lv{font-size:9px;color:var(--muted);font-weight:700;background:#0a0a18;border:1px solid #2a2a3a;border-radius:3px;padding:0 4px}
.tmr-race{font-size:9px;color:var(--muted);font-weight:400}
.tmr-class{font-size:11px;margin-top:2px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.tmr-class-tag{font-size:8px;padding:0 3px;background:#1a1400;border:1px solid #3a2a00;border-radius:2px}
/* Body: Stats left, Skills right */
.tmr-body{display:flex;gap:12px;padding:4px 14px 10px}
.tmr-stats{flex:1;min-width:0}
/* 2×3 Stat-Grid */
.tmr-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px 10px}
.tmr-cell{display:grid;grid-template-columns:22px 1fr 24px;gap:3px;align-items:center}
.tmr-cell-lbl{font-size:8px;font-weight:700;text-align:right}
.tmr-cell-bar{height:4px;background:#0e0a14;border-radius:2px;overflow:hidden}
.tmr-cell-fill{height:100%;border-radius:2px}
.tmr-cell-val{font-size:9px;color:#ccc;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
/* HP/MP Vitals */
.tmr-vitals-row{display:flex;flex-direction:column;gap:3px;margin-top:5px;padding-top:5px;border-top:1px solid #1a1a2a}
.tmr-vbar{display:grid;grid-template-columns:22px 1fr 36px;gap:4px;align-items:center}
.tmr-vbar-lbl{font-size:8px;font-weight:700;text-align:right}
.tmr-vbar-track{height:4px;background:#0e0a14;border-radius:2px;overflow:hidden}
.tmr-vbar-val{font-size:9px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.tmr-sum{font-size:9px;color:#555;text-align:right;margin-top:3px;font-variant-numeric:tabular-nums}
@media(max-width:560px){.tmr-grid{grid-template-columns:1fr 1fr;gap:2px 8px}}
/* Skills column */
.tmr-skills{flex-shrink:0;width:140px;display:flex;flex-direction:column;gap:2px;border-left:1px solid #1a1a2a;padding-left:10px}
.tmr-sk{display:flex;align-items:center;gap:4px}
.tmr-sk-badge{font-size:8px;padding:1px 4px;border-radius:3px;border:1px solid;font-weight:700;flex-shrink:0;min-width:14px;text-align:center;line-height:1.3}
.tmr-sk-name{font-size:10px;color:#bbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tmr-sk-more{font-size:9px;color:#444;padding-left:20px}
.tmr-sk-empty{font-size:10px;color:#333;text-align:center;padding:4px 0}
@media(max-width:700px){.tmr-skills{display:none}}
/* legacy */
.team-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:12px}
.tslot{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:9px 7px;min-height:78px;text-align:center}
.tslot-name{font-size:10px;font-weight:500;color:#ccc;line-height:1.3;margin-top:3px}
.tslot-class{font-size:9px;color:var(--muted);margin-top:2px}
.tslot-race{font-size:9px;color:var(--teal);margin-top:1px}

/* ── TOWER ── */
.tower-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:start}
@media(max-width:600px){.tower-layout{grid-template-columns:1fr}}
.etagen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.etage-card{padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);cursor:pointer;transition:all .15s;text-align:center}
.etage-card:hover{border-color:var(--accent);background:#0e1020}
.etage-card.boss{border-color:#3a1a1a;background:#120808}
.etage-card.locked{opacity:.4;cursor:not-allowed}
.etage-nr{font-size:18px;font-weight:600;color:#fff}
.etage-name{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.3}
.etage-boss{font-size:9px;color:var(--red);margin-top:2px}

/* ── LOBBY ── */
.lobby-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.bau-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;padding:12px;cursor:default;transition:border-color .2s}
.bau-card:hover{border-color:var(--border2)}
.bau-icon{font-size:24px;margin-bottom:6px}
.bau-name{font-size:13px;font-weight:700;color:#f1e6f4;margin-bottom:2px;letter-spacing:.4px}
.bau-desc{font-size:10px;color:var(--muted);margin-bottom:8px;line-height:1.4}
.bau-level{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.level-bar-bg{flex:1;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;margin:0 6px}
.level-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s}
.bau-bonus{font-size:10px;color:var(--green);margin-bottom:8px;line-height:1.5}
.mat-cost{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.mat-chip{padding:2px 5px;border-radius:4px;font-size:9px;font-weight:500;background:var(--bg3);border:1px solid var(--border);color:var(--muted)}
.mat-chip.ok{border-color:#1a3a1a;color:var(--green)}
.mat-chip.nok{border-color:#3a1a1a;color:var(--red)}
.upgrade-timer{font-size:10px;color:var(--gold);text-align:center;margin-bottom:6px}

/* ── MATERIALS ── */
.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.mat-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #32263a;border-radius:10px;padding:14px;text-align:center}
.mat-icon{font-size:28px;margin-bottom:6px}
.mat-name{font-size:12px;font-weight:500;color:#fff;margin-bottom:2px}
.mat-menge{font-size:20px;font-weight:600;color:#fff;margin:4px 0}
.mat-rar{font-size:10px;color:var(--muted)}

/* ── DUNGEON ── */
.dg-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.dg-layout{grid-template-columns:1fr}}
.dg-card{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;border-radius:10px;padding:14px}
.dg-card.weekly{border-color:#493052;box-shadow:0 0 18px rgba(84,40,92,.12)}
.dg-title{font-size:14px;font-weight:700;color:#f1e6f4;margin-bottom:4px;letter-spacing:.5px}
.dg-desc{font-size:11px;color:var(--muted);margin-bottom:10px;line-height:1.4}
.diff-btns{display:flex;gap:6px}
.diff-btn{flex:1;padding:7px 4px;border-radius:6px;border:none;cursor:pointer;font-size:11px;font-weight:500;font-family:inherit;transition:all .15s}
.dn{background:#1a2010;color:var(--green);border:1px solid #2a3a18}.dn:hover{background:#202810}
.dh{background:#201808;color:var(--gold);border:1px solid #3a2a10}.dh:hover{background:#281a08}
.da{background:#200808;color:var(--red);border:1px solid #3a1010}.da:hover{background:#280808}
.diff-btn.disabled{opacity:.4;cursor:not-allowed}
.versuche-row{display:flex;gap:4px;margin-bottom:8px}
.versuch-dot{width:8px;height:8px;border-radius:50%;background:var(--bg3)}
.versuch-dot.used{background:var(--dim)}
.versuch-dot.avail{background:var(--green)}

/* ── PROFIL ── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.stat-chip{background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #32263a;border-radius:10px;padding:14px 12px;text-align:center}
.stat-chip .val{font-size:20px;font-weight:600;color:#fff;display:block}
.stat-chip .lbl{font-size:10px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.55px;line-height:1.35}

/* ── KAMPF RESULT ── */
.kampf-result{padding:14px;border-radius:10px;margin-bottom:12px}
.kr-sieg{background:#0a1a0a;border:1px solid #1a3a1a}
.kr-nie{background:#1a0a0a;border:1px solid #3a1a1a}
.kr-title{font-size:16px;font-weight:600;margin-bottom:8px}
.kr-sieg .kr-title{color:var(--green)}
.kr-nie .kr-title{color:var(--red)}
.kr-row{font-size:12px;color:var(--muted);margin-bottom:4px}
.kr-row span{color:#ccc}
.hero-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.hero-chip{padding:4px 8px;border-radius:6px;font-size:11px;background:#17111d;border:1px solid #36293d}
.hero-chip.dead{border-color:#3a1a1a;color:var(--dim)}
.hero-chip.alive{color:#ccc}
.hp-mini{font-size:9px;color:var(--muted);margin-top:1px}

/* ── TOAST ── */
.toast{position:fixed;bottom:20px;right:20px;background:linear-gradient(180deg,rgba(23,17,29,.97),rgba(15,11,19,.99));border:1px solid #33273a;border-radius:8px;padding:10px 14px;font-size:12px;z-index:999;max-width:280px;display:none;animation:slideIn .3s ease-out;box-shadow:0 12px 28px rgba(0,0,0,.35)}
.toast.ok{border-color:#35513f;color:var(--green)}
.toast.err{border-color:#5a303a;color:var(--red)}
.toast.info{border-color:#38465e;color:var(--blue)}
@keyframes slideIn{from{transform:translateY(-20px);opacity:0}to{transform:none;opacity:1}}

/* ── MISC ── */
.sep{height:1px;background:linear-gradient(90deg,transparent,rgba(121,82,132,.42),transparent);margin:12px 0}
.tag{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500}
.tag-kampf{background:#1a0808;color:#e06060;border:1px solid #3a1010}
.tag-magie{background:#170f1d;color:var(--purple);border:1px solid #3c2944}
.tag-natur{background:#0a1a0a;color:var(--green);border:1px solid #1a3a1a}
.tag-dunkel{background:#0d0d0d;color:#888;border:1px solid #222}
.tag-heilig{background:#1a1a08;color:var(--gold);border:1px solid #3a3a10}
.tag-bewegung{background:#081818;color:var(--teal);border:1px solid #103030}
.loader{text-align:center;padding:30px;color:var(--muted);font-size:13px}
input[type=range]{accent-color:var(--accent);width:90px}

/* ════════════════════════════════════════════════════════════
   BATTLE UI — Brave Frontier Style
   ════════════════════════════════════════════════════════════ */
#battle-overlay {
  position:fixed; inset:0; z-index:9000; display:none;
  background: linear-gradient(180deg, #050818 0%, #0d1b3e 35%, #1a0a2e 60%, #0a0500 80%, #050200 100%);
  font-family:'Exo 2',sans-serif;
  overflow:hidden;
}
#battle-overlay.show { display:block; }

/* Ground line */
#bo-ground {
  position:absolute; bottom:0; left:0; right:0; height:160px;
  background:linear-gradient(180deg,transparent 0%,#1a0e00 30%,#0d0800 100%);
}
#bo-ground::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,transparent,#c08020 20%,#f0c040 50%,#c08020 80%,transparent);
  box-shadow:0 0 20px #f0c04066;
}

/* Close button */
#bo-close {
  position:absolute; top:14px; right:16px; z-index:10;
  background:#1a0a00; border:1px solid #c08020; border-radius:6px;
  color:#f0c040; font-size:11px; padding:5px 12px; cursor:pointer;
  font-family:'Exo 2',sans-serif; font-weight:600;
}
#bo-close:hover { background:#2a1400; }

/* HUD top */
#bo-hud {
  position:absolute; top:0; left:0; right:0; padding:12px 16px;
  display:flex; justify-content:space-between; align-items:center;
  background:linear-gradient(180deg,rgba(0,0,0,.6),transparent);
}
.bo-stage-title {
  font-family:'Cinzel',serif; font-size:13px; font-weight:700;
  color:#f0c040; text-shadow:0 0 12px #f0c040;
  letter-spacing:.1em;
}
.bo-wave-badge {
  background:linear-gradient(135deg,#2a1000,#5a2000);
  border:1px solid #f0c040; border-radius:6px;
  padding:4px 12px; font-family:'Cinzel',serif;
  font-size:11px; font-weight:900; color:#ffd870;
  text-shadow:0 0 8px #f0c040;
}

/* Battle field */
#bo-field {
  position:absolute; bottom:150px; left:0; right:0;
  display:flex; justify-content:space-between; align-items:flex-end;
  padding:0 60px;
}
.bo-hero-side  { display:flex; gap:20px; align-items:flex-end; }
.bo-enemy-side { display:flex; gap:24px; align-items:flex-end; }

.bo-unit { display:flex; flex-direction:column; align-items:center; gap:6px; }

.bo-sprite-wrap {
  position:relative; width:80px; height:80px;
}
.bo-sprite-wrap canvas {
  image-rendering:pixelated; width:80px; height:80px;
}
.bo-shadow {
  position:absolute; bottom:-4px; left:50%; transform:translateX(-50%);
  width:50px; height:10px;
  background:radial-gradient(ellipse,rgba(0,0,0,.5) 0%,transparent 70%);
}
.bo-glow-h { position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); width:64px; height:16px; border-radius:50%; background:#4080ff66; filter:blur(6px); animation:bo-gp 2s ease-in-out infinite; }
.bo-glow-e { position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); width:64px; height:16px; border-radius:50%; background:#ff404066; filter:blur(6px); animation:bo-gp 2.4s ease-in-out infinite; }
@keyframes bo-gp { 0%,100%{opacity:.4} 50%{opacity:1} }

.bo-float-h { animation:bo-fh 2.8s ease-in-out infinite; }
.bo-float-e { animation:bo-fe 3.2s ease-in-out infinite; }
@keyframes bo-fh { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
@keyframes bo-fe { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }

/* Walk → Attack → Return (Hero geht zum Gegner, schlägt zu, kehrt zurück) */
.bo-atk-h { animation:bo-ah 1.1s ease-in-out forwards !important; }
.bo-atk-e { animation:bo-ae 1.1s ease-in-out forwards !important; }
@keyframes bo-ah {
  0%{transform:translateX(0)}
  30%{transform:translateX(70px)}
  40%{transform:translateX(65px) scaleX(1.12)}
  50%{transform:translateX(70px) scaleX(1)}
  100%{transform:translateX(0)}
}
@keyframes bo-ae {
  0%{transform:translateX(0)}
  30%{transform:translateX(-70px)}
  40%{transform:translateX(-65px) scaleX(1.12)}
  50%{transform:translateX(-70px) scaleX(1)}
  100%{transform:translateX(0)}
}

.bo-hit { animation:bo-hf .3s steps(2) forwards !important; }
@keyframes bo-hf { 0%,100%{filter:none} 30%,70%{filter:brightness(3) saturate(0)} 50%{filter:none} }

.bo-dead { animation:bo-die .7s ease-out forwards !important; }
@keyframes bo-die { 0%{opacity:1;transform:scale(1)} 100%{opacity:0;transform:scale(.4) translateY(20px)} }

/* Enemy HP over sprite */
.bo-elem-badge {
  position:absolute; top:-38px; left:50%; transform:translateX(-50%);
  font-size:18px; z-index:10; pointer-events:none;
  animation:bo-elem-float 2s ease-in-out infinite;
  filter:drop-shadow(0 0 4px currentColor);
}
@keyframes bo-elem-float {
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(-4px)}
}
@keyframes bo-reaktion-flash {
  0%{opacity:0;transform:translate(-50%,-50%) scale(0.5)}
  20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}
  60%{opacity:1;transform:translate(-50%,-50%) scale(1.0)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.0) translateY(-20px)}
}
.bo-enemy-hp {
  position:absolute; top:-22px; left:50%; transform:translateX(-50%);
  width:80px; text-align:center;
}
.bo-ename { font-family:'Cinzel',serif; font-size:8px; color:#f0c040; white-space:nowrap; }
.bo-hbar-bg { height:4px; background:#111; border-radius:2px; border:1px solid #2a2a2a; overflow:hidden; margin-top:1px; }
.bo-hbar-fill { height:100%; border-radius:1px; background:linear-gradient(90deg,#c02020,#ff4040); transition:width .4s; }

/* Hero info bars */
.bo-hero-info { text-align:center; min-width:80px; }
.bo-hname { font-family:'Cinzel',serif; font-size:8px; color:#f0c040; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:90px; }
.bo-bar-wrap { display:flex; flex-direction:column; gap:2px; margin-top:3px; }
.bo-bar-bg { height:5px; background:#111; border-radius:2px; border:1px solid #222; overflow:hidden; }
.bo-hp-fill { height:100%; background:linear-gradient(90deg,#20a040,#60ff80); border-radius:1px; transition:width .4s; }
.bo-hp-fill.mid { background:linear-gradient(90deg,#c08000,#ffb000); }
.bo-hp-fill.low { background:linear-gradient(90deg,#c02020,#ff4040); }
.bo-bb-fill { height:100%; background:linear-gradient(90deg,#2040c0,#60a0ff); border-radius:1px; transition:width .4s; }

/* Damage numbers */
.bo-dmg {
  position:absolute; pointer-events:none; z-index:9500;
  font-family:'Cinzel',serif; font-weight:900;
  text-shadow:2px 2px 0 #000,-1px -1px 0 #000;
  animation:bo-dmg-float 1.1s ease-out forwards;
}
@keyframes bo-dmg-float {
  0%  { opacity:1; transform:translateY(0) scale(1.2); }
  20% { transform:translateY(-18px) scale(1.4); }
  100%{ opacity:0; transform:translateY(-55px) scale(.8); }
}
.bo-dmg-n { font-size:20px; color:#fff; }
.bo-dmg-c { font-size:28px; color:#f0c040; }
.bo-dmg-h { font-size:18px; color:#60ff80; }

/* Skill bar */
#bo-skillbar {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(180deg,transparent,#000000cc 20%,#000000f0);
  padding:8px 12px 12px;
}
#bo-hero-cards { display:flex; gap:5px; justify-content:center; margin-bottom:8px; }
.bo-hcard {
  width:56px; border-radius:6px; overflow:hidden;
  border:2px solid #2a2a4a; cursor:pointer; background:#0a0a18;
  transition:transform .15s, border-color .15s;
}
.bo-hcard:hover:not(.bo-hcard-dead) { transform:translateY(-3px); border-color:#f0c040; }
.bo-hcard.bo-hcard-active { border-color:#f0c040; }
.bo-hcard.bo-hcard-dead   { opacity:.35; filter:grayscale(1); cursor:default; }
.bo-hcard.bo-hcard-bb     { border-color:#4080ff; animation:bo-bb-pulse .8s ease-in-out infinite alternate; }
@keyframes bo-bb-pulse { from{box-shadow:0 0 6px #4080ff44} to{box-shadow:0 0 18px #4080ffaa} }
.bo-hcard canvas { display:block; width:56px; height:56px; image-rendering:pixelated; }
.bo-hcard-name { font-size:7px; font-weight:700; color:#ccc; text-align:center; padding:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bo-hcard-bbbar { height:3px; background:linear-gradient(90deg,#2040c0,#4080ff); transition:width .3s; }
.bo-burst-bar { height:3px; background:#1a1008; border-radius:1px; margin-top:1px; overflow:hidden; }
.bo-burst-fill { height:100%; background:linear-gradient(90deg,#804000,#f0a020); transition:width .4s; }
.bo-burst-fill.bo-burst-ready { background:linear-gradient(90deg,#f0a020,#ffe040); box-shadow:0 0 6px #f0a020; animation:burstGlow 1s infinite; }
@keyframes burstGlow{0%,100%{box-shadow:0 0 4px #f0a020}50%{box-shadow:0 0 12px #ffe060}}

#bo-skill-btns { display:flex; gap:6px; justify-content:center; }
.bo-sbtn {
  flex:1; max-width:110px; padding:7px 4px; border-radius:7px;
  border:1px solid #2a2a4a; background:linear-gradient(135deg,#0d0d24,#1a1a3a);
  color:#ccc; font-family:'Exo 2',sans-serif; font-size:10px; font-weight:700;
  cursor:pointer; transition:all .15s;
}
.bo-sbtn:hover { border-color:#f0c040; color:#f0c040; transform:translateY(-2px); }
.bo-sbtn:disabled { opacity:.4; cursor:default; transform:none !important; }
.bo-sbtn .bsi { display:block; font-size:16px; text-align:center; margin-bottom:2px; }
.bo-sbtn-atk { border-color:#c04040; background:linear-gradient(135deg,#1a0808,#2a1010); color:#ff8080; }
.bo-sbtn-atk:hover { border-color:#ff3030; box-shadow:0 0 10px #ff303033; }
.bo-sbtn-bb  { border-color:#204080; background:linear-gradient(135deg,#080c20,#101830); color:#6090cc; }
.bo-sbtn-bb.bo-bb-ready { border-color:#4080ff; color:#80c0ff; animation:bo-bb-pulse .8s ease-in-out infinite alternate; }

/* Battle log */
#bo-log {
  position:absolute; top:56px; left:12px; width:200px;
  max-height:100px; overflow:hidden; pointer-events:none;
}
.bo-log-entry { font-size:9px; color:#6080a0; padding:1px 0; animation:bo-log-in .25s ease-out; }
.bo-log-entry.hi { color:#f0c040; }
@keyframes bo-log-in { from{opacity:0;transform:translateX(-8px)} to{opacity:1;transform:none} }

/* Banner */
#bo-banner {
  position:absolute; inset:0; pointer-events:none; z-index:9200;
  display:flex; align-items:center; justify-content:center; opacity:0;
}
#bo-banner.show { animation:bo-ban 1.4s ease-out forwards; }
#bo-banner-txt {
  font-family:'Cinzel',serif; font-size:36px; font-weight:900; color:#ffd870;
  text-shadow:0 0 30px #f0c040, 0 0 60px #f0c040, 3px 3px 0 #000;
  letter-spacing:.15em;
}
@keyframes bo-ban { 0%{opacity:0;transform:scale(.5)} 20%{opacity:1;transform:scale(1.05)} 60%{opacity:1;transform:scale(1)} 100%{opacity:0;transform:scale(1.1) translateY(-15px)} }

/* Result overlay */
#bo-result-overlay {
  position:absolute; inset:0; z-index:9300; display:none;
  align-items:center; justify-content:center;
  background:rgba(0,0,0,.75);
}
#bo-result-overlay.show { display:flex; }
.bo-result-box {
  text-align:center; padding:32px 52px;
  background:linear-gradient(135deg,#0a0818,#1a1030);
  border:2px solid #f0c040; border-radius:14px;
  box-shadow:0 0 50px #f0c04033;
  animation:bo-rpop .45s cubic-bezier(.2,1,.3,1);
}
@keyframes bo-rpop { from{transform:scale(.5) rotate(-4deg);opacity:0} to{transform:none;opacity:1} }
.bo-rtitle { font-family:'Cinzel',serif; font-size:40px; font-weight:900; letter-spacing:.15em; }
.bo-rsieg { color:#ffd870; text-shadow:0 0 28px #f0c040; }
.bo-rnied { color:#ff4040; text-shadow:0 0 28px #ff0000; }
.bo-rsub  { font-size:13px; color:#aaa; margin-top:6px; }
.bo-rbtn  {
  margin-top:20px; padding:10px 28px;
  background:linear-gradient(135deg,#2a1800,#5a3800);
  border:1px solid #f0c040; border-radius:7px;
  color:#f0c040; font-family:'Cinzel',serif; font-size:13px;
  cursor:pointer; transition:all .2s;
}
.bo-rbtn:hover { background:linear-gradient(135deg,#3a2000,#7a4800); }

/* BB screen flash */
.bo-bb-flash {
  position:absolute; inset:0; pointer-events:none; z-index:9100;
  animation:bo-bbf .5s ease-out forwards;
}
@keyframes bo-bbf { 0%{background:rgba(64,128,255,0)} 15%{background:rgba(64,128,255,.55)} 100%{background:rgba(64,128,255,0)} }

/* Particle */
.bo-part { position:absolute; pointer-events:none; border-radius:50%; animation:bo-pf var(--dur) ease-out forwards; }
@keyframes bo-pf { 0%{opacity:1;transform:translate(0,0) scale(1)} 100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(0)} }

/* ── POLISH: hover, glow & animations ── */
button:not(:disabled):hover{filter:brightness(1.15)}
button:active{transform:scale(0.97)}
.badge.r5{box-shadow:0 0 8px rgba(232,160,32,.4)}
.badge.r4{box-shadow:0 0 6px rgba(155,121,212,.3)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes panelRise{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:none}}

/* ── GACHA ANIMATION ── */
.gacha-summon-circle{width:120px;height:120px;margin:40px auto;position:relative;display:flex;align-items:center;justify-content:center}
.gacha-circle-inner{font-size:40px;color:#c9a6ff;animation:gachaRotate 1s linear infinite}
.gacha-circle-text{position:absolute;font-size:14px;font-weight:700;color:#fff}
.gacha-summon-circle::before{content:'';position:absolute;inset:-10px;border:2px solid #6040a055;border-radius:50%;animation:gachaRotate 2s linear infinite}
.gacha-summon-circle::after{content:'';position:absolute;inset:-20px;border:1px solid #6040a033;border-radius:50%;animation:gachaRotate 3s linear infinite reverse}
.gacha-summon-circle.epic::before{border-color:#9b79d4}
.gacha-summon-circle.epic .gacha-circle-inner{color:#9b79d4}
.gacha-summon-circle.legendary::before{border-color:#e8a020;box-shadow:0 0 30px #e8a02066}
.gacha-summon-circle.legendary::after{border-color:#e8a020}
.gacha-summon-circle.legendary .gacha-circle-inner{color:#e8a020}
@keyframes gachaRotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

.gacha-reveal{animation:gachaReveal .4s cubic-bezier(.2,1,.3,1) forwards;opacity:0;transform:scale(0)}
.gacha-reveal-epi{animation:gachaRevealEpi .5s cubic-bezier(.2,1,.3,1) forwards;opacity:0;transform:scale(0)}
.gacha-reveal-leg{animation:gachaRevealLeg .6s cubic-bezier(.2,1,.3,1) forwards;opacity:0;transform:scale(0)}
.gacha-reveal-instant{animation:fadeIn .15s ease-out forwards}
@keyframes gachaReveal{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}
@keyframes gachaRevealEpi{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.2);filter:brightness(1.5)}100%{opacity:1;transform:scale(1);filter:none}}
@keyframes gachaRevealLeg{0%{opacity:0;transform:scale(0)}40%{opacity:1;transform:scale(1.3);filter:brightness(2) saturate(1.5)}70%{transform:scale(0.95)}100%{opacity:1;transform:scale(1);filter:none}}

/* Hidden Legend Reveal: laenger, staerker, Platin-Glow + Iridescent-Border */
.gacha-reveal-hl{animation:gachaRevealHL .9s cubic-bezier(.2,1,.3,1) forwards;opacity:0;transform:scale(0);position:relative}
.gacha-reveal-hl::before{content:'';position:absolute;inset:-4px;border-radius:14px;background:linear-gradient(45deg,#ffffff,#c0c0ff,#ffd7ff,#c0ffff,#ffffff);background-size:200% 200%;animation:hlBorder 3s linear infinite,hlFadeIn .9s .2s forwards;opacity:0;z-index:-1;filter:blur(2px)}
.gacha-reveal-hl::after{content:'⚜';position:absolute;top:-6px;right:-6px;font-size:22px;color:#ffffff;text-shadow:0 0 10px #c0c0ff,0 0 20px #ffffff;animation:hlSparkle 2s ease-in-out infinite}
@keyframes gachaRevealHL{0%{opacity:0;transform:scale(0) rotate(-15deg)}30%{opacity:1;transform:scale(1.4) rotate(5deg);filter:brightness(2.5) saturate(2)}55%{transform:scale(0.9) rotate(-2deg)}75%{transform:scale(1.08) rotate(1deg)}100%{opacity:1;transform:scale(1) rotate(0);filter:none}}
@keyframes hlBorder{0%{background-position:0% 0%}100%{background-position:200% 200%}}
@keyframes hlFadeIn{to{opacity:.8}}
@keyframes hlSparkle{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.3) rotate(15deg);opacity:.8}}

/* Secret Reveal (geheime Klasse ohne Hidden-Legend): Gold-Pulse */
.gacha-reveal-secret::after{content:'L';position:absolute;top:-4px;right:-4px;font-size:11px;font-weight:900;color:#ffd700;background:#2a1a00;border:1px solid #e8a020;padding:1px 5px;border-radius:3px;text-shadow:0 0 4px #c8a020;animation:secretPulse 2s ease-in-out infinite}
@keyframes secretPulse{0%,100%{box-shadow:0 0 4px #e8a020}50%{box-shadow:0 0 12px #ffd700}}

.gacha-shake{animation:gachaShake .4s ease-out}
.gacha-shake-strong{animation:gachaShakeStrong .8s ease-out}
@keyframes gachaShake{0%,100%{transform:translateX(0)}10%{transform:translateX(-8px)}20%{transform:translateX(8px)}30%{transform:translateX(-6px)}40%{transform:translateX(6px)}50%{transform:translateX(-3px)}60%{transform:translateX(3px)}}
@keyframes gachaShakeStrong{0%,100%{transform:translate(0,0)}5%{transform:translate(-14px,4px)}10%{transform:translate(14px,-4px)}15%{transform:translate(-12px,-3px)}20%{transform:translate(12px,3px)}25%{transform:translate(-10px,2px)}30%{transform:translate(10px,-2px)}35%{transform:translate(-6px,0)}40%{transform:translate(6px,0)}50%{transform:translate(-3px,0)}60%{transform:translate(3px,0)}}

/* Full-Screen Flash beim Hidden-Legend-Reveal */
.gacha-flash{position:fixed;inset:0;background:radial-gradient(circle,#ffffff 0%,#e8e8ff 30%,transparent 80%);pointer-events:none;z-index:11500;animation:gachaFlash 1.2s ease-out forwards}
@keyframes gachaFlash{0%{opacity:0}15%{opacity:.95}60%{opacity:.4}100%{opacity:0}}

/* ── LOBBY NEU ── */
.lobby-grid-neu{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}

/* UX hierarchy for dense inline-driven panels */
#panel-chars #chars-level-bar,
#panel-quests #quest-bonus,
#panel-lobby #lobby-kochen,
#panel-pvp > div:nth-of-type(3),
#panel-pvp > div:nth-of-type(4),
#panel-bossraids > div:nth-of-type(2),
#panel-berufe > div > div[style*="background:var(--bg2)"],
#panel-story #story-dialog-box > div,
#panel-story #story-kapitel-list > div{
  box-shadow:0 10px 24px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.02) !important;
}

#panel-chars input[type="text"],
#panel-story select,
#panel-pvp select,
#panel-berufe select,
#panel-berufe input,
#panel-synthese input,
#panel-synthese select,
#panel-alchemie input{
  min-height:38px;
  padding-top:8px !important;
  padding-bottom:8px !important;
}

#teams-list{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px !important}

@media(max-width:900px){
  .gacha-layout,
  .tower-layout{grid-template-columns:1fr}
  .lore-stat-grid,
  #panel-pvp > div:nth-of-type(2){grid-template-columns:1fr}
  #teams-list{grid-template-columns:1fr !important}
}
.lobby-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:12px;transition:all .15s}
.lobby-card.gebaut{border-color:#2a3a2a}
.lobby-card.ungebaut{border-style:dashed;opacity:.7}
.lobby-card:hover{border-color:var(--border2);transform:translateY(-1px)}
.lobby-card-head{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.lobby-icon{font-size:28px}
.lobby-icon.dim{opacity:.4}
.lobby-name{font-size:13px;font-weight:700;color:var(--text)}
.lobby-level{font-size:10px;color:#6a9a6a}
.lobby-desc{font-size:10px;color:var(--muted);max-width:180px}
.lobby-bonus{font-size:10px;color:var(--muted);margin-bottom:8px}
.lobby-btn{width:100%;padding:8px;background:linear-gradient(135deg,#0a1a0a,#1a3a1a);border:1px solid #2a5a2a;border-radius:6px;color:#6a9a6a;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.lobby-btn:hover{filter:brightness(1.3)}
.lobby-btn.small{padding:4px 10px;font-size:10px}
.lobby-kosten{font-size:9px;font-weight:400;color:var(--muted)}
.lobby-upgrade-info{font-size:10px;color:#c0a040;text-align:center}
.lobby-max{font-size:10px;color:#6a9a6a;text-align:center;font-weight:700;padding:6px}

/* ── POSTFACH ── */
.postfach-btn{background:none;border:none;font-size:18px;cursor:pointer;position:relative;vertical-align:middle;margin-left:6px;padding:2px;color:#fff;line-height:1}
.postfach-btn:hover{transform:scale(1.15);filter:brightness(1.3)}
.postfach-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#e04040;border-radius:50%;display:none;box-shadow:0 0 6px 2px rgba(224,64,64,.6);animation:dotPulse 2s infinite}
@keyframes dotPulse{0%,100%{box-shadow:0 0 4px 1px rgba(224,64,64,.4);transform:scale(1)}50%{box-shadow:0 0 10px 4px rgba(224,64,64,.7);transform:scale(1.3)}}
.postfach-box{background:linear-gradient(180deg,rgba(20,15,26,.98),rgba(12,9,16,.99));border:1px solid #392b40;border-radius:14px;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:fadeIn .15s ease-out;box-shadow:0 18px 44px rgba(0,0,0,.42)}
.postfach-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#120c18,#27122c);border-bottom:1px solid #392b40;font-size:14px;font-weight:700;color:#cfacd9}
.postfach-hbtn{background:none;border:1px solid var(--border);color:var(--muted);font-size:11px;padding:4px 10px;border-radius:6px;cursor:pointer;font-family:inherit}
.postfach-hbtn:hover{background:var(--bg3);color:var(--text)}
.postfach-liste{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px;max-height:60vh}
.pf-item{padding:10px 12px;border-radius:8px;background:linear-gradient(180deg,rgba(22,16,28,.95),rgba(16,12,20,.98));border:1px solid #312538;cursor:pointer;transition:all .15s}
.pf-item:hover{background:linear-gradient(180deg,#1d1623,#16111a);border-color:#473450}
.pf-item.ungelesen{border-left:3px solid #7d4f90;background:#16101d}
.pf-item .pf-kopf{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.pf-item .pf-betreff{font-size:12px;font-weight:600;color:var(--text)}
.pf-item .pf-zeit{font-size:9px;color:var(--dim)}
.pf-item .pf-abs{font-size:10px;color:var(--muted)}
.pf-item .pf-text{font-size:11px;color:var(--muted);margin-top:4px;display:none}
.pf-item.offen .pf-text{display:block}
.pf-typ{font-size:9px;padding:1px 6px;border-radius:4px;font-weight:600}
.pf-typ.system{background:#1a1a30;color:#8888cc}
.pf-typ.spieler{background:#1a2a1a;color:#88cc88}
.pf-typ.gilde{background:#2a1a10;color:#cc9944}
.pf-typ.belohnung{background:#2a2a0a;color:#cccc44}
.pf-tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}
.pf-tab{flex:1;padding:8px;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.pf-tab:hover{color:var(--text);background:var(--bg2)}
.pf-tab.active{color:#c9a6ff;border-bottom-color:#6040a0}
.pf-input{padding:8px 10px;background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:12px;font-family:inherit}
.pf-input:focus{border-color:#6040a0;outline:none}
.pf-senden-btn{padding:10px;background:linear-gradient(135deg,#1a0a30,#3a1a60);border:1px solid #6040a0;border-radius:8px;color:#c9a6ff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.pf-senden-btn:hover{filter:brightness(1.2)}
.pf-antwort-btn{background:none;border:1px solid var(--border);color:var(--muted);font-size:10px;padding:2px 8px;border-radius:4px;cursor:pointer;font-family:inherit}
.pf-antwort-btn:hover{background:var(--bg3);color:#c9a6ff;border-color:#6040a0}
.pf-antwort-box{margin-top:6px;display:flex;gap:4px}
.pf-antwort-box input{flex:1;padding:6px 8px;background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:11px;font-family:inherit}
.pf-antwort-box button{padding:6px 10px;background:linear-gradient(135deg,#1a0a30,#3a1a60);border:1px solid #6040a0;border-radius:6px;color:#c9a6ff;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — Kleines Tablet / Laptop (max 1279px) ─────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:1279px){
  .topbar{gap:6px;padding:0 12px;height:50px}
  .tl{font-size:13px}
  .wchip{padding:3px 7px;font-size:11px;gap:3px}
  .main{padding:14px 16px}
  .sidebar{width:50px}
  .nav-btn{width:38px;height:38px;font-size:17px}
  .btn-sm{font-size:12px;padding:5px 12px}
  .lobby-grid-neu{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
  .postfach-box{max-width:90vw}
  .kampf-modal-box{max-width:95vw}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — Großes Tablet / HiDPI-Display (1280px–1919px) ─────────── */
/*    Trifft z.B. Surface Pro 16", iPad Pro 13" bei 150% DPI-Skalierung     */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(min-width:1280px) and (max-width:1919px){
  .topbar{height:56px;padding:0 22px;gap:14px}
  .tl{font-size:15px}
  .wchip{font-size:13px;padding:4px 11px;gap:5px;border-radius:14px}
  .lv-bar-bg{width:100px}
  .lv-num{font-size:13px}
  .lv-exp{font-size:10px}
  .main{padding:20px 28px}
  .sidebar{width:58px}
  .sidebar.expanded{width:195px}
  .nav-btn{width:44px;height:44px;font-size:20px}
  .sidebar.expanded .nav-btn{height:40px}
  .sidebar.expanded .nav-btn .tip{font-size:13px}
  .btn-sm{font-size:13px;padding:7px 16px;min-height:36px}
  .filter-btn{font-size:12px;padding:5px 13px}
  .sort-sel{font-size:12px;padding:5px 10px}
  .pt{font-size:18px}
  .ph{margin-bottom:18px;gap:10px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
  .grid-sm{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
  .card{border-radius:11px}
  .item-card{padding:12px}
  .cname{font-size:15px}
  .gacha-layout{grid-template-columns:1fr 320px}
  .tower-layout{grid-template-columns:1fr 300px}
  .lobby-grid-neu{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
  .mat-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
  .postfach-box{max-width:88vw}
  .kampf-modal-box{max-width:800px}
  .rank-table td{font-size:13px;padding:10px 12px}
  .rank-table th{font-size:11px;padding:7px 12px}
  .empty{font-size:14px}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — Mobile Portrait (max 768px) ───────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Topbar: kompakte 2-Zeilen-Struktur */
  .topbar{height:auto;flex-wrap:wrap;padding:6px 10px;gap:5px}
  .tl{font-size:13px;order:0;font-weight:700}
  .tr{order:1;margin-left:auto;display:flex;align-items:center;gap:6px}
  #lang-select{order:2;font-size:11px;padding:3px 4px}
  #mute-btn{order:3;font-size:15px;padding:3px 6px}
  [title="Settings"]{order:4;font-size:13px;padding:3px 6px}
  #level-bar{order:5;width:100%;margin-top:3px}
  .lv-num{font-size:12px}
  .lv-bar-bg{width:90px;height:5px}
  .lv-exp{font-size:10px}
  .wallet-row{order:6;width:100%;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
  .wallet-row::-webkit-scrollbar{display:none}
  .wchip{padding:3px 7px;font-size:11px;border-radius:10px;gap:3px}

  /* Sidebar → Bottom-Nav-Bar */
  .layout{flex-direction:column-reverse}
  .sidebar{width:100%;height:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;
    border-right:none;border-top:1px solid var(--border);padding:5px 10px;gap:5px;
    padding-bottom:max(5px,env(safe-area-inset-bottom,0px));
    position:sticky;bottom:0;z-index:40}
  .sidebar::-webkit-scrollbar{display:none}
  .sidebar.expanded{width:100%;align-items:center;padding:5px 10px;padding-bottom:max(5px,env(safe-area-inset-bottom,0px))}
  .sidebar.expanded .nav-btn{width:auto;height:38px;padding:0 10px;gap:5px}
  .sidebar.expanded .nav-btn .tip{font-size:11px}
  .nav-btn{width:38px;height:38px;font-size:16px;flex-shrink:0}
  .nav-sep{width:1px;height:26px;margin:0 3px}

  /* Main Content */
  .main{padding:12px;overflow-y:auto;height:calc(100dvh - 130px);height:calc(100vh - 130px)}
  @supports(height:100dvh){.main{height:calc(100dvh - 130px)}}

  /* Panel-Header */
  .ph{flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:14px}
  .pt{font-size:17px}
  .crow{flex-wrap:wrap;gap:5px}
  .btn-sm{font-size:13px;padding:7px 14px;min-height:38px}
  .filter-btn{font-size:12px;padding:6px 13px;min-height:36px}
  .sort-sel{font-size:12px;padding:6px 10px}

  /* Cards/Grids */
  .card{border-radius:10px}
  .grid{grid-template-columns:1fr !important;gap:12px}
  .grid-sm{grid-template-columns:1fr !important;gap:12px}
  .cname{font-size:15px}
  .csub{font-size:12px}
  .lobby-grid-neu{grid-template-columns:1fr;gap:10px}
  .mat-grid{grid-template-columns:repeat(2,1fr) !important}
  .empty{font-size:14px;padding:32px 16px}

  /* Gacha/Synthese Pull-Buttons */
  .pull-grid{grid-template-columns:repeat(2,1fr) !important}
  .pull-btn{min-height:50px;font-size:14px}
  .pull-btn .pcost{font-size:11px !important}

  /* Dungeon: 3 → 2 Spalten */
  #dg-typ-cards{grid-template-columns:1fr 1fr !important}

  /* Skill-Tree Modal */
  #skilltree-modal>div>div{max-width:100% !important}
  #st-pfade{grid-template-columns:1fr 1fr !important}

  /* Team-Slots: 5 → 4 Spalten */
  .team-slots{grid-template-columns:repeat(4,1fr) !important}
  .team-wave{grid-template-columns:repeat(3,1fr) !important}

  /* Postfach */
  .pf-tab{min-height:40px;padding:9px;font-size:12px}

  /* Battle Overlay */
  #battle-overlay{padding:4px}
  #bo-field{flex-direction:column;gap:10px}
  .bo-hero-side,.bo-enemy-side{flex-direction:row;justify-content:center;gap:8px}
  .bo-sprite-wrap canvas{width:60px !important;height:60px !important}
  #bo-skillbar{padding:6px}
  #bo-hero-cards{gap:4px}
  .bo-hcard{width:46px;min-width:46px}
  .bo-sbtn{font-size:10px;padding:5px 3px;min-height:42px}
  .bo-dmg{font-size:13px}

  /* Kampf-Modal */
  .kampf-modal-box{max-width:100%;max-height:100dvh;max-height:100vh;border-radius:0}
  .km-body{padding:10px}
  .log-line{font-size:12px}

  /* Postfach */
  .postfach-box{max-width:100%;max-height:90dvh;max-height:90vh;border-radius:10px}
  .postfach-liste{max-height:50vh}
  .pf-tabs{overflow-x:auto;flex-wrap:nowrap}
  .pf-tab{white-space:nowrap}

  /* Gacha Results */
  .result-box{max-width:100%;padding:14px;border-radius:12px}
  .result-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr)) !important}
  .rc{padding:10px}

  /* Chat FAB */
  #chat-fab{bottom:64px;right:12px;width:44px;height:44px;font-size:20px}

  /* Ranking */
  .rank-table td{font-size:13px;padding:9px 10px}
  .rank-table th{font-size:11px;padding:7px 10px}
  .mein-rang-nr{font-size:26px}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — Sehr kleine Bildschirme (iPhone SE, etc.) ─────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:400px){
  .topbar{padding:5px 8px}
  .tl{font-size:12px}
  .wchip{font-size:10px;padding:2px 5px}
  .main{padding:10px}
  .nav-btn{width:36px;height:36px;font-size:14px}
  .btn-sm{font-size:12px;padding:6px 10px;min-height:36px}
  .filter-btn{font-size:11px;padding:5px 10px;min-height:34px}
  .lobby-card{padding:10px}
  .lobby-icon{font-size:26px}
  .lobby-name{font-size:12px}
  .pt{font-size:16px}
  .cname{font-size:14px}
  .bo-sprite-wrap canvas{width:48px !important;height:48px !important}
  .bo-hcard{width:38px;min-width:38px}
  .bo-sbtn{font-size:10px;padding:5px 2px;min-height:40px}
  .result-grid{grid-template-columns:repeat(2,1fr) !important}
  #dg-typ-cards{grid-template-columns:1fr !important}
  .pull-grid{grid-template-columns:1fr 1fr !important}
  .pull-btn{min-height:48px;font-size:13px}
  #st-pfade{grid-template-columns:1fr !important}
  .team-slots{grid-template-columns:repeat(2,1fr) !important}
  .team-wave{grid-template-columns:repeat(2,1fr) !important}
  .mat-grid{grid-template-columns:repeat(2,1fr) !important}
  #exp-char-liste{grid-template-columns:1fr !important}
  .rank-table td{font-size:12px;padding:8px 8px}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── Touch-Optimierungen ────────────────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(hover:none){
  /* Keine Hover-Effekte auf Touch-Geräten */
  .nav-btn:hover{transform:none;background:none}
  .card:hover{transform:none}
  .lobby-card:hover{transform:none}
  /* Größere Touch-Targets */
  .btn-sm{min-height:42px;min-width:42px;font-size:14px}
  .btn-auth{min-height:48px;font-size:15px}
  .nav-btn{min-width:42px;min-height:42px;font-size:18px}
  .filter-btn{min-height:40px;font-size:13px}
  .pf-tab{min-height:44px;font-size:13px}
  .pull-btn{min-height:54px;font-size:15px}
  .field input{padding:12px 14px;font-size:15px}
  /* Tipp-Label auf Touch nicht anzeigen (nutzt Tooltip-System) */
  .nav-tip{display:none !important}
  .skill-tip{display:none !important}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── Landscape Phone ────────────────────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(max-height:500px) and (orientation:landscape){
  .topbar{height:40px;padding:2px 10px}
  .tl{font-size:12px}
  .wallet-row{gap:3px}
  .wchip{font-size:10px;padding:2px 5px}
  .sidebar{height:auto;padding:3px 8px;gap:4px}
  .nav-btn{width:34px;height:34px;font-size:14px}
  .main{padding:6px;height:calc(100dvh - 90px);height:calc(100vh - 90px)}
  @supports(height:100dvh){.main{height:calc(100dvh - 90px)}}
  .pt{font-size:15px;margin-bottom:6px}
  .ph{margin-bottom:8px;gap:5px}
  .btn-sm{font-size:12px;padding:5px 10px;min-height:32px}
  .filter-btn{font-size:11px;padding:4px 10px;min-height:30px}
  .grid{gap:8px}
  .grid-sm{gap:8px}
  #bo-field{max-height:60vh}
  .bo-sprite-wrap canvas{width:50px !important;height:50px !important}
  .kampf-modal-box{max-height:90dvh;max-height:90vh}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — Große Bildschirme (1920px+) ──────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(min-width:1920px){
  .main{padding:24px 32px}
  .topbar{height:58px;padding:0 24px}
  .tl{font-size:16px}
  .wchip{font-size:13px;padding:4px 10px}
  .nav-btn{width:46px;height:46px;font-size:21px}
  .sidebar.expanded .nav-btn .tip{font-size:13px}
  .btn-sm{font-size:14px;padding:8px 18px;min-height:38px}
  .filter-btn{font-size:13px;padding:6px 15px;min-height:36px}
  .pt{font-size:20px}
  .cname{font-size:16px}
  .csub{font-size:13px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .grid-sm{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
  .lobby-grid-neu{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
  .mat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
  .gacha-layout{grid-template-columns:1fr 340px}
  .tower-layout{grid-template-columns:1fr 300px}
  .sidebar.expanded{width:200px}
  .auth-card{max-width:480px;padding:42px}
  .bo-sprite-wrap,.bo-sprite-wrap canvas{width:96px!important;height:96px!important}
  .bo-hname,.bo-ename{font-size:10px}
  .bo-hcard-name{font-size:9px}
  .log-line{font-size:14px}
  .rank-table td{font-size:14px;padding:10px 12px}
  .rank-table th{font-size:12px}
  .tutorial-tooltip{max-width:340px}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — 2K/QHD (2560px+) ────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(min-width:2560px){
  .main{padding:28px 48px;max-width:2200px;margin:0 auto}
  .topbar{height:64px;padding:0 32px}
  .tl{font-size:18px}
  .wchip{font-size:15px;padding:5px 12px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
  .grid-sm{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
  .sidebar{width:64px}
  .sidebar.expanded{width:220px}
  .nav-btn{width:48px;height:48px;font-size:22px}
  .sidebar.expanded .nav-btn{height:42px}
  .sidebar.expanded .nav-btn .tip{font-size:14px}
  .btn-sm{font-size:15px;padding:9px 20px;min-height:40px}
  .filter-btn{font-size:14px;padding:7px 17px;min-height:38px}
  .pt{font-size:22px}
  .cname{font-size:17px}
  .csub{font-size:14px}
  .gacha-layout{grid-template-columns:1fr 400px}
  .tower-layout{grid-template-columns:1fr 360px}
  .bo-sprite-wrap,.bo-sprite-wrap canvas{width:112px!important;height:112px!important}
  .bo-hname,.bo-ename{font-size:12px;max-width:120px}
  .bo-hcard-name{font-size:10px}
  .bo-hcard{width:60px;min-width:60px}
  .log-line{font-size:15px}
  .rank-table td{font-size:15px;padding:11px 14px}
  .rank-table th{font-size:13px}
  .kampf-modal-box{max-width:900px}
  .postfach-box{max-width:700px}
}

/* ═══════════════════════════════════════════════════════════════════════════ */
/* ── RESPONSIVE — 4K/UHD (3840px+) ─────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════════ */
@media(min-width:3840px){
  :root{font-size:24px}
  .main{padding:36px 64px;max-width:3000px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(500px,1fr))}
  .grid-sm{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}
  .sidebar{width:80px}
  .sidebar.expanded{width:280px}
  .nav-btn{width:60px;height:60px;font-size:28px}
  .sidebar.expanded .nav-btn{height:52px}
  .sidebar.expanded .nav-btn .tip{font-size:16px}
  .topbar{padding:12px 24px}
  .wchip{font-size:14px;padding:6px 10px}
  .gacha-layout{grid-template-columns:1fr 500px}
  .tower-layout{grid-template-columns:1fr 440px}
  .bo-sprite-wrap,.bo-sprite-wrap canvas{width:144px!important;height:144px!important}
  .bo-hname,.bo-ename{font-size:14px;max-width:160px}
  .bo-hcard-name{font-size:12px}
  .bo-hcard{width:72px;min-width:72px}
  .bo-sbtn{font-size:14px;padding:10px 8px}
  .lobby-card{padding:18px}
  .lobby-icon{font-size:40px}
  .lobby-name{font-size:18px}
  .kampf-modal-box{max-width:1200px}
  .postfach-box{max-width:900px}
  .auth-card{max-width:600px;padding:48px}
  .result-box{max-width:1000px}
}

/* ── TUTORIAL ───────────────────────────────────────── */
#tutorial-overlay{position:fixed;inset:0;z-index:10000;pointer-events:none}
.tutorial-backdrop{position:absolute;inset:0;pointer-events:auto}
.tutorial-spotlight{position:absolute;border-radius:10px;box-shadow:0 0 0 9999px rgba(0,0,0,.75);pointer-events:none;z-index:10001;animation:tutorial-pulse 2s infinite}
.tutorial-tooltip{position:absolute;background:#0a0a14;border:2px solid var(--purple);border-radius:12px;padding:16px 18px;max-width:280px;width:max-content;pointer-events:auto;z-index:10002;animation:slideIn .3s ease-out}
.tutorial-tooltip .tt-title{font-size:14px;font-weight:700;color:#c9a6ff;margin-bottom:6px}
.tutorial-tooltip .tt-desc{font-size:12px;color:#aaa;line-height:1.5;margin-bottom:12px}
.tutorial-tooltip .tt-step{font-size:10px;color:var(--muted);margin-bottom:10px}
.tutorial-tooltip .tt-actions{display:flex;gap:8px;justify-content:flex-end}
.tut-btn-next{padding:8px 16px;background:linear-gradient(135deg,#1a0a30,#3a1a60);border:1px solid #6040a0;border-radius:8px;color:#c9a6ff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}
.tut-btn-next:hover{border-color:#9b79d4;box-shadow:0 0 12px rgba(155,121,212,.3)}
.tut-btn-skip{padding:8px 12px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:11px;cursor:pointer;font-family:inherit;transition:color .15s}
.tut-btn-skip:hover{color:var(--text);border-color:var(--muted)}
@keyframes tutorial-pulse{0%,100%{box-shadow:0 0 0 9999px rgba(0,0,0,.75)}50%{box-shadow:0 0 0 9999px rgba(0,0,0,.7),0 0 20px 4px rgba(155,121,212,.4)}}
