/* HeroEmbedder Dashboard Styles */

:root {
    --status-ok: #198754;
    --status-warn: #ffc107;
    --status-error: #dc3545;
}

body { font-size: 0.85rem; }
.form-control, .form-select { font-size: 0.85rem; }
.form-label { font-size: 0.85rem; margin-bottom: 0.25rem; }
.btn { font-size: 0.85rem; }
.tab-content { font-size: 0.85rem; }
.nav-tabs .nav-link { font-size: 0.85rem; padding: 0.4rem 0.75rem; }
textarea.form-control { font-size: 0.8rem; }
.card { transition: transform 0.2s; }
.card:hover { transform: translateY(-2px); }
.result-item { border-left: 3px solid var(--bs-primary); }
.score-badge { font-family: monospace; }
pre {
    background: var(--bs-tertiary-bg);
    padding: 1rem;
    border-radius: 0.5rem;
    overflow-x: auto;
    font-size: 0.8rem;
}
.status-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; background: var(--status-ok); animation: status-pulse 2s infinite; cursor: pointer; }
.status-dot.disconnected { background: var(--status-error); animation: none; }
.status-dot.backend-down { background: var(--status-warn); animation: status-pulse 3s infinite; }
@keyframes status-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.status-ok { background: var(--status-ok); }
.status-warn { background: var(--status-warn); }
.status-error { background: var(--status-error); }
.quality-badge { font-size: 0.75rem; padding: 0.25rem 0.5rem; }
.memory-bar { height: 8px; border-radius: 4px; }

/* Theme toggle button */
.theme-toggle { cursor: pointer; }

/* Light mode overrides */
[data-bs-theme="light"] pre {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

[data-bs-theme="light"] .card {
    border-color: var(--bs-border-color);
}

/* Fix bootstrap-icons font path for local serving */
@font-face {
    font-family: "bootstrap-icons";
    src: url("/fonts/bootstrap-icons.woff2") format("woff2"),
         url("/fonts/bootstrap-icons.woff") format("woff");
}
