/* Serpentary Daemon: the dashboard's components on a teal background, so it is
   never mistaken for the Serpentary dashboard or the owner panel. */
body.daemon {
    --bg-primary: #0b1718;
    --bg-secondary: #112123;
    --bg-tertiary: #1a2f31;
    --border-color: #2a4447;
    --accent-primary: var(--accent-cyan);
}

.daemon .brand-logo {
    color: #fff;
}

.daemon .daemon-badge {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(57, 197, 207, 0.18);
    color: var(--accent-cyan);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.daemon a.btn {
    text-decoration: none;
}

.daemon .header-user a {
    font-size: 13px;
    color: var(--text-secondary);
    text-decoration: none;
}

.daemon .header-user a:hover {
    color: var(--text-primary);
}

.daemon .page-desc {
    font-size: 13px;
    color: var(--text-muted);
    margin: -8px 0 20px;
}

.daemon .row-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.daemon .row-actions form {
    margin: 0;
}

.daemon .versions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
}

.daemon .version {
    white-space: nowrap;
}

.daemon .btn-sm {
    padding: 4px 10px;
    font-size: 12px;
}

.daemon .card + .card {
    margin-top: 24px;
}

.daemon .card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.daemon .card-subtitle {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: normal;
    margin-top: 4px;
}

.daemon .inline-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.daemon .inline-form .form-input {
    width: auto;
    min-width: 180px;
}

.daemon .log-output {
    height: 480px;
    overflow-y: auto;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--bg-primary);
    color: var(--text-secondary);
    font-family: monospace;
    font-size: 12px;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* ANSI styles in log lines: the 16 named colours on the dark log panel. */
.daemon .ansi-bold { font-weight: bold; }
.daemon .ansi-dim { opacity: 0.6; }
.daemon .ansi-italic { font-style: italic; }
.daemon .ansi-underline { text-decoration: underline; }
.daemon .ansi-fg-0 { color: #4d4d4d; }
.daemon .ansi-fg-1 { color: #f26a6a; }
.daemon .ansi-fg-2 { color: #5fd38d; }
.daemon .ansi-fg-3 { color: #e6c36a; }
.daemon .ansi-fg-4 { color: #6fa8f5; }
.daemon .ansi-fg-5 { color: #d58ee6; }
.daemon .ansi-fg-6 { color: #5fd1e0; }
.daemon .ansi-fg-7 { color: #d9d9d9; }
.daemon .ansi-fg-8 { color: #8a8a8a; }
.daemon .ansi-fg-9 { color: #ff8a8a; }
.daemon .ansi-fg-10 { color: #7fe8a8; }
.daemon .ansi-fg-11 { color: #ffe08a; }
.daemon .ansi-fg-12 { color: #8fc2ff; }
.daemon .ansi-fg-13 { color: #eaa8f5; }
.daemon .ansi-fg-14 { color: #8ae8f5; }
.daemon .ansi-fg-15 { color: #ffffff; }
.daemon .ansi-bg-0 { background: #4d4d4d; }
.daemon .ansi-bg-1 { background: #f26a6a; }
.daemon .ansi-bg-2 { background: #5fd38d; }
.daemon .ansi-bg-3 { background: #e6c36a; }
.daemon .ansi-bg-4 { background: #6fa8f5; }
.daemon .ansi-bg-5 { background: #d58ee6; }
.daemon .ansi-bg-6 { background: #5fd1e0; }
.daemon .ansi-bg-7 { background: #d9d9d9; }
.daemon .ansi-bg-8 { background: #8a8a8a; }
.daemon .ansi-bg-9 { background: #ff8a8a; }
.daemon .ansi-bg-10 { background: #7fe8a8; }
.daemon .ansi-bg-11 { background: #ffe08a; }
.daemon .ansi-bg-12 { background: #8fc2ff; }
.daemon .ansi-bg-13 { background: #eaa8f5; }
.daemon .ansi-bg-14 { background: #8ae8f5; }
.daemon .ansi-bg-15 { background: #ffffff; }
