/* ==========================================================================
   RUNIC THEME: Neon City Reforged
   Rain-black streets, hologram signage, cyan glass, magenta glow, and midnight chrome.
   ========================================================================= */

[data-theme="neon-city"] {
    /* Core hue system */
    --hue-primary: 326;
    --hue-accent: 188;
    --hue-gm: 276;
    --hue-danger: 2;
    --hue-warning: 42;
    --hue-success: 154;
    --hue-toxicity: 114;
    --hue-neutral: 232;

    --sat-primary: 92%;
    --lit-primary: 60%;
    --lit-primary-hover: 66%;

    --sat-accent: 96%;
    --lit-accent: 60%;
    --lit-accent-hover: 68%;

    --sat-gm: 74%;
    --lit-gm: 58%;
    --lit-gm-text: 94%;

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

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

    --sat-success: 62%;
    --lit-success: 46%;

    --sat-toxicity: 90%;
    --lit-toxicity: 58%;

    --lightness-bg: 6%;

    /* Form and timing */
    --radius-sm: 5px;
    --radius-md: 9px;
    --radius-lg: 16px;
    --radius-xl: 22px;
    --radius-2xl: 28px;

    --font-sans: 'Space Grotesk', 'Eurostile', 'Montserrat', 'Arial', sans-serif;
    --font-mono: 'IBM Plex Mono', 'Consolas', monospace;

    --duration-75: 90ms;
    --duration-150: 170ms;
    --duration-250: 290ms;
    --duration-300: 380ms;
    --duration-400: 680ms;

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

    /* Identity */
    --hot-pink: hsl(326 100% 64%);
    --neon-rose: hsl(338 100% 70%);
    --laser-cyan: hsl(188 100% 64%);
    --electric-blue: hsl(206 100% 68%);
    --ultraviolet: hsl(276 74% 60%);
    --amber-ad: hsl(40 100% 62%);
    --lime-signal: hsl(154 88% 58%);
    --midnight-black: hsl(236 26% 7%);
    --midnight-violet: hsl(252 34% 12%);
    --wet-asphalt: hsl(234 18% 14%);
    --smoke-glass: hsl(244 18% 20%);
    --chrome-lilac: hsl(272 28% 82%);
    --rain-fog: hsl(214 28% 76%);

    /* Surfaces */
    --bg-page: hsl(238 28% 7%);
    --bg-primary: hsl(244 28% 9%);
    --bg-secondary: hsl(246 26% 12% / 0.9);
    --bg-tertiary: hsl(248 24% 16% / 0.96);
    --bg-card: hsl(246 26% 12% / 0.94);
    --bg-hover: hsl(256 34% 20% / 0.58);
    --bg-input: hsl(246 24% 12%);

    --surface-elevated: hsl(248 24% 18%);
    --surface-overlay: hsl(248 28% 18% / 0.98);
    --surface-panel: hsl(246 24% 15% / 0.96);

    /* Text */
    --text-primary: hsl(300 18% 94%);
    --text-secondary: hsl(284 20% 78%);
    --text-label: hsl(188 96% 70%);
    --text-light: hsl(0 0% 100%);
    --text-muted: hsl(278 18% 64% / 0.82);

    /* Borders and shadows */
    --border-color: hsl(326 100% 64% / 0.28);
    --border-subtle: hsl(188 100% 64% / 0.12);
    --border-strong: hsl(188 100% 64% / 0.66);

    --shadow-glow-primary:
        0 0 18px hsl(326 100% 64% / 0.34),
        0 0 42px hsl(326 100% 64% / 0.16);
    --shadow-glow-accent:
        0 0 18px hsl(188 100% 64% / 0.34),
        0 0 42px hsl(188 100% 64% / 0.16);
    --shadow-glow-danger:
        0 0 18px hsl(2 88% 60% / 0.24);
    --shadow-glow-gold:
        0 0 18px hsl(42 100% 64% / 0.2);

    /* Icons */
    --icon-color: hsl(188 100% 64%);
    --icon-filter: brightness(0) saturate(100%) invert(79%) sepia(39%)
        saturate(2461%) hue-rotate(133deg) brightness(103%) contrast(102%);

    /* Focus and tooltip */
    --color-focus-ring: hsl(188 100% 64% / 0.32);

    --color-tooltip-bg: hsl(246 28% 12% / 0.98);
    --color-tooltip-highlight: hsl(42 100% 64%);
    --color-tooltip-effect-bg: hsl(326 100% 64% / 0.08);
    --color-tooltip-text: hsl(302 18% 92%);
    --color-tooltip-label: hsl(188 92% 70%);
    --color-tooltip-muted: hsl(278 18% 68%);
    --color-tooltip-dim: hsl(276 14% 56%);
    --color-tooltip-pos: hsl(154 72% 62%);
    --color-tooltip-neg: hsl(2 88% 64%);
    --color-tooltip-separator: hsl(326 90% 64% / 0.28);
    --color-tooltip-section-bg: hsl(248 22% 18% / 0.88);

    /* Quality colors */
    --quality-0-color1: rgb(100, 94, 122);
    --quality-0-color2: rgb(58, 54, 72);
    --quality-1-color1: rgb(220, 214, 248);
    --quality-1-color2: rgb(160, 152, 204);
    --quality-2-color1: rgb(88, 255, 190);
    --quality-2-color2: rgb(38, 196, 134);
    --quality-3-color1: rgb(96, 220, 255);
    --quality-3-color2: rgb(46, 168, 216);
    --quality-4-color1: rgb(206, 114, 255);
    --quality-4-color2: rgb(150, 62, 220);
    --quality-5-color1: rgb(255, 216, 96);
    --quality-5-color2: rgb(220, 156, 38);
    --quality-6-color1: rgb(255, 98, 120);
    --quality-6-color2: rgb(216, 42, 68);
    --quality-7-color1: rgb(255, 152, 222);
    --quality-7-color2: rgb(90, 232, 255);

    /* Spell / element system */
    --element-fire-bg: hsl(12 64% 18% / 0.82);
    --element-fire-border: hsl(18 100% 58% / 0.66);
    --element-fire-hover: hsl(14 72% 24% / 0.94);
    --element-fire-glow: hsl(18 100% 58% / 0.18);

    --element-water-bg: hsl(208 46% 16% / 0.82);
    --element-water-border: hsl(188 100% 64% / 0.64);
    --element-water-hover: hsl(206 58% 20% / 0.94);
    --element-water-glow: hsl(188 100% 64% / 0.18);

    --element-earth-bg: hsl(286 34% 16% / 0.82);
    --element-earth-border: hsl(326 82% 62% / 0.58);
    --element-earth-hover: hsl(286 40% 20% / 0.94);
    --element-earth-glow: hsl(326 82% 62% / 0.16);

    --element-wind-bg: hsl(188 38% 16% / 0.82);
    --element-wind-border: hsl(188 96% 64% / 0.62);
    --element-wind-hover: hsl(188 46% 20% / 0.94);
    --element-wind-glow: hsl(188 100% 64% / 0.16);

    --element-light-bg: hsl(40 82% 18% / 0.84);
    --element-light-border: hsl(42 100% 64% / 0.68);
    --element-light-hover: hsl(42 90% 24% / 0.96);
    --element-light-glow: hsl(42 100% 64% / 0.22);

    --element-shadow-bg: hsl(262 42% 16% / 0.84);
    --element-shadow-border: hsl(276 80% 62% / 0.6);
    --element-shadow-hover: hsl(264 46% 20% / 0.96);
    --element-shadow-glow: hsl(276 80% 62% / 0.18);

    --element-death-bg: hsl(344 44% 16% / 0.84);
    --element-death-border: hsl(344 88% 60% / 0.6);
    --element-death-hover: hsl(344 50% 20% / 0.96);
    --element-death-glow: hsl(344 88% 60% / 0.18);

    --element-life-bg: hsl(156 44% 16% / 0.84);
    --element-life-border: hsl(154 88% 58% / 0.6);
    --element-life-hover: hsl(156 48% 20% / 0.96);
    --element-life-glow: hsl(154 88% 58% / 0.18);

    --element-arcane-bg: hsl(276 48% 16% / 0.86);
    --element-arcane-border: hsl(326 100% 64% / 0.64);
    --element-arcane-hover: hsl(278 54% 22% / 0.96);
    --element-arcane-glow: hsl(326 100% 64% / 0.18);

    --element-mind-bg: hsl(224 34% 16% / 0.84);
    --element-mind-border: hsl(206 100% 68% / 0.6);
    --element-mind-hover: hsl(226 40% 20% / 0.96);
    --element-mind-glow: hsl(206 100% 68% / 0.18);

    --element-physical-bg: hsl(254 24% 16% / 0.84);
    --element-physical-border: hsl(188 90% 64% / 0.54);
    --element-physical-hover: hsl(256 30% 20% / 0.96);
    --element-physical-glow: hsl(188 90% 64% / 0.14);

    --spell-temp-bg: hsl(258 34% 16%);
    --spell-temp-border: hsl(326 90% 64% / 0.76);
    --spell-temp-hover-bg: hsl(260 40% 20%);
    --spell-temp-hover-glow: hsl(188 100% 64% / 0.16);
    --spell-temp-badge-bg: hsl(326 100% 60%);
    --spell-temp-header-bg: hsl(258 30% 20%);
    --spell-temp-header-hover-bg: hsl(260 36% 24%);
    --spell-tile-hover-bg: hsl(260 40% 20%);

    /* Inventory / currency / buffs */
    --item-tile-base: hsl(258 34% 14%);
    --item-tile-border: hsl(326 76% 60% / 0.44);
    --item-tile-add-bg: hsl(256 30% 12%);
    --item-tile-add-border: hsl(188 80% 60% / 0.38);
    --item-tile-add-hover: hsl(260 36% 18%);
    --item-tile-add-border-hover: hsl(188 100% 64% / 0.72);

    --weight-display-bg: hsl(258 28% 14%);
    --weight-ok-color: hsl(154 72% 62%);
    --weight-warn-color: hsl(42 100% 64%);
    --weight-crit-color: hsl(2 88% 64%);
    --weight-bar-track-bg: hsl(252 20% 20%);

    --currency-tile-bg: hsl(258 34% 14%);
    --currency-tile-border: hsl(188 74% 60% / 0.42);
    --currency-tile-hover-bg: hsl(260 40% 20%);
    --currency-tile-hover-shadow: hsl(188 100% 64% / 0.18);
    --currency-quantity-bg: hsl(256 26% 22%);
    --currency-add-bg: hsl(256 30% 12%);
    --currency-add-border: hsl(326 76% 60% / 0.34);
    --currency-add-hover-bg: hsl(260 36% 18%);
    --currency-add-hover-border: hsl(188 100% 64% / 0.72);

    --color-buff-tile-bg: hsl(154 30% 16%);
    --color-buff-tile-border: hsl(154 82% 58% / 0.54);
    --color-buff-tile-hover: hsl(154 38% 20%);
    --color-buff-tile-glow: hsl(154 82% 58% / 0.16);
    --color-debuff-tile-bg: hsl(344 34% 16%);
    --color-debuff-tile-border: hsl(344 88% 60% / 0.56);
    --color-debuff-tile-hover: hsl(344 40% 20%);
    --color-debuff-tile-glow: hsl(344 88% 60% / 0.16);
    --color-neutral-tile-bg: hsl(254 24% 16%);
    --color-neutral-tile-border: hsl(188 74% 60% / 0.34);
    --color-neutral-tile-hover: hsl(256 30% 20%);
    --color-neutral-tile-glow: hsl(188 100% 64% / 0.12);
    --color-buff-indicator: hsl(154 72% 62%);
    --color-debuff-indicator: hsl(344 88% 60%);

    /* Common status colors */
    --color-heal: hsl(154 72% 62%);
    --color-gold: hsl(42 100% 64%);
    --color-amber: hsl(34 100% 60%);
    --color-amber-ui: hsl(34 100% 60%);
    --color-crit: hsl(2 88% 64%);
    --border-gold: hsl(42 100% 64% / 0.44);

    /* Overlays */
    --overlay-heavy: hsl(244 26% 6% / 0.82);
    --overlay-dark: hsl(244 22% 8% / 0.56);
    --overlay-medium: hsl(244 20% 10% / 0.3);
    --overlay-light: hsl(248 16% 12% / 0.14);
    --overlay-subtle: hsl(250 12% 14% / 0.08);
}

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

@keyframes neonBreath {
    0%, 100% {
        box-shadow:
            0 0 0 1px hsl(326 90% 64% / 0.18),
            0 14px 28px hsl(244 24% 6% / 0.34);
    }
    50% {
        box-shadow:
            0 0 0 1px hsl(188 100% 64% / 0.34),
            0 18px 34px hsl(244 24% 6% / 0.4),
            0 0 30px hsl(326 100% 64% / 0.14);
    }
}

@keyframes holoShift {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

@keyframes rainSweep {
    0% { background-position: 0 0, 0 0, 0 0; }
    100% { background-position: 0 220px, 180px 0, -200px 0; }
}

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

[data-theme="neon-city"] body,
[data-theme="neon-city"] .page-content,
[data-theme="neon-city"] .main-content,
[data-theme="neon-city"] .content-wrapper {
    background:
        radial-gradient(circle at top center, hsl(326 100% 20% / 0.18), transparent 20%),
        radial-gradient(circle at 18% 16%, hsl(188 100% 24% / 0.14), transparent 18%),
        radial-gradient(circle at 86% 18%, hsl(276 70% 24% / 0.16), transparent 20%),
        linear-gradient(180deg, hsl(246 28% 10%), hsl(240 30% 7%) 42%, hsl(238 28% 6%) 100%);
    color: var(--text-primary);
}

[data-theme="neon-city"] body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, hsl(188 100% 64% / 0.035) 0 2px, transparent 2px 22px),
        linear-gradient(130deg, transparent 0 48%, hsl(188 100% 64% / 0.03) 49%, transparent 50%),
        linear-gradient(50deg, transparent 0 48%, hsl(326 100% 64% / 0.028) 49%, transparent 50%);
    background-size: 100% 22px, 240px 240px, 280px 280px;
    animation: rainSweep 14s linear infinite;
    opacity: 0.56;
    z-index: 0;
}

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

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

[data-theme="neon-city"] .content-box,
[data-theme="neon-city"] .dashboard-panel,
[data-theme="neon-city"] .modal-content,
[data-theme="neon-city"] .equipment-panel,
[data-theme="neon-city"] .inventory-section,
[data-theme="neon-city"] .spell-tooltip,
[data-theme="neon-city"] .login-container,
[data-theme="neon-city"] .widget-tile,
[data-theme="neon-city"] .character-item,
[data-theme="neon-city"] .attribute-card,
[data-theme="neon-city"] .bereich-tile,
[data-theme="neon-city"] .spell-tile,
[data-theme="neon-city"] .resistance-tile {
    background:
        linear-gradient(180deg, hsl(248 24% 16% / 0.96), hsl(242 28% 10% / 0.96));
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow:
        0 16px 34px hsl(244 24% 6% / 0.42),
        inset 0 1px 0 hsl(188 40% 88% / 0.08);
    backdrop-filter: blur(10px) saturate(120%);
}

[data-theme="neon-city"] .content-box::before,
[data-theme="neon-city"] .dashboard-panel::before,
[data-theme="neon-city"] .modal-content::before,
[data-theme="neon-city"] .widget-tile::before,
[data-theme="neon-city"] .character-item::before,
[data-theme="neon-city"] .attribute-card::before,
[data-theme="neon-city"] .login-container::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(135deg, hsl(188 100% 86% / 0.06), transparent 40%),
        radial-gradient(circle at top right, hsl(326 100% 64% / 0.08), transparent 24%);
}

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

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

[data-theme="neon-city"] h1,
[data-theme="neon-city"] h2,
[data-theme="neon-city"] h3,
[data-theme="neon-city"] .widget-title,
[data-theme="neon-city"] .character-info h3,
[data-theme="neon-city"] .bereich-title,
[data-theme="neon-city"] .attribute-name {
    color: hsl(326 100% 70%);
    text-shadow:
        0 0 10px hsl(326 100% 64% / 0.24),
        0 0 24px hsl(326 100% 64% / 0.12);
}

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

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

[data-theme="neon-city"] .discipline-header,
[data-theme="neon-city"] .info-category-header,
[data-theme="neon-city"] .info-subcategory-header,
[data-theme="neon-city"] .itemtype-header {
    background:
        linear-gradient(135deg, hsl(256 36% 18%), hsl(242 32% 12%));
    color: hsl(188 100% 72%) !important;
    border: 1px solid hsl(188 80% 60% / 0.34);
    border-radius: var(--radius-lg);
    box-shadow:
        inset 0 1px 0 hsl(188 80% 88% / 0.08),
        0 0 18px hsl(188 100% 64% / 0.06);
}

[data-theme="neon-city"] .discipline-header:hover,
[data-theme="neon-city"] .info-category-header:hover,
[data-theme="neon-city"] .itemtype-header:hover {
    background:
        linear-gradient(135deg, hsl(262 38% 20%), hsl(244 34% 14%));
}

[data-theme="neon-city"] .subskill-item.passive {
    background: hsl(250 28% 18% / 0.64) !important;
}

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

[data-theme="neon-city"] .navigation-bar,
[data-theme="neon-city"] .tab-top-navigation {
    background:
        linear-gradient(180deg, hsl(246 28% 10% / 0.98), hsl(240 30% 7% / 0.98));
    border-bottom: 1px solid hsl(326 100% 64% / 0.36);
    box-shadow:
        0 12px 28px hsl(244 24% 6% / 0.42),
        0 0 24px hsl(326 100% 64% / 0.08),
        inset 0 1px 0 hsl(188 80% 88% / 0.08);
}

[data-theme="neon-city"] .tab_btn,
[data-theme="neon-city"] .tab_btn_vertical,
[data-theme="neon-city"] .tab-buttons .tab-btn,
[data-theme="neon-city"] .tab-navigation .tab-btn,
[data-theme="neon-city"] .tab_btn_horizontal,
[data-theme="neon-city"] .tab_btn_original {
    background:
        linear-gradient(180deg, hsl(250 24% 18%), hsl(244 28% 10%)) !important;
    border: 1px solid hsl(188 72% 60% / 0.28) !important;
    color: hsl(188 96% 74%) !important;
    box-shadow:
        inset 0 1px 0 hsl(188 80% 88% / 0.08),
        0 8px 18px hsl(244 24% 6% / 0.28);
}

[data-theme="neon-city"] .tab_btn:hover,
[data-theme="neon-city"] .tab_btn_vertical:hover,
[data-theme="neon-city"] .tab-buttons .tab-btn:hover,
[data-theme="neon-city"] .tab-navigation .tab-btn:hover,
[data-theme="neon-city"] .tab_btn_horizontal:hover,
[data-theme="neon-city"] .tab_btn_original:hover {
    background:
        linear-gradient(180deg, hsl(256 28% 22%), hsl(246 30% 14%)) !important;
    border-color: hsl(188 100% 64% / 0.56) !important;
    box-shadow:
        0 10px 22px hsl(244 24% 6% / 0.32),
        0 0 18px hsl(188 100% 64% / 0.12);
}

[data-theme="neon-city"] .tab_btn.active,
[data-theme="neon-city"] .tab_btn.active-tab,
[data-theme="neon-city"] .tab_btn_vertical.active,
[data-theme="neon-city"] .tab-buttons .tab-btn.active,
[data-theme="neon-city"] .tab-navigation .tab-btn.active,
[data-theme="neon-city"] .tab_btn_horizontal.active,
[data-theme="neon-city"] .tab_btn_horizontal.main-tab,
[data-theme="neon-city"] .tab_btn_horizontal.main-tab.active,
[data-theme="neon-city"] .tab_btn_original.active,
[data-theme="neon-city"] #navi-btn-combat.tab_btn.combat-active {
    background:
        linear-gradient(135deg, hsl(326 100% 64%), hsl(282 82% 56%)) !important;
    border-color: hsl(326 100% 82%) !important;
    color: hsl(0 0% 100%) !important;
    box-shadow:
        0 0 0 3px hsl(326 100% 64% / 0.18),
        0 14px 28px hsl(244 24% 6% / 0.34),
        0 0 24px hsl(326 100% 64% / 0.2) !important;
}

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

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

[data-theme="neon-city"] button,
[data-theme="neon-city"] .btn,
[data-theme="neon-city"] .roll-button,
[data-theme="neon-city"] input[type="button"],
[data-theme="neon-city"] input[type="submit"] {
    background:
        linear-gradient(135deg, hsl(326 100% 64%), hsl(326 88% 52%));
    color: hsl(0 0% 100%);
    border: 1px solid hsl(326 100% 74% / 0.72);
    border-radius: var(--radius-lg);
    box-shadow:
        0 10px 20px hsl(326 100% 64% / 0.22),
        inset 0 1px 0 hsl(0 0% 100% / 0.18);
}

[data-theme="neon-city"] button:hover,
[data-theme="neon-city"] .btn:hover,
[data-theme="neon-city"] .roll-button:hover,
[data-theme="neon-city"] input[type="button"]:hover,
[data-theme="neon-city"] input[type="submit"]:hover {
    background:
        linear-gradient(135deg, hsl(326 100% 68%), hsl(326 92% 56%));
    box-shadow:
        0 14px 26px hsl(326 100% 64% / 0.28),
        0 0 20px hsl(188 100% 64% / 0.1);
}

[data-theme="neon-city"] input,
[data-theme="neon-city"] textarea,
[data-theme="neon-city"] select,
[data-theme="neon-city"] .select,
[data-theme="neon-city"] .form-select,
[data-theme="neon-city"] .equipment-select {
    background:
        linear-gradient(180deg, hsl(246 22% 14%), hsl(246 24% 11%));
    border: 1px solid hsl(188 72% 60% / 0.24);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    box-shadow: inset 0 1px 0 hsl(188 80% 88% / 0.06);
}

[data-theme="neon-city"] input:focus,
[data-theme="neon-city"] textarea:focus,
[data-theme="neon-city"] select:focus,
[data-theme="neon-city"] .select:focus,
[data-theme="neon-city"] .form-select:focus,
[data-theme="neon-city"] .equipment-select:focus {
    border-color: hsl(188 100% 64%);
    box-shadow:
        0 0 0 4px var(--color-focus-ring),
        0 0 18px hsl(188 100% 64% / 0.12);
    outline: none;
}

[data-theme="neon-city"] select,
[data-theme="neon-city"] .select,
[data-theme="neon-city"] .form-select,
[data-theme="neon-city"] .equipment-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2300deff' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 14px;
    padding-right: 2rem;
}

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

[data-theme="neon-city"] table {
    background: hsl(246 24% 12% / 0.96);
    border: 1px solid hsl(326 76% 60% / 0.16);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

[data-theme="neon-city"] th {
    background: hsl(326 72% 24% / 0.42);
    color: hsl(326 100% 74%);
}

[data-theme="neon-city"] td {
    background: hsl(246 22% 13% / 0.92);
    color: var(--text-primary);
    border-bottom: 1px solid hsl(188 72% 60% / 0.08);
}

[data-theme="neon-city"] tr:hover td {
    background: hsl(254 26% 18% / 0.96);
}

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

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

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

[data-theme="neon-city"] .character-item::after,
[data-theme="neon-city"] .widget-tile::after,
[data-theme="neon-city"] .login-container::after {
    content: '';
    position: absolute;
    top: 16px;
    right: 16px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 35%, hsl(0 0% 100%), hsl(188 100% 64%) 45%, hsl(326 100% 64%) 100%);
    box-shadow:
        18px 0 0 -4px hsl(326 100% 70% / 0.74),
        0 18px 0 -4px hsl(188 100% 70% / 0.74);
}

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

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

[data-theme="neon-city"] .attribute-cards-container {
    background:
        linear-gradient(180deg, hsl(246 24% 12% / 0.42), hsl(252 22% 10% / 0.42));
    border-radius: var(--radius-2xl);
}

[data-theme="neon-city"] .attribute-icon-container {
    background:
        linear-gradient(135deg, hsl(326 100% 24%), hsl(282 70% 22%));
    color: hsl(326 100% 74%);
}

[data-theme="neon-city"] .attribute-value,
[data-theme="neon-city"] .stat-value,
[data-theme="neon-city"] .tt-total-label,
[data-theme="neon-city"] .tt-total-value {
    color: hsl(326 100% 72%);
}

[data-theme="neon-city"] .attribute-bonus {
    background: hsl(154 34% 18%);
    color: hsl(154 72% 64%);
}

[data-theme="neon-city"] .attribute-subskills,
[data-theme="neon-city"] .roll-result {
    background: hsl(246 22% 14% / 0.88);
    border: 1px solid hsl(326 76% 60% / 0.16);
    border-radius: var(--radius-lg);
}

[data-theme="neon-city"] .subskill-item {
    border-bottom-color: hsl(188 72% 60% / 0.08);
}

[data-theme="neon-city"] .subskill-name {
    color: hsl(188 100% 72%);
}

[data-theme="neon-city"] .subskill-effect,
[data-theme="neon-city"] .stat-label {
    color: hsl(284 20% 78%);
}

[data-theme="neon-city"] .attribute-card.physical {
    border-left-color: hsl(154 72% 62%);
}

[data-theme="neon-city"] .attribute-card.mental {
    border-left-color: hsl(188 100% 64%);
}

[data-theme="neon-city"] .attribute-card.social {
    border-left-color: hsl(326 100% 64%);
}

[data-theme="neon-city"] .attribute-card.special {
    border-left-color: hsl(276 80% 62%);
}

[data-theme="neon-city"] .stat-item {
    background: hsl(248 22% 16% / 0.9);
    border: 1px solid hsl(188 72% 60% / 0.14);
    border-radius: var(--radius-lg);
}

[data-theme="neon-city"] .stat-item:hover {
    background: hsl(254 24% 20% / 0.94);
}

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

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

[data-theme="neon-city"] .currency-add-icon {
    color: hsl(188 100% 64%);
}

[data-theme="neon-city"] .buff-duration {
    background-color: hsl(252 24% 22% / 0.72);
    color: hsl(284 20% 82%);
}

[data-theme="neon-city"] .no-buffs-message,
[data-theme="neon-city"] .resistance-stat-label {
    color: hsl(278 18% 64%);
}

[data-theme="neon-city"] .equipped-indicator-icon {
    background-color: hsl(326 100% 60%);
    filter: drop-shadow(0 0 6px hsl(326 100% 64% / 0.52));
}

[data-theme="neon-city"] .spell-tile.temp-spell {
    border-color: var(--spell-temp-border) !important;
    background:
        linear-gradient(180deg, var(--spell-temp-bg), hsl(250 28% 14%)) !important;
}

[data-theme="neon-city"] .spell-tile.temp-spell:hover {
    background:
        linear-gradient(180deg, var(--spell-temp-hover-bg), hsl(254 32% 18%)) !important;
}

[data-theme="neon-city"] .spell-name,
[data-theme="neon-city"] .spell-progress {
    color: hsl(302 18% 92%);
}

[data-theme="neon-city"] .spell-cost {
    color: hsl(42 100% 66%);
}

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

[data-theme="neon-city"] .progress-container,
[data-theme="neon-city"] .bar-track,
[data-theme="neon-city"] .resource-bar,
[data-theme="neon-city"] .weight-bar-container {
    background:
        linear-gradient(180deg, hsl(248 18% 14%), hsl(242 22% 10%)) !important;
    border: 1px solid hsl(188 72% 60% / 0.18) !important;
    border-radius: 999px !important;
    box-shadow:
        inset 0 2px 6px hsl(244 24% 6% / 0.42),
        inset 0 1px 0 hsl(188 80% 88% / 0.04);
}

[data-theme="neon-city"] #healthText,
[data-theme="neon-city"] #magicText,
[data-theme="neon-city"] #enduranceText {
    color: hsl(302 16% 96%);
    text-shadow: 0 0 10px hsl(244 24% 6% / 0.6);
}

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

[data-theme="neon-city"] .health-bar,
[data-theme="neon-city"] .hp-bar-fill {
    background:
        linear-gradient(90deg, hsl(326 88% 54%) 0%, hsl(338 100% 66%) 52%, hsl(2 88% 68%) 100%) !important;
    box-shadow: 0 0 16px hsl(326 100% 64% / 0.18) !important;
}

[data-theme="neon-city"] .magic-bar,
[data-theme="neon-city"] .mana-bar-fill,
[data-theme="neon-city"] .energy-bar-fill {
    background:
        linear-gradient(90deg, hsl(188 100% 54%) 0%, hsl(206 100% 64%) 56%, hsl(226 86% 68%) 100%) !important;
    box-shadow: 0 0 16px hsl(188 100% 64% / 0.18) !important;
}

[data-theme="neon-city"] .endurance-bar,
[data-theme="neon-city"] .stamina-bar-fill {
    background:
        linear-gradient(90deg, hsl(34 100% 56%) 0%, hsl(42 100% 64%) 55%, hsl(54 100% 72%) 100%) !important;
    box-shadow: 0 0 16px hsl(42 100% 64% / 0.16) !important;
}

[data-theme="neon-city"] .weight-progress-bar.weight-ok,
[data-theme="neon-city"] .weight-fill,
[data-theme="neon-city"] .encumbrance-fill {
    background:
        linear-gradient(90deg, hsl(154 88% 52%) 0%, hsl(188 100% 64%) 100%) !important;
}

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

[data-theme="neon-city"] .weight-progress-bar.weight-crit {
    background:
        linear-gradient(90deg, hsl(338 100% 58%) 0%, hsl(2 88% 64%) 100%) !important;
}

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

[data-theme="neon-city"] .unified-tooltip,
[data-theme="neon-city"] .spell-tooltip,
[data-theme="neon-city"] #item-tooltip {
    background:
        linear-gradient(180deg, hsl(246 28% 12% / 0.98), hsl(242 30% 10% / 0.98));
    border: 1px solid hsl(188 72% 60% / 0.24);
    border-radius: var(--radius-xl);
    color: var(--color-tooltip-text);
    box-shadow:
        0 18px 40px hsl(244 24% 6% / 0.48),
        0 0 18px hsl(326 100% 64% / 0.08);
}

[data-theme="neon-city"] .itooltip-title,
[data-theme="neon-city"] .skilltooltip-title,
[data-theme="neon-city"] .attrtooltip-title,
[data-theme="neon-city"] .stattooltip-title,
[data-theme="neon-city"] .unified-tooltip .tooltip-title {
    color: hsl(42 100% 66%) !important;
}

[data-theme="neon-city"] .tt-section {
    background: hsl(248 22% 18% / 0.72);
    border-radius: var(--radius-md);
}

[data-theme="neon-city"] .tt-sep-accent {
    border-top-color: hsl(326 100% 64%);
}

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

[data-theme="neon-city"] .twohanded-toggle {
    background: transparent !important;
    border: 2px solid hsl(188 72% 60% / 0.32);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 hsl(188 80% 88% / 0.04);
}

[data-theme="neon-city"] .twohanded-toggle:hover {
    background: hsl(188 42% 18% / 0.28) !important;
    border-color: hsl(188 100% 64%);
    box-shadow: 0 0 14px hsl(188 100% 64% / 0.1);
}

[data-theme="neon-city"] .twohanded-toggle.active {
    background:
        linear-gradient(135deg, hsl(326 100% 64%), hsl(282 82% 56%)) !important;
    border-color: hsl(326 100% 82%);
    box-shadow:
        0 0 0 3px hsl(326 100% 64% / 0.18),
        0 0 18px hsl(326 100% 64% / 0.16);
}

[data-theme="neon-city"] .twohanded-toggle.active .twohanded-toggle-icon {
    filter:
        brightness(0) saturate(100%) invert(100%) sepia(4%)
        saturate(323%) hue-rotate(190deg) brightness(104%) contrast(102%) !important;
}

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

[data-theme="neon-city"] ::-webkit-scrollbar-track {
    background: hsl(246 22% 12%);
    border-radius: 999px;
}

[data-theme="neon-city"] ::-webkit-scrollbar-thumb {
    background:
        linear-gradient(180deg, hsl(188 72% 54%), hsl(326 82% 56%));
    border-radius: 999px;
    border: 2px solid hsl(246 22% 12%);
}

[data-theme="neon-city"] ::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(180deg, hsl(188 100% 64%), hsl(326 100% 64%));
}

[data-theme="neon-city"] ::selection {
    background: hsl(326 100% 64% / 0.3);
    color: hsl(0 0% 100%);
}

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

[data-theme="neon-city"] hr,
[data-theme="neon-city"] .divider {
    border: none;
    border-top: 1px solid hsl(188 72% 60% / 0.14);
}
[data-theme="neon-city"] .toxicity-container {
    border-color: var(--color-toxicity) !important;
}

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

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