/* ==========================================================================
   RUNIC THEME: Void Reforged
   Starless black glass, dim violet halos, silent depth, and the edge of unmaking.
   ========================================================================= */

[data-theme="void"] {
    /* Core hue system */
    --hue-primary: 272;
    --hue-accent: 308;
    --hue-gm: 14;
    --hue-danger: 350;
    --hue-warning: 34;
    --hue-success: 156;
    --hue-toxicity: 116;
    --hue-neutral: 248;

    --sat-primary: 58%;
    --lit-primary: 48%;
    --lit-primary-hover: 54%;

    --sat-accent: 74%;
    --lit-accent: 58%;
    --lit-accent-hover: 64%;

    --sat-gm: 62%;
    --lit-gm: 56%;
    --lit-gm-text: 94%;

    --sat-danger: 64%;
    --lit-danger: 52%;
    --lit-danger-hover: 58%;

    --sat-warning: 82%;
    --lit-warning: 58%;

    --sat-success: 38%;
    --lit-success: 40%;

    --sat-toxicity: 48%;
    --lit-toxicity: 52%;

    --lightness-bg: 2%;

    /* Form and timing */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-2xl: 30px;

    --font-sans: 'Cormorant Garamond', 'Libre Baskerville', 'Georgia', serif;
    --font-mono: 'IBM Plex Mono', 'Consolas', monospace;

    --duration-75: 100ms;
    --duration-150: 190ms;
    --duration-250: 320ms;
    --duration-300: 420ms;
    --duration-400: 760ms;

    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* Identity */
    --void-black: hsl(252 30% 2%);
    --null-obsidian: hsl(250 24% 5%);
    --shade-glass: hsl(254 18% 10%);
    --event-horizon: hsl(266 24% 14%);
    --dusk-violet: hsl(272 38% 34%);
    --amethyst-fog: hsl(278 38% 64%);
    --magenta-haze: hsl(308 62% 58%);
    --ember-glyph: hsl(14 74% 58%);
    --ash-lilac: hsl(268 18% 74%);
    --pale-void: hsl(284 12% 90%);
    --midnight-plum: hsl(294 22% 18%);
    --bone-amber: hsl(34 50% 66%);

    /* Surfaces */
    --bg-page: hsl(252 28% 3%);
    --bg-primary: hsl(250 24% 5%);
    --bg-secondary: hsl(252 20% 8% / 0.92);
    --bg-tertiary: hsl(254 18% 12% / 0.96);
    --bg-card: hsl(252 20% 9% / 0.94);
    --bg-hover: hsl(268 28% 16% / 0.58);
    --bg-input: hsl(252 18% 8%);

    --surface-elevated: hsl(254 18% 14%);
    --surface-overlay: hsl(252 22% 12% / 0.98);
    --surface-panel: hsl(252 18% 11% / 0.96);

    /* Text */
    --text-primary: hsl(282 16% 90%);
    --text-secondary: hsl(270 18% 74%);
    --text-label: hsl(278 48% 70%);
    --text-light: hsl(286 24% 98%);
    --text-muted: hsl(266 12% 58% / 0.82);

    /* Borders and shadows */
    --border-color: hsl(272 36% 42% / 0.28);
    --border-subtle: hsl(260 18% 38% / 0.18);
    --border-strong: hsl(308 62% 58% / 0.64);

    --shadow-glow-primary:
        0 16px 34px hsl(252 38% 2% / 0.58),
        0 0 28px hsl(272 58% 48% / 0.12);
    --shadow-glow-accent:
        0 12px 26px hsl(308 62% 58% / 0.18);
    --shadow-glow-danger:
        0 10px 22px hsl(350 58% 54% / 0.16);
    --shadow-glow-gold:
        0 0 20px hsl(34 64% 60% / 0.14);

    /* Icons */
    --icon-color: hsl(278 42% 72%);
    --icon-filter: brightness(0) saturate(100%) invert(82%) sepia(16%)
        saturate(902%) hue-rotate(225deg) brightness(98%) contrast(89%);

    /* Focus and tooltip */
    --color-focus-ring: hsl(308 62% 58% / 0.24);

    --color-tooltip-bg: hsl(252 22% 10% / 0.98);
    --color-tooltip-highlight: hsl(308 70% 66%);
    --color-tooltip-effect-bg: hsl(272 58% 48% / 0.1);
    --color-tooltip-text: hsl(282 16% 90%);
    --color-tooltip-label: hsl(278 34% 74%);
    --color-tooltip-muted: hsl(266 12% 60%);
    --color-tooltip-dim: hsl(262 10% 48%);
    --color-tooltip-pos: hsl(156 38% 56%);
    --color-tooltip-neg: hsl(350 62% 58%);
    --color-tooltip-separator: hsl(272 30% 40% / 0.34);
    --color-tooltip-section-bg: hsl(254 18% 14% / 0.88);

    /* Quality colors */
    --quality-0-color1: rgb(92, 84, 108);
    --quality-0-color2: rgb(54, 48, 66);
    --quality-1-color1: rgb(220, 210, 236);
    --quality-1-color2: rgb(166, 152, 192);
    --quality-2-color1: rgb(120, 202, 170);
    --quality-2-color2: rgb(76, 150, 126);
    --quality-3-color1: rgb(122, 132, 226);
    --quality-3-color2: rgb(82, 92, 178);
    --quality-4-color1: rgb(190, 112, 240);
    --quality-4-color2: rgb(142, 68, 204);
    --quality-5-color1: rgb(238, 178, 92);
    --quality-5-color2: rgb(194, 124, 38);
    --quality-6-color1: rgb(216, 78, 104);
    --quality-6-color2: rgb(158, 42, 70);
    --quality-7-color1: rgb(136, 214, 240);
    --quality-7-color2: rgb(194, 108, 246);

    /* Spell / element system */
    --element-fire-bg: hsl(350 20% 16% / 0.82);
    --element-fire-border: hsl(350 42% 52% / 0.58);
    --element-fire-hover: hsl(350 24% 20% / 0.92);
    --element-fire-glow: hsl(350 52% 58% / 0.16);

    --element-water-bg: hsl(230 24% 16% / 0.82);
    --element-water-border: hsl(230 34% 56% / 0.56);
    --element-water-hover: hsl(230 28% 20% / 0.92);
    --element-water-glow: hsl(230 40% 62% / 0.16);

    --element-earth-bg: hsl(34 16% 16% / 0.82);
    --element-earth-border: hsl(34 28% 46% / 0.54);
    --element-earth-hover: hsl(34 20% 20% / 0.92);
    --element-earth-glow: hsl(34 34% 56% / 0.14);

    --element-wind-bg: hsl(252 18% 16% / 0.8);
    --element-wind-border: hsl(272 24% 52% / 0.52);
    --element-wind-hover: hsl(252 22% 20% / 0.9);
    --element-wind-glow: hsl(272 30% 58% / 0.14);

    --element-light-bg: hsl(40 26% 18% / 0.82);
    --element-light-border: hsl(34 54% 58% / 0.6);
    --element-light-hover: hsl(40 30% 22% / 0.92);
    --element-light-glow: hsl(34 62% 64% / 0.18);

    --element-shadow-bg: hsl(278 24% 16% / 0.84);
    --element-shadow-border: hsl(278 42% 56% / 0.58);
    --element-shadow-hover: hsl(278 28% 20% / 0.94);
    --element-shadow-glow: hsl(278 46% 62% / 0.18);

    --element-death-bg: hsl(320 18% 16% / 0.82);
    --element-death-border: hsl(320 34% 52% / 0.56);
    --element-death-hover: hsl(320 22% 20% / 0.92);
    --element-death-glow: hsl(320 40% 58% / 0.16);

    --element-life-bg: hsl(156 16% 16% / 0.82);
    --element-life-border: hsl(156 28% 48% / 0.54);
    --element-life-hover: hsl(156 20% 20% / 0.92);
    --element-life-glow: hsl(156 32% 54% / 0.16);

    --element-arcane-bg: hsl(286 28% 16% / 0.84);
    --element-arcane-border: hsl(286 46% 58% / 0.6);
    --element-arcane-hover: hsl(286 32% 20% / 0.94);
    --element-arcane-glow: hsl(286 52% 64% / 0.18);

    --element-mind-bg: hsl(244 20% 16% / 0.82);
    --element-mind-border: hsl(244 30% 54% / 0.56);
    --element-mind-hover: hsl(244 24% 20% / 0.92);
    --element-mind-glow: hsl(244 36% 60% / 0.16);

    --element-physical-bg: hsl(254 14% 16% / 0.84);
    --element-physical-border: hsl(254 20% 42% / 0.48);
    --element-physical-hover: hsl(254 18% 20% / 0.94);
    --element-physical-glow: hsl(254 26% 54% / 0.14);

    --spell-temp-bg: hsl(254 20% 14%);
    --spell-temp-border: hsl(278 36% 52% / 0.74);
    --spell-temp-hover-bg: hsl(258 24% 18%);
    --spell-temp-hover-glow: hsl(308 62% 58% / 0.14);
    --spell-temp-badge-bg: hsl(286 48% 48%);
    --spell-temp-header-bg: hsl(256 18% 16%);
    --spell-temp-header-hover-bg: hsl(258 20% 20%);
    --spell-tile-hover-bg: hsl(258 24% 18%);

    /* Inventory / currency / buffs */
    --item-tile-base: hsl(254 18% 14%);
    --item-tile-border: hsl(272 22% 40% / 0.48);
    --item-tile-add-bg: hsl(252 18% 12%);
    --item-tile-add-border: hsl(260 16% 38% / 0.42);
    --item-tile-add-hover: hsl(256 22% 16%);
    --item-tile-add-border-hover: hsl(308 62% 58% / 0.68);

    --weight-display-bg: hsl(252 18% 12%);
    --weight-ok-color: hsl(156 38% 56%);
    --weight-warn-color: hsl(34 64% 60%);
    --weight-crit-color: hsl(350 62% 58%);
    --weight-bar-track-bg: hsl(250 12% 20%);

    --currency-tile-bg: hsl(254 18% 14%);
    --currency-tile-border: hsl(272 22% 40% / 0.48);
    --currency-tile-hover-bg: hsl(256 22% 16%);
    --currency-tile-hover-shadow: hsl(308 62% 58% / 0.12);
    --currency-quantity-bg: hsl(256 18% 20%);
    --currency-add-bg: hsl(252 18% 12%);
    --currency-add-border: hsl(260 16% 38% / 0.42);
    --currency-add-hover-bg: hsl(256 22% 16%);
    --currency-add-hover-border: hsl(308 62% 58% / 0.68);

    --color-buff-tile-bg: hsl(156 16% 16%);
    --color-buff-tile-border: hsl(156 28% 48% / 0.5);
    --color-buff-tile-hover: hsl(156 20% 20%);
    --color-buff-tile-glow: hsl(156 32% 54% / 0.12);
    --color-debuff-tile-bg: hsl(350 16% 16%);
    --color-debuff-tile-border: hsl(350 32% 50% / 0.52);
    --color-debuff-tile-hover: hsl(350 20% 20%);
    --color-debuff-tile-glow: hsl(350 38% 56% / 0.12);
    --color-neutral-tile-bg: hsl(252 16% 16%);
    --color-neutral-tile-border: hsl(258 18% 40% / 0.44);
    --color-neutral-tile-hover: hsl(256 20% 20%);
    --color-neutral-tile-glow: hsl(278 24% 56% / 0.1);
    --color-buff-indicator: hsl(156 38% 56%);
    --color-debuff-indicator: hsl(350 62% 58%);

    /* Common status colors */
    --color-heal: hsl(156 38% 56%);
    --color-gold: hsl(34 64% 60%);
    --color-amber: hsl(28 72% 58%);
    --color-amber-ui: hsl(28 72% 58%);
    --color-crit: hsl(350 62% 58%);
    --border-gold: hsl(34 54% 58% / 0.4);

    /* Overlays */
    --overlay-heavy: hsl(252 30% 2% / 0.84);
    --overlay-dark: hsl(252 22% 6% / 0.58);
    --overlay-medium: hsl(252 18% 8% / 0.32);
    --overlay-light: hsl(256 14% 10% / 0.14);
    --overlay-subtle: hsl(258 12% 12% / 0.08);
}

/* ==========================================================================
   Animations
   ========================================================================= */

@keyframes voidPulse {
    0%, 100% {
        box-shadow:
            0 0 0 1px hsl(272 34% 38% / 0.18),
            0 14px 30px hsl(252 38% 2% / 0.48);
    }
    50% {
        box-shadow:
            0 0 0 1px hsl(308 62% 58% / 0.32),
            0 18px 36px hsl(252 38% 2% / 0.56),
            0 0 26px hsl(272 58% 48% / 0.14);
    }
}

@keyframes horizonBreathe {
    0%, 100% { opacity: 0.12; transform: scale(1); }
    50% { opacity: 0.2; transform: scale(1.06); }
}

@keyframes starDrift {
    0% { background-position: 0 0, 0 0, 0 0; }
    100% { background-position: 120px 60px, -140px 90px, 180px -120px; }
}

/* ==========================================================================
   Global Atmosphere
   ========================================================================= */

[data-theme="void"] body,
[data-theme="void"] .page-content,
[data-theme="void"] .main-content,
[data-theme="void"] .content-wrapper {
    background:
        radial-gradient(circle at 50% 8%, hsl(278 38% 18% / 0.18), transparent 22%),
        radial-gradient(circle at 18% 18%, hsl(308 42% 18% / 0.12), transparent 18%),
        linear-gradient(180deg, hsl(252 30% 4%), hsl(252 28% 3%) 44%, hsl(248 34% 2%) 100%);
    color: var(--text-primary);
}

[data-theme="void"] body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 14% 26%, hsl(278 42% 72% / 0.08) 0 1px, transparent 2px),
        radial-gradient(circle at 74% 20%, hsl(308 62% 58% / 0.06) 0 1px, transparent 2px),
        radial-gradient(circle at 62% 72%, hsl(34 50% 66% / 0.04) 0 1.5px, transparent 3px);
    background-size: 260px 260px, 320px 320px, 420px 420px;
    animation: starDrift 40s linear infinite;
    opacity: 0.52;
    z-index: 0;
}

[data-theme="void"] body::after {
    content: '';
    position: fixed;
    left: 50%;
    bottom: -12vh;
    width: 90vw;
    height: 38vh;
    transform: translateX(-50%);
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(ellipse at center, hsl(278 36% 28% / 0.14), transparent 62%);
    animation: horizonBreathe 8s ease-in-out infinite;
    z-index: 0;
}

[data-theme="void"] .navigation-bar,
[data-theme="void"] .content-box,
[data-theme="void"] .dashboard-panel,
[data-theme="void"] .modal-content,
[data-theme="void"] .character-sheet-panel,
[data-theme="void"] .inventory-section {
    position: relative;
    z-index: 1;
}

/* ==========================================================================
   Shared Panels
   ========================================================================= */

[data-theme="void"] .content-box,
[data-theme="void"] .dashboard-panel,
[data-theme="void"] .modal-content,
[data-theme="void"] .equipment-panel,
[data-theme="void"] .inventory-section,
[data-theme="void"] .spell-tooltip,
[data-theme="void"] .login-container,
[data-theme="void"] .widget-tile,
[data-theme="void"] .character-item,
[data-theme="void"] .attribute-card,
[data-theme="void"] .bereich-tile,
[data-theme="void"] .spell-tile,
[data-theme="void"] .resistance-tile {
    background:
        linear-gradient(180deg, hsl(254 18% 12% / 0.96), hsl(250 22% 7% / 0.96));
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow:
        0 18px 38px hsl(252 38% 2% / 0.56),
        inset 0 1px 0 hsl(284 18% 82% / 0.04);
    backdrop-filter: blur(8px) saturate(105%);
}

[data-theme="void"] .content-box::before,
[data-theme="void"] .dashboard-panel::before,
[data-theme="void"] .modal-content::before,
[data-theme="void"] .widget-tile::before,
[data-theme="void"] .character-item::before,
[data-theme="void"] .attribute-card::before,
[data-theme="void"] .login-container::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(180deg, hsl(284 24% 84% / 0.04), transparent 24%),
        radial-gradient(circle at top right, hsl(308 62% 58% / 0.06), transparent 22%);
}

[data-theme="void"] .content-box:hover,
[data-theme="void"] .dashboard-panel:hover,
[data-theme="void"] .widget-tile:hover,
[data-theme="void"] .character-item:hover,
[data-theme="void"] .attribute-card:hover,
[data-theme="void"] .bereich-tile:hover,
[data-theme="void"] .spell-tile:hover {
    border-color: var(--border-strong);
    animation: voidPulse 3.4s ease-in-out infinite;
}

/* ==========================================================================
   Typography and Icons
   ========================================================================= */

[data-theme="void"] h1,
[data-theme="void"] h2,
[data-theme="void"] h3,
[data-theme="void"] .widget-title,
[data-theme="void"] .character-info h3,
[data-theme="void"] .bereich-title,
[data-theme="void"] .attribute-name {
    color: hsl(284 28% 86%);
    text-shadow:
        0 0 12px hsl(272 58% 48% / 0.12),
        0 0 22px hsl(308 62% 58% / 0.06);
}

[data-theme="void"] .icon-themed,
[data-theme="void"] .spell-icon,
[data-theme="void"] .resistance-icon,
[data-theme="void"] .currency-icon,
[data-theme="void"] .buff-icon,
[data-theme="void"] .tab_Icon,
[data-theme="void"] .tab_btn img,
[data-theme="void"] .nav-icon-btn img,
[data-theme="void"] #div_iconbar_left img,
[data-theme="void"] #div_iconbar_right img {
    filter: var(--icon-filter);
}

/* ==========================================================================
   Headers and Category Bars
   ========================================================================= */

[data-theme="void"] .discipline-header,
[data-theme="void"] .info-category-header,
[data-theme="void"] .info-subcategory-header,
[data-theme="void"] .itemtype-header {
    background:
        linear-gradient(135deg, hsl(262 24% 18%), hsl(252 20% 10%));
    color: hsl(284 34% 84%) !important;
    border: 1px solid hsl(272 30% 40% / 0.34);
    border-radius: var(--radius-lg);
}

[data-theme="void"] .discipline-header:hover,
[data-theme="void"] .info-category-header:hover,
[data-theme="void"] .itemtype-header:hover {
    background:
        linear-gradient(135deg, hsl(268 28% 20%), hsl(256 22% 12%));
}

[data-theme="void"] .subskill-item.passive {
    background: hsl(254 18% 16% / 0.64) !important;
}

/* ==========================================================================
   Navigation
   ========================================================================= */

[data-theme="void"] .navigation-bar,
[data-theme="void"] .tab-top-navigation {
    background:
        linear-gradient(180deg, hsl(252 24% 7% / 0.98), hsl(248 28% 4% / 0.98));
    border-bottom: 1px solid hsl(272 32% 38% / 0.3);
    box-shadow:
        0 14px 30px hsl(252 38% 2% / 0.56),
        inset 0 1px 0 hsl(284 18% 84% / 0.04);
}

[data-theme="void"] .tab_btn,
[data-theme="void"] .tab_btn_vertical,
[data-theme="void"] .tab-buttons .tab-btn,
[data-theme="void"] .tab-navigation .tab-btn,
[data-theme="void"] .tab_btn_horizontal,
[data-theme="void"] .tab_btn_original {
    background:
        linear-gradient(180deg, hsl(258 18% 16%), hsl(252 22% 8%)) !important;
    border: 1px solid hsl(272 22% 36% / 0.28) !important;
    color: hsl(284 22% 84%) !important;
    box-shadow:
        inset 0 1px 0 hsl(284 18% 84% / 0.04),
        0 8px 18px hsl(252 38% 2% / 0.3);
}

[data-theme="void"] .tab_btn:hover,
[data-theme="void"] .tab_btn_vertical:hover,
[data-theme="void"] .tab-buttons .tab-btn:hover,
[data-theme="void"] .tab-navigation .tab-btn:hover,
[data-theme="void"] .tab_btn_horizontal:hover,
[data-theme="void"] .tab_btn_original:hover {
    background:
        linear-gradient(180deg, hsl(264 22% 20%), hsl(254 24% 10%)) !important;
    border-color: hsl(308 62% 58% / 0.5) !important;
    box-shadow:
        0 10px 22px hsl(252 38% 2% / 0.34),
        0 0 18px hsl(272 58% 48% / 0.1);
}

[data-theme="void"] .tab_btn.active,
[data-theme="void"] .tab_btn.active-tab,
[data-theme="void"] .tab_btn_vertical.active,
[data-theme="void"] .tab-buttons .tab-btn.active,
[data-theme="void"] .tab-navigation .tab-btn.active,
[data-theme="void"] .tab_btn_horizontal.active,
[data-theme="void"] .tab_btn_horizontal.main-tab,
[data-theme="void"] .tab_btn_horizontal.main-tab.active,
[data-theme="void"] .tab_btn_original.active,
[data-theme="void"] #navi-btn-combat.tab_btn.combat-active {
    background:
        linear-gradient(135deg, hsl(286 56% 54%), hsl(308 62% 58%)) !important;
    border-color: hsl(308 72% 76%) !important;
    color: hsl(0 0% 100%) !important;
    box-shadow:
        0 0 0 3px hsl(286 56% 54% / 0.16),
        0 14px 28px hsl(252 38% 2% / 0.34),
        0 0 24px hsl(308 62% 58% / 0.16) !important;
}

[data-theme="void"] .tab_btn.active-tab .tab_Icon,
[data-theme="void"] .tab_btn.active-tab img,
[data-theme="void"] .tab_btn_vertical.active img,
[data-theme="void"] .tab-buttons .tab-btn.active .tab_Icon,
[data-theme="void"] .tab-navigation .tab-btn.active .tab_Icon,
[data-theme="void"] .tab_btn_horizontal.active img,
[data-theme="void"] .tab_btn_horizontal.main-tab img,
[data-theme="void"] .tab_btn_original.active img,
[data-theme="void"] #navi-btn-combat.tab_btn.combat-active img {
    filter:
        brightness(0) saturate(100%) invert(100%) sepia(6%)
        saturate(357%) hue-rotate(180deg) brightness(104%) contrast(101%) !important;
}

/* ==========================================================================
   Buttons and Inputs
   ========================================================================= */

[data-theme="void"] button,
[data-theme="void"] .btn,
[data-theme="void"] .roll-button,
[data-theme="void"] input[type="button"],
[data-theme="void"] input[type="submit"] {
    background:
        linear-gradient(135deg, hsl(272 58% 48%), hsl(286 52% 42%));
    color: hsl(0 0% 100%);
    border: 1px solid hsl(286 46% 58% / 0.56);
    border-radius: var(--radius-lg);
    box-shadow:
        0 10px 22px hsl(252 38% 2% / 0.34),
        inset 0 1px 0 hsl(286 18% 86% / 0.12);
}

[data-theme="void"] button:hover,
[data-theme="void"] .btn:hover,
[data-theme="void"] .roll-button:hover,
[data-theme="void"] input[type="button"]:hover,
[data-theme="void"] input[type="submit"]:hover {
    background:
        linear-gradient(135deg, hsl(278 60% 54%), hsl(308 62% 58%));
    box-shadow:
        0 14px 28px hsl(252 38% 2% / 0.38),
        0 0 20px hsl(308 62% 58% / 0.12);
}

[data-theme="void"] input,
[data-theme="void"] textarea,
[data-theme="void"] select,
[data-theme="void"] .select,
[data-theme="void"] .form-select,
[data-theme="void"] .equipment-select {
    background:
        linear-gradient(180deg, hsl(254 18% 12%), hsl(252 20% 8%));
    border: 1px solid hsl(272 22% 36% / 0.24);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    box-shadow: inset 0 1px 0 hsl(284 18% 84% / 0.04);
}

[data-theme="void"] input:focus,
[data-theme="void"] textarea:focus,
[data-theme="void"] select:focus,
[data-theme="void"] .select:focus,
[data-theme="void"] .form-select:focus,
[data-theme="void"] .equipment-select:focus {
    border-color: hsl(308 62% 58%);
    box-shadow:
        0 0 0 4px var(--color-focus-ring),
        0 0 16px hsl(308 62% 58% / 0.1);
    outline: none;
}

/* ==========================================================================
   Tables
   ========================================================================= */

[data-theme="void"] table {
    background: hsl(252 20% 9% / 0.96);
    border: 1px solid hsl(272 20% 34% / 0.18);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

[data-theme="void"] th {
    background: hsl(266 24% 18% / 0.72);
    color: hsl(284 24% 84%);
}

[data-theme="void"] td {
    background: hsl(252 18% 10% / 0.92);
    color: var(--text-primary);
    border-bottom: 1px solid hsl(266 18% 32% / 0.12);
}

[data-theme="void"] tr:hover td {
    background: hsl(258 20% 14% / 0.96);
}

/* ==========================================================================
   Cards, Widgets, Login
   ========================================================================= */

[data-theme="void"] .widget-tile,
[data-theme="void"] .character-item {
    overflow: hidden;
}

[data-theme="void"] .character-item:hover,
[data-theme="void"] .widget-tile:hover {
    transform: translateY(-3px);
}

[data-theme="void"] .character-item::after,
[data-theme="void"] .widget-tile::after,
[data-theme="void"] .login-container::after {
    content: '';
    position: absolute;
    top: 16px;
    right: 16px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: radial-gradient(circle, hsl(308 62% 70%), hsl(272 58% 48%) 70%, transparent 100%);
    box-shadow:
        18px 4px 0 -4px hsl(284 24% 74% / 0.66),
        -6px 18px 0 -5px hsl(34 50% 66% / 0.42);
}

[data-theme="void"] .login-container {
    border-radius: var(--radius-2xl);
}

/* ==========================================================================
   Attribute Cards and Stats
   ========================================================================= */

[data-theme="void"] .attribute-cards-container {
    background:
        linear-gradient(180deg, hsl(254 18% 10% / 0.42), hsl(250 20% 8% / 0.42));
    border-radius: var(--radius-2xl);
}

[data-theme="void"] .attribute-icon-container {
    background:
        linear-gradient(135deg, hsl(278 26% 22%), hsl(254 20% 16%));
    color: hsl(286 28% 84%);
}

[data-theme="void"] .attribute-value,
[data-theme="void"] .stat-value,
[data-theme="void"] .tt-total-label,
[data-theme="void"] .tt-total-value {
    color: hsl(308 62% 70%);
}

[data-theme="void"] .attribute-bonus {
    background: hsl(156 18% 18%);
    color: hsl(156 38% 62%);
}

[data-theme="void"] .attribute-subskills,
[data-theme="void"] .roll-result {
    background: hsl(252 18% 10% / 0.88);
    border: 1px solid hsl(272 20% 34% / 0.18);
    border-radius: var(--radius-lg);
}

[data-theme="void"] .subskill-item {
    border-bottom-color: hsl(266 18% 32% / 0.12);
}

[data-theme="void"] .subskill-name {
    color: hsl(308 52% 72%);
}

[data-theme="void"] .subskill-effect,
[data-theme="void"] .stat-label {
    color: hsl(270 18% 74%);
}

[data-theme="void"] .attribute-card.physical {
    border-left-color: hsl(156 38% 56%);
}

[data-theme="void"] .attribute-card.mental {
    border-left-color: hsl(272 58% 48%);
}

[data-theme="void"] .attribute-card.social {
    border-left-color: hsl(308 62% 58%);
}

[data-theme="void"] .attribute-card.special {
    border-left-color: hsl(14 74% 58%);
}

[data-theme="void"] .stat-item {
    background: hsl(254 18% 12% / 0.9);
    border: 1px solid hsl(266 18% 32% / 0.16);
    border-radius: var(--radius-lg);
}

[data-theme="void"] .stat-item:hover {
    background: hsl(258 20% 16% / 0.94);
}

/* ==========================================================================
   Inventory, Spellbook, Resistances
   ========================================================================= */

[data-theme="void"] .currency-tile,
[data-theme="void"] .resistance-tile,
[data-theme="void"] .buff-tile,
[data-theme="void"] .inventory-slot,
[data-theme="void"] .inventory-item {
    border-radius: var(--radius-lg);
    box-shadow: inset 0 1px 0 hsl(284 18% 84% / 0.04);
}

[data-theme="void"] .currency-add-icon {
    color: hsl(308 62% 66%);
}

[data-theme="void"] .buff-duration {
    background-color: hsl(258 18% 18% / 0.72);
    color: hsl(278 18% 78%);
}

[data-theme="void"] .no-buffs-message,
[data-theme="void"] .resistance-stat-label {
    color: hsl(266 12% 60%);
}

[data-theme="void"] .equipped-indicator-icon {
    background-color: hsl(286 48% 48%);
    filter: drop-shadow(0 0 6px hsl(308 62% 58% / 0.42));
}

[data-theme="void"] .spell-tile.temp-spell {
    border-color: var(--spell-temp-border) !important;
    background:
        linear-gradient(180deg, var(--spell-temp-bg), hsl(252 20% 10%)) !important;
}

[data-theme="void"] .spell-tile.temp-spell:hover {
    background:
        linear-gradient(180deg, var(--spell-temp-hover-bg), hsl(256 22% 14%)) !important;
}

[data-theme="void"] .spell-name,
[data-theme="void"] .spell-progress {
    color: hsl(284 18% 90%);
}

[data-theme="void"] .spell-cost {
    color: hsl(34 50% 66%);
}

/* ==========================================================================
   Bars and Progress
   ========================================================================= */

[data-theme="void"] .progress-container,
[data-theme="void"] .bar-track,
[data-theme="void"] .resource-bar,
[data-theme="void"] .weight-bar-container {
    background:
        linear-gradient(180deg, hsl(252 16% 10%), hsl(248 20% 6%)) !important;
    border: 1px solid hsl(266 18% 30% / 0.22) !important;
    border-radius: 999px !important;
    box-shadow:
        inset 0 2px 6px hsl(252 38% 2% / 0.48),
        inset 0 1px 0 hsl(284 18% 84% / 0.03);
}

[data-theme="void"] #healthText,
[data-theme="void"] #magicText,
[data-theme="void"] #enduranceText {
    color: hsl(286 18% 96%);
    text-shadow: 0 0 10px hsl(252 38% 2% / 0.6);
}

[data-theme="void"] .progress-bar,
[data-theme="void"] .progress-fill,
[data-theme="void"] .bar-fill {
    border-radius: 999px !important;
    overflow: hidden;
}

[data-theme="void"] .health-bar,
[data-theme="void"] .hp-bar-fill {
    background:
        linear-gradient(90deg, hsl(320 36% 34%) 0%, hsl(350 62% 54%) 58%, hsl(14 74% 58%) 100%) !important;
    box-shadow: 0 0 14px hsl(350 62% 54% / 0.14) !important;
}

[data-theme="void"] .magic-bar,
[data-theme="void"] .mana-bar-fill,
[data-theme="void"] .energy-bar-fill {
    background:
        linear-gradient(90deg, hsl(252 42% 38%) 0%, hsl(278 58% 52%) 56%, hsl(308 62% 58%) 100%) !important;
    box-shadow: 0 0 16px hsl(278 58% 52% / 0.16) !important;
}

[data-theme="void"] .endurance-bar,
[data-theme="void"] .stamina-bar-fill {
    background:
        linear-gradient(90deg, hsl(28 52% 40%) 0%, hsl(34 64% 56%) 55%, hsl(42 72% 66%) 100%) !important;
    box-shadow: 0 0 14px hsl(34 64% 56% / 0.12) !important;
}

[data-theme="void"] .weight-progress-bar.weight-ok,
[data-theme="void"] .weight-fill,
[data-theme="void"] .encumbrance-fill {
    background:
        linear-gradient(90deg, hsl(156 28% 42%) 0%, hsl(156 38% 56%) 100%) !important;
}

[data-theme="void"] .weight-progress-bar.weight-warn {
    background:
        linear-gradient(90deg, hsl(28 52% 40%) 0%, hsl(34 64% 56%) 100%) !important;
}

[data-theme="void"] .weight-progress-bar.weight-crit {
    background:
        linear-gradient(90deg, hsl(320 36% 34%) 0%, hsl(350 62% 54%) 100%) !important;
}

/* ==========================================================================
   Tooltips
   ========================================================================= */

[data-theme="void"] .unified-tooltip,
[data-theme="void"] .spell-tooltip,
[data-theme="void"] #item-tooltip {
    background:
        linear-gradient(180deg, hsl(252 22% 10% / 0.98), hsl(248 28% 6% / 0.98));
    border: 1px solid hsl(272 22% 36% / 0.24);
    border-radius: var(--radius-xl);
    color: var(--color-tooltip-text);
    box-shadow:
        0 18px 40px hsl(252 38% 2% / 0.58),
        0 0 18px hsl(308 62% 58% / 0.06);
}

[data-theme="void"] .itooltip-title,
[data-theme="void"] .skilltooltip-title,
[data-theme="void"] .attrtooltip-title,
[data-theme="void"] .stattooltip-title,
[data-theme="void"] .unified-tooltip .tooltip-title {
    color: hsl(308 70% 70%) !important;
}

[data-theme="void"] .tt-section {
    background: hsl(254 18% 14% / 0.72);
    border-radius: var(--radius-md);
}

[data-theme="void"] .tt-sep-accent {
    border-top-color: hsl(308 62% 58%);
}

/* ==========================================================================
   Toggles and Controls
   ========================================================================= */

[data-theme="void"] .twohanded-toggle {
    background: transparent !important;
    border: 2px solid hsl(272 22% 36%);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 hsl(284 18% 84% / 0.03);
}

[data-theme="void"] .twohanded-toggle:hover {
    background: hsl(268 22% 16% / 0.34) !important;
    border-color: hsl(308 62% 58%);
    box-shadow: 0 0 12px hsl(308 62% 58% / 0.08);
}

[data-theme="void"] .twohanded-toggle.active {
    background:
        linear-gradient(135deg, hsl(286 56% 54%), hsl(308 62% 58%)) !important;
    border-color: hsl(308 72% 76%);
    box-shadow:
        0 0 0 3px hsl(286 56% 54% / 0.16),
        0 0 18px hsl(308 62% 58% / 0.12);
}

[data-theme="void"] .twohanded-toggle.active .twohanded-toggle-icon {
    filter:
        brightness(0) saturate(100%) invert(100%) sepia(6%)
        saturate(357%) hue-rotate(180deg) brightness(104%) contrast(101%) !important;
}

/* ==========================================================================
   Scrollbars and Selection
   ========================================================================= */

[data-theme="void"] ::-webkit-scrollbar-track {
    background: hsl(252 16% 8%);
    border-radius: 999px;
}

[data-theme="void"] ::-webkit-scrollbar-thumb {
    background:
        linear-gradient(180deg, hsl(272 34% 42%), hsl(308 42% 48%));
    border-radius: 999px;
    border: 2px solid hsl(252 16% 8%);
}

[data-theme="void"] ::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(180deg, hsl(278 42% 48%), hsl(308 62% 58%));
}

[data-theme="void"] ::selection {
    background: hsl(286 56% 54% / 0.28);
    color: hsl(0 0% 100%);
}

/* ==========================================================================
   Utility
   ========================================================================= */

[data-theme="void"] hr,
[data-theme="void"] .divider {
    border: none;
    border-top: 1px solid hsl(266 18% 32% / 0.16);
}
[data-theme="void"] .toxicity-container {
    border-color: var(--color-toxicity) !important;
}

[data-theme="void"] .toxicity-bar {
    background: var(--gradient-toxicity-resource) !important;
    box-shadow: var(--shadow-glow-toxicity) !important;
}

[data-theme="void"] #toxicityText {
    color: var(--text-light);
}
