/* EvoGO Theme Worlds polish pack
   - Cyber Matrix: high-energy competitive neon
   - Forest Grove: richer calm atmosphere (My Room excluded)
*/

/* Shared smooth transitions (except My Room) */
html[data-evo-theme="cyber"] body.evo-body:not(.myroom-body),
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body) {
    transition:
        background-color 0.45s ease,
        color 0.3s ease;
}

/* ----------------------------- */
/* Cyber Matrix (enhanced world) */
/* ----------------------------- */
html[data-evo-theme="cyber"] {
    --cyber-bg-deep: #05070f;
    --cyber-bg-mid: #0a1224;
    --cyber-panel: rgba(10, 18, 36, 0.78);
    --cyber-panel-strong: rgba(8, 14, 28, 0.92);
    --cyber-line: rgba(68, 154, 255, 0.28);
    --cyber-line-soft: rgba(94, 217, 255, 0.2);
    --cyber-neon: #52e7ff;
    --cyber-neon-soft: rgba(82, 231, 255, 0.18);
    --cyber-pink: #fb3d96;
    --cyber-violet: #8d60ff;
    --cyber-gold: #f7cf74;
    --cyber-text: #ecf5ff;
    --cyber-muted: #9db0d5;
    --cyber-radius: 18px;
    --cyber-font: 'Nunito', 'Noto Sans SC', system-ui, sans-serif;
    --cyber-display: 'Orbitron', 'Noto Sans SC', sans-serif;
    --evo-text: var(--cyber-text);
    --evo-muted: var(--cyber-muted);
}

html[data-evo-theme="cyber"] body.evo-body:not(.myroom-body) {
    font-family: var(--cyber-font);
    color: var(--cyber-text);
    background-color: var(--cyber-bg-deep);
    background-image:
        radial-gradient(circle at 85% 8%, rgba(82, 231, 255, 0.18), transparent 28%),
        radial-gradient(circle at 12% 78%, rgba(141, 96, 255, 0.14), transparent 34%),
        url('/images/themes/cyber/cyber-grid.svg?v=1');
    background-size: auto, auto, cover;
    background-position: center, center, center;
}

html[data-evo-theme="cyber"] body.evo-body:not(.myroom-body)::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(180deg, rgba(7, 13, 24, 0.14), rgba(7, 13, 24, 0.54)),
        url('/images/themes/cyber/cyber-mesh.svg?v=1') center / cover no-repeat;
    mix-blend-mode: screen;
    opacity: 0.66;
    animation: cyber-grid-shift 22s ease-in-out infinite alternate;
}

@keyframes cyber-grid-shift {
    from { transform: scale(1); opacity: 0.58; }
    to { transform: scale(1.03) translateY(-8px); opacity: 0.74; }
}

html[data-evo-theme="cyber"] .evo-app,
html[data-evo-theme="cyber"] .evo-main,
html[data-evo-theme="cyber"] .page-content,
html[data-evo-theme="cyber"] .evo-topbar,
html[data-evo-theme="cyber"] .evo-sidebar {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="cyber"] .evo-sidebar {
    background:
        linear-gradient(180deg, rgba(8, 14, 28, 0.95), rgba(5, 9, 18, 0.96)),
        url('/images/themes/cyber/cyber-grid.svg?v=1') center / cover;
    border-right: 1px solid var(--cyber-line);
    box-shadow: 0 0 26px rgba(16, 98, 201, 0.2);
}

html[data-evo-theme="cyber"] .evo-nav-section-label {
    color: #8dbbff;
    letter-spacing: 0.13em;
}

html[data-evo-theme="cyber"] .evo-nav-item {
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--cyber-muted);
    transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

html[data-evo-theme="cyber"] .evo-nav-item:hover,
html[data-evo-theme="cyber"] .evo-nav-item.active {
    color: var(--cyber-text);
    border-color: var(--cyber-line-soft);
    background: linear-gradient(140deg, rgba(82, 231, 255, 0.14), rgba(141, 96, 255, 0.14));
    box-shadow: inset 0 0 0 1px rgba(82, 231, 255, 0.16), 0 8px 20px rgba(6, 10, 26, 0.52);
}

html[data-evo-theme="cyber"] .evo-main {
    padding-left: clamp(0.95rem, 1.25vw, 1.6rem);
    padding-right: clamp(0.95rem, 1.25vw, 1.6rem);
}

html[data-evo-theme="cyber"] .evo-topbar {
    border: 1px solid var(--cyber-line);
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(12, 20, 39, 0.9), rgba(7, 13, 26, 0.92));
    box-shadow: 0 10px 24px rgba(2, 6, 16, 0.45);
}

html[data-evo-theme="cyber"] .evo-topbar-title,
html[data-evo-theme="cyber"] .hub-quickstart__title,
html[data-evo-theme="cyber"] .page-heading {
    font-family: var(--cyber-display);
    letter-spacing: 0.04em;
}

html[data-evo-theme="cyber"] .evo-panel,
html[data-evo-theme="cyber"] .evo-card,
html[data-evo-theme="cyber"] .arena-panel,
html[data-evo-theme="cyber"] .dojo-review-panel,
html[data-evo-theme="cyber"] .store-card,
html[data-evo-theme="cyber"] .album-card,
html[data-evo-theme="cyber"] .friend-card,
html[data-evo-theme="cyber"] .guild-card,
html[data-evo-theme="cyber"] .stats-panel,
html[data-evo-theme="cyber"] .quest-card,
html[data-evo-theme="cyber"] .game-row {
    border: 1px solid var(--cyber-line);
    border-radius: var(--cyber-radius);
    background: linear-gradient(155deg, var(--cyber-panel), var(--cyber-panel-strong));
    box-shadow: 0 16px 36px rgba(2, 6, 18, 0.46);
}

html[data-evo-theme="cyber"] .evo-card--visual:hover,
html[data-evo-theme="cyber"] .store-card:hover,
html[data-evo-theme="cyber"] .album-card:hover,
html[data-evo-theme="cyber"] .match-card:hover,
html[data-evo-theme="cyber"] .room-card:hover {
    border-color: rgba(82, 231, 255, 0.62);
    box-shadow: 0 0 0 1px rgba(82, 231, 255, 0.4), 0 20px 36px rgba(1, 8, 24, 0.6);
}

html[data-evo-theme="cyber"] .hub-quickstart,
html[data-evo-theme="cyber"] .evo-dashboard--visual {
    border: 1px solid var(--cyber-line);
    background: linear-gradient(145deg, rgba(10, 19, 38, 0.88), rgba(7, 13, 26, 0.94));
    box-shadow: 0 14px 30px rgba(3, 7, 18, 0.5);
}

html[data-evo-theme="cyber"] .hub-quickstart__kicker {
    color: #77dfff;
}

html[data-evo-theme="cyber"] .hub-quickstart__cta {
    color: #92d2ff;
}

html[data-evo-theme="cyber"] body:not(.myroom-body) .evo-btn {
    border-radius: 999px;
    font-weight: 700;
}

html[data-evo-theme="cyber"] body:not(.myroom-body) .evo-btn-primary {
    color: #041120;
    border-color: transparent;
    background: linear-gradient(180deg, #8cf0ff, #39d4ff);
    box-shadow: 0 8px 20px rgba(57, 212, 255, 0.3);
}

html[data-evo-theme="cyber"] body:not(.myroom-body) .evo-btn-solid {
    color: #090314;
    border-color: transparent;
    background: linear-gradient(180deg, #ffc4df, #ff7cc0);
}

html[data-evo-theme="cyber"] body:not(.myroom-body) .evo-btn-ghost {
    color: var(--cyber-text);
    border-color: rgba(130, 181, 255, 0.36);
    background: rgba(12, 22, 42, 0.6);
}

html[data-evo-theme="cyber"] body:not(.myroom-body) input,
html[data-evo-theme="cyber"] body:not(.myroom-body) select,
html[data-evo-theme="cyber"] body:not(.myroom-body) textarea {
    border-radius: 12px;
    border: 1px solid rgba(123, 169, 255, 0.35);
    background: rgba(8, 15, 31, 0.88);
    color: var(--cyber-text);
}

html[data-evo-theme="cyber"] body:not(.myroom-body) input:focus,
html[data-evo-theme="cyber"] body:not(.myroom-body) select:focus,
html[data-evo-theme="cyber"] body:not(.myroom-body) textarea:focus {
    border-color: var(--cyber-neon);
    box-shadow: 0 0 0 3px rgba(82, 231, 255, 0.22);
}

html[data-evo-theme="cyber"] .school-hall-banner {
    border: 1px solid rgba(124, 188, 255, 0.42);
    background:
        linear-gradient(170deg, rgba(12, 22, 44, 0.92), rgba(8, 15, 29, 0.95)),
        url('/images/themes/cyber/cyber-grid.svg?v=1') center / cover;
}

html[data-evo-theme="cyber"] .evo-auth-page:not(.myroom-body) {
    background-image:
        radial-gradient(circle at 50% 0%, rgba(82, 231, 255, 0.2), transparent 42%),
        radial-gradient(circle at 85% 100%, rgba(141, 96, 255, 0.18), transparent 35%),
        url('/images/themes/cyber/cyber-grid.svg?v=1');
}

html[data-evo-theme="cyber"] .evo-auth-card,
html[data-evo-theme="cyber"] .auth-form-card {
    border: 1px solid rgba(123, 169, 255, 0.42);
    background: rgba(7, 15, 29, 0.9);
    box-shadow: 0 18px 36px rgba(4, 9, 24, 0.56);
}

html[data-evo-theme="cyber"] .evo-theme-switcher__label {
    color: #88b0e8;
}

/* ----------------------------- */
/* Forest Grove (extra polish)  */
/* ----------------------------- */
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body) {
    background-image:
        url('/images/themes/forest/fairy-depth-bg.svg?v=3'),
        radial-gradient(ellipse 88% 52% at 50% -8%, rgba(255, 232, 175, 0.32), transparent 60%),
        radial-gradient(ellipse 62% 42% at 85% 90%, rgba(212, 184, 255, 0.23), transparent 58%);
    background-size: cover, cover, auto;
    background-position: center top, center top, center;
}

html[data-evo-theme="ink"] .forest-hero,
html[data-evo-theme="ink"] .forest-whisper,
html[data-evo-theme="ink"] .forest-focus-strip {
    box-shadow: 0 20px 36px rgba(76, 54, 27, 0.26);
}

html[data-evo-theme="ink"] .forest-whisper[open] {
    border-color: rgba(172, 127, 79, 0.42);
}

html[data-evo-theme="ink"] .forest-hero__title {
    text-shadow: 0 3px 12px rgba(255, 247, 229, 0.56);
}

/* Theme switcher visual tokens */
html[data-evo-theme="cyber"] .evo-theme-switcher__select {
    border-width: 1px;
    backdrop-filter: blur(6px);
}

@media (max-width: 900px) {
    html[data-evo-theme="cyber"] .evo-topbar {
        border-radius: 12px;
    }
}

/* Forest wave-7 consistency tokens */
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-primary {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/forest-rpg-button-main-plus.svg?v=5') center / cover;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-solid {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(80, 106, 52, 0.14)),
        url('/images/themes/forest/forest-rpg-button-soft-plus.svg?v=5') center / cover;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-panel,
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-card {
    background:
        linear-gradient(165deg, rgba(255, 249, 233, 0.88), rgba(239, 220, 183, 0.88)),
        url('/images/themes/forest/forest-rpg-panel-trim.svg?v=5') center / cover;
}
