/* --- Imbuements Component Styles --- */
#app.container {
    background-color: var(--bg-panel);
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin-top: 1rem;
    padding: 2rem;
}

        /* Tabs */
        .tabs {
            display: flex;
            padding: 5px;
            background-color: var(--bg-dark);
            border-bottom: 2px solid var(--border-color);
        }

        .tab-btn {
            flex-grow: 1;
            padding: 10px;
            background-color: var(--bg-panel);
            color: var(--text-muted);
            border: 1px solid var(--border-color);
            cursor: pointer;
            transition: background 0.2s;
            text-align: center;
            font-weight: bold;
        }

        .tab-btn:hover {
            background-color: var(--color-highlight);
        }

        .tab-btn.active {
            background-color: var(--accent-gold);
            color: white;
            border-color: var(--accent-gold);
        }

        /* --- Main Content --- */
        .content {
            padding: 15px;
            display: flex;
            flex-direction: column;
            gap: 15px;
        }

        /* Level Selector */
        .level-selector {
            display: flex;
            gap: 5px;
            justify-content: center;
        }

        .level-btn {
            padding: 8px 15px;
            border: 2px solid var(--border-color);
            background-color: var(--color-input-bg);
            color: var(--text-muted);
            cursor: pointer;
            font-weight: bold;
            border-radius: 4px;
            transition: all 0.2s;
        }

        .level-btn.active {
            background-color: var(--accent-purple);
            color: white;
            border-color: var(--accent-purple);
            box-shadow: 0 0 8px var(--accent-purple);
        }

        /* Imbuement Grid */
        #imbuement-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
            gap: 10px;
        }

        .imbuement-card {
            background-color: var(--color-input-bg);
            border: 1px solid var(--border-color);
            padding: 10px;
            text-align: center;
            cursor: pointer;
            border-radius: 4px;
            transition: all 0.2s;
            position: relative;
            user-select: none;
        }

        .imbuement-card:hover {
            border-color: var(--accent-purple);
            background-color: var(--color-highlight);
        }

        .imbuement-card.selected {
            border-color: var(--accent-gold);
            box-shadow: 0 0 10px var(--accent-gold);
        }

        .imbuement-card img {
            width: 40px;
            height: 40px;
            margin-bottom: 5px;
            image-rendering: pixelated;
        }

        .imbuement-card span {
            display: block;
            font-size: 0.8em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .imbuement-dots {
            position: absolute;
            top: 5px;
            right: 5px;
            display: flex;
            gap: 3px;
        }

        .imbuement-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background-color: var(--text-muted);
            border: 1px solid var(--bg-dark);
        }

        /* Details Panel */
        #detail-panel {
            border: 2px solid var(--border-color);
            padding: 15px;
            background-color: var(--bg-dark);
            border-radius: 4px;
            display: none; /* Se muestra con JS */
        }

        #detail-panel h3 {
            font-size: 1.2em;
            margin-bottom: 5px;
            color: var(--accent-purple);
        }

        #detail-description {
            font-style: italic;
            margin-bottom: 15px;
            padding: 5px;
            border-left: 3px solid var(--accent-gold);
            background-color: var(--color-highlight);
        }

        /* Ingredients */
        .ingredients-section {
            display: flex;
            gap: 10px;
            margin-bottom: 15px;
            flex-wrap: wrap;
            align-items: center;
        }

        .material-chip {
            display: flex;
            align-items: center;
            background-color: var(--color-input-bg);
            border: 1px solid var(--border-color);
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 0.9em;
            gap: 5px;
        }

        .material-chip img {
            width: 24px;
            height: 24px;
            image-rendering: pixelated;
        }

        .material-chip span {
            font-weight: bold;
            color: var(--color-gold);
        }

        .fee-display {
            display: flex;
            align-items: center;
            margin-left: auto;
            gap: 10px;
        }

        .fee-icon {
            width: 40px;
            height: 40px;
            background-color: var(--color-fee);
            border: 2px solid var(--border-color);
            border-radius: 4px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1.5em;
            font-weight: bold;
        }

        .fee-text {
            font-size: 1.1em;
            color: var(--color-fee);
            font-weight: bold;
        }

        /* Cost Table */
        .cost-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.9em;
        }

        .cost-table th, .cost-table td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px dashed var(--border-color);
        }

        .cost-table th {
            background-color: var(--color-highlight);
            color: var(--text-main);
            font-weight: normal;
        }

        .cost-table tr:last-child td {
            border-bottom: none;
            font-size: 1.1em;
            font-weight: bold;
        }

        .cost-table input[type="number"] {
            width: 80px;
            padding: 4px;
            background-color: var(--color-input-bg);
            color: var(--color-gold);
            border: 1px solid var(--border-color);
            border-radius: 3px;
            text-align: right;
        }

        .cost-table .total-gold {
            color: var(--color-gold);
            text-align: right;
            font-weight: bold;
        }

        .cost-table .grand-total {
            color: var(--accent-gold);
            font-size: 1.2em;
        }
        
        .cost-table .gold-token-quantity {
            color: var(--accent-purple);
        }

        /* --- Footer --- */
        .footer {
            padding: 10px;
            text-align: center;
            font-size: 0.75em;
            color: var(--text-muted);
            border-top: 1px solid var(--border-color);
        }

        /* --- Accessibility & Fallback --- */
        .visually-hidden {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border-width: 0;
        }

        img[src$="/missing.png"],
        .fee-icon:empty {
            background-color: #ff0000; /* Fallback visual for missing image */
        }
        
        /* Tablet/Desktop adjustments */
        @media (min-width: 600px) {
            .content {
                padding: 20px;
            }
            
            #imbuement-grid {
                grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
            }
        }

        /* Icono + nombre en la celda de material */
        .cell-mat {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        }
        .cell-mat__icon {
        width: 22px;
        height: 22px;
        object-fit: contain;
        border-radius: 4px;
        /* opcional: marco suave para dark mode */
        box-shadow: 0 0 0 1px rgba(255,255,255,0.06);
        }
        .cell-mat__name { line-height: 1.2; }

