/* ═══════════════════════════════════════
   EA CALCULADORAS PRO — Frontend Styles
   Light/Dark themes matching normas-chat
   ═══════════════════════════════════════ */

/* LIGHT THEME (default) */
:root, .eacalc-hub, .eacalc-theme-light {
    --ea-bg: #ffffff;
    --ea-card: #f8fafc;
    --ea-input: #f1f5f9;
    --ea-hover: #e2e8f0;
    --ea-accent: #f59e0b;
    --ea-accent-dk: #d97706;
    --ea-accent-bg: rgba(245, 158, 11, 0.08);
    --ea-text: #1e293b;
    --ea-text2: #475569;
    --ea-muted: #94a3b8;
    --ea-border: #e2e8f0;
    --ea-border-lt: #cbd5e1;
    --ea-green: #10b981;
    --ea-red: #ef4444;
    --ea-blue: #2563eb;
    --ea-header-bg: linear-gradient(135deg, #0d1f3c, #152a4a);
    --ea-header-text: #ffffff;
    --ea-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    --ea-card-hover-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    --ea-modal-overlay: rgba(0, 0, 0, 0.5);
    --ea-tag-bg: rgba(245, 158, 11, 0.08);
    --ea-tag-border: rgba(245, 158, 11, 0.18);
    --ea-icon-alpha: 0.08;
    --ea-filter-active-shadow: 0 2px 8px rgba(245, 158, 11, 0.25);
    --ea-filter-count-bg: rgba(0, 0, 0, 0.06);
    --ea-btn-hover-bg: #f59e0b;
    --ea-btn-hover-color: #fff;
    --ea-radius: 12px;
    --ea-radius-sm: 8px;
    --ea-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* DARK THEME */
.eacalc-theme-dark {
    --ea-bg: #0a1628;
    --ea-card: #111d35;
    --ea-input: #172240;
    --ea-hover: #1d2d50;
    --ea-accent: #f59e0b;
    --ea-accent-dk: #d97706;
    --ea-accent-bg: rgba(245, 158, 11, 0.1);
    --ea-text: #e2e8f0;
    --ea-text2: #94a3b8;
    --ea-muted: #64748b;
    --ea-border: #1e3154;
    --ea-border-lt: #2a4270;
    --ea-green: #10b981;
    --ea-red: #ef4444;
    --ea-blue: #3b82f6;
    --ea-header-bg: linear-gradient(135deg, #0d1f3c, #152a4a);
    --ea-header-text: #ffffff;
    --ea-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    --ea-card-hover-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
    --ea-modal-overlay: rgba(0, 0, 0, 0.7);
    --ea-tag-bg: rgba(245, 158, 11, 0.1);
    --ea-tag-border: rgba(245, 158, 11, 0.2);
    --ea-icon-alpha: 0.12;
    --ea-filter-active-shadow: 0 2px 8px rgba(245, 158, 11, 0.2);
    --ea-filter-count-bg: rgba(255, 255, 255, 0.06);
    --ea-btn-hover-bg: #f59e0b;
    --ea-btn-hover-color: #fff;
}

/* ═══ BASE ═══ */
.eacalc-hub {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    background: var(--ea-bg);
    color: var(--ea-text);
    line-height: 1.6;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    border-radius: var(--ea-radius);
    overflow: hidden;
    border: 1px solid var(--ea-border);
}
.eacalc-hub *, .eacalc-hub *::before, .eacalc-hub *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ═══ HEADER ═══ */
.eacalc-hub-header {
    background: var(--ea-header-bg);
    border-bottom: 1px solid var(--ea-border);
    padding: 28px 24px 0;
    position: relative;
}
.eacalc-hub-header-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 22px;
    flex-wrap: wrap;
    gap: 16px;
}
.eacalc-hub-logo { display: flex; align-items: center; gap: 12px; }
.eacalc-logo-icon {
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--ea-accent), var(--ea-accent-dk));
    border-radius: 10px; color: white; flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.2); font-size: 22px;
}
.eacalc-logo-icon svg { width: 24px; height: 24px; }
.eacalc-hub-title { font-size: 22px; font-weight: 700; color: var(--ea-header-text); line-height: 1.2; }
.eacalc-hub-title span { color: var(--ea-accent); }
.eacalc-hub-subtitle { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }

/* Header right: stats + theme toggle */
.eacalc-hub-header-right { display: flex; align-items: center; gap: 12px; }

/* Stats */
.eacalc-hub-stats { display: flex; gap: 10px; }
.eacalc-hub-stat {
    text-align: center;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--ea-radius-sm);
    padding: 10px 16px; min-width: 75px;
}
.eacalc-hub-stat-num { display: block; font-size: 20px; font-weight: 700; color: var(--ea-accent); line-height: 1; }
.eacalc-hub-stat-txt { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: rgba(255,255,255,0.5); margin-top: 3px; }

/* Theme Toggle Button */
.eacalc-theme-toggle {
    width: 30px; height: 30px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.7);
    border-radius: 8px;
    cursor: pointer;
    font-size: 15px;
    display: flex; align-items: center; justify-content: center;
    transition: 0.2s;
    flex-shrink: 0;
}
.eacalc-theme-toggle:hover { background: rgba(255,255,255,0.2); color: #fff; }

/* ═══ SEARCH ═══ */
.eacalc-search-bar { position: relative; margin-bottom: 16px; }
.eacalc-search-bar input {
    width: 100%; background: var(--ea-input); border: 1px solid var(--ea-border);
    border-radius: 10px; padding: 10px 14px 10px 42px; font-size: 14px;
    font-family: inherit; color: var(--ea-text); transition: var(--ea-transition); outline: none;
}
.eacalc-search-bar input::placeholder { color: var(--ea-muted); }
.eacalc-search-bar input:focus { border-color: var(--ea-accent); box-shadow: 0 0 0 3px var(--ea-accent-bg); }
.eacalc-search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--ea-muted); pointer-events: none; }
.eacalc-search-count { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 11px; font-family: monospace; color: var(--ea-muted); background: var(--ea-bg); padding: 2px 8px; border-radius: 20px; display: none; }
.eacalc-search-count.visible { display: block; }

/* ═══ FILTERS ═══ */
.eacalc-filters {
    display: flex; gap: 6px; padding-bottom: 16px; overflow-x: auto;
    scrollbar-width: thin; scrollbar-color: var(--ea-border) transparent;
    -webkit-overflow-scrolling: touch;
}
.eacalc-filters::-webkit-scrollbar { height: 3px; }
.eacalc-filters::-webkit-scrollbar-thumb { background: var(--ea-border); border-radius: 3px; }

.eacalc-filter-btn {
    display: flex; align-items: center; gap: 5px;
    padding: 6px 12px; border: 1px solid var(--ea-border); border-radius: 20px;
    background: var(--ea-card); color: var(--ea-text2);
    font-family: inherit; font-size: 12px; font-weight: 500;
    cursor: pointer; transition: var(--ea-transition); white-space: nowrap; flex-shrink: 0;
}
.eacalc-filter-btn i { width: 14px; height: 14px; }
.eacalc-filter-btn:hover { border-color: var(--ea-border-lt); color: var(--ea-text); background: var(--ea-hover); }
.eacalc-filter-btn.active {
    background: var(--ea-accent); border-color: var(--ea-accent); color: #fff; font-weight: 600;
    box-shadow: var(--ea-filter-active-shadow);
}
.eacalc-filter-count { font-size: 10px; font-family: monospace; background: rgba(255,255,255,0.15); padding: 1px 5px; border-radius: 20px; line-height: 1.4; }
.eacalc-filter-btn:not(.active) .eacalc-filter-count { background: var(--ea-filter-count-bg); }

/* ═══ GRID ═══ */
.eacalc-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px; padding: 24px;
}

/* ═══ CARDS ═══ */
.eacalc-card {
    background: var(--ea-card); border: 1px solid var(--ea-border); border-radius: var(--ea-radius);
    padding: 20px; display: flex; flex-direction: column; gap: 10px;
    transition: var(--ea-transition); position: relative; overflow: hidden;
    animation: eacalcFadeIn 0.3s ease both;
    box-shadow: var(--ea-card-shadow);
}
.eacalc-card::before {
    content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%;
    background: var(--card-color, var(--ea-accent)); opacity: 0; transition: var(--ea-transition);
    border-radius: 0 2px 2px 0;
}
.eacalc-card:hover {
    border-color: var(--ea-border-lt); background: var(--ea-hover);
    transform: translateY(-1px); box-shadow: var(--ea-card-hover-shadow);
}
.eacalc-card:hover::before { opacity: 1; }
.eacalc-card.eacalc-card-dev { opacity: 0.55; }
.eacalc-card.eacalc-card-dev:hover { opacity: 0.7; }
.eacalc-card.eacalc-hidden { display: none; }

@keyframes eacalcFadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* Card Header */
.eacalc-card-header { display: flex; justify-content: space-between; align-items: flex-start; }
.eacalc-card-icon {
    width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
    border-radius: var(--ea-radius-sm); flex-shrink: 0;
}
.eacalc-card-icon i { width: 20px; height: 20px; }
.eacalc-badge-dev {
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px;
    color: var(--ea-accent); background: var(--ea-accent-bg);
    border: 1px solid rgba(245,158,11,0.2); padding: 2px 8px; border-radius: 12px;
}

/* Card Content */
.eacalc-card-title { font-size: 15px; font-weight: 700; color: var(--ea-text); line-height: 1.35; }
.eacalc-card-desc { font-size: 12px; color: var(--ea-muted); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Normas Tags */
.eacalc-card-normas { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.eacalc-norma-tag {
    font-size: 10px; font-family: monospace; font-weight: 600;
    background: var(--ea-tag-bg); color: var(--ea-accent);
    padding: 2px 7px; border-radius: 4px; border: 1px solid var(--ea-tag-border); letter-spacing: 0.2px;
}

/* Card Footer */
.eacalc-card-footer {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: auto; padding-top: 10px; border-top: 1px solid var(--ea-border);
}
.eacalc-card-cat { display: flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 500; }
.eacalc-card-btn {
    display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700;
    font-family: inherit; color: var(--ea-accent); text-decoration: none;
    padding: 5px 12px; border-radius: 8px; transition: var(--ea-transition);
    cursor: pointer; border: 1px solid rgba(245,158,11,0.2); background: var(--ea-accent-bg);
}
.eacalc-card-btn:hover { background: var(--ea-btn-hover-bg); color: var(--ea-btn-hover-color); border-color: var(--ea-accent); box-shadow: 0 2px 8px rgba(245,158,11,0.2); }
.eacalc-card-btn-disabled { color: var(--ea-muted) !important; cursor: default; background: none !important; border-color: var(--ea-border) !important; }
.eacalc-card-btn-disabled:hover { background: none !important; color: var(--ea-muted) !important; box-shadow: none !important; }

/* ═══ EMPTY & NO RESULTS ═══ */
.eacalc-empty, .eacalc-no-results { grid-column: 1 / -1; text-align: center; padding: 50px 20px; color: var(--ea-muted); }
.eacalc-empty h3, .eacalc-no-results h3 { margin-top: 12px; font-size: 16px; color: var(--ea-text2); }
.eacalc-empty p, .eacalc-no-results p { margin-top: 6px; font-size: 13px; }

/* ═══ FOOTER ═══ */
.eacalc-hub-footer { text-align: center; padding: 18px 24px; border-top: 1px solid var(--ea-border); color: var(--ea-muted); font-size: 12px; }

/* ═══ RESPONSIVE ═══ */
@media (max-width: 768px) {
    .eacalc-hub-header { padding: 20px 14px 0; }
    .eacalc-hub-header-content { flex-direction: column; gap: 12px; }
    .eacalc-hub-title { font-size: 18px; }
    .eacalc-hub-header-right { width: 100%; justify-content: space-between; }
    .eacalc-hub-stats { flex: 1; }
    .eacalc-hub-stat { flex: 1; }
    .eacalc-grid { grid-template-columns: 1fr; padding: 16px 14px; gap: 10px; }
    .eacalc-card { padding: 16px; }
    .eacalc-modal-content { width: 98%; max-height: 95vh; border-radius: 10px; }
    .eacalc-modal-body { padding: 16px; }
}
@media (max-width: 480px) {
    .eacalc-hub-logo { flex-direction: column; align-items: flex-start; gap: 10px; }
    .eacalc-filter-btn span { display: none; }
    .eacalc-filter-btn { padding: 6px 8px; }
    .eacalc-card-footer { flex-direction: column; gap: 8px; align-items: flex-start; }
}
