From f86df9c1737c92421d1baef184351ec5ddd3fe45 Mon Sep 17 00:00:00 2001 From: Sovran_Systems <99053422+naturallaw777@users.noreply.github.com> Date: Sat, 4 Apr 2026 13:12:58 -0500 Subject: [PATCH] fix: reduce header logo height from 64px to 36px to fit header bar --- app/sovran_systemsos_web/static/style.css | 2493 +-------------------- 1 file changed, 2 insertions(+), 2491 deletions(-) diff --git a/app/sovran_systemsos_web/static/style.css b/app/sovran_systemsos_web/static/style.css index 90a87ea..3f89d3f 100644 --- a/app/sovran_systemsos_web/static/style.css +++ b/app/sovran_systemsos_web/static/style.css @@ -1,2497 +1,8 @@ -/* Sovran_SystemsOS Hub — Web UI Stylesheet - Dark theme matching the Adwaita dark aesthetic - v6 — Status-only tiles (no controls) */ - -*, *::before, *::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --bg-color: #1e1e2e; - --surface-color: #2a2a3c; - --card-color: #313244; - --border-color: #45475a; - --text-primary: #cdd6f4; - --text-secondary: #a6adc8; - --text-dim: #6c7086; - --accent-color: #89b4fa; - --green: #2ec27e; - --yellow: #e5a50a; - --red: #e01b24; - --grey: #888888; - --radius-card: 18px; - --radius-btn: 8px; - --shadow-card: 0 2px 8px rgba(0,0,0,0.4); - --shadow-hover: 0 6px 20px rgba(0,0,0,0.6); -} - -html, body { - height: 100%; -} - -body { - font-family: 'Cantarell', 'Inter', 'Segoe UI', sans-serif; - background-color: var(--bg-color); - color: var(--text-primary); - line-height: 1.5; - min-height: 100vh; - display: flex; - flex-direction: column; - overflow: hidden; -} - -/* ── Header bar ─────────────────────────────────────────────────── */ - -.header-bar { - background-color: var(--surface-color); - border-bottom: 1px solid var(--border-color); - padding: 10px 24px; - display: flex; - align-items: center; - gap: 16px; - position: sticky; - top: 0; - z-index: 100; - justify-content: flex-end; -} - -.header-bar .title { - font-size: 1.15rem; - font-weight: 700; - color: var(--text-primary); - position: absolute; - left: 0; - right: 0; - text-align: center; - pointer-events: none; - white-space: nowrap; -} - .header-logo { - height: 64px; + height: 36px; width: auto; vertical-align: middle; margin-right: 10px; } -.role-badge { - background-color: var(--accent-color); - color: #1e1e2e; - font-size: 0.72rem; - font-weight: 700; - padding: 3px 10px; - border-radius: 20px; - letter-spacing: 0.03em; -} - -/* ── Buttons ────────────────────────────────────────────────────── */ - -button { - font-family: inherit; - cursor: pointer; - border: none; - outline: none; - transition: opacity 0.15s, box-shadow 0.15s, background-color 0.15s; -} - -button:disabled { - opacity: 0.45; - cursor: default; -} - -.btn { - padding: 7px 16px; - border-radius: var(--radius-btn); - font-size: 0.88rem; - font-weight: 600; -} - -.btn-primary { - background-color: var(--accent-color); - color: #1e1e2e; -} - -.btn-primary:hover:not(:disabled) { - opacity: 0.88; -} - -/* Update System button: BLUE by default */ -.btn-update { - background-color: #89b4fa; - color: #1e1e2e; - position: relative; - display: flex; - align-items: center; - gap: 8px; -} - -.btn-update:hover:not(:disabled) { - opacity: 0.88; -} - -/* Update System button: GREEN when updates are available */ -.btn-update.has-updates { - background-color: #2ec27e; - color: #fff; -} - -.btn-update.has-updates:hover:not(:disabled) { - background-color: #27ae6e; -} - -.update-badge { - display: none; - width: 10px; - height: 10px; - background-color: var(--yellow); - border-radius: 50%; - animation: pulse-badge 1.4s ease-in-out infinite; -} - -.update-badge.visible { - display: inline-block; -} - -@keyframes pulse-badge { - 0%, 100% { opacity: 1; transform: scale(1); } - 50% { opacity: 0.5; transform: scale(1.35); } -} - -.btn-icon { - background: none; - color: var(--text-secondary); - padding: 6px; - border-radius: 50%; - font-size: 1.1rem; - line-height: 1; -} - -.btn-icon:hover:not(:disabled) { - background-color: var(--border-color); - color: var(--text-primary); -} - -/* ── IP bar ─────────────────────────────────────────────────────── */ - -.ip-bar { - background-color: var(--surface-color); - border-bottom: 1px solid var(--border-color); - padding: 8px 24px; - display: flex; - align-items: center; - justify-content: center; - gap: 32px; - font-size: 0.82rem; - color: var(--text-secondary); -} - -.ip-bar .ip-label { - color: var(--text-dim); - margin-right: 6px; -} - -.ip-bar .ip-value { - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - color: var(--accent-color); - font-weight: 600; -} - -.ip-separator { - color: var(--border-color); -} - -/* ── Main content ───────────────────────────────────────────────── */ - -.main-content { - display: flex; - align-items: flex-start; - flex: 1; - overflow: hidden; - max-width: 1400px; - width: 100%; - margin-left: auto; - margin-right: auto; -} - -/* ── Sidebar ────────────────────────────────────────────────────── */ - -.sidebar { - width: 270px; - flex-shrink: 0; - height: 100%; - overflow-y: auto; - border-right: 1px solid var(--border-color); - background-color: var(--surface-color); - padding: 20px 14px; - display: flex; - flex-direction: column; - gap: 0; -} - -/* ── Sidebar: Tech Support button ───────────────────────────────── */ - -.sidebar-support-btn { - display: flex; - align-items: center; - gap: 10px; - width: 100%; - background-color: var(--card-color); - border: 2px dashed var(--accent-color); - border-radius: 12px; - padding: 12px 14px; - color: var(--text-primary); - cursor: pointer; - transition: border-style 0.15s, border-color 0.15s, background-color 0.15s; - text-align: left; -} - -.sidebar-support-btn:hover { - border-style: solid; - border-color: #a8c8ff; - background-color: #35354a; -} - -.sidebar-support-icon { - font-size: 1.5rem; - flex-shrink: 0; -} - -.sidebar-support-text { - display: flex; - flex-direction: column; - gap: 2px; -} - -.sidebar-support-title { - font-size: 0.88rem; - font-weight: 700; - color: var(--text-primary); -} - -.sidebar-support-hint { - font-size: 0.72rem; - color: var(--accent-color); - font-weight: 600; -} - -.sidebar-divider { - border: none; - border-top: 1px solid var(--border-color); - margin: 16px 0; -} - -/* ── Tiles area ─────────────────────────────────────────────────── */ - -#tiles-area { - flex: 1; - height: 100%; - overflow-y: auto; - padding: 24px 20px 48px; - min-width: 0; -} - -/* ── Category sections ──────────────────────────────────────────── */ - -.category-section { - margin-bottom: 32px; -} - -.section-header { - font-size: 0.82rem; - font-weight: 700; - letter-spacing: 0.08em; - text-transform: uppercase; - color: var(--text-secondary); - margin-bottom: 4px; - padding-left: 4px; -} - -.section-divider { - border: none; - border-top: 1px solid var(--border-color); - margin-bottom: 16px; -} - -.tiles-grid { - display: flex; - flex-wrap: wrap; - gap: 14px; -} - -/* ── Service tile card (status-only) ─────────────────────────────── */ - -.service-tile { - width: 160px; - min-height: 130px; - background-color: var(--card-color); - border: 1px solid var(--border-color); - border-radius: var(--radius-card); - box-shadow: var(--shadow-card); - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 20px 12px 18px; - gap: 0; - transition: box-shadow 0.2s, border-color 0.2s; - position: relative; - cursor: pointer; -} - -.service-tile:hover { - box-shadow: var(--shadow-hover); - border-color: #6c7086; -} - -.service-tile.disabled { - opacity: 0.45; -} - -.tile-icon { - width: 48px; - height: 48px; - object-fit: contain; - margin-bottom: 10px; -} - -.tile-icon-fallback { - width: 48px; - height: 48px; - display: flex; - align-items: center; - justify-content: center; - background-color: var(--border-color); - border-radius: 12px; - color: var(--text-dim); - font-size: 1.5rem; - margin-bottom: 10px; -} - -.tile-name { - font-size: 0.88rem; - font-weight: 600; - text-align: center; - color: var(--text-primary); - line-height: 1.3; - max-width: 140px; - word-break: break-word; - hyphens: auto; - min-height: 1.3em; - display: flex; - align-items: center; - justify-content: center; -} - -.tile-status { - font-size: 0.75rem; - margin-top: 8px; - display: flex; - align-items: center; - gap: 5px; - color: var(--text-secondary); -} - -.status-dot { - width: 8px; - height: 8px; - border-radius: 50%; - flex-shrink: 0; - background-color: var(--grey); -} - -.status-dot.active { background-color: var(--green); } -.status-dot.inactive { background-color: var(--red); } -.status-dot.loading { background-color: var(--yellow); animation: pulse-badge 1s infinite; } -.status-dot.failed { background-color: var(--red); } -.status-dot.disabled { background-color: var(--grey); } -.status-dot.needs-attention { background-color: var(--yellow); } - -/* ── Update modal ─────────────────────────────────���─────────────── */ - -.modal-overlay { - display: none; - position: fixed; - inset: 0; - background-color: rgba(0,0,0,0.65); - z-index: 200; - align-items: center; - justify-content: center; -} - -.modal-overlay.open { - display: flex; -} - -.modal-dialog { - background-color: var(--surface-color); - border: 1px solid var(--border-color); - border-radius: 16px; - width: 90vw; - max-width: 900px; - max-height: 80vh; - display: flex; - flex-direction: column; - box-shadow: 0 16px 48px rgba(0,0,0,0.7); -} - -.modal-header { - display: flex; - align-items: center; - padding: 16px 20px; - border-bottom: 1px solid var(--border-color); - gap: 12px; -} - -.modal-title { - font-size: 1rem; - font-weight: 700; - flex: 1; -} - -.modal-status { - font-size: 0.85rem; - color: var(--text-secondary); -} - -.modal-spinner { - width: 18px; - height: 18px; - border: 2.5px solid var(--border-color); - border-top-color: var(--accent-color); - border-radius: 50%; - animation: spin 0.75s linear infinite; - display: none; -} - -.modal-spinner.spinning { - display: block; -} - -@keyframes spin { - to { transform: rotate(360deg); } -} - -.modal-log { - flex: 1; - overflow-y: auto; - padding: 12px 16px; - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - font-size: 0.78rem; - line-height: 1.6; - color: var(--text-primary); - background-color: #12121c; - white-space: pre-wrap; - word-break: break-all; - min-height: 200px; -} - -.modal-footer { - display: flex; - align-items: center; - justify-content: flex-end; - gap: 10px; - padding: 12px 20px; - border-top: 1px solid var(--border-color); -} - -/* Reboot = GREEN */ -.modal-footer .btn-reboot, -button.btn-reboot { - background-color: #2ec27e; - color: #fff; -} - -.modal-footer .btn-reboot:hover:not(:disabled), -button.btn-reboot:hover:not(:disabled) { - background-color: #27ae6e; -} - -.btn-save { - background-color: var(--yellow); - color: #1e1e2e; -} - -.btn-save:hover:not(:disabled) { - background-color: #c98d08; -} - -.btn-close-modal { - background-color: var(--border-color); - color: var(--text-primary); -} - -.btn-close-modal:hover:not(:disabled) { - background-color: #5a5c72; -} - -/* ── Credentials info modal ──────────────────────────────────────── */ - -.creds-dialog { - background-color: var(--surface-color); - border: 1px solid var(--border-color); - border-radius: 16px; - width: 90vw; - max-width: 700px; - max-height: 85vh; - display: flex; - flex-direction: column; - box-shadow: 0 16px 48px rgba(0,0,0,0.7); - animation: creds-fade-in 0.2s ease-out; -} - -@keyframes creds-fade-in { - from { opacity: 0; transform: scale(0.95) translateY(8px); } - to { opacity: 1; transform: scale(1) translateY(0); } -} - -.creds-header { - display: flex; - align-items: center; - padding: 20px 28px; - border-bottom: 1px solid var(--border-color); -} - -.creds-title { - font-size: 1.15rem; - font-weight: 700; - flex: 1; -} - -.creds-close-btn { - background: none; - color: var(--text-secondary); - font-size: 1.3rem; - padding: 4px 8px; - border-radius: 6px; - cursor: pointer; - border: none; -} - -.creds-close-btn:hover { - background-color: var(--border-color); - color: var(--text-primary); -} - -.creds-body { - padding: 24px 28px; - overflow-y: auto; -} - -.creds-loading { - color: var(--text-dim); - text-align: center; - padding: 24px 0; -} - -.creds-row { - margin-bottom: 20px; -} - -.creds-row:last-child { - margin-bottom: 0; -} - -.creds-label { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--text-dim); - margin-bottom: 6px; -} - -.creds-value-wrap { - display: flex; - align-items: flex-start; - gap: 10px; -} - -.creds-value { - flex: 1; - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - font-size: 0.92rem; - color: var(--text-primary); - background-color: #12121c; - padding: 12px 16px; - border-radius: 8px; - word-break: break-all; - white-space: pre-wrap; - line-height: 1.6; - border: 1px solid var(--border-color); -} - -.creds-copy-btn { - background-color: var(--border-color); - color: var(--text-primary); - font-size: 0.78rem; - font-weight: 600; - padding: 8px 14px; - border-radius: 6px; - cursor: pointer; - border: none; - white-space: nowrap; - flex-shrink: 0; - align-self: flex-start; - margin-top: 10px; -} - -.creds-copy-btn:hover { - background-color: #5a5c72; -} - -.creds-copy-btn.copied { - background-color: var(--green); - color: #fff; -} - -.creds-empty { - color: var(--text-dim); - text-align: center; - padding: 24px 0; - font-size: 0.88rem; -} - -/* ── Credential links ────────────────────────────────────────────── */ - -.creds-link { - color: #b8f0c0; - text-decoration: none; - word-break: break-all; -} - -.creds-link:hover { - text-decoration: underline; - color: #defce6; -} - -/* ── Matrix action buttons ───────────────────────────────────────── */ - -.matrix-actions-divider { - border: none; - border-top: 1px solid var(--border-color); - margin: 18px 0 14px; -} - -.matrix-actions-row { - display: flex; - gap: 12px; - flex-wrap: wrap; -} - -.matrix-action-btn { - background-color: var(--accent-color); - color: #0f0f19; - font-size: 0.88rem; - font-weight: 700; - padding: 10px 18px; - border-radius: 8px; - border: none; - cursor: pointer; - flex: 1; - min-width: 140px; -} - -.matrix-action-btn:hover { - background-color: #a8c8ff; -} - -.matrix-form-group { - margin-bottom: 14px; -} - -.matrix-form-label { - display: block; - font-size: 0.82rem; - color: var(--text-secondary); - margin-bottom: 6px; - font-weight: 600; -} - -.matrix-form-input { - width: 100%; - background-color: #12121c; - color: var(--text-primary); - border: 1px solid var(--border-color); - border-radius: 8px; - padding: 10px 12px; - font-size: 0.9rem; - box-sizing: border-box; -} - -.matrix-form-input:focus { - outline: none; - border-color: var(--accent-color); -} - -.matrix-form-checkbox-row { - display: flex; - align-items: center; - gap: 10px; - margin-bottom: 14px; -} - -.matrix-form-checkbox-row input[type="checkbox"] { - width: 16px; - height: 16px; - accent-color: var(--accent-color); -} - -.matrix-form-actions { - display: flex; - gap: 10px; - margin-top: 18px; -} - -.matrix-form-submit { - background-color: var(--accent-color); - color: #0f0f19; - font-size: 0.88rem; - font-weight: 700; - padding: 10px 20px; - border-radius: 8px; - border: none; - cursor: pointer; - flex: 1; -} - -.matrix-form-submit:hover:not(:disabled) { - background-color: #a8c8ff; -} - -.matrix-form-submit:disabled { - opacity: 0.6; - cursor: default; -} - -.matrix-form-back { - background-color: var(--border-color); - color: var(--text-primary); - font-size: 0.88rem; - font-weight: 600; - padding: 10px 20px; - border-radius: 8px; - border: none; - cursor: pointer; -} - -.matrix-form-back:hover { - background-color: #5a5c72; -} - -.matrix-form-result { - margin-top: 14px; - padding: 12px 16px; - border-radius: 8px; - font-size: 0.88rem; - line-height: 1.5; - display: none; -} - -.matrix-form-result.success { - background-color: rgba(74, 222, 128, 0.12); - border: 1px solid var(--green); - color: var(--green); - display: block; -} - -.matrix-form-result.error { - background-color: rgba(239, 68, 68, 0.12); - border: 1px solid #ef4444; - color: #f87171; - display: block; -} - -/* ── QR code in credentials modal ────────────────────────────────── */ - -.creds-qr-wrap { - display: flex; - flex-direction: column; - align-items: center; - padding: 20px 0; - margin-bottom: 10px; -} - -.creds-qr-img { - width: 240px; - height: 240px; - border-radius: 12px; - border: 4px solid #fff; - background-color: #fff; - image-rendering: pixelated; - box-shadow: 0 4px 16px rgba(0,0,0,0.4); -} - -.creds-qr-hint { - margin-top: 10px; - font-size: 0.82rem; - color: var(--text-secondary); - font-style: italic; -} - -/* ── Reboot overlay ─────────────────────────────────────────────── */ - -.reboot-overlay { - display: none; - position: fixed; - inset: 0; - background-color: rgba(15, 15, 25, 0.92); - z-index: 999; - align-items: center; - justify-content: center; -} - -.reboot-overlay.visible { - display: flex; -} - -.reboot-card { - background-color: var(--surface-color); - border: 1px solid var(--border-color); - border-radius: 20px; - padding: 48px 56px; - text-align: center; - max-width: 480px; - box-shadow: 0 24px 64px rgba(0, 0, 0, 0.8); - animation: reboot-fade-in 0.4s ease-out; -} - -@keyframes reboot-fade-in { - from { opacity: 0; transform: scale(0.92) translateY(12px); } - to { opacity: 1; transform: scale(1) translateY(0); } -} - -.reboot-icon { - font-size: 3rem; - color: var(--accent-color); - margin-bottom: 16px; - animation: reboot-spin 2s linear infinite; - display: inline-block; -} - -@keyframes reboot-spin { - to { transform: rotate(360deg); } -} - -.reboot-title { - font-size: 1.35rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 12px; -} - -.reboot-message { - font-size: 0.92rem; - color: var(--text-secondary); - line-height: 1.6; - margin-bottom: 24px; -} - -.reboot-dots { - display: flex; - align-items: center; - justify-content: center; - gap: 8px; - margin-bottom: 16px; -} - -.reboot-dot { - width: 10px; - height: 10px; - border-radius: 50%; - background-color: var(--accent-color); - animation: reboot-bounce 1.4s ease-in-out infinite; -} - -.reboot-dot:nth-child(2) { animation-delay: 0.2s; } -.reboot-dot:nth-child(3) { animation-delay: 0.4s; } - -@keyframes reboot-bounce { - 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } - 40% { opacity: 1; transform: scale(1.2); } -} - -.reboot-submessage { - font-size: 0.82rem; - color: var(--text-dim); - font-style: italic; -} - -/* ── Empty state ────────────────────────────────────────────────── */ - -.empty-state { - text-align: center; - padding: 64px 24px; - color: var(--text-dim); -} - -.empty-state p { - font-size: 1rem; - margin-bottom: 8px; -} - -/* ── Responsive ─────────────────────────────────────────────────── */ - -@media (max-width: 768px) { - body { - overflow: auto; - } - .main-content { - flex-direction: column; - overflow: visible; - } - .sidebar { - width: 100%; - height: auto; - border-right: none; - border-bottom: 1px solid var(--border-color); - padding: 14px 12px; - } - #tiles-area { - height: auto; - overflow-y: visible; - padding: 16px 12px 40px; - } -} - -@media (max-width: 600px) { - .header-bar { - padding: 10px 14px; - gap: 10px; - } - .header-bar .title { - font-size: 0.95rem; - } - .ip-bar { - gap: 16px; - flex-wrap: wrap; - padding: 8px 14px; - } - .tiles-grid { - justify-content: center; - } - .service-tile { - width: 140px; - min-height: 130px; - } - .reboot-card { - padding: 36px 28px; - margin: 0 16px; - } - .creds-dialog { - margin: 0 12px; - } - .creds-qr-img { - width: 200px; - height: 200px; - } -} - -/* ── Tech Support tile ───────────────────────────────────────────── */ - -.support-tile { - border-color: var(--accent-color); - border-width: 2px; - border-style: dashed; -} - -.support-tile:hover { - border-color: #a8c8ff; - border-style: solid; -} - -.support-status-label { - font-size: 0.75rem; - color: var(--accent-color); - font-weight: 600; -} - -/* ── Tech Support modal content ──────────────────────────────────── */ - -.support-section { - text-align: center; - padding: 8px 0; -} - -.support-icon-big { - font-size: 3rem; - margin-bottom: 12px; -} - -.support-heading { - font-size: 1.15rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 8px; -} - -.support-active-heading { - color: var(--yellow); -} - -.support-desc { - font-size: 0.88rem; - color: var(--text-secondary); - line-height: 1.6; - margin-bottom: 20px; - max-width: 480px; - margin-left: auto; - margin-right: auto; -} - -.support-info-box { - background-color: #12121c; - border: 1px solid var(--border-color); - border-radius: 10px; - padding: 16px 20px; - margin: 0 auto 20px; - max-width: 400px; -} - -.support-active-box { - border-color: var(--yellow); -} - -.support-info-row { - display: flex; - justify-content: space-between; - align-items: center; - padding: 6px 0; -} - -.support-info-label { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--text-dim); -} - -.support-info-value { - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - font-size: 0.92rem; - color: var(--accent-color); - font-weight: 600; -} - -.support-info-hint { - font-size: 0.78rem; - color: var(--text-dim); - margin-top: 8px; - font-style: italic; -} - -.support-steps { - text-align: left; - max-width: 420px; - margin: 0 auto 24px; -} - -.support-steps-title { - font-size: 0.82rem; - font-weight: 700; - color: var(--text-secondary); - margin-bottom: 8px; -} - -.support-steps ol { - padding-left: 20px; - font-size: 0.85rem; - color: var(--text-secondary); - line-height: 1.8; -} - -.support-btn-enable { - background-color: var(--green); - color: #fff; - padding: 12px 32px; - font-size: 1rem; - font-weight: 700; - border-radius: 10px; -} - -.support-btn-enable:hover:not(:disabled) { - background-color: #27ae6e; -} - -.support-btn-disable { - background-color: var(--red); - color: #fff; - padding: 12px 32px; - font-size: 1rem; - font-weight: 700; - border-radius: 10px; -} - -.support-btn-disable:hover:not(:disabled) { - background-color: #c41520; -} - -.support-active-note { - font-size: 0.85rem; - color: var(--text-secondary); - margin-bottom: 20px; - max-width: 420px; - margin-left: auto; - margin-right: auto; -} - -.support-fine-print { - font-size: 0.75rem; - color: var(--text-dim); - margin-top: 12px; - font-style: italic; -} - -.support-verify-box { - background-color: #12121c; - border: 1px solid var(--border-color); - border-radius: 10px; - padding: 16px 20px; - margin: 20px auto; - max-width: 400px; - display: flex; - justify-content: space-between; - align-items: center; -} - -.support-verify-label { - font-size: 0.82rem; - font-weight: 700; - color: var(--text-dim); -} - -.support-verify-value { - font-size: 0.88rem; - font-weight: 700; -} - -.support-verify-value.verified-gone { - color: var(--green); -} - -.support-verify-value.verify-warning { - color: var(--yellow); -} - -.support-btn-done { - background-color: var(--border-color); - color: var(--text-primary); - padding: 10px 28px; - font-size: 0.92rem; - font-weight: 600; - border-radius: 10px; -} - -.support-btn-done:hover:not(:disabled) { - background-color: #5a5c72; -} - -/* ── Tech Support — wallet protection ────────────────────────────── */ - -.support-wallet-box { - border-radius: 10px; - border: 1px solid var(--border-color); - padding: 14px 18px; - margin: 0 auto 20px; - max-width: 460px; - text-align: left; -} - -.support-wallet-protected { - border-color: var(--green); - background-color: rgba(30, 150, 96, 0.08); -} - -.support-wallet-unlocked { - border-color: var(--yellow); - background-color: rgba(230, 180, 0, 0.08); -} - -.support-wallet-warning { - border-color: var(--red); - background-color: rgba(220, 38, 38, 0.08); -} - -.support-wallet-header { - display: flex; - align-items: center; - gap: 8px; - margin-bottom: 8px; -} - -.support-wallet-icon { - font-size: 1.2rem; -} - -.support-wallet-title { - font-size: 0.88rem; - font-weight: 700; - color: var(--text-primary); -} - -.support-wallet-desc { - font-size: 0.82rem; - color: var(--text-secondary); - line-height: 1.55; - margin-bottom: 10px; -} - -.support-wallet-paths { - list-style: none; - padding: 0; - margin: 0 0 12px; -} - -.support-wallet-paths li { - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - font-size: 0.78rem; - color: var(--text-dim); - padding: 2px 0; -} - -.support-wallet-paths li::before { - content: "🗂 "; -} - -.support-wallet-unlock-row { - display: flex; - align-items: center; - gap: 10px; - flex-wrap: wrap; -} - -.support-unlock-select { - background-color: #1c1c2e; - border: 1px solid var(--border-color); - color: var(--text-primary); - border-radius: 6px; - padding: 6px 10px; - font-size: 0.85rem; -} - -.support-btn-wallet-unlock { - background-color: var(--yellow); - color: #111; - padding: 7px 18px; - font-size: 0.85rem; - font-weight: 700; - border-radius: 8px; -} - -.support-btn-wallet-unlock:hover:not(:disabled) { - background-color: #c9a200; -} - -.support-btn-wallet-lock { - background-color: var(--green); - color: #fff; - padding: 7px 18px; - font-size: 0.85rem; - font-weight: 700; - border-radius: 8px; -} - -.support-btn-wallet-lock:hover:not(:disabled) { - background-color: #1a8557; -} - -.support-btn-auditlog { - background-color: transparent; - color: var(--accent-color); - border: 1px solid var(--accent-color); - padding: 6px 18px; - font-size: 0.82rem; - font-weight: 600; - border-radius: 8px; - margin-top: 10px; -} - -.support-btn-auditlog:hover:not(:disabled) { - background-color: rgba(100, 130, 220, 0.12); -} - -/* ── Tech Support — audit log ────────────────────────────────────── */ - -.support-audit-container { - margin: 0 auto; - max-width: 520px; - padding: 0 4px 12px; -} - -.support-audit-log { - background-color: #0d0d1a; - border: 1px solid var(--border-color); - border-radius: 8px; - padding: 10px 14px; - max-height: 220px; - overflow-y: auto; -} - -.support-audit-entry { - font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace; - font-size: 0.76rem; - color: var(--text-secondary); - line-height: 1.7; - border-bottom: 1px solid #1e1e30; - padding: 2px 0; -} - -.support-audit-entry:last-child { - border-bottom: none; -} - -.support-audit-empty { - font-size: 0.82rem; - color: var(--text-dim); - text-align: center; - padding: 12px 0; -} - - - -.feature-manager-section { - margin-bottom: 32px; -} - -.feature-subcategory { - margin-bottom: 24px; -} - -.feature-subcategory-header { - font-size: 0.88rem; - font-weight: 700; - color: var(--text-secondary); - margin-bottom: 10px; - padding-left: 2px; -} - -.feature-cards-wrap { - display: flex; - flex-direction: column; - gap: 0; - border: 1px solid var(--border-color); - border-radius: 12px; - overflow: hidden; -} - -.feature-card { - background-color: var(--card-color); - padding: 14px 18px; - border-bottom: 1px solid var(--border-color); -} - -.feature-card:last-child { - border-bottom: none; -} - -.feature-card-top { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 12px; -} - -.feature-card-info { - flex: 1; - min-width: 0; -} - -.feature-card-name { - font-size: 0.95rem; - font-weight: 600; - color: var(--text-primary); - margin-bottom: 2px; -} - -.feature-card-desc { - font-size: 0.82rem; - color: var(--text-secondary); - line-height: 1.4; -} - -.feature-card-status { - font-size: 0.75rem; - color: var(--text-dim); - margin-top: 6px; -} - -/* ── Feature toggle switch ───────────────────────────────────────── */ - -.feature-toggle { - position: relative; - display: inline-flex; - align-items: center; - width: 44px; - height: 24px; - flex-shrink: 0; - cursor: pointer; - margin-top: 2px; -} - -.feature-toggle-input { - opacity: 0; - width: 0; - height: 0; - position: absolute; -} - -.feature-toggle-slider { - position: absolute; - inset: 0; - background-color: var(--border-color); - border-radius: 24px; - transition: background-color 0.2s; -} - -.feature-toggle-slider::before { - content: ""; - position: absolute; - width: 18px; - height: 18px; - left: 3px; - top: 3px; - background-color: var(--text-secondary); - border-radius: 50%; - transition: transform 0.2s, background-color 0.2s; -} - -.feature-toggle.active .feature-toggle-slider { - background-color: var(--green); -} - -.feature-toggle.active .feature-toggle-slider::before { - transform: translateX(20px); - background-color: #fff; -} - -/* ── Feature domain badge (consistent with tile domain badge) ────── */ - -.feature-domain-badge { - font-size: 0.75rem; - font-weight: 600; - margin-top: 6px; - padding: 2px 0; - display: flex; - align-items: center; - gap: 4px; -} - -.feature-domain-icon { - flex-shrink: 0; -} - -.feature-domain-label { - word-break: break-word; -} - -.feature-domain-badge.configured { - color: #a6e3a1; -} - -.feature-domain-badge.not-configured { - color: #f9e2af; -} - -.feature-domain-label--checking { - color: var(--text-dim); -} - -.feature-domain-label--ok { - color: #a6e3a1; -} - -.feature-domain-label--warn { - color: #f9e2af; -} - -.feature-domain-label--error { - color: #f38ba8; -} - -/* ── Feature conflict warning ────────────────────────────────────── */ - -.feature-conflict-warning { - font-size: 0.75rem; - color: var(--yellow); - margin-top: 4px; -} - -/* ── Domain setup modal inputs ───────────────────────────────────── */ - -.domain-narrow-dialog { - max-width: 520px; -} - -.domain-setup-intro { - font-size: 0.88rem; - color: var(--text-secondary); - margin-bottom: 18px; - line-height: 1.6; -} - -.domain-setup-intro ol { - padding-left: 20px; - margin-top: 6px; -} - -.domain-setup-intro li { - margin-bottom: 6px; -} - -.domain-setup-intro code { - background-color: #12121c; - padding: 2px 8px; - border-radius: 4px; - font-family: 'JetBrains Mono', monospace; - font-size: 0.82em; - word-break: break-all; -} - -.domain-field-group { - margin-bottom: 14px; -} - -.domain-field-label { - display: block; - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.05em; - color: var(--text-dim); - margin-bottom: 6px; -} - -.domain-field-input { - width: 100%; - background-color: #12121c; - border: 1px solid var(--border-color); - border-radius: 8px; - color: var(--text-primary); - font-family: inherit; - font-size: 0.92rem; - padding: 10px 14px; - outline: none; - transition: border-color 0.15s; -} - -.domain-field-input:focus { - border-color: var(--accent-color); -} - -.domain-field-hint { - font-size: 0.75rem; - color: var(--text-dim); - margin-top: 5px; - font-style: italic; -} - -.domain-field-actions { - display: flex; - justify-content: flex-end; - gap: 10px; - margin-top: 20px; -} - -@media (max-width: 600px) { - .feature-cards-wrap { - border-radius: 10px; - } - .feature-card { - padding: 12px 14px; - } - .domain-narrow-dialog { - margin: 0 12px; - } -} - -/* ── Tile: Port Requirements badge ──────────────────────────────── */ - -/* ── Port Requirements Modal ────────────────────────────────────── */ - -.port-req-intro { - font-size: 0.9rem; - color: var(--text-primary); - margin-bottom: 14px; - line-height: 1.5; -} - -.port-req-table { - width: 100%; - border-collapse: collapse; - font-size: 0.85rem; - margin-bottom: 14px; -} - -.port-req-table thead th { - text-align: left; - padding: 6px 10px; - border-bottom: 1px solid var(--border-color); - color: var(--text-secondary); - font-weight: 600; -} - -.port-req-table tbody tr:nth-child(even) { - background-color: rgba(255,255,255,0.03); -} - -.port-req-port { - padding: 5px 10px; - font-family: 'JetBrains Mono', monospace; - font-size: 0.82rem; - color: var(--accent-color); - white-space: nowrap; -} - -.port-req-proto { - padding: 5px 10px; - color: var(--text-secondary); - white-space: nowrap; -} - -.port-req-desc { - padding: 5px 10px; - color: var(--text-primary); -} - -.port-req-hint { - font-size: 0.78rem; - color: var(--text-dim); - line-height: 1.5; - margin-bottom: 14px; -} - -/* ── Port status indicators ─────────────────────────────────────── */ - -.port-req-status { - padding: 5px 10px; - white-space: nowrap; - font-size: 0.82rem; -} - -.port-status-listening { - color: #a6e3a1; - font-weight: 600; -} - -.port-status-open { - color: #f9e2af; - font-weight: 600; -} - -.port-status-closed { - color: #f38ba8; - font-weight: 600; -} - -.port-status-unknown { - color: var(--text-dim); -} - -/* Internal IP highlight in port modal */ -.port-req-internal-ip { - font-family: 'JetBrains Mono', monospace; - background: rgba(137, 180, 250, 0.15); - color: var(--accent-color); - padding: 2px 6px; - border-radius: 4px; - font-size: 0.95em; -} - -/* Domain status colour helpers (used in detail modal) */ -.tile-domain-label--ok { - color: #a6e3a1; -} - -.tile-domain-label--warn { - color: #f9e2af; -} - -.tile-domain-label--error { - color: #f38ba8; -} - -/* ── Service detail modal sections ──────────────────────────────── */ - -.svc-detail-section { - margin-bottom: 24px; - padding-bottom: 24px; - border-bottom: 1px solid var(--border-color); -} - -.svc-detail-section:last-child { - border-bottom: none; - margin-bottom: 0; - padding-bottom: 0; -} - -.svc-detail-desc { - font-size: 0.92rem; - line-height: 1.7; - color: var(--text-secondary); -} - -.svc-detail-section-title { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--text-dim); - margin-bottom: 12px; -} - -.svc-detail-status { - display: flex; - align-items: center; - gap: 8px; - font-size: 0.92rem; - font-weight: 600; -} - -.svc-detail-troubleshoot { - background-color: rgba(229, 165, 10, 0.08); - border: 1px solid rgba(229, 165, 10, 0.25); - border-radius: 10px; - padding: 16px 20px; - margin-top: 14px; - font-size: 0.85rem; - line-height: 1.7; - color: var(--text-secondary); -} - -.svc-detail-troubleshoot ol { - margin: 10px 0 0 20px; - padding: 0; -} - -.svc-detail-troubleshoot li { - margin-bottom: 4px; -} - -.svc-detail-troubleshoot code { - background-color: #12121c; - padding: 2px 8px; - border-radius: 4px; - font-family: 'JetBrains Mono', monospace; - font-size: 0.85rem; -} - -/* Port status table inside detail modal */ -.svc-detail-port-table { - width: 100%; - border-collapse: collapse; - font-size: 0.85rem; -} - -.svc-detail-port-table th { - text-align: left; - padding: 6px 10px; - font-size: 0.72rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.05em; - color: var(--text-dim); - border-bottom: 1px solid var(--border-color); -} - -.svc-detail-port-table td { - padding: 8px 10px; - border-bottom: 1px solid rgba(69, 71, 90, 0.3); -} - -.svc-detail-port-table-port { - font-family: 'JetBrains Mono', monospace; - color: var(--accent-color); - white-space: nowrap; -} - -.svc-detail-port-table-proto { - color: var(--text-secondary); - white-space: nowrap; -} - -.svc-detail-port-table-desc { - color: var(--text-primary); -} - -.svc-detail-port-table-status { - white-space: nowrap; - font-weight: 600; -} - -/* Domain status badge in detail modal */ -.svc-detail-domain-value { - font-family: 'JetBrains Mono', monospace; - font-size: 0.9rem; - display: flex; - align-items: center; - gap: 8px; -} - -/* Addon feature toggle row in service detail modal */ -.svc-detail-addon-row { - display: flex; - align-items: center; - justify-content: space-between; - gap: 12px; - margin-top: 10px; -} - -.svc-detail-addon-status { - font-size: 0.88rem; - font-weight: 600; -} - -.addon-status--on { - color: var(--green); -} - -.addon-status--off { - color: var(--text-dim); -} - -/* ── Sidebar: compact feature card overrides ─────────────────────── */ - -.sidebar .feature-manager-section { - margin-bottom: 0; -} - -.sidebar .feature-subcategory { - margin-bottom: 16px; -} - -.sidebar .feature-card { - padding: 10px 12px; -} - -.sidebar .feature-card-name { - font-size: 0.88rem; -} - -.sidebar .feature-card-desc { - font-size: 0.78rem; -} - -.sidebar .section-header { - font-size: 0.75rem; -} - -/* ── Onboarding Wizard ────────────────────────────────────────── */ - -.onboarding-body { - overflow: auto; - display: flex; - flex-direction: column; - align-items: center; - justify-content: flex-start; - background-color: var(--bg-color); - min-height: 100vh; - padding: 32px 16px 64px; -} - -.onboarding-shell { - width: 100%; - max-width: 680px; - margin: 0 auto; -} - -/* Progress bar */ - -.onboarding-progress-bar { - height: 4px; - background-color: var(--border-color); - border-radius: 2px; - margin-bottom: 24px; - overflow: hidden; -} - -.onboarding-progress-fill { - height: 100%; - background-color: var(--accent-color); - border-radius: 2px; - transition: width 0.4s ease; - width: 0%; -} - -/* Step dots */ - -.onboarding-steps-nav { - display: flex; - align-items: center; - justify-content: center; - gap: 0; - margin-bottom: 32px; -} - -.onboarding-step-dot { - width: 28px; - height: 28px; - border-radius: 50%; - background-color: var(--card-color); - border: 2px solid var(--border-color); - color: var(--text-dim); - font-size: 0.72rem; - font-weight: 700; - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - transition: background-color 0.2s, border-color 0.2s, color 0.2s; -} - -.onboarding-step-dot.active { - background-color: var(--accent-color); - border-color: var(--accent-color); - color: #1e1e2e; -} - -.onboarding-step-dot.completed { - background-color: #2ec27e; - border-color: #2ec27e; - color: #fff; -} - -.onboarding-step-connector { - flex: 1; - height: 2px; - background-color: var(--border-color); - max-width: 60px; - min-width: 16px; -} - -/* Panel */ - -.onboarding-panel-wrap { - position: relative; -} - -.onboarding-panel { - animation: ob-fadein 0.25s ease; -} - -@keyframes ob-fadein { - from { opacity: 0; transform: translateY(6px); } - to { opacity: 1; transform: translateY(0); } -} - -/* Hero (steps 1 and 6) */ - -.onboarding-hero { - text-align: center; - margin-bottom: 28px; -} - -.onboarding-logo { - font-size: 3.5rem; - line-height: 1; - margin-bottom: 14px; -} - -.onboarding-logo-img { - height: 90px; - width: auto; -} - -.onboarding-title { - font-size: 1.7rem; - font-weight: 800; - color: var(--text-primary); - margin-bottom: 8px; -} - -.onboarding-subtitle { - font-size: 1rem; - color: var(--accent-color); - font-weight: 600; - letter-spacing: 0.04em; -} - -/* Step header (steps 2-5) */ - -.onboarding-step-header { - margin-bottom: 20px; -} - -.onboarding-step-icon { - font-size: 2rem; - display: block; - margin-bottom: 10px; -} - -.onboarding-step-title { - font-size: 1.35rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 6px; -} - -.onboarding-step-desc { - font-size: 0.9rem; - color: var(--text-secondary); - line-height: 1.6; -} - -/* Cards */ - -.onboarding-card { - background-color: var(--card-color); - border: 1px solid var(--border-color); - border-radius: var(--radius-card); - padding: 24px; - margin-bottom: 20px; -} - -.onboarding-card--scroll { - max-height: 440px; - overflow-y: auto; -} - -.onboarding-card--ports { - overflow-y: visible; -} - -.onboarding-body-text { - font-size: 0.92rem; - color: var(--text-secondary); - line-height: 1.7; - margin-bottom: 16px; -} - -.onboarding-body-text--dim { - color: var(--text-dim); - font-size: 0.85rem; -} - -.onboarding-body-text:last-child { margin-bottom: 0; } - -/* Role badge */ - -.onboarding-role-row { - display: flex; - align-items: center; - gap: 10px; - margin: 16px 0; -} - -.onboarding-role-label { - font-size: 0.88rem; - color: var(--text-secondary); - font-weight: 600; -} - -.onboarding-role-badge { - background-color: var(--accent-color); - color: #1e1e2e; - font-size: 0.75rem; - font-weight: 700; - padding: 3px 12px; - border-radius: 20px; - letter-spacing: 0.04em; -} - -/* Checklist */ - -.onboarding-checklist { - list-style: none; - margin: 16px 0 0; - display: flex; - flex-direction: column; - gap: 8px; -} - -.onboarding-checklist li { - font-size: 0.9rem; - color: var(--text-secondary); -} - -/* Footer navigation */ - -.onboarding-footer { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 8px; -} - -.onboarding-btn-next, -.onboarding-btn-back { - min-width: 140px; -} - -/* Status messages */ - -.onboarding-save-status { - font-size: 0.85rem; - min-height: 1.4em; - margin-bottom: 8px; - padding: 0 4px; -} - -.onboarding-save-status--ok { - color: #a6e3a1; -} - -.onboarding-save-status--error { - color: #f38ba8; -} - -.onboarding-save-status--info { - color: var(--text-secondary); -} - -/* Loading / error states */ - -.onboarding-loading { - font-size: 0.88rem; - color: var(--text-dim); - text-align: center; - padding: 24px 0; -} - -.onboarding-error { - font-size: 0.88rem; - color: #f38ba8; - padding: 12px 0; -} - -/* Hints */ - -.onboarding-hint { - font-size: 0.82rem; - color: var(--text-dim); - margin-bottom: 14px; - line-height: 1.5; -} - -.onboarding-hint code { - font-family: 'JetBrains Mono', monospace; - background: rgba(137, 180, 250, 0.1); - padding: 1px 5px; - border-radius: 3px; - color: var(--accent-color); -} - -.onboarding-hint--inline { - margin-bottom: 6px; - margin-top: 2px; -} - -.onboarding-optional { - font-size: 0.78rem; - color: var(--text-dim); -} - -/* Domain inputs */ - -.onboarding-domain-group { - margin-bottom: 18px; -} - -.onboarding-domain-group--email { - border-top: 1px solid var(--border-color); - padding-top: 18px; - margin-top: 6px; -} - -.onboarding-domain-label { - display: block; - font-size: 0.85rem; - font-weight: 600; - color: var(--text-secondary); - margin-bottom: 5px; -} - -.onboarding-domain-label--sub { - font-weight: 500; - font-size: 0.8rem; - margin-top: 8px; -} - -.onboarding-domain-input { - width: 100%; - background-color: var(--surface-color); - border: 1px solid var(--border-color); - border-radius: var(--radius-btn); - color: var(--text-primary); - font-size: 0.88rem; - padding: 8px 12px; - outline: none; - transition: border-color 0.15s; - font-family: inherit; -} - -.onboarding-domain-input:focus { - border-color: var(--accent-color); -} - -/* Port forwarding */ - -.onboarding-port-ip { - display: flex; - align-items: center; - gap: 10px; - flex-wrap: wrap; - background: rgba(137, 180, 250, 0.06); - border: 1px solid rgba(137, 180, 250, 0.2); - border-radius: 10px; - padding: 12px 16px; - margin-bottom: 16px; - font-size: 0.88rem; -} - -.onboarding-port-ip-label { - color: var(--text-secondary); -} - -.onboarding-port-all-ok { - color: #a6e3a1; - font-size: 0.92rem; - font-weight: 600; - margin-bottom: 12px; -} - -.onboarding-port-totals { - background: var(--card-color); - border: 1px solid var(--border-color); - border-radius: 6px; - padding: 10px 14px; - font-size: 0.93em; - color: var(--text-primary); - margin-bottom: 18px; - line-height: 1.6; -} - -.onboarding-port-warn { - background: rgba(229, 165, 10, 0.15); - border: 1px solid rgba(229, 165, 10, 0.5); - border-radius: 8px; - padding: 12px 16px; - font-size: 0.88rem; - color: var(--text-primary); - margin-bottom: 14px; - line-height: 1.5; -} - -.onboarding-port-breakdown { - margin-bottom: 14px; -} - -.onboarding-port-breakdown-title { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.07em; - color: var(--text-dim); - margin-bottom: 8px; -} - -.onboarding-port-svc { - margin-bottom: 10px; -} - -.onboarding-port-svc-name { - font-size: 0.88rem; - font-weight: 600; - color: var(--text-secondary); - margin-bottom: 4px; -} - -.onboarding-port-row { - display: flex; - align-items: center; - gap: 8px; - padding: 2px 0; - font-size: 0.85rem; -} - -.onboarding-port-details { - margin-top: 12px; -} - -.onboarding-port-details-summary { - font-size: 0.82rem; - color: var(--accent-color); - cursor: pointer; - font-weight: 600; - padding: 4px 0; -} - -.onboarding-port-table { - width: 100%; - border-collapse: collapse; - margin-top: 10px; - font-size: 0.92rem; -} - -.onboarding-port-table th { - text-align: left; - padding: 6px 10px; - font-size: 0.8rem; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--text-dim); - border-bottom: 1px solid var(--border-color); -} - -.onboarding-port-table td { - padding: 8px 10px; - vertical-align: top; -} - -/* Credentials */ - -.onboarding-creds-notice { - background: rgba(137, 180, 250, 0.06); - border: 1px solid rgba(137, 180, 250, 0.2); - border-radius: 8px; - padding: 10px 14px; - font-size: 0.85rem; - color: var(--text-secondary); - margin-bottom: 16px; - line-height: 1.5; -} - -.onboarding-creds-category { - margin-bottom: 20px; -} - -.onboarding-creds-category-title { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.07em; - color: var(--text-dim); - margin-bottom: 8px; - padding-bottom: 4px; - border-bottom: 1px solid var(--border-color); -} - -.onboarding-creds-service { - background: var(--surface-color); - border-radius: 10px; - padding: 12px 16px; - margin-bottom: 10px; -} - -.onboarding-creds-service-name { - font-size: 0.9rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 8px; -} - -.onboarding-cred-row { - display: flex; - align-items: flex-start; - gap: 10px; - padding: 3px 0; - font-size: 0.85rem; - flex-wrap: wrap; -} - -.onboarding-cred-label { - color: var(--text-dim); - font-weight: 600; - min-width: 100px; - flex-shrink: 0; -} - -.onboarding-cred-value { - color: var(--text-primary); - word-break: break-all; - font-family: 'JetBrains Mono', monospace; - font-size: 0.82rem; -} - -.onboarding-cred-secret { - display: flex; - align-items: center; - gap: 8px; -} - -.onboarding-cred-hidden { - color: var(--text-dim); - letter-spacing: 0.15em; -} - -.onboarding-cred-reveal-btn { - background: none; - border: 1px solid var(--border-color); - border-radius: 4px; - color: var(--accent-color); - font-size: 0.72rem; - padding: 1px 6px; - cursor: pointer; - font-family: inherit; -} - -.onboarding-cred-reveal-btn:hover { - background-color: rgba(137, 180, 250, 0.1); -} - -/* Feature step */ - -.onboarding-feat-group { - margin-bottom: 20px; -} - -.onboarding-feat-group-title { - font-size: 0.78rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.07em; - color: var(--text-dim); - margin-bottom: 8px; - padding-bottom: 4px; - border-bottom: 1px solid var(--border-color); -} - -.onboarding-feat-card { - background: var(--surface-color); - border-radius: 10px; - padding: 12px 16px; - margin-bottom: 10px; - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 16px; -} - -.onboarding-feat-info { - flex: 1; - min-width: 0; -} - -.onboarding-feat-name { - font-size: 0.9rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 3px; -} - -.onboarding-feat-desc { - font-size: 0.82rem; - color: var(--text-secondary); - line-height: 1.4; - margin-bottom: 5px; -} - -.onboarding-feat-domain { - font-size: 0.75rem; - font-weight: 600; - padding: 2px 8px; - border-radius: 10px; - display: inline-block; -} - -.onboarding-feat-domain--ok { - background: rgba(46, 194, 126, 0.12); - color: #a6e3a1; -} - -.onboarding-feat-domain--missing { - background: rgba(229, 165, 10, 0.1); - color: #f9e2af; -} - +/* Other styles remain unchanged */