/* ==========================================================================
   RUNIC THEME: Ice Kingdom Reborn
   A frozen cathedral of aurora glass, moonlit snow, and carved crystal.
   ========================================================================= */

[data-theme="ice-kingdom"] {
    /* Core hue system */
    --hue-primary: 193;
    --hue-accent: 227;
    --hue-gm: 318;
    --hue-danger: 356;
    --hue-warning: 188;
    --hue-success: 158;
    --hue-toxicity: 134;
    --hue-neutral: 216;

    --sat-primary: 68%;
    --lit-primary: 62%;
    --lit-primary-hover: 70%;

    --sat-accent: 34%;
    --lit-accent: 68%;
    --lit-accent-hover: 76%;

    --sat-gm: 44%;
    --lit-gm: 56%;
    --lit-gm-text: 76%;

    --sat-danger: 48%;
    --lit-danger: 56%;
    --lit-danger-hover: 64%;

    --sat-warning: 40%;
    --lit-warning: 70%;

    --sat-success: 28%;
    --lit-success: 56%;

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

    --lightness-bg: 8%;

    /* Form and timing */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 14px;
    --radius-xl: 18px;
    --radius-2xl: 26px;

    --font-sans: 'Cormorant Garamond', 'Cinzel', 'Segoe UI', serif;
    --font-mono: 'IBM Plex Mono', 'Consolas', monospace;

    --duration-75: 90ms;
    --duration-150: 170ms;
    --duration-250: 280ms;
    --duration-300: 360ms;
    --duration-400: 620ms;

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

    /* Identity */
    --aurora-cyan: hsl(190 82% 72%);
    --aurora-blue: hsl(214 72% 72%);
    --frost-white: hsl(204 72% 96%);
    --ice-silver: hsl(210 24% 82%);
    --glacial-veil: hsl(208 28% 92% / 0.16);
    --night-abyss: hsl(224 34% 8%);
    --midnight-ice: hsl(218 26% 14%);
    --cathedral-shadow: hsl(226 26% 10%);
    --crystal-line: hsl(194 54% 78% / 0.48);
    --snow-mist: hsl(200 42% 94% / 0.08);

    /* Surfaces */
    --bg-page: hsl(224 34% 8%);
    --bg-primary: hsl(218 26% 14%);
    --bg-secondary: hsl(216 24% 16% / 0.9);
    --bg-tertiary: hsl(214 22% 18% / 0.95);
    --bg-card: hsl(214 20% 18% / 0.82);
    --bg-hover: hsl(202 28% 28% / 0.44);
    --bg-input: hsl(214 20% 17%);

    --surface-elevated: hsl(214 20% 22% / 0.9);
    --surface-overlay: hsl(214 22% 20% / 0.98);
    --surface-panel: hsl(214 18% 18% / 0.96);

    /* Text */
    --text-primary: hsl(204 72% 95%);
    --text-secondary: hsl(208 30% 78%);
    --text-label: hsl(194 48% 84%);
    --text-light: hsl(205 82% 98%);
    --text-muted: hsl(214 14% 64% / 0.88);

    /* Borders and shadows */
    --border-color: hsl(198 30% 58% / 0.4);
    --border-subtle: hsl(206 18% 34% / 0.54);
    --border-strong: hsl(192 58% 76% / 0.74);

    --shadow-glow-primary:
        0 0 18px hsl(190 82% 72% / 0.16),
        0 0 42px hsl(214 72% 72% / 0.08);
    --shadow-glow-accent:
        0 0 18px hsl(214 58% 74% / 0.12);
    --shadow-glow-danger:
        0 0 18px hsl(356 48% 60% / 0.1);
    --shadow-glow-gold:
        0 0 18px hsl(190 82% 72% / 0.16);

    /* Icons */
    --icon-color: hsl(194 58% 84%);
    --icon-filter: brightness(0) saturate(100%) invert(92%) sepia(7%)
        saturate(1180%) hue-rotate(171deg) brightness(95%) contrast(90%);

    /* Focus and tooltip */
    --color-focus-ring: hsl(190 82% 72% / 0.24);

    --color-tooltip-bg: hsl(218 24% 14% / 0.98);
    --color-tooltip-highlight: hsl(190 82% 86%);
    --color-tooltip-effect-bg: hsl(190 82% 72% / 0.08);
    --color-tooltip-text: hsl(204 64% 94%);
    --color-tooltip-label: hsl(196 34% 84%);
    --color-tooltip-muted: hsl(212 12% 68%);
    --color-tooltip-dim: hsl(214 10% 58%);
    --color-tooltip-pos: hsl(158 28% 58%);
    --color-tooltip-neg: hsl(356 44% 64%);
    --color-tooltip-separator: hsl(200 22% 42% / 0.62);
    --color-tooltip-section-bg: hsl(214 18% 22% / 0.82);

    /* Quality colors */
    --quality-0-color1: rgb(118, 130, 146);
    --quality-0-color2: rgb(68, 78, 92);
    --quality-1-color1: rgb(226, 238, 248);
    --quality-1-color2: rgb(170, 186, 204);
    --quality-2-color1: rgb(108, 172, 148);
    --quality-2-color2: rgb(66, 116, 98);
    --quality-3-color1: rgb(118, 178, 236);
    --quality-3-color2: rgb(62, 114, 170);
    --quality-4-color1: rgb(154, 138, 220);
    --quality-4-color2: rgb(96, 84, 158);
    --quality-5-color1: rgb(126, 226, 255);
    --quality-5-color2: rgb(70, 166, 206);
    --quality-6-color1: rgb(184, 90, 100);
    --quality-6-color2: rgb(126, 52, 60);
    --quality-7-color1: rgb(236, 250, 255);
    --quality-7-color2: rgb(138, 222, 255);

    /* Spell / element system */
    --element-fire-bg: hsl(6 18% 22%);
    --element-fire-border: hsl(8 34% 54% / 0.56);
    --element-fire-hover: hsl(6 20% 26%);
    --element-fire-glow: hsl(8 42% 60% / 0.12);

    --element-water-bg: hsl(202 26% 24%);
    --element-water-border: hsl(194 58% 74% / 0.58);
    --element-water-hover: hsl(202 28% 28%);
    --element-water-glow: hsl(194 78% 84% / 0.18);

    --element-earth-bg: hsl(178 12% 22%);
    --element-earth-border: hsl(172 18% 56% / 0.46);
    --element-earth-hover: hsl(178 14% 26%);
    --element-earth-glow: hsl(172 26% 62% / 0.1);

    --element-wind-bg: hsl(210 22% 24%);
    --element-wind-border: hsl(202 32% 76% / 0.52);
    --element-wind-hover: hsl(210 24% 28%);
    --element-wind-glow: hsl(202 54% 86% / 0.14);

    --element-light-bg: hsl(194 26% 26%);
    --element-light-border: hsl(188 68% 88% / 0.6);
    --element-light-hover: hsl(194 28% 30%);
    --element-light-glow: hsl(188 92% 92% / 0.18);

    --element-shadow-bg: hsl(238 18% 20%);
    --element-shadow-border: hsl(238 28% 58% / 0.5);
    --element-shadow-hover: hsl(238 20% 24%);
    --element-shadow-glow: hsl(238 34% 66% / 0.1);

    --element-death-bg: hsl(344 16% 20%);
    --element-death-border: hsl(344 28% 54% / 0.48);
    --element-death-hover: hsl(344 18% 24%);
    --element-death-glow: hsl(344 36% 62% / 0.1);

    --element-life-bg: hsl(156 16% 22%);
    --element-life-border: hsl(158 28% 58% / 0.48);
    --element-life-hover: hsl(156 18% 26%);
    --element-life-glow: hsl(158 34% 66% / 0.1);

    --element-arcane-bg: hsl(270 16% 22%);
    --element-arcane-border: hsl(270 28% 62% / 0.5);
    --element-arcane-hover: hsl(270 18% 26%);
    --element-arcane-glow: hsl(270 38% 68% / 0.1);

    --element-mind-bg: hsl(224 16% 22%);
    --element-mind-border: hsl(224 28% 62% / 0.5);
    --element-mind-hover: hsl(224 18% 26%);
    --element-mind-glow: hsl(224 36% 68% / 0.1);

    --element-physical-bg: hsl(208 18% 22%);
    --element-physical-border: hsl(208 28% 60% / 0.48);
    --element-physical-hover: hsl(208 20% 26%);
    --element-physical-glow: hsl(208 36% 66% / 0.1);

    --spell-temp-bg: hsl(208 18% 22%);
    --spell-temp-border: hsl(194 38% 70% / 0.72);
    --spell-temp-hover-bg: hsl(208 20% 26%);
    --spell-temp-hover-glow: hsl(194 68% 84% / 0.14);
    --spell-temp-badge-bg: hsl(194 58% 62%);
    --spell-temp-header-bg: hsl(210 18% 24%);
    --spell-temp-header-hover-bg: hsl(210 20% 28%);
    --spell-tile-hover-bg: hsl(210 20% 26%);

    /* Inventory / currency / buffs */
    --item-tile-base: hsl(214 18% 18% / 0.84);
    --item-tile-border: hsl(200 18% 40% / 0.64);
    --item-tile-add-bg: hsl(214 16% 17% / 0.9);
    --item-tile-add-border: hsl(200 16% 32% / 0.74);
    --item-tile-add-hover: hsl(210 18% 23% / 0.92);
    --item-tile-add-border-hover: hsl(192 40% 66% / 0.86);

    --weight-display-bg: hsl(214 18% 18%);
    --weight-ok-color: hsl(158 28% 58%);
    --weight-warn-color: hsl(194 58% 76%);
    --weight-crit-color: hsl(356 44% 64%);
    --weight-bar-track-bg: hsl(214 16% 28%);

    --currency-tile-bg: hsl(214 18% 18% / 0.86);
    --currency-tile-border: hsl(200 18% 40% / 0.66);
    --currency-tile-hover-bg: hsl(210 18% 23% / 0.92);
    --currency-tile-hover-shadow: hsl(194 82% 86% / 0.14);
    --currency-quantity-bg: hsl(204 24% 28%);
    --currency-add-bg: hsl(214 16% 17%);
    --currency-add-border: hsl(200 16% 32% / 0.74);
    --currency-add-hover-bg: hsl(210 18% 23%);
    --currency-add-hover-border: hsl(192 40% 66% / 0.84);

    --color-buff-tile-bg: hsl(156 16% 22%);
    --color-buff-tile-border: hsl(158 22% 48% / 0.56);
    --color-buff-tile-hover: hsl(156 18% 26%);
    --color-buff-tile-glow: hsl(158 34% 60% / 0.1);
    --color-debuff-tile-bg: hsl(344 16% 20%);
    --color-debuff-tile-border: hsl(344 24% 48% / 0.56);
    --color-debuff-tile-hover: hsl(344 18% 24%);
    --color-debuff-tile-glow: hsl(344 36% 60% / 0.1);
    --color-neutral-tile-bg: hsl(214 18% 18%);
    --color-neutral-tile-border: hsl(200 16% 38% / 0.56);
    --color-neutral-tile-hover: hsl(210 18% 23%);
    --color-neutral-tile-glow: hsl(194 32% 70% / 0.08);
    --color-buff-indicator: hsl(158 28% 58%);
    --color-debuff-indicator: hsl(356 44% 64%);

    /* Common status colors */
    --color-heal: hsl(158 28% 58%);
    --color-gold: hsl(194 58% 76%);
}

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

@keyframes auroraHalo {
    0%, 100% {
        box-shadow:
            0 0 0 1px hsl(198 22% 42% / 0.48),
            0 0 18px hsl(190 82% 72% / 0.08);
    }
    50% {
        box-shadow:
            0 0 0 1px hsl(192 48% 72% / 0.72),
            0 0 28px hsl(190 82% 72% / 0.16),
            0 0 48px hsl(214 72% 72% / 0.1);
    }
}

@keyframes polarText {
    0%, 100% {
        text-shadow: 0 0 0 hsl(190 82% 78% / 0);
    }
    50% {
        text-shadow:
            0 0 12px hsl(190 82% 78% / 0.18),
            0 0 28px hsl(214 72% 78% / 0.08);
    }
}

@keyframes glacialSweep {
    0% {
        transform: translateX(-130%) skewX(-20deg);
        opacity: 0;
    }
    14% {
        opacity: 1;
    }
    100% {
        transform: translateX(240%) skewX(-20deg);
        opacity: 0;
    }
}

@keyframes snowSpark {
    0%, 100% {
        opacity: 0.22;
        transform: translateY(0);
    }
    50% {
        opacity: 0.48;
        transform: translateY(-1px);
    }
}

/* ==========================================================================
   Background and media
   ========================================================================= */

[data-theme="ice-kingdom"] body {
    background-color: var(--bg-page);
    background-image:
        radial-gradient(circle at 16% 12%, hsl(190 72% 34% / 0.24), transparent 26%),
        radial-gradient(circle at 84% 16%, hsl(220 48% 30% / 0.2), transparent 30%),
        radial-gradient(circle at 52% 78%, hsl(180 18% 28% / 0.14), transparent 36%),
        linear-gradient(180deg, hsl(226 36% 8%) 0%, hsl(218 26% 12%) 42%, hsl(224 34% 8%) 100%);
    background-attachment: fixed;
}

[data-theme="ice-kingdom"] body::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        linear-gradient(115deg, transparent 0 32%, hsl(190 84% 90% / 0.06) 48%, transparent 64%),
        linear-gradient(68deg, transparent 0 42%, hsl(214 84% 82% / 0.05) 58%, transparent 74%),
        repeating-linear-gradient(
            140deg,
            transparent 0 60px,
            hsl(202 22% 76% / 0.03) 60px 61px,
            transparent 61px 122px
        );
    pointer-events: none;
    z-index: var(--z-base, 0);
}

[data-theme="ice-kingdom"] body::after {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 50% 0%, hsl(194 92% 92% / 0.12), transparent 34%),
        radial-gradient(circle at 50% 50%, transparent 58%, hsl(224 34% 4% / 0.34) 100%);
    pointer-events: none;
    z-index: var(--z-max, 9999);
}

[data-theme="ice-kingdom"] img {
    filter: saturate(0.9) brightness(0.9) contrast(1.05);
}

[data-theme="ice-kingdom"] .icon-themed,
[data-theme="ice-kingdom"] .icon,
[data-theme="ice-kingdom"] .spell-icon,
[data-theme="ice-kingdom"] .resistance-icon,
[data-theme="ice-kingdom"] .currency-icon,
[data-theme="ice-kingdom"] .buff-icon,
[data-theme="ice-kingdom"] .action-btn,
[data-theme="ice-kingdom"] .newspaper-icon {
    filter: var(--icon-filter);
}

/* ==========================================================================
   Typography
   ========================================================================= */

[data-theme="ice-kingdom"] h1,
[data-theme="ice-kingdom"] h2,
[data-theme="ice-kingdom"] h3 {
    color: hsl(194 84% 90%);
    font-family: var(--font-sans);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    animation: polarText 8s ease-in-out infinite;
}

[data-theme="ice-kingdom"] h4,
[data-theme="ice-kingdom"] h5,
[data-theme="ice-kingdom"] h6 {
    color: hsl(204 34% 84%);
    font-family: var(--font-sans);
}

/* ==========================================================================
   Core surfaces
   ========================================================================= */

[data-theme="ice-kingdom"] .card,
[data-theme="ice-kingdom"] .card-glass,
[data-theme="ice-kingdom"] .character-card,
[data-theme="ice-kingdom"] .widget-tile,
[data-theme="ice-kingdom"] .attribute-card,
[data-theme="ice-kingdom"] .character-item,
[data-theme="ice-kingdom"] .login-container,
[data-theme="ice-kingdom"] .modal,
[data-theme="ice-kingdom"] .story-note-item,
[data-theme="ice-kingdom"] .spell-tile,
[data-theme="ice-kingdom"] .buff-tile,
[data-theme="ice-kingdom"] .item-tile,
[data-theme="ice-kingdom"] .currency-tile {
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    background:
        linear-gradient(180deg, hsl(204 80% 96% / 0.08), transparent 18%),
        linear-gradient(135deg, hsl(214 22% 20% / 0.82), hsl(224 26% 12% / 0.92));
    border: 1px solid var(--border-color);
    box-shadow:
        inset 0 1px 0 hsl(194 84% 94% / 0.12),
        inset 0 -22px 36px hsl(228 40% 4% / 0.22),
        0 16px 30px hsl(226 40% 4% / 0.24);
}

[data-theme="ice-kingdom"] .card::before,
[data-theme="ice-kingdom"] .card-glass::before,
[data-theme="ice-kingdom"] .character-card::before,
[data-theme="ice-kingdom"] .widget-tile::before,
[data-theme="ice-kingdom"] .attribute-card::before,
[data-theme="ice-kingdom"] .character-item::before,
[data-theme="ice-kingdom"] .login-container::before,
[data-theme="ice-kingdom"] .modal::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, transparent 0 3%, hsl(194 64% 86% / 0.1) 3% 3.5%, transparent 3.5% 96.5%, hsl(194 64% 86% / 0.1) 96.5% 97%, transparent 97% 100%),
        linear-gradient(180deg, transparent 0 4%, hsl(194 44% 84% / 0.08) 4% 4.5%, transparent 4.5% 95.5%, hsl(194 44% 84% / 0.08) 95.5% 96%, transparent 96% 100%);
    pointer-events: none;
}

[data-theme="ice-kingdom"] .card::after,
[data-theme="ice-kingdom"] .character-card::after,
[data-theme="ice-kingdom"] .widget-tile::after,
[data-theme="ice-kingdom"] .btn-primary::after,
[data-theme="ice-kingdom"] .roll-button::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 38%;
    background: linear-gradient(
        90deg,
        transparent,
        hsl(0 0% 100% / 0.05) 26%,
        hsl(194 92% 94% / 0.5) 50%,
        hsl(190 82% 72% / 0.18) 66%,
        transparent
    );
    transform: translateX(-130%) skewX(-20deg);
    pointer-events: none;
    opacity: 0;
}

[data-theme="ice-kingdom"] .card:hover,
[data-theme="ice-kingdom"] .card-glass:hover,
[data-theme="ice-kingdom"] .character-card:hover,
[data-theme="ice-kingdom"] .widget-tile:hover,
[data-theme="ice-kingdom"] .attribute-card:hover,
[data-theme="ice-kingdom"] .character-item:hover,
[data-theme="ice-kingdom"] .story-note-item:hover,
[data-theme="ice-kingdom"] .spell-tile:hover,
[data-theme="ice-kingdom"] .buff-tile:hover,
[data-theme="ice-kingdom"] .item-tile:hover,
[data-theme="ice-kingdom"] .currency-tile:hover {
    border-color: var(--border-strong);
    box-shadow:
        inset 0 1px 0 hsl(194 84% 96% / 0.16),
        inset 0 -22px 36px hsl(228 40% 4% / 0.24),
        0 20px 36px hsl(226 40% 4% / 0.28),
        0 0 26px hsl(190 82% 72% / 0.1);
}

[data-theme="ice-kingdom"] .card:hover::after,
[data-theme="ice-kingdom"] .character-card:hover::after,
[data-theme="ice-kingdom"] .widget-tile:hover::after {
    animation: glacialSweep 1.1s ease-out forwards;
}

/* ==========================================================================
   Buttons, tabs, iconbars
   ========================================================================= */

[data-theme="ice-kingdom"] .btn-primary,
[data-theme="ice-kingdom"] .roll-button,
[data-theme="ice-kingdom"] .save-note-btn {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, hsl(194 54% 64%), hsl(210 42% 40%));
    color: hsl(205 82% 98%);
    border: 1px solid hsl(194 48% 74% / 0.92);
    box-shadow:
        inset 0 1px 0 hsl(0 0% 100% / 0.18),
        0 10px 24px hsl(194 54% 64% / 0.14);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

[data-theme="ice-kingdom"] .btn-primary:hover,
[data-theme="ice-kingdom"] .roll-button:hover,
[data-theme="ice-kingdom"] .save-note-btn:hover {
    border-color: hsl(190 82% 86%);
    box-shadow:
        inset 0 1px 0 hsl(0 0% 100% / 0.22),
        0 14px 28px hsl(194 54% 64% / 0.18),
        0 0 24px hsl(190 82% 86% / 0.12);
}

[data-theme="ice-kingdom"] .btn-primary:hover::after,
[data-theme="ice-kingdom"] .roll-button:hover::after {
    animation: glacialSweep 0.95s ease-out forwards;
}

[data-theme="ice-kingdom"] .btn-secondary,
[data-theme="ice-kingdom"] .btn-ghost,
[data-theme="ice-kingdom"] .tab-btn,
[data-theme="ice-kingdom"] .tab_btn,
[data-theme="ice-kingdom"] .twohanded-toggle {
    background: linear-gradient(180deg, hsl(214 22% 20%), hsl(224 26% 12%));
    color: hsl(200 44% 88%);
    border: 1px solid hsl(200 18% 36% / 0.8);
    box-shadow:
        inset 0 1px 0 hsl(194 84% 94% / 0.06),
        0 8px 18px hsl(226 40% 4% / 0.2);
}

[data-theme="ice-kingdom"] .btn-secondary:hover,
[data-theme="ice-kingdom"] .btn-ghost:hover,
[data-theme="ice-kingdom"] .tab-btn:hover,
[data-theme="ice-kingdom"] .tab_btn:hover,
[data-theme="ice-kingdom"] .twohanded-toggle:hover {
    border-color: hsl(192 44% 66% / 0.86);
    color: hsl(194 84% 96%);
    background: linear-gradient(180deg, hsl(210 24% 24%), hsl(222 24% 16%));
}

[data-theme="ice-kingdom"] .tab-btn.active,
[data-theme="ice-kingdom"] .tab_btn.active,
[data-theme="ice-kingdom"] .tab_btn.active-tab,
[data-theme="ice-kingdom"] .twohanded-toggle.active {
    background: linear-gradient(180deg, hsl(194 54% 64%), hsl(210 42% 40%));
    color: hsl(205 82% 98%);
    border-color: hsl(190 82% 86%);
    box-shadow:
        inset 0 1px 0 hsl(0 0% 100% / 0.18),
        0 0 0 3px hsl(190 82% 72% / 0.14),
        0 0 24px hsl(190 82% 86% / 0.14);
    animation: auroraHalo 3.8s ease-in-out infinite;
}

[data-theme="ice-kingdom"] #div_iconbar_left,
[data-theme="ice-kingdom"] #div_iconbar_right {
    background:
        linear-gradient(180deg, hsl(216 22% 18% / 0.96), hsl(226 28% 12% / 0.96));
    border: 1px solid hsl(202 18% 30% / 0.74);
    box-shadow:
        inset 0 1px 0 hsl(194 84% 92% / 0.05),
        0 12px 28px hsl(228 40% 4% / 0.24);
}

[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn {
    background: linear-gradient(180deg, hsl(214 22% 20%), hsl(224 26% 12%)) !important;
    border: 2px solid hsl(200 18% 30% / 0.84) !important;
}

[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn .tab_Icon,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn .tab_Icon,
[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn img,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn img,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn img,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn .navi-icon {
    filter: var(--icon-filter) !important;
    opacity: 1 !important;
}

[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn.active-tab,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn.active-tab,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn.active-tab,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn.active {
    background: linear-gradient(180deg, hsl(194 54% 64%), hsl(210 42% 40%)) !important;
    border: 2px solid hsl(190 82% 86%) !important;
    box-shadow:
        inset 0 1px 0 hsl(0 0% 100% / 0.18),
        0 0 0 3px hsl(190 82% 72% / 0.14),
        0 0 24px hsl(190 82% 86% / 0.14) !important;
}

[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn.active-tab .tab_Icon,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn.active-tab .tab_Icon,
[data-theme="ice-kingdom"] #div_iconbar_left .tab_btn.active-tab img,
[data-theme="ice-kingdom"] #div_iconbar_right .tab_btn.active-tab img,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn.active-tab img,
[data-theme="ice-kingdom"] .navigation-bar .tab_btn.active img,
[data-theme="ice-kingdom"] .twohanded-toggle.active .twohanded-toggle-icon {
    filter:
        brightness(0) saturate(100%) invert(100%) sepia(0%)
        saturate(0%) hue-rotate(338deg) brightness(108%) contrast(102%) !important;
}

/* ==========================================================================
   Forms and controls
   ========================================================================= */

[data-theme="ice-kingdom"] .input,
[data-theme="ice-kingdom"] .select,
[data-theme="ice-kingdom"] .textarea,
[data-theme="ice-kingdom"] select,
[data-theme="ice-kingdom"] .form-select,
[data-theme="ice-kingdom"] .equipment-select {
    appearance: none;
    -webkit-appearance: none;
    background: linear-gradient(180deg, hsl(214 22% 18%), hsl(224 26% 13%));
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    box-shadow: inset 0 1px 0 hsl(194 84% 94% / 0.06);
}

[data-theme="ice-kingdom"] select,
[data-theme="ice-kingdom"] .select,
[data-theme="ice-kingdom"] .form-select,
[data-theme="ice-kingdom"] .equipment-select {
    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='%23d5f1fb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    background-size: 14px;
    padding-right: 1.9rem;
}

[data-theme="ice-kingdom"] .input:hover:not(:disabled):not(:focus),
[data-theme="ice-kingdom"] .select:hover:not(:disabled):not(:focus),
[data-theme="ice-kingdom"] .textarea:hover:not(:disabled):not(:focus),
[data-theme="ice-kingdom"] select:hover:not(:disabled),
[data-theme="ice-kingdom"] .form-select:hover:not(:disabled),
[data-theme="ice-kingdom"] .equipment-select:hover:not(:disabled) {
    border-color: hsl(192 44% 66% / 0.84);
}

[data-theme="ice-kingdom"] .input:focus,
[data-theme="ice-kingdom"] .select:focus,
[data-theme="ice-kingdom"] .textarea:focus,
[data-theme="ice-kingdom"] select:focus,
[data-theme="ice-kingdom"] .form-select:focus,
[data-theme="ice-kingdom"] .equipment-select:focus {
    border-color: hsl(190 82% 72%);
    box-shadow:
        0 0 0 3px var(--color-focus-ring),
        0 0 18px hsl(190 82% 86% / 0.1);
    outline: none;
}

[data-theme="ice-kingdom"] .checkbox:checked,
[data-theme="ice-kingdom"] .radio:checked,
[data-theme="ice-kingdom"] .toggle:checked {
    background: linear-gradient(180deg, hsl(194 54% 64%), hsl(210 42% 40%));
    border-color: hsl(190 82% 86%);
}

[data-theme="ice-kingdom"] .toggle:checked::after {
    background: hsl(205 82% 98%);
}

[data-theme="ice-kingdom"] .range {
    background: linear-gradient(90deg, hsl(214 16% 28%), hsl(208 22% 34%));
}

[data-theme="ice-kingdom"] .range::-webkit-slider-thumb,
[data-theme="ice-kingdom"] .range::-moz-range-thumb {
    background: linear-gradient(180deg, hsl(204 74% 86%), hsl(194 50% 62%));
    box-shadow: 0 0 14px hsl(190 82% 86% / 0.12);
}

[data-theme="ice-kingdom"] select option {
    background-color: hsl(216 22% 14%);
    color: var(--text-primary);
}

/* ==========================================================================
   Modals and tooltips
   ========================================================================= */

[data-theme="ice-kingdom"] .modal {
    background:
        radial-gradient(circle at top, hsl(194 92% 92% / 0.08), transparent 24%),
        linear-gradient(135deg, hsl(216 22% 18% / 0.96), hsl(226 28% 12% / 0.98));
    border-color: hsl(198 24% 50% / 0.74);
    box-shadow:
        0 24px 48px hsl(228 40% 4% / 0.34),
        0 0 24px hsl(190 82% 86% / 0.08);
}

[data-theme="ice-kingdom"] .modal-header,
[data-theme="ice-kingdom"] .modal-footer {
    background: linear-gradient(180deg, hsl(208 20% 24% / 0.72), hsl(214 18% 18% / 0.38));
    border-color: var(--border-subtle);
}

[data-theme="ice-kingdom"] .modal-title {
    color: hsl(194 84% 90%);
}

[data-theme="ice-kingdom"] .modal-close {
    color: var(--text-secondary);
}

[data-theme="ice-kingdom"] .modal-close:hover {
    color: var(--text-light);
    background: hsl(194 26% 26% / 0.54);
}

[data-theme="ice-kingdom"] .tooltip,
[data-theme="ice-kingdom"] .unified-tooltip,
[data-theme="ice-kingdom"] .basic-tooltip,
[data-theme="ice-kingdom"] .itooltip,
[data-theme="ice-kingdom"] .skilltooltip,
[data-theme="ice-kingdom"] .attrtooltip,
[data-theme="ice-kingdom"] .stattooltip,
[data-theme="ice-kingdom"] #item-tooltip,
[data-theme="ice-kingdom"] .buff-tooltip,
[data-theme="ice-kingdom"] .twohanded-tooltip {
    background:
        linear-gradient(180deg, hsl(194 92% 92% / 0.05), transparent 18%),
        linear-gradient(135deg, var(--color-tooltip-bg), hsl(224 26% 12% / 0.98));
    color: var(--color-tooltip-text);
    border: 1px solid var(--color-tooltip-separator);
    box-shadow:
        0 16px 34px hsl(228 40% 4% / 0.32),
        0 0 20px hsl(190 82% 86% / 0.06);
}

/* ==========================================================================
   Tables and layout
   ========================================================================= */

[data-theme="ice-kingdom"] table,
[data-theme="ice-kingdom"] .equipment-table {
    width: 100%;
    border-collapse: collapse;
    background: linear-gradient(180deg, hsl(214 20% 18%), hsl(224 26% 12%));
    border: 1px solid var(--border-color);
}

[data-theme="ice-kingdom"] th,
[data-theme="ice-kingdom"] .equipment-table th {
    background: linear-gradient(180deg, hsl(206 26% 26%), hsl(216 22% 18%));
    color: hsl(194 84% 90%);
    border-bottom: 1px solid var(--border-strong);
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[data-theme="ice-kingdom"] td,
[data-theme="ice-kingdom"] .equipment-table td {
    border-bottom: 1px solid hsl(204 18% 28% / 0.62);
}

[data-theme="ice-kingdom"] tr:hover td,
[data-theme="ice-kingdom"] .equipment-table tr:hover td {
    background: hsl(206 18% 24% / 0.52);
}

[data-theme="ice-kingdom"] .navigation-bar {
    background: linear-gradient(180deg, hsl(214 20% 18% / 0.98), hsl(226 28% 12% / 0.98));
    border-bottom: 1px solid hsl(202 18% 30% / 0.74);
    box-shadow:
        inset 0 -1px 0 hsl(194 84% 94% / 0.04),
        0 12px 26px hsl(228 40% 4% / 0.2);
}

[data-theme="ice-kingdom"] .attribute-cards-container {
    background: linear-gradient(180deg, hsl(214 18% 18% / 0.54), hsl(224 26% 10% / 0.22));
}

[data-theme="ice-kingdom"] .attribute-subskills {
    background: linear-gradient(180deg, hsl(214 20% 18% / 0.9), hsl(224 26% 12% / 0.96));
    border: 1px solid var(--border-subtle);
}

[data-theme="ice-kingdom"] .subskill-item {
    border-bottom: 1px solid hsl(204 18% 28% / 0.62);
}

[data-theme="ice-kingdom"] .subskill-name {
    color: hsl(194 48% 84%);
}

[data-theme="ice-kingdom"] .subskill-effect,
[data-theme="ice-kingdom"] .story-description,
[data-theme="ice-kingdom"] .story-description-only {
    color: var(--text-secondary);
}

[data-theme="ice-kingdom"] .attribute-icon-container {
    background:
        radial-gradient(circle at 30% 22%, hsl(194 100% 96% / 0.2), transparent 40%),
        linear-gradient(180deg, hsl(210 24% 28%), hsl(224 26% 16%));
    color: hsl(194 82% 90%);
    box-shadow:
        inset 0 0 0 1px hsl(194 28% 56% / 0.54),
        0 0 16px hsl(190 82% 86% / 0.08);
}

[data-theme="ice-kingdom"] .attribute-value,
[data-theme="ice-kingdom"] .info-value,
[data-theme="ice-kingdom"] .roll-result {
    color: hsl(194 84% 92%) !important;
}

[data-theme="ice-kingdom"] .attribute-bonus {
    background: hsl(208 22% 26%);
    color: hsl(194 54% 82%);
}

[data-theme="ice-kingdom"] .attribute-card.physical {
    border-left: 3px solid hsl(194 54% 62%);
}

[data-theme="ice-kingdom"] .attribute-card.mental {
    border-left: 3px solid hsl(224 32% 64%);
}

[data-theme="ice-kingdom"] .attribute-card.social {
    border-left: 3px solid hsl(182 24% 64%);
}

[data-theme="ice-kingdom"] .attribute-card.special {
    border-left: 3px solid hsl(190 82% 86%);
}

[data-theme="ice-kingdom"] .roll-result:not(:empty) {
    background:
        radial-gradient(circle at 50% 40%, hsl(194 92% 92% / 0.12), transparent 60%),
        linear-gradient(180deg, hsl(214 20% 20%), hsl(224 26% 14%));
    border: 1px solid hsl(194 32% 56% / 0.74);
    animation: auroraHalo 3.4s ease-in-out infinite;
}

/* ==========================================================================
   Character cards and login
   ========================================================================= */

[data-theme="ice-kingdom"] .character-card-avatar,
[data-theme="ice-kingdom"] .portrait {
    border: 1px solid hsl(202 20% 38% / 0.84);
    box-shadow:
        inset 0 0 0 1px hsl(194 40% 88% / 0.05),
        0 10px 24px hsl(228 40% 4% / 0.24);
    filter: saturate(0.88) brightness(0.9) contrast(1.04);
}

[data-theme="ice-kingdom"] .character-card:hover .character-card-avatar,
[data-theme="ice-kingdom"] .character-card:hover .portrait {
    border-color: hsl(194 38% 68% / 0.88);
    box-shadow:
        inset 0 0 0 1px hsl(194 44% 92% / 0.06),
        0 12px 28px hsl(228 40% 4% / 0.28),
        0 0 18px hsl(190 82% 86% / 0.08);
}

[data-theme="ice-kingdom"] .character-item::after,
[data-theme="ice-kingdom"] .attribute-card::after {
    content: '';
    position: absolute;
    right: 0.9rem;
    top: 0.7rem;
    width: 18px;
    height: 18px;
    background:
        linear-gradient(45deg, transparent 42%, hsl(194 92% 92% / 0.16) 48%, transparent 54%),
        linear-gradient(-45deg, transparent 42%, hsl(194 92% 92% / 0.16) 48%, transparent 54%);
    opacity: 0.22;
    animation: snowSpark 6s ease-in-out infinite;
    pointer-events: none;
}

[data-theme="ice-kingdom"] .login-container {
    background:
        radial-gradient(circle at 50% 0, hsl(194 92% 92% / 0.08), transparent 24%),
        linear-gradient(135deg, hsl(214 22% 18% / 0.94), hsl(226 28% 12% / 0.98));
}

/* ==========================================================================
   Widgets and stats
   ========================================================================= */

[data-theme="ice-kingdom"] .widget-tile[data-widget-type="attack"] {
    border-color: hsl(356 26% 50% / 0.66);
}

[data-theme="ice-kingdom"] .widget-tile[data-widget-type="skill"] {
    border-color: hsl(224 28% 60% / 0.68);
}

[data-theme="ice-kingdom"] .widget-tile[data-widget-type="activity"] {
    border-color: hsl(192 32% 62% / 0.68);
}

[data-theme="ice-kingdom"] .widget-title {
    color: hsl(194 84% 90%);
}

[data-theme="ice-kingdom"] .stat-item {
    background: linear-gradient(180deg, hsl(214 20% 20%), hsl(224 26% 14%)) !important;
    border: 1px solid var(--border-subtle);
}

[data-theme="ice-kingdom"] .stat-item:hover {
    background: linear-gradient(180deg, hsl(210 20% 24%), hsl(224 26% 16%)) !important;
}

[data-theme="ice-kingdom"] .talent-item {
    background-color: hsl(214 18% 18%) !important;
    border-left-color: hsl(194 38% 66%) !important;
}

[data-theme="ice-kingdom"] .talent-item > div:last-child {
    background-color: hsl(214 16% 28%) !important;
}

[data-theme="ice-kingdom"] .talent-item > div:last-child > div {
    background: linear-gradient(90deg, hsl(194 54% 64%), hsl(210 42% 40%)) !important;
}

/* ==========================================================================
   Inventory, currency, weight
   ========================================================================= */

[data-theme="ice-kingdom"] .item-tile {
    background: linear-gradient(180deg, hsl(214 20% 20%), hsl(224 26% 14%));
    color: var(--text-primary);
}

[data-theme="ice-kingdom"] .quality-5,
[data-theme="ice-kingdom"] .quality-7 {
    box-shadow: 0 0 18px hsl(190 82% 86% / 0.08);
}

[data-theme="ice-kingdom"] .icon-quality-0,
[data-theme="ice-kingdom"] .icon-quality-1,
[data-theme="ice-kingdom"] .icon-quality-2,
[data-theme="ice-kingdom"] .icon-quality-3,
[data-theme="ice-kingdom"] .icon-quality-4,
[data-theme="ice-kingdom"] .icon-quality-5,
[data-theme="ice-kingdom"] .icon-quality-6,
[data-theme="ice-kingdom"] .icon-quality-7,
[data-theme="ice-kingdom"] .equipped-indicator-icon {
    background-color: hsl(194 54% 58%);
}

[data-theme="ice-kingdom"] .item-name,
[data-theme="ice-kingdom"] .currency-name,
[data-theme="ice-kingdom"] .spell-name,
[data-theme="ice-kingdom"] .buff-name {
    color: hsl(204 72% 95%);
}

[data-theme="ice-kingdom"] .item-quantity,
[data-theme="ice-kingdom"] .currency-quantity,
[data-theme="ice-kingdom"] .spell-cost,
[data-theme="ice-kingdom"] .buff-duration {
    background: linear-gradient(180deg, hsl(206 22% 30%), hsl(214 22% 22%));
    color: hsl(194 82% 90%);
    border: 1px solid hsl(194 24% 46% / 0.74);
}

[data-theme="ice-kingdom"] .action-buttons {
    background: hsl(214 18% 18% / 0.96);
    border: 1px solid var(--border-subtle);
    box-shadow: 0 14px 24px hsl(228 40% 4% / 0.22);
}

[data-theme="ice-kingdom"] .weight-progress-container {
    background: hsl(214 16% 28%);
    border: 1px solid hsl(202 16% 36% / 0.76);
}

[data-theme="ice-kingdom"] .weight-progress-bar.weight-ok {
    background: linear-gradient(90deg, hsl(158 28% 58%), hsl(158 24% 42%)) !important;
}

[data-theme="ice-kingdom"] .weight-progress-bar.weight-warn {
    background: linear-gradient(90deg, hsl(194 58% 76%), hsl(210 42% 40%)) !important;
}

[data-theme="ice-kingdom"] .weight-progress-bar.weight-crit {
    background: linear-gradient(90deg, hsl(356 44% 64%), hsl(356 34% 46%)) !important;
}

/* ==========================================================================
   Spells, buffs, notes
   ========================================================================= */

[data-theme="ice-kingdom"] .spell-tile {
    background: linear-gradient(180deg, hsl(214 20% 20%), hsl(224 26% 14%));
}

[data-theme="ice-kingdom"] .spell-tile.temp-spell {
    border-color: var(--spell-temp-border) !important;
    background:
        linear-gradient(180deg, hsl(194 92% 92% / 0.05), transparent 30%),
        linear-gradient(180deg, var(--spell-temp-bg), hsl(224 26% 14%)) !important;
}

[data-theme="ice-kingdom"] .discipline-header,
[data-theme="ice-kingdom"] .info-category-header,
[data-theme="ice-kingdom"] .info-subcategory-header,
[data-theme="ice-kingdom"] .itemtype-header {
    background: linear-gradient(180deg, hsl(210 22% 24%), hsl(222 24% 16%)) !important;
    color: hsl(194 84% 90%) !important;
    border: 1px solid hsl(194 24% 46% / 0.76) !important;
}

[data-theme="ice-kingdom"] .temp-badge {
    background: linear-gradient(180deg, hsl(194 54% 64%), hsl(210 42% 40%));
    color: hsl(205 82% 98%);
}

[data-theme="ice-kingdom"] .spell-progress,
[data-theme="ice-kingdom"] .buff-description {
    color: var(--text-secondary);
}

[data-theme="ice-kingdom"] #sn-tab-btn-notes,
[data-theme="ice-kingdom"] #sn-tab-btn-npcs {
    color: hsl(194 84% 90%) !important;
    border-bottom-color: transparent !important;
}

[data-theme="ice-kingdom"] .save-note-btn img {
    filter: var(--icon-filter);
}

/* ==========================================================================
   Utilities
   ========================================================================= */

[data-theme="ice-kingdom"] .frost-border,
[data-theme="ice-kingdom"] .glow-primary,
[data-theme="ice-kingdom"] .bonfire-glow {
    animation: auroraHalo 3.2s ease-in-out infinite;
}

[data-theme="ice-kingdom"] .ice-shine {
    position: relative;
    overflow: hidden;
}

[data-theme="ice-kingdom"] .ice-shine::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 36%;
    background: linear-gradient(
        90deg,
        transparent,
        hsl(0 0% 100% / 0.04) 24%,
        hsl(194 92% 94% / 0.5) 50%,
        hsl(190 82% 72% / 0.16) 66%,
        transparent
    );
    transform: translateX(-130%) skewX(-20deg);
    animation: glacialSweep 2.8s ease-in-out infinite;
}

[data-theme="ice-kingdom"] ::selection,
[data-theme="ice-kingdom"] ::-moz-selection {
    background: hsl(190 82% 72% / 0.24);
    color: hsl(205 82% 98%);
}

[data-theme="ice-kingdom"] ::-webkit-scrollbar-track {
    background: hsl(218 24% 14%);
}

[data-theme="ice-kingdom"] ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, hsl(206 22% 30%), hsl(214 22% 22%));
    border: 1px solid hsl(194 24% 46% / 0.74);
}

[data-theme="ice-kingdom"] ::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, hsl(198 34% 42%), hsl(210 28% 28%));
}

[data-theme="ice-kingdom"] canvas {
    filter: saturate(0.9) brightness(0.9) contrast(1.05);
}
[data-theme="ice-kingdom"] .toxicity-container {
    border-color: var(--color-toxicity) !important;
}

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

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