/* ═══════════════════════════════════════════════
   ZEUS AI — STYLE
   Visual: colors, gradients, blur, animations
   Matches EasySlice.AI design system
   ═══════════════════════════════════════════════ */

/* ── DESIGN TOKENS (from EasySlice) ── */
:root {
    --bg-void: #050507;
    --bg-deep: #0a0a0f;
    --bg-surface: #111118;
    --bg-card: #16161f;
    --bg-card-glow: #1c1c28;
    --border-dim: rgba(255,255,255,0.04);
    --border-card: rgba(255,255,255,0.07);
    --text-white: #f0f0f5;
    --text-gray: #9d9daa;
    --text-dim: #5a5a6e;
    --neon-violet: #8b5cf6;
    --neon-fuchsia: #d946ef;
    --neon-cyan: #22d3ee;
    --neon-amber: #f59e0b;
    --neon-rose: #fb7185;
    --neon-blue: #60a5fa;
    --gradient-main: linear-gradient(135deg, #8b5cf6, #d946ef, #f59e0b);
    --gradient-h: linear-gradient(90deg, #8b5cf6, #d946ef, #22d3ee);
    --gradient-glow: linear-gradient(135deg, #8b5cf6, #d946ef);
    --gradient-blue: linear-gradient(135deg, #3b82f6, #8b5cf6);
    --font-display: 'Dela Gothic One', cursive;
    --font-body: 'General Sans', -apple-system, sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ── BODY ── */
body {
    font-family: var(--font-body);
    background: var(--bg-deep);
    color: var(--text-white);
}

/* ════════════════════════════════════
   CREDITS BADGE
   ════════════════════════════════════ */
#creditsBadge {
    background: rgba(10, 10, 15, 0.7);
    backdrop-filter: blur(20px) saturate(1.3);
    -webkit-backdrop-filter: blur(20px) saturate(1.3);
    border: 1px solid rgba(139, 92, 246, 0.25);
    border-radius: 60px;
    font-family: var(--font-mono);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--neon-violet);
    letter-spacing: 0.03em;
    transition: all 0.3s var(--ease-spring);
    user-select: none;
}
#creditsBadge:hover {
    border-color: var(--neon-violet);
    box-shadow: 0 0 24px rgba(139, 92, 246, 0.2);
    transform: scale(1.04);
}
.cb-icon {
    font-size: 0.9rem;
}

/* ════════════════════════════════════
   CREDITS POPUP
   ════════════════════════════════════ */
#creditsOverlay {
    background: rgba(5, 5, 7, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
#creditsPopup {
    background: var(--bg-card);
    border: 1px solid rgba(139, 92, 246, 0.2);
    border-radius: 24px;
    box-shadow:
        0 24px 80px rgba(0, 0, 0, 0.6),
        0 0 120px rgba(139, 92, 246, 0.06);
}
.cp-close {
    background: none;
    color: var(--text-dim);
    border-radius: 8px;
    transition: color 0.2s, background 0.2s;
}
.cp-close:hover {
    color: var(--text-white);
    background: rgba(255,255,255,0.06);
}
.cp-icon {
    filter: drop-shadow(0 0 20px rgba(245, 158, 11, 0.5));
}
#cpTitle {
    font-family: var(--font-display);
    font-size: 1.15rem;
    letter-spacing: 0.04em;
    background: var(--gradient-main);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 0.5rem;
}
#cpMsg {
    color: var(--text-gray);
    font-size: 0.9rem;
    line-height: 1.5;
}
.cp-cta {
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    color: var(--bg-void);
    font-family: var(--font-body);
    border-radius: 14px;
    letter-spacing: 0.03em;
    transition: all 0.4s var(--ease-spring);
    position: relative;
    overflow: hidden;
}
.cp-cta::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    z-index: -1;
    filter: blur(16px);
    opacity: 0.4;
    transition: opacity 0.4s;
}
.cp-cta:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 12px 40px rgba(139, 92, 246, 0.35);
}
.cp-cta:hover::before {
    opacity: 0.7;
}

/* ════════════════════════════════════
   DEBUG ANALYZER — VISUAL
   ════════════════════════════════════ */
.da-header h1 {
    background: var(--gradient-blue);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.da-header p {
    color: var(--text-gray);
}
.da-card {
    background: var(--bg-surface);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 20px;
    transition: border-color 0.4s;
}
.da-card:hover {
    border-color: rgba(139, 92, 246, 0.12);
}
.da-input-group input[type="text"] {
    background: rgba(10, 10, 15, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    color: var(--text-white);
    font-family: var(--font-body);
    transition: border-color 0.3s, box-shadow 0.3s;
}
.da-input-group input[type="text"]:focus {
    border-color: var(--neon-blue);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.12);
}
.da-input-group input[type="text"]::placeholder {
    color: var(--text-dim);
}

/* ── Mode selector ── */
.da-mode label {
    background: rgba(10, 10, 15, 0.5);
    border: 2px solid rgba(255, 255, 255, 0.07);
    border-radius: 14px;
    transition: all 0.3s;
    color: var(--text-white);
}
.da-mode input:checked + label {
    border-color: var(--neon-blue);
    background: rgba(96, 165, 250, 0.08);
}
.da-mode label:hover {
    border-color: rgba(255, 255, 255, 0.15);
}
.da-mode-detail {
    color: var(--text-dim);
}

/* ── Analyze Button ── */
#btnAnalyze {
    background: var(--gradient-blue);
    color: white;
    border-radius: 14px;
    font-family: var(--font-body);
    transition: all 0.3s var(--ease-spring);
    position: relative;
    overflow: hidden;
}
#btnAnalyze::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: var(--gradient-blue);
    z-index: -1;
    filter: blur(14px);
    opacity: 0.3;
    transition: opacity 0.4s;
}
#btnAnalyze:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(59, 130, 246, 0.3);
}
#btnAnalyze:hover::before {
    opacity: 0.5;
}
#btnAnalyze:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* ── Reset Button ── */
.da-btn-back {
    background: var(--bg-card);
    color: var(--text-white);
    border-radius: 12px;
    font-family: var(--font-body);
    transition: all 0.3s;
}
.da-btn-back:hover {
    background: var(--bg-card-glow);
    transform: translateY(-2px);
}

/* ── Loading Overlay ── */
.da-loading {
    background: rgba(5, 5, 7, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.da-spinner {
    border: 4px solid rgba(255,255,255,0.06);
    border-top: 4px solid var(--neon-blue);
    animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.da-loading-text {
    color: var(--text-gray);
}
.da-loading-text .da-dots::after {
    content: '';
    animation: dots 1.5s steps(4, end) infinite;
}
@keyframes dots {
    0% { content: ''; }
    25% { content: '.'; }
    50% { content: '..'; }
    75% { content: '...'; }
}
.da-progress-bar {
    background: rgba(255,255,255,0.06);
}
.da-progress-fill {
    background: var(--gradient-blue);
}
.da-progress-msg {
    color: var(--neon-blue);
}

/* ════════════════════════════════════
   RESULTS (injected HTML)
   ════════════════════════════════════ */
.report-header {
    background: linear-gradient(135deg, rgba(17,17,24,1), var(--bg-surface));
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 16px;
}
.report-meta { color: var(--text-gray); }
.report-meta a { color: var(--neon-blue); }
.badge-flare {
    display: inline-block;
    background: rgba(251, 191, 36, 0.15);
    color: var(--neon-amber);
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
}
.section-card {
    background: var(--bg-surface);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 16px;
}
.section-card h3 {
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.error-count { color: #f87171; font-weight: 600; margin-bottom: 0.75rem; }
.success-msg { color: #4ade80; font-weight: 500; }
.shots-info { color: var(--text-gray); font-size: 0.9rem; margin-bottom: 1rem; }
.runtime-error {
    background: rgba(248, 113, 113, 0.06);
    border-left: 3px solid #f87171;
    font-family: var(--font-mono);
    color: #fca5a5;
}
.runtime-warning {
    background: rgba(251, 191, 36, 0.06);
    border-left: 3px solid var(--neon-amber);
    font-family: var(--font-mono);
    color: #fde68a;
}
details summary {
    color: var(--neon-amber);
}
.ai-analysis .issue.critical {
    background: rgba(248, 113, 113, 0.05);
    border: 1px solid rgba(248, 113, 113, 0.18);
}
.ai-analysis .issue.warning {
    background: rgba(251, 191, 36, 0.05);
    border: 1px solid rgba(251, 191, 36, 0.18);
}
.ai-analysis .issue.suggestion {
    background: rgba(96, 165, 250, 0.05);
    border: 1px solid rgba(96, 165, 250, 0.18);
}
.ai-analysis pre {
    background: rgba(5, 5, 7, 0.6);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
}
.ai-analysis code {
    font-family: var(--font-mono);
    color: #c9d1d9;
}
.error-box {
    background: rgba(248, 113, 113, 0.08);
    border: 1px solid rgba(248, 113, 113, 0.25);
    border-radius: 14px;
    color: #fca5a5;
}

/* ════════════════════════════════════
   ZEUS WIDGET — VISUAL
   ════════════════════════════════════ */
#zeusWidget { font-family: var(--font-body); }

#zeusBubble {
    background: rgba(10, 10, 15, 0.7);
    backdrop-filter: blur(24px) saturate(1.4);
    -webkit-backdrop-filter: blur(24px) saturate(1.4);
    border: 1px solid var(--border-card);
    border-radius: 18px 18px 18px 4px;
    padding: 16px 20px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--text-white);
    opacity: 0;
    transform: translateY(12px) scale(0.9);
    transition: all 0.5s var(--ease-spring);
    box-shadow: 0 16px 48px rgba(0,0,0,0.5), 0 0 80px rgba(139,92,246,0.04);
}
#zeusBubble.visible { opacity: 1; transform: translateY(0) scale(1); }

.warn-title {
    font-family: var(--font-display);
    font-size: 0.72rem;
    background: var(--gradient-main);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.warn-btn {
    display: inline-block;
    margin-top: 14px;
    padding: 10px 26px;
    color: var(--bg-void);
    border: none;
    border-radius: 60px;
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    transition: all 0.4s var(--ease-spring);
    box-shadow: 0 0 0 0 rgba(139,92,246,0.3);
    position: relative;
    overflow: hidden;
}
.warn-btn::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    z-index: -1;
    filter: blur(12px);
    opacity: 0.4;
    transition: opacity 0.4s;
}
.warn-btn:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 12px 40px rgba(139,92,246,0.4);
}
.warn-btn:hover::before { opacity: 0.7; }

@keyframes gShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

#zeusAvatarWrap {
    cursor: pointer;
    transition: transform 0.4s var(--ease-spring);
}
#zeusAvatarWrap:hover { transform: scale(1.08); }

.spk-waves span {
    width: 3px;
    border-radius: 2px;
    background: var(--neon-violet);
}
.spk-waves span:nth-child(1) { height: 8px;  animation: wb 0.8s ease-in-out infinite 0s; }
.spk-waves span:nth-child(2) { height: 14px; animation: wb 0.8s ease-in-out infinite 0.15s; }
.spk-waves span:nth-child(3) { height: 10px; animation: wb 0.8s ease-in-out infinite 0.3s; }
.spk-waves span:nth-child(4) { height: 16px; animation: wb 0.8s ease-in-out infinite 0.1s; }
.spk-waves span:nth-child(5) { height: 6px;  animation: wb 0.8s ease-in-out infinite 0.25s; }
@keyframes wb {
    0%, 100% { transform: scaleY(0.4); opacity: 0.4; }
    50%      { transform: scaleY(1);   opacity: 1;   }
}

#zeusInput {
    padding: 11px 16px;
    background: rgba(10, 10, 15, 0.6);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    color: var(--text-white);
    border: 1px solid var(--border-card);
    border-radius: 12px;
    font-size: 0.82rem;
    font-family: var(--font-body);
    outline: none;
    transition: border-color 0.3s, box-shadow 0.3s;
}
#zeusInput:focus {
    border-color: rgba(139, 92, 246, 0.35);
    box-shadow: 0 0 20px rgba(139, 92, 246, 0.08);
}
#zeusInput::placeholder { color: var(--text-dim); }

#zeusSend {
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.4s var(--ease-spring);
    position: relative;
}
#zeusSend::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: var(--gradient-h);
    background-size: 200% 100%;
    animation: gShift 4s ease infinite;
    z-index: -1;
    filter: blur(10px);
    opacity: 0.3;
}
#zeusSend:hover { transform: scale(1.06); box-shadow: 0 6px 20px rgba(139,92,246,0.35); }
#zeusSend:hover::before { opacity: 0.6; }
#zeusSend:disabled { opacity: 0.3; cursor: not-allowed; transform: none; }
#zeusSend svg { fill: var(--bg-void); }

#zeusGeoBar {
    background: rgba(5, 5, 7, 0.8);
    backdrop-filter: blur(16px) saturate(1.3);
    -webkit-backdrop-filter: blur(16px) saturate(1.3);
    border-top: 1px solid var(--border-dim);
    font-family: var(--font-body);
    font-size: 0.68rem;
    color: var(--text-dim);
}
#langSelect {
    background: rgba(139, 92, 246, 0.06);
    color: var(--neon-violet);
    border: 1px solid rgba(139, 92, 246, 0.18);
    border-radius: 8px;
    padding: 4px 10px 4px 8px;
    font-size: 0.68rem;
    font-family: var(--font-mono);
    font-weight: 600;
    cursor: pointer;
    outline: none;
    letter-spacing: 0.03em;
    transition: border-color 0.3s, box-shadow 0.3s;
}
#langSelect:hover { border-color: var(--neon-violet); box-shadow: 0 0 16px rgba(139,92,246,0.1); }
#langSelect option { background: var(--bg-deep); color: var(--text-gray); }

/* ═══════════════════════════════════════
   SVG EMOTION STATES
   ═══════════════════════════════════════ */
.zeus-mouths .mouth { display: none; }
.brow, .pupil-l, .pupil-r, .zeus-eyes, .bolt-main, #zGlow {
    transition: all 0.4s var(--ease-spring);
}
#zeusAvatarWrap.st-idle .m-smile { display: block; }
#zeusAvatarWrap.st-idle svg { animation: zFloat 4s ease-in-out infinite; }
#zeusAvatarWrap.st-idle .bolt-main { animation: bPulse 3s ease-in-out infinite; }
#zeusAvatarWrap.st-happy .m-grin { display: block; }
#zeusAvatarWrap.st-happy .brow { transform: translateY(-3px); }
#zeusAvatarWrap.st-happy .bolt-main { animation: bBright 0.6s ease infinite; }
#zeusAvatarWrap.st-talking .m-talk { display: block; }
#zeusAvatarWrap.st-talking .m-talk { animation: talkAnim 0.3s ease-in-out infinite; transform-origin: 100px 114px; }
#zeusAvatarWrap.st-thinking .m-flat { display: block; }
#zeusAvatarWrap.st-thinking .pupil-l,
#zeusAvatarWrap.st-thinking .pupil-r { transform: translateY(-5px); }
#zeusAvatarWrap.st-thinking .brow-r { transform: translateY(-5px); }
#zeusAvatarWrap.st-confused .m-frown { display: block; }
#zeusAvatarWrap.st-confused .pupil-l { transform: translate(-3px, -1px); }
#zeusAvatarWrap.st-confused .pupil-r { transform: translate(3px, 1px); }
#zeusAvatarWrap.st-confused .brow-r { transform: translateY(-4px) rotate(-8deg); }
#zeusAvatarWrap.st-angry .m-frown { display: block; }
#zeusAvatarWrap.st-angry .brow-l { transform: rotate(10deg) translateY(3px); transform-origin: 90% 50%; }
#zeusAvatarWrap.st-angry .brow-r { transform: rotate(-10deg) translateY(3px); transform-origin: 10% 50%; }
#zeusAvatarWrap.st-angry .bolt-main { animation: bCrackle 0.12s linear infinite; }
#zeusAvatarWrap.st-laughing .m-open { display: block; }
#zeusAvatarWrap.st-laughing .zeus-eyes { transform: scaleY(0.35); transform-origin: 100px 88px; }
#zeusAvatarWrap.st-laughing svg { animation: laughShake 0.25s ease-in-out infinite; }
#zeusAvatarWrap.st-waving .m-smile { display: block; }
#zeusAvatarWrap.st-waving .bolt-main { animation: bWave 0.8s ease-in-out infinite; transform-origin: 170px 65px; }
#zeusAvatarWrap.st-pointing .m-grin { display: block; }
#zeusAvatarWrap.st-pointing .bolt-main { transform: rotate(25deg) translateX(10px); transform-origin: 170px 65px; }

/* ═══ KEYFRAMES ═══ */
@keyframes zFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes talkAnim { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.4); } }
@keyframes bBright { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes bCrackle { 0% { transform: translateX(0); } 25% { transform: translateX(-3px); } 75% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes bWave { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(15deg); } }
@keyframes laughShake { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } }
@keyframes bPulse { 0%, 100% { opacity: 0.75; } 50% { opacity: 1; filter: url(#bG); } }

/* ═══ CREDIT PACK SELECTOR ═══ */
.cp-packs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.cp-pack {
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff; border: none; border-radius: 12px;
    padding: 18px 10px; cursor: pointer;
    font-family: 'General Sans', sans-serif; font-size: 20px; font-weight: 700;
    transition: all 0.2s ease; text-align: center; line-height: 1.2;
}
.cp-pack:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(99,102,241,0.4); }
.cp-pack:active { transform: translateY(0); }
.cp-pack small { font-size: 13px; font-weight: 400; opacity: 0.85; }
.cp-pack-best {
    background: linear-gradient(135deg, #f59e0b, #f97316);
    box-shadow: 0 0 20px rgba(245,158,11,0.25);
}
.cp-pack-best:hover { box-shadow: 0 6px 25px rgba(245,158,11,0.45); }
