/*
 * PokeTeamOn Brand Theme V1
 * Blue → purple visual override.
 *
 * This file is additive only. It does not modify or replace
 * any locked milestone stylesheet.
 */
:root {
    --pt-brand-blue: #2563eb;
    --pt-brand-indigo: #4f46e5;
    --pt-brand-purple: #7c3aed;
    --pt-brand-purple-deep: #5b21b6;
    --pt-brand-soft: #f3f1ff;
    --pt-brand-soft-blue: #eff6ff;
    --pt-brand-soft-purple: #f5f3ff;
    --pt-brand-border: #c7d2fe;
    --pt-brand-shadow: rgba(79, 70, 229, .16);
}


/* source: public/assets/site.css */
.hero-notes span::before{content:"✓";color:#6d28d9;font-weight:900;margin-right:6px}

/* source: public/assets/team-builder-m1.2.css */
.species-help[data-state="valid"]{color:#6d28d9}

/* source: public/assets/team-builder-m1.2.css */
.slot-validation{display:inline-flex;align-items:center;gap:5px;margin-top:8px;color:#6d28d9;font-size:11px;font-weight:800}

/* source: public/assets/team-builder-m1.3.css */
/* M1.3 UX emphasis repair */
.set-section{border:1px solid #6366f1;border-radius:14px;padding:0;overflow:visible;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)}

/* source: public/assets/team-builder-m1.3.css */
.set-section > summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:13px 15px;border-radius:13px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);color:#6d28d9;font-size:15px;font-weight:900;letter-spacing:.01em}

/* source: public/assets/team-builder-m1.3.css */
.set-section > summary::after{content:"＋";display:inline-grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);color:#6d28d9;font-size:20px;line-height:1;font-weight:900}

/* source: public/assets/team-builder-m1.3.css */
.set-section[open] > summary{border-bottom-left-radius:0;border-bottom-right-radius:0;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)}

/* source: public/assets/team-builder-m1.3.css */
.set-section[open] > summary::after{content:"−";background:#f3f1ff;color:#fff}

/* source: public/assets/team-builder-m1.3.css */
.set-section-body{margin-top:0;padding:15px;border-top:1px solid #6366f1;background:#fff}

/* source: public/assets/team-builder-m1.3.css */
/* EV total emphasis */
.ev-meter{align-items:center;margin-bottom:12px;padding:11px 13px;border:1px solid #6366f1;border-radius:11px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)}

/* source: public/assets/team-builder-m1.3.css */
.ev-meter span{color:#6d28d9;font-weight:850}

/* source: public/assets/team-builder-m1.3.css */
.ev-meter strong{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:6px 10px;border-radius:999px;background:#f3f1ff;color:#fff;font-size:13px;font-weight:900;letter-spacing:.02em}

/* source: public/assets/team-builder-m1.3.css */
.ev-meter[data-status="complete"]{border-color:#6366f1;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);color:#6d28d9}

/* source: public/assets/team-builder-m1.3.css */
.ev-meter[data-status="complete"] strong{background:#f3f1ff;color:#fff}

/* source: public/assets/team-builder-m1.4.css */
.builder-context-panel{display:grid;grid-template-columns:minmax(0, 1fr) minmax(290px, .9fr);gap:24px;align-items:center;margin:0 0 18px;padding:20px;border:1px solid #6366f1;border-radius:16px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)}

/* source: public/assets/team-builder-m1.4.css */
.context-select-field select:focus{border-color:#c7d2fe;outline:3px solid rgba(79,70,229,.12)}

/* source: public/assets/team-builder-m1.5.css */
[data-learnset-status][data-status="compatible"]{color:#6d28d9}

/* source: public/assets/team-builder-m1.6.css */
.showdown-io-panel{margin:0 0 18px;border:1px solid #6366f1;border-radius:16px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);overflow:hidden}

/* source: public/assets/team-builder-m1.6.css */
.showdown-io-panel>summary::after{content:"+";display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);color:#6d28d9;font-size:24px;font-weight:800}

/* source: public/assets/team-builder-m1.6.css */
.showdown-io-status[data-status="success"]{background:#f3f1ff;color:#6d28d9}

/* source: public/assets/team-builder-m1.7.css */
.basic-legality-panel{margin:0 0 18px;border:1px solid #6366f1;border-radius:18px;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);padding:18px}

/* source: public/assets/team-builder-m1.7.css */
.basic-legality-heading button{flex:0 0 auto;min-height:44px;border:0;border-radius:12px;background:#f3f1ff;padding:0 16px;color:#fff;font:inherit;font-weight:800}

/* source: public/assets/team-builder-m1.7.css */
.basic-legality-result[data-status="pass"]{background:#f3f1ff}

/* source: public/assets/team-builder-m1.7.css */
.basic-legality-result[data-status="pass"]>strong{color:#6d28d9}


/* Primary interactive accents */
.basic-legality-heading button {
    background: linear-gradient(
        135deg,
        var(--pt-brand-blue) 0%,
        var(--pt-brand-purple) 100%
    ) !important;
    box-shadow: 0 10px 28px var(--pt-brand-shadow);
}

.showdown-io-panel > summary::after,
.set-section > summary::after,
.set-section[open] > summary,
.ev-meter[data-status="complete"] strong {
    background: linear-gradient(
        135deg,
        var(--pt-brand-blue) 0%,
        var(--pt-brand-purple) 100%
    ) !important;
}

/* Positive/success states become blue-purple rather than green */
.basic-legality-result[data-status="pass"],
.showdown-io-status[data-status="success"],
.ev-meter[data-status="complete"] {
    border-color: var(--pt-brand-border) !important;
    background: linear-gradient(
        135deg,
        var(--pt-brand-soft-blue) 0%,
        var(--pt-brand-soft-purple) 100%
    ) !important;
}

.basic-legality-result[data-status="pass"] > strong,
.showdown-io-status[data-status="success"],
.ev-meter[data-status="complete"],
.ev-meter[data-status="complete"] span,
[data-learnset-status][data-status="compatible"] {
    color: var(--pt-brand-purple-deep) !important;
}

/* Accordion green surfaces */
.set-section > summary {
    border-color: var(--pt-brand-border) !important;
    background: linear-gradient(
        135deg,
        #f5f8ff 0%,
        #f8f5ff 100%
    ) !important;
    color: var(--pt-brand-purple-deep) !important;
}

.set-section > summary:hover,
.set-section > summary:focus-visible {
    background: linear-gradient(
        135deg,
        #eef4ff 0%,
        #f3edff 100%
    ) !important;
    box-shadow:
        inset 0 0 0 2px
        rgba(79, 70, 229, .14) !important;
}

.set-section[open] > summary {
    color: #fff !important;
}

.set-section[open] > summary::after {
    background: #fff !important;
    color: var(--pt-brand-purple) !important;
}

/* Import/export plus control */
.showdown-io-panel > summary::after {
    color: #fff !important;
}

/*
 * Preserve semantic warning/error colors.
 * Yellow/orange incomplete states and red issue states
 * are intentionally unchanged.
 */

/*
 * POKETEAMON_BLUE_PURPLE_V4_RESIDUAL_FIX
 *
 * Human visual audit:
 * - collapsed Battle setup / Moves / EVs & IVs "+" glyphs were still green.
 * - keep their blue→purple circles, force the glyph itself white.
 * - opened "-" glyph stays purple on white.
 * - compatible/success copy stays purple.
 */

.set-section:not([open]) > summary::after {
    color: #ffffff !important;
    text-shadow: none !important;
}

.set-section[open] > summary::after {
    color: #7c3aed !important;
    text-shadow: none !important;
}

.showdown-io-panel > summary::after {
    color: #ffffff !important;
    text-shadow: none !important;
}

[data-learnset-status][data-status="compatible"],
.showdown-io-status[data-status="success"],
.basic-legality-result[data-status="pass"] > strong,
.ev-meter[data-status="complete"],
.ev-meter[data-status="complete"] span {
    color: #5b21b6 !important;
}

/*
 * POKETEAMON_BLUE_PURPLE_V5_OPEN_FOCUS_FIX
 *
 * Mobile Chrome keeps <summary> focused after tapping.
 * The earlier generic :focus-visible rule used a pale background,
 * causing an opened accordion to temporarily look washed out.
 *
 * For an OPEN section, all interaction states must keep the
 * full blue→purple brand gradient.
 */

.set-section[open] > summary,
.set-section[open] > summary:hover,
.set-section[open] > summary:focus,
.set-section[open] > summary:focus-visible,
.set-section[open] > summary:active {
    background: linear-gradient(
        135deg,
        #2563eb 0%,
        #7c3aed 100%
    ) !important;
    color: #ffffff !important;
    border-color: transparent !important;
    box-shadow:
        0 8px 22px rgba(79, 70, 229, .16) !important;
}

.set-section[open] > summary::after,
.set-section[open] > summary:hover::after,
.set-section[open] > summary:focus::after,
.set-section[open] > summary:focus-visible::after,
.set-section[open] > summary:active::after {
    background: #ffffff !important;
    color: #7c3aed !important;
    text-shadow: none !important;
}

/* Keep collapsed states soft/light as intended. */
.set-section:not([open]) > summary:focus,
.set-section:not([open]) > summary:focus-visible {
    background: linear-gradient(
        135deg,
        #eef4ff 0%,
        #f3edff 100%
    ) !important;
    color: #5b21b6 !important;
}
