/* ==================== ROOT VARIABLES ==================== */
:root {
    /* Basis-Farben */
    --hq-red: #8b0000;
    --hq-gold: #ffd700;
    --hq-dark: #0a0a0a;
    --slot-bg: rgba(15, 15, 15, 0.95);
    
    /* Status-Farben */
    --magic-blue: #00ccff;
    --curse-purple: #cc00ff;
    --injury-red: #ff3333;
    --buff-cyan: #00ffff;
    
    /* Item-Kategorien */
    --direct-green: #2ecc71;
    --scroll-orange: #ff8800;
    --artifact-gold: #ffcc00;
    --potion-blue: #00ccff;
    --spell-purple: #cc00ff;
    --elf-green: #00ff88;
    
    /* Slot-spezifische Farben */
    --slot-head: #4488ff;
    --slot-amulet: #ffaa00;
    --slot-weapon: #ff4444;
    --slot-off: #44ff44;
    --slot-ring: #00ffcc;
    --slot-body: #8888ff;
    --slot-body-extra: #88aaff;
    --slot-ranged: #ff88ff;
    --slot-shoes: #aa8866;
    --slot-free: #888888;
    
    /* Slot-Hintergrundbilder */
    --slot-bg-head: url('../images/equipment/head.png');
    --slot-bg-amulet: url('../images/equipment/amulet.png');
    --slot-bg-weapon: url('../images/equipment/weapon.png');
    --slot-bg-off: url('../images/equipment/off.png');
    --slot-bg-ring: url('../images/equipment/ring.png');
    --slot-bg-body: url('../images/equipment/body.png');
    --slot-bg-body-extra: url('../images/equipment/body-extra.png');
    --slot-bg-ranged: url('../images/equipment/ranged.png');
    --slot-bg-shoes: url('../images/equipment/shoes.png');
    --slot-bg-free: url('../images/equipment/free.png');
    --slot-bg-default: url('../images/equipment/default.png');
}

/* ==================== GRUNDLAYOUT ==================== */
body {
    background-color: var(--hq-dark);
    color: white;
    font-family: 'Georgia', serif;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100vh;
    overflow: hidden;
}

/* ==================== HEADER ==================== */
.header {
    width: 100%;
    background: #000;
    display: flex;
    justify-content: space-around;
    padding: 8px 0;
    border-bottom: 1px solid #333;
    z-index: 1000;
}

.stat {
    display: flex;
    align-items: center;
    gap: 4px;
}

.stat input {
    background: #222;
    color: var(--hq-gold);
    border: 1px solid #444;
    width: 45px;
    text-align: center;
    border-radius: 4px;
    font-weight: bold;
    font-size: 0.9rem;
}

/* ==================== NAVIGATION ==================== */
.hero-nav {
    width: 100%;
    background: #111;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 2px;
    padding: 5px;
    border-bottom: 2px solid var(--hq-gold);
    z-index: 1000;
    box-sizing: border-box;
}

.nav-btn {
    background: #222;
    border: 1px solid #555;
    color: #888;
    padding: 5px 4px;
    font-size: 0.55rem;
    border-radius: 4px;
    cursor: pointer;
    text-transform: uppercase;
}

.nav-btn.active {
    border-color: var(--hq-gold);
    color: var(--hq-gold);
    background: #331a00;
}


.btn-transfer {
    background: #2a2a2a;
    color: var(--hq-gold);
    border: 1px solid var(--hq-gold);
    font-size: 0.5rem;
    padding: 4px 6px;
    border-radius: 3px;
    cursor: pointer;
    font-weight: bold;
}

/* ==================== REDUZIERTE DECKKRAFT FÜR STARTSEITEN-CONTAINER ==================== */

/* Alle Ausrüstungs-Slots auf der Startseite */
#main-view .slot {
    opacity: 0.65; /* 0 = unsichtbar, 1 = volle Deckkraft */
}



/* ==================== VIEWPORT & PAGES ==================== */
#viewport {
    width: 100%;
    flex-grow: 1;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
}

#swipe-wrapper {
    display: flex;
    width: 200%;
    height: 100%;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.page {
    width: 50%;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
}

#main-view {
    width: 100%;
}

#inventory-view,
#magic-view {
    width: 100%;
    background: #0a0a0a;
    overflow-y: auto;
    padding: 15px;
    box-sizing: border-box;
}

#magic-view {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1500;
}

/* ==================== BACK BUTTON ==================== */
.back-btn {
    background: #444 !important;
    border-color: #888 !important;
    margin-bottom: 15px;
    padding: 8px !important;
    min-height: auto !important;
}

/* ==================== INVENTORY GRID SYSTEM ==================== */
.inv-section {
    margin-bottom: 20px;
}

.inv-title {
    font-size: 0.8rem;
    color: var(--hq-gold);
    border-bottom: 1px solid #444;
    margin-bottom: 10px;
    text-transform: uppercase;
    display: block;
}

.inv-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin: 10px 0;
}

/* ==================== CARD SLOT BASIS ==================== */
.card-slot {
    aspect-ratio: 3/4;
    background: #222;
    border: 1px solid #444;
    border-radius: 6px;
    padding: 8px;
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

/* Slot-Typ-spezifische Basis-Stile */
.scroll-slot,
.equipment-slot,
.potion-slot,
.backpack-slot,
.spell-slot,
.elf-special-slot,
.wizard-spell-slot {
    aspect-ratio: 3/4;
    border-radius: 8px;
    padding: 8px;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: all 0.2s;
    cursor: pointer;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* Gemeinsamer Overlay für alle Slots */
.card-slot::before,
.equipment-slot::before,
.potion-slot::before,
.scroll-slot::before,
.backpack-slot::before,
.spell-slot::before,
.elf-special-slot::before,
.wizard-spell-slot::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 8px;
    pointer-events: none;
    z-index: 1;
}

/* ==================== SLOT-PREVIEWS ==================== */
.equipment-preview,
.potion-preview,
.scroll-preview,
.backpack-preview,
.spell-preview {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    border-radius: 3px;
}

.equipment-preview.default,
.potion-preview.default,
.scroll-preview.default,
.backpack-preview.default,
.spell-preview.default {
    opacity: 0.3;
}

/* Default-Hintergründe */
.scroll-preview.default {
    background-image: url('../images/cards/cardbacks/rueckseite_spruchrolle.jpg');
}

.potion-preview.default {
    background-image: url('../images/cards/cardbacks/rueckseite_trank.jpg');
}

.spell-preview.default {
    background-image: url('../images/cards/cardbacks/gildenzauber_rueckseite.jpg');
}

.backpack-preview.default {
    background-image: url('../images/cards/cardbacks/schatzkarte_rueckseite.jpg');
}

/* ==================== SLOT-SPEZIFISCHE DEFAULT-HINTERGRÜNDE ==================== */
.equipment-slot[data-slot-index="0"] .equipment-preview.default {
    background-image: var(--slot-bg-head);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="1"] .equipment-preview.default {
    background-image: var(--slot-bg-amulet);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="2"] .equipment-preview.default {
    background-image: var(--slot-bg-weapon);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="3"] .equipment-preview.default {
    background-image: var(--slot-bg-off);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="4"] .equipment-preview.default,
.equipment-slot[data-slot-index="5"] .equipment-preview.default {
    background-image: var(--slot-bg-ring);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="6"] .equipment-preview.default {
    background-image: var(--slot-bg-body);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="7"] .equipment-preview.default {
    background-image: var(--slot-bg-body-extra);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="8"] .equipment-preview.default {
    background-image: var(--slot-bg-ranged);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="9"] .equipment-preview.default {
    background-image: var(--slot-bg-shoes);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

.equipment-slot[data-slot-index="10"] .equipment-preview.default,
.equipment-slot[data-slot-index="11"] .equipment-preview.default {
    background-image: var(--slot-bg-free);
    background-size: 70% auto;
    background-position: center 40%;
    background-repeat: no-repeat;
}

/* ==================== SLOT-LABELS ==================== */
.equipment-label,
.potion-label,
.scroll-label,
.backpack-label,
.spell-label,
.ability-name,
.spell-name {
    position: absolute;
    bottom: 2px;
    left: 0;
    width: 100%;
    font-size: 0.7rem;
    text-align: center;
    z-index: 2;
    background: rgba(0, 0, 0, 0.7);
    padding: 4px 0;
    text-transform: uppercase;
    font-weight: bold;
    pointer-events: none;
    border-radius: 0 0 4px 4px;
}

.equipment-label {
    color: var(--buff-cyan);
}

.potion-label {
    color: var(--magic-blue);
}

.scroll-label {
    color: var(--scroll-orange);
}

.spell-label {
    color: var(--buff-cyan);
}

.ability-name {
    color: #ffaa00;
}

.spell-name {
    color: #ffaa00;
}

/* ==================== SLOT-SELECTS ==================== */
.card-slot select,
.equipment-slot select,
.potion-slot select,
.scroll-slot select,
.backpack-slot select,
.spell-slot select,
.elf-special-slot select,
.wizard-spell-slot select {
    position: absolute;
    bottom: 35px;
    left: 5px;
    right: 5px;
    width: calc(100% - 10px);
    height: 40px;
    min-height: 40px;
    z-index: 3;
    background: rgba(0, 0, 0, 0.9);
    color: white;
    border: 1px solid #666;
    border-radius: 3px;
    font-size: 0.7rem;
    padding: 4px 2px;
    opacity: 0.95;
    cursor: pointer;
    text-align: center;
    text-align-last: center;
}

/* Slot-spezifische Rahmenfarben für Selects */
.equipment-slot select {
    border-color: var(--buff-cyan);
}

.potion-slot select {
    border-color: var(--magic-blue);
}

.scroll-slot select {
    border-color: var(--scroll-orange);
}

.spell-slot select {
    border-color: var(--buff-cyan);
}

/* ==================== SLOT-RAHMENFARBEN ==================== */
.equipment-slot[data-slot-index="0"] {
    border-color: var(--slot-head);
}

.equipment-slot[data-slot-index="1"] {
    border-color: var(--slot-amulet);
}

.equipment-slot[data-slot-index="2"] {
    border-color: var(--slot-weapon);
}

.equipment-slot[data-slot-index="3"] {
    border-color: var(--slot-off);
}

.equipment-slot[data-slot-index="4"],
.equipment-slot[data-slot-index="5"] {
    border-color: var(--slot-ring);
}

.equipment-slot[data-slot-index="6"] {
    border-color: var(--slot-body);
}

.equipment-slot[data-slot-index="7"] {
    border-color: var(--slot-body-extra);
}

.equipment-slot[data-slot-index="8"] {
    border-color: var(--slot-ranged);
}

.equipment-slot[data-slot-index="9"] {
    border-color: var(--slot-shoes);
}

.equipment-slot[data-slot-index="10"],
.equipment-slot[data-slot-index="11"] {
    border-color: var(--slot-free);
}

/* ==================== SPEZIAL-SLOTS ==================== */
.spell-slot,
.elf-special-slot,
.wizard-spell-slot {
    aspect-ratio: 2/3;
}

.spell-slot {
    border-color: var(--buff-cyan);
}

.elf-special-slot {
    border-color: var(--elf-green);
}

.wizard-spell-slot {
    border-color: #ffaa00;
}

/* ==================== SPEZIAL-STATUS-ELEMENTE ==================== */
.ability-status,
.spell-counter {
    position: relative;
    z-index: 2;
    background: rgba(0, 0, 0, 0.8);
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 12px;
    border: 1px solid currentColor;
    display: inline-block;
    align-self: flex-end;
    margin-bottom: auto;
}

.spell-counter {
    color: #ffaa00;
    font-size: 1.1rem;
}

.ability-status {
    color: #ffaa00;
    font-size: 0.7rem;
}

.spell-max {
    position: relative;
    z-index: 2;
    background: rgba(0, 0, 0, 0.6);
    color: #888;
    font-size: 0.6rem;
    padding: 1px 4px;
    border-radius: 8px;
    border: 1px solid #666;
    display: inline-block;
    align-self: flex-end;
    margin-top: 2px;
}

/* ==================== CHARACTER CONTAINER ==================== */
.char-container {
    position: relative;
    width: 100%;
    flex-grow: 1;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

/* ==================== SLOT BASIS-STYLES (nur Aussehen, keine Positionen) ==================== */
.slot {
    position: absolute;
    background: var(--slot-bg);
    border: 1px solid #555;
    border-radius: 4px;
    padding: 3px;
    width: 85px;
    /* transform kommt aus HTML */
}

.slot select {
    width: 100%;
    background: transparent;
    color: white;
    border: none;
    font-size: 0.65rem;
    outline: none;
    appearance: none;
    cursor: pointer;
}

.slot select.is-empty {
    color: #555 !important;
}

.slot .label {
    display: block;
    font-size: 0.45rem;
    color: var(--hq-gold);
    text-transform: uppercase;
    padding-left: 3px;
    font-weight: bold;
}

/* ==================== BUTTON OVERLAYS ==================== */
.btn-overlay {
    position: absolute;
    right: 10px;
    cursor: pointer;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
}

.info-btn {
    top: 10px;
    font-size: 1.5rem;
}

.bag-btn {
    top: 50px;
    width: 32px;
    height: 32px;
}

.bag-btn img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ==================== STATUS-BARS & STATUS-BOXES ==================== */
  .status-sidebar {
    position: absolute;
    transform: translate(-50%, -50%);
    width: 105px;
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.area-buffs {
    left: 70%;
    top: 12%;
}

.area-curses {
    left: 70%;
    bottom: 30%;
}

.area-injuries {
    left: 70%;
    bottom: 5%;
}

.status-box {
    width: 100px;
    height: 28px;
    margin: 1px auto;
    position: relative;
    background: var(--slot-bg);
    border: 1px solid #444;
    border-radius: 0 4px 4px 0;
    padding: 1px;
}

.status-sidebar select {
    width: 100%;
    height: 26px;
    background: rgba(15, 15, 15, 0.95);
    border: 1px solid #444;
    border-radius: 3px;
    color: #888;
    font-size: 0.6rem;
    padding: 2px 4px;
    cursor: pointer;
}

.area-buffs .status-box,
.area-buffs select {
    border-color: #006666;
}

.area-curses .status-box,
.area-curses select {
    border-color: #660066;
}

.area-injuries .status-box,
.area-injuries select {
    border-color: #660000;
}

/* ==================== CONDITION BUTTONS ==================== */
.condition-buttons {
    display: flex;
    gap: 3px;
    margin-top: 5px;
    justify-content: center;
    flex-wrap: wrap;
}

.cond-btn {
    min-width: 20px;
    height: 20px;
    font-size: 0.55rem;
    font-weight: bold;
    background: #222;
    border: 1px solid #555;
    color: #888;
    border-radius: 3px;
    cursor: pointer;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    text-transform: uppercase;
}

.cond-btn.active[data-state="oiled"],
.cond-btn.active[data-state="newString"] {
    background: #006600;
    border-color: #00ff00;
    color: white;
    box-shadow: 0 0 6px #00ff00;
}

.cond-btn.active[data-state="rusty"] {
    background: #663300;
    border-color: #ff9900;
    color: white;
    box-shadow: 0 0 6px #ff9900;
}

.cond-btn.active[data-state="notched"],
.cond-btn.active[data-state="oldString"] {
    background: #660000;
    border-color: #ff3333;
    color: white;
    box-shadow: 0 0 6px #ff3333;
}

.cond-btn.active[data-state="damaged"] {
    background: #330066;
    border-color: #cc00ff;
    color: white;
    box-shadow: 0 0 6px #cc00ff;
}

/* ==================== ACTION AREA ==================== */
.action-area {
    width: 100%;
    background: #151515;
    border-top: 3px solid var(--hq-red);
    padding: 10px;
    box-sizing: border-box;
}

.action-grid,
.probe-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
    margin-bottom: 8px;
}

.roll-btn {
    background: linear-gradient(to bottom, var(--hq-red), #500);
    color: white;
    border: 1px solid var(--hq-gold);
    padding: 8px 2px;
    font-size: 0.7rem;
    font-weight: bold;
    border-radius: 5px;
    cursor: pointer;
    text-transform: uppercase;
    width: 100%;
    min-height: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    transition: all 0.2s;
}

.magic-btn {
    background: #003344;
    color: #00ccff;
    margin-bottom: 8px;
}

.attack-btn {
    background: linear-gradient(to bottom, var(--hq-red), #500);
}

.ranged-btn {
    background: linear-gradient(to bottom, #006600, #003300);
}

.defend-btn {
    background: linear-gradient(to bottom, #003366, #001133);
}

.magic-defend-btn {
    background: linear-gradient(to bottom, #660066, #330033);
}

.probe-btn {
    background: linear-gradient(to bottom, #444, #222);
    font-size: 0.52rem;
}

.probe-btn[onclick*="probe-jump"] {
    background: linear-gradient(to bottom, #600, #300);
}

.dice-indicator {
    font-size: 0.6rem;
    padding: 3px 6px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    font-weight: bold;
    white-space: nowrap;
    margin-top: 2px;
}

/* ==================== DICE DISPLAY ==================== */
.dice-display {
    background: #000;
    min-height: 85px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 5px 0;
    border: 1px inset #333;
    flex-wrap: wrap;
    text-align: center;
}

/* ==================== DICE CUP ==================== */
.dice-cup {
    position: fixed; /* statt absolute */
    top: 40%;
    left: 50%;
    width: 120px;
    height: 140px;
    background: url('/images/cards/misc/Wuerfelbecher.png') no-repeat center center, 
                linear-gradient(145deg, #8b4513, #5a2e0e);
    background-size: contain, cover;
    display: none;
    z-index: 9999;
    transform: translateX(-50%);
}


@keyframes vigorousShake {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    25% {
        transform: translate(-55%, -45%) rotate(8deg);
    }
    75% {
        transform: translate(-45%, -55%) rotate(-8deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
}

/* ==================== DICE OVERLAY ==================== */
.dice-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    z-index: 10000;
    display: none;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(5px);
}

.dice-overlay-content {
    background: #1a1a1a;
    border: 3px solid var(--hq-gold);
    border-radius: 20px;
    padding: 30px;
    max-width: 80%;
    max-height: 80%;
    overflow-y: auto;
    box-shadow: 0 0 50px rgba(255, 215, 0, 0.5);
    position: relative;
    animation: fadeIn 0.3s ease-out;
}

.dice-overlay-close {
    position: absolute;
    top: 10px;
    right: 10px;
    color: var(--hq-gold);
    font-size: 1.2rem;
    cursor: pointer;
    z-index: 10;
}

.dice-overlay .dice-display {
    background: transparent;
    border: none;
    min-height: auto;
    margin: 0;
    padding: 20px;
}

/* ==================== DICE STYLES ==================== */
.hq-die {
    width: 42px;
    height: 42px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
    font-weight: bold;
}

.die-white {
    background: #f0f0f0;
    color: #111;
}

.die-blue {
    background: #1e90ff;
    color: white;
}

.die-green {
    background: #228b22;
    color: white;
}

.die-black {
    background: #222;
    color: #f0f0f0;
    border: 1px solid #444;
}

.die-purple {
    background: #8a2be2;
    color: white;
}

.die-orange {
    background: #ff8c00;
    color: #111;
}

.die-yellow {
    background: #ffd700;
    color: #111;
}

.die-w6 {
    background: #fff;
    color: #111;
    border: 2px solid #666;
}

.die-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 3px;
    margin: 0 1px;
    font-size: 0.5rem;
    line-height: 16px;
    text-align: center;
    vertical-align: middle;
}

.die-icon.white {
    background-color: #f0f0f0;
    color: #333;
}

.die-icon.blue {
    background-color: #0066cc;
    color: white;
}

.die-icon.green {
    background-color: #00aa00;
    color: white;
}

.die-icon.black {
    background-color: #333333;
    color: white;
}

.die-icon.purple {
    background-color: #8800cc;
    color: white;
}

.die-icon.orange {
    background-color: #cc6600;
    color: white;
}

.die-icon.yellow {
    background-color: #cccc00;
    color: black;
}

.die-icon.w6 {
    background-color: white;
    color: black;
}

/* Bonus-Würfel Markierungen */
.hq-die.barbarian-bonus,
.hq-die.elf-bonus {
    position: relative;
    border-width: 2px !important;
    border-style: solid !important;
}

.hq-die.barbarian-bonus {
    border-color: var(--hq-gold) !important;
    box-shadow: 0 0 8px var(--hq-gold) !important;
}

.hq-die.elf-bonus {
    border-color: #00ff88 !important;
    box-shadow: 0 0 8px #00ff88 !important;
}

.hq-die.barbarian-bonus::after,
.hq-die.elf-bonus::after {
    content: '';
    position: absolute;
    top: -8px;
    right: -8px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.5rem;
    font-weight: bold;
}

.hq-die.barbarian-bonus::after {
    content: "B";
    background: var(--hq-gold);
    color: var(--hq-dark);
}

.hq-die.elf-bonus::after {
    content: "E";
    background: #00ff88;
    color: var(--hq-dark);
}

/* ==================== TOOLTIPS ==================== */
.scroll-tooltip,
.status-tooltip {
    position: fixed;
    background: rgba(20, 10, 0, 0.98);
    border: 2px solid var(--scroll-orange);
    border-radius: 8px;
    padding: 12px;
    max-width: 300px;
    z-index: 10000;
    display: none;
    font-size: 0.75rem;
    line-height: 1.4;
    box-shadow: 0 0 20px rgba(255, 136, 0, 0.7);
    pointer-events: none;
}

.status-tooltip {
    background: rgba(20, 20, 30, 0.98);
    border-color: #666;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(10px);
}

.scroll-tooltip h4 {
    color: var(--scroll-orange);
    margin: 0 0 8px 0;
    border-bottom: 1px solid #666;
    padding-bottom: 5px;
    font-size: 0.9rem;
}

.status-tooltip strong {
    color: var(--hq-gold);
}

/* Mobile Tooltip-Positionierung */
@media (max-width: 600px) {
    .scroll-tooltip,
    .status-tooltip {
        max-width: 90vw;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
    }
}


/* ==================== MOVE-VALUE ==================== */
.move-value {
    font-size: 1rem;
    font-weight: bold;
    color: var(--hq-gold);
    cursor: pointer;
}

/* ==================== ANIMATIONS ==================== */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes glow {
    0% {
        box-shadow: 0 0 5px currentColor;
    }
    50% {
        box-shadow: 0 0 15px currentColor;
    }
    100% {
        box-shadow: 0 0 5px currentColor;
    }
}

@keyframes consumePulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(0.9);
        box-shadow: 0 0 20px #ff0000;
    }
    100% {
        transform: scale(1);
    }
}

@keyframes magicPulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(255, 215, 0, 0);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 0 20px rgba(255, 215, 0, 0.8);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(255, 215, 0, 0);
    }
}

@keyframes spentPulse {
    0% {
        box-shadow: 0 0 5px #00ff00;
    }
    50% {
        box-shadow: 0 0 15px #00ff00;
    }
    100% {
        box-shadow: 0 0 5px #00ff00;
    }
}

/* ==================== ANIMATIONS-KLASSEN ==================== */
.pulse-effect {
    animation: pulse 0.5s ease-in-out;
}

.glow-effect {
    animation: glow 1.5s infinite;
}

.double-tap {
    animation: consumePulse 0.5s;
}

.elf-special-slot.double-tap,
.wizard-spell-slot.double-tap {
    animation: magicPulse 0.5s;
}

/* ==================== STATE CLASSES ==================== */
.blocked {
    opacity: 0.2;
    pointer-events: none;
}

.is-empty {
    color: #555 !important;
}

.spell-slot[data-spent="true"],
.potion-slot[data-consumed="true"] {
    opacity: 0.5;
    filter: grayscale(80%);
}

.spell-slot[data-spent="true"]::after {
    content: "✓";
    position: absolute;
    top: 5px;
    right: 5px;
    background: rgba(0, 255, 0, 0.3);
    color: #00ff00;
    font-size: 1.2rem;
    font-weight: bold;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #00ff00;
    box-shadow: 0 0 10px #00ff00;
    z-index: 10;
    animation: spentPulse 2s infinite;
}

/* ==================== DEBUG BUTTONS ==================== */
.debug-btn {
    position: fixed;
    bottom: 10px;
    z-index: 9999;
    background: #ff4444;
    color: white;
    border: none;
    padding: 5px 10px;
    border-radius: 3px;
    font-size: 0.8rem;
}

.debug-btn.categories {
    right: 10px;
}

.debug-btn.dice {
    left: 10px;
}

/* ==================== TEMP MESSAGE ==================== */
#temp-message-overlay {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.8);
    padding: 15px 25px;
    border-radius: 10px;
    border-width: 2px;
    border-style: solid;
    font-weight: bold;
    font-size: 1rem;
    text-align: center;
    z-index: 9999;
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
    animation: fadeInOut 2.5s ease-in-out;
}

@keyframes fadeInOut {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.8);
    }
    15% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    85% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.8);
    }
}

/* ==================== TOUCH-OPTIMIERUNGEN ==================== */
@media (hover: none) and (pointer: coarse) {
    select {
        min-height: 40px;
        font-size: 16px !important;
    }
    
    .roll-btn,
    .nav-btn,
    .btn-transfer,
    .cond-btn,
    .card-slot,
    .spell-slot,
    .elf-special-slot,
    .wizard-spell-slot {
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }
    
    #inventory-view,
    #magic-view {
        -webkit-overflow-scrolling: touch;
    }
    
    .char-container select {
        min-height: 40px;
        padding: 8px 5px;
    }
    
    .card-slot,
    .spell-slot,
    .elf-special-slot,
    .wizard-spell-slot {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        user-select: none;
    }
    
    select:focus {
        outline: 2px solid var(--hq-gold);
        outline-offset: 2px;
    }
}

/* Spezielle Regel für sehr kleine Bildschirme – Schrift etwas kleiner, damit mehr Text passt */
@media (hover: none) and (pointer: coarse) and (max-width: 400px) {
    select {
        font-size: 14px !important;
    }
}

/* ==================== EINSTELLUNGEN-MENÜ ==================== */
.settings-menu {
    position: relative;
    margin-left: auto;
    display: flex;
    align-items: center;
}

.settings-toggle {
    background: transparent;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--hq-gold);
    padding: 0 8px;
    line-height: 1;
}

.settings-toggle:hover {
    transform: scale(1.1);
}

.settings-dropdown {
    display: none !important;
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--slot-bg);
    border: 1px solid var(--hq-gold);
    border-radius: 8px;
    padding: 15px;
    min-width: 220px;
    z-index: 1100;
    box-shadow: 0 4px 15px rgba(0,0,0,0.5);
}

.settings-dropdown.show {
    display: block !important;
}

.settings-section {
    margin-bottom: 15px;
    border-bottom: 1px solid #444;
    padding-bottom: 10px;
}

.settings-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.settings-label {
    display: block;
    font-size: 0.7rem;
    color: var(--hq-gold);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.settings-dropdown select {
    width: 100%;
    background: #222;
    color: white;
    border: 1px solid var(--hq-gold);
    border-radius: 4px;
    padding: 6px;
    font-size: 0.75rem;
}

.settings-dropdown .btn-transfer {
    width: 100%;
    margin: 3px 0;
    font-size: 0.7rem;
    background: #2a2a2a;
}

/* ==================== SUCH-OVERLAY – ANPASSUNG AN HAUPTDESIGN ==================== */
#search-view {
    font-family: 'Georgia', serif; /* wie Haupt-App */
    background: rgba(10, 10, 10, 0.95) !important; /* hq-dark */
    backdrop-filter: blur(5px);
}

#search-view .search-container {
    background: #1a1a1a !important; /* dunkler Hintergrund */
    border: 3px solid var(--hq-red) !important;
    border-radius: 10px;
    box-shadow: 0 0 30px rgba(139, 0, 0, 0.5);
    color: #e0e0e0;
    padding: 20px;
}

#search-view h1 {
    font-family: 'Georgia', serif;
    color: var(--hq-gold) !important;
    border-bottom: 2px solid var(--hq-gold);
    text-transform: uppercase;
    font-size: 1.5rem;
    margin-top: 0;
}

#search-view button {
    font-family: 'Georgia', serif;
    background: linear-gradient(to bottom, var(--hq-red), #500);
    color: white;
    border: 1px solid var(--hq-gold);
    border-radius: 5px;
    padding: 8px 12px;
    font-size: 0.8rem;
    text-transform: uppercase;
    cursor: pointer;
    transition: 0.2s;
}

#search-view button:hover {
    background: #500;
    transform: scale(1.02);
}

#search-view select {
    background: #222;
    color: white;
    border: 1px solid var(--hq-gold);
    border-radius: 4px;
    padding: 8px;
    font-size: 0.8rem;
}

#search-view input[type="number"] {
    background: #222;
    color: var(--hq-gold);
    border: 1px solid var(--hq-gold);
    border-radius: 4px;
    padding: 8px;
    font-size: 1.2rem;
    width: 80px;
    text-align: center;
}

#search-view #search-result-box {
    background: #111;
    border: 1px solid #444;
    border-radius: 8px;
    padding: 15px;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #ccc;
    min-height: 120px;
}

#search-view #search-intro {
    color: var(--hq-gold);
    font-style: italic;
    margin-bottom: 8px;
    display: block;
}

#search-view .quick-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 15px;
    border-top: 1px solid #444;
    padding-top: 15px;
}

#search-view .quick-nav button {
    background: #333;
    border-color: #666;
    font-size: 0.6rem;
    padding: 4px 6px;
    flex: 1 0 auto;
}

#search-view .quick-nav button.home {
    background: #222;
    border-color: var(--hq-gold);
}

#search-view #search-text img {
    border: 2px solid var(--hq-gold);
    border-radius: 8px;
    max-width: 100%;
    max-height: 150px;
    display: block;
    margin: 0 auto 10px;
}
