BastionGuard/thirdparty/bastionguard-secure-connection/ui/data/BSC-dark.css
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

640 lines
16 KiB
CSS

/* =====================================================
BastionGuard™ Secure Connection — BSC-dark.css (scuro)
Copyright (C) 2025–2026 Calogero Scarnà
===================================================== */
/* ── RESET ─────────────────────────────────────────── */
* {
all: unset;
font-family: system-ui, sans-serif;
font-size: 14px;
color: #e9ecef;
}
/* ── FINESTRA ───────────────────────────────────────── */
window {
background-color: #1a1d23;
border-radius: 12px;
}
/* ── HEADER BAR ─────────────────────────────────────── */
headerbar.custom-headerbar {
background: transparent;
border: none;
min-height: 32px;
padding: 0;
}
headerbar .header-left {
background-color: #1a1d23;
border-top-left-radius: 12px;
padding: 4px 8px;
}
headerbar .header-right {
background-color: #1a1d23;
padding: 4px 8px;
}
headerbar button.header-button {
background: transparent;
border: none;
min-width: 28px;
min-height: 28px;
padding: 4px;
border-radius: 6px;
}
headerbar button.header-button:hover {
background: rgba(255,255,255,0.1);
}
/* ── SELETTORE TEMA ─────────────────────────────────── */
.theme-btn {
font-size: 1.2em;
padding: 2px 6px;
border-radius: 6px;
opacity: 0.5;
background: transparent;
}
.theme-btn-active {
opacity: 1.0;
background-color: rgba(255,255,255,0.12);
}
.theme-btn:hover {
opacity: 0.85;
background-color: rgba(255,255,255,0.08);
}
/* ── SIDEBAR ─────────────────────────────────────────── */
.sidebar {
background-color: #1e3352;
border-bottom-left-radius: 12px;
padding: 12px;
min-width: 200px;
max-width: 240px;
}
.sidebar-header {
padding: 12px 16px;
border-bottom: 1px solid rgba(255,255,255,0.10);
}
.sidebar-title {
font-weight: bold;
font-size: 15px;
color: #e9ecef;
}
.sidebar .sidebar-button {
color: #e9ecef;
background-color: transparent;
border-radius: 8px;
padding: 4px 6px;
}
.sidebar .sidebar-button:hover {
background-color: rgba(255,255,255,0.10);
}
.sidebar .sidebar-button:active { background-color: rgba(255,255,255,0.18);
}
.sidebar .sidebar-button.active-sidebar-button {
background-color: rgba(255,255,255,0.18);
}
.sidebar .sidebar-button label {
color: #e9ecef;
font-weight: 500;
}
.sidebar-separator {
background-color: rgba(255,255,255,0.10);
margin: 4px 0;
}
.daemon-status {
color: rgba(255,255,255,0.55);
font-size: 12px;
}
/* ── STACK / CONTENT ─────────────────────────────────── */
stack {
background-color: #1a1d23;
padding: 16px;
}
/* ── CARD ────────────────────────────────────────────── */
.card {
background: #23272f;
border: 1px solid #343a40;
border-radius: 12px;
padding: 8px;
}
.card label {
color: #e9ecef;
}
/* ── TREEVIEW ────────────────────────────────────────── */
treeview {
background: #23272f;
border: 1px solid #343a40;
border-radius: 8px;
color: #e9ecef;
}
treeview header button {
background: #2c3038;
border-bottom: 1px solid #343a40;
padding: 6px 10px;
font-weight: 600;
color: #adb5bd;
}
treeview row {
padding: 4px 8px;
}
treeview row:hover {
background-color: rgba(255,255,255,0.06);
}
treeview row:selected,
treeview row:selected:focus {
background-color: #6b0000;
color: #ffffff;
}
treeview row:selected *,
treeview row:selected:focus * {
color: #ffffff;
}
/* ── NOTEBOOK ────────────────────────────────────────── */
notebook > header tab {
padding: 6px 12px;
border-radius: 6px 6px 0 0;
background: transparent;
color: #adb5bd;
}
notebook > header tab:checked {
background-color: #23272f;
border-bottom: 2px solid #c04040;
color: #e9ecef;
}
notebook > header tab:hover:not(:checked) {
background-color: rgba(255,255,255,0.05);
}
/* ── BUTTONS ─────────────────────────────────────────── */
button.suggested-action {
background-color: #6b0000;
color: #ffffff;
border-radius: 8px;
padding: 6px 14px;
font-weight: 600;
}
button.suggested-action:hover { background-color: #800000; }
button.suggested-action:active { background-color: #550000; }
button.destructive-action {
background-color: #922b21;
color: #ffffff;
border-radius: 8px;
padding: 6px 14px;
font-weight: 600;
}
button.destructive-action:hover { background-color: #a93226; }
button.destructive-action:active { background-color: #7b241c; }
button {
background-color: #2c3038;
color: #e9ecef;
border-radius: 8px;
padding: 6px 14px;
}
button:hover { background-color: #343a40; }
button:active { background-color: #495057; }
/* ── SWITCH / TOGGLE ───────────────────────────────────
Il reset globale `* { all: unset; }` rimuove il rendering nativo di GtkSwitch.
Queste regole rendono visibile il toggle usato nelle Impostazioni. */
switch,
switch.bsc-toggle-switch {
min-width: 52px;
min-height: 28px;
border-radius: 999px;
padding: 2px;
background-color: #495057;
border: 1px solid #6c757d;
}
switch:hover,
switch.bsc-toggle-switch:hover {
background-color: #5c636a;
}
switch:checked,
switch.bsc-toggle-switch:checked {
background-color: #2fb344;
border-color: #2f9e44;
}
switch:disabled,
switch.bsc-toggle-switch:disabled {
opacity: 0.45;
}
switch slider,
switch.bsc-toggle-switch slider {
min-width: 24px;
min-height: 24px;
border-radius: 999px;
background-color: #f8f9fa;
box-shadow: 0 1px 3px rgba(0,0,0,0.35);
}
/* ── ENTRY / SEARCH ──────────────────────────────────── */
entry, searchentry {
background: #23272f;
border: 1px solid #495057;
border-radius: 8px;
padding: 6px 10px;
color: #e9ecef;
}
entry:focus, searchentry:focus {
border-color: #c04040;
}
/* ── PROGRESSBAR ─────────────────────────────────────── */
progressbar trough {
background-color: #343a40;
border-radius: 99px;
min-height: 8px;
}
progressbar progress {
background-color: #6b0000;
border-radius: 99px;
}
/* ── SCROLLBAR ───────────────────────────────────────── */
scrollbar { background: transparent; }
scrollbar slider {
background-color: rgba(255,255,255,0.2);
border-radius: 99px;
min-width: 6px;
min-height: 6px;
}
scrollbar slider:hover {
background-color: rgba(255,255,255,0.35);
}
/* ── STATUSBAR ───────────────────────────────────────── */
statusbar {
background-color: #14171c;
border-top: 1px solid #343a40;
padding: 4px 12px;
font-size: 12px;
color: #adb5bd;
}
/* ── ALERT ───────────────────────────────────────────── */
.alert-success {
background-color: #0e7490;
border-radius: 6px;
padding: 4px 14px;
}
.alert-success label { color: white; font-weight: bold; }
.alert-danger {
background-color: #7b241c;
border-radius: 6px;
padding: 4px 14px;
}
.alert-danger label { color: white; font-weight: bold; }
/* ── RULE WIZARD DIALOG ───────────────────────────────── */
window.bsc-rule-dialog,
dialog.bsc-rule-dialog {
background-color: inherit;
border-radius: 12px;
}
.bsc-rule-dialog .bsc-rule-dialog-body {
background: transparent;
}
.dialog-intro {
color: inherit;
opacity: 0.92;
}
.rule-dialog-card {
padding: 0;
}
.dialog-label {
font-weight: 600;
}
.dialog-field {
min-width: 260px;
}
checkbutton.dialog-check {
padding-top: 4px;
}
checkbutton.dialog-check label {
color: inherit;
font-weight: 500;
}
combobox,
combobox box,
combobox button,
.dropdown,
dropdown button {
border-radius: 8px;
}
button.dialog-secondary {
font-weight: 500;
}
/* ── ALERT DIALOG (popup connessione) ───────────────── */
.bsc-alert-dialog {
background-color: #1e2127;
border-radius: 12px;
}
.bsc-alert-dialog .bsc-alert-app-name {
color: #e6edf3;
}
.bsc-alert-dialog .bsc-alert-info {
background-color: #262b33;
border: 1px solid #3a3f47;
border-radius: 8px;
padding: 12px;
}
.bsc-alert-dialog .bsc-alert-info label {
color: #c9d1d9;
padding: 2px 0;
}
/* ── PAGE TITLES ────────────────────────────────────── */
.bsc-page-title {
color: #e6edf3;
font-size: 1.05em;
}
/* ── TREEVIEW (Connessioni, Applicazioni, Regole) ───── */
.bsc-treeview {
background-color: #1e2127;
border-radius: 8px;
border: 1px solid #3a3f47;
}
.bsc-treeview header button {
background-color: #262b33;
color: #c9d1d9;
font-weight: 600;
padding: 8px 10px;
border: none;
border-bottom: 1px solid #3a3f47;
border-right: 1px solid #2c313a;
}
.bsc-treeview header button:hover {
background-color: #2f343d;
}
.bsc-treeview row {
padding: 4px 0;
color: #c9d1d9;
}
.bsc-treeview row:nth-child(even) {
background-color: #232830;
}
.bsc-treeview row:selected {
background-color: #4a7eff;
color: #ffffff;
}
.bsc-scrolled {
border: none;
}
/* ── BOTTONI TOOLBAR (Pulisci, ecc.) ────────────────── */
.bsc-toolbar-button {
background-color: #262b33;
color: #c9d1d9;
border: 1px solid #3a3f47;
border-radius: 6px;
padding: 6px 14px;
font-weight: 500;
}
.bsc-toolbar-button:hover {
background-color: #2f343d;
}
/* ── ALERT DIALOG (dark) ───────────────────────────── */
.bsc-alert-dialog {
background-color: #1f2126;
}
.bsc-alert-app-name {
color: #f1f3f5;
}
.bsc-alert-info {
background-color: #2a2d33;
border: 1px solid #3a3d44;
border-radius: 8px;
padding: 12px;
}
.bsc-alert-info label {
color: #ced4da;
}
/* ── PAGE HEADER (dark) ────────────────────────────── */
.bsc-page-header {
margin-bottom: 12px;
}
.bsc-page-title {
color: #f1f3f5;
font-size: 16px;
}
/* ── NETWORK MOCKUP STYLE (dark) ─────────────────────────────────── */
.bsc-map {
background:
linear-gradient(180deg, rgba(4, 8, 14, 0.98) 0%, rgba(7, 12, 18, 0.98) 100%);
border: 1px solid #27313d;
border-radius: 14px;
padding: 0;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.03),
0 10px 28px rgba(0,0,0,0.28);
}
.bsc-map-widget {
border-radius: 14px;
background: transparent;
}
.bsc-network-marker-badge {
background: rgba(20, 22, 27, 0.82);
color: #f5e8d8;
border: 1px solid rgba(255,255,255,0.08);
border-radius: 999px;
padding: 2px 8px;
font-size: 11px;
font-weight: 700;
min-height: 18px;
box-shadow:
0 4px 10px rgba(0,0,0,0.28),
inset 0 1px 0 rgba(255,255,255,0.04);
}
.bsc-network-popover {
background:
linear-gradient(180deg,
rgba(10, 16, 26, 0.94) 0%,
rgba(8, 13, 21, 0.90) 100%);
border: 1px solid rgba(255,255,255,0.09);
border-radius: 22px;
padding: 18px 20px;
box-shadow:
0 24px 60px rgba(0,0,0,0.46),
0 8px 20px rgba(0,0,0,0.22),
inset 0 1px 0 rgba(255,255,255,0.04);
}
.bsc-network-popover-title {
color: #fff3e5;
font-size: 19px;
font-weight: 800;
letter-spacing: 0.1px;
margin-bottom: 6px;
}
.bsc-network-popover-meta {
color: #dbe2ea;
font-size: 14px;
line-height: 1.55;
}
.bsc-network-treeview {
background:
linear-gradient(180deg,
rgba(17, 23, 34, 0.96) 0%,
rgba(14, 19, 29, 0.96) 100%);
border-radius: 12px;
border: 1px solid #2a3442;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.03);
}
.bsc-network-treeview header button {
background:
linear-gradient(180deg,
rgba(34, 41, 53, 0.98) 0%,
rgba(28, 34, 44, 0.98) 100%);
color: #eef2f7;
font-weight: 700;
padding: 10px 12px;
border: none;
border-bottom: 1px solid #303a47;
border-right: 1px solid #2a3440;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}
.bsc-network-treeview header button:hover {
background:
linear-gradient(180deg,
rgba(40, 47, 60, 0.98) 0%,
rgba(32, 39, 50, 0.98) 100%);
}
.bsc-network-treeview row {
background: transparent;
color: #d6dde6;
padding: 5px 0;
}
.bsc-network-treeview row:nth-child(even) {
background-color: rgba(255,255,255,0.018);
}
.bsc-network-treeview row:hover {
background-color: rgba(255,255,255,0.045);
}
.bsc-network-treeview row:selected,
.bsc-network-treeview row:selected:focus {
background-color: rgba(255, 114, 72, 0.15);
color: #ffffff;
}
.bsc-network-treeview row:selected *,
.bsc-network-treeview row:selected:focus * {
color: #ffffff;
}
.bsc-network-page .bsc-page-title {
color: #f4f7fb;
font-size: 16px;
font-weight: 700;
}
.bsc-network-page .bsc-page-subtitle {
color: #b2bcc8;
font-size: 12px;
}
.bsc-network-page .bsc-toolbar-button {
background:
linear-gradient(180deg,
rgba(40, 46, 58, 0.96) 0%,
rgba(33, 38, 49, 0.96) 100%);
color: #edf2f7;
border: 1px solid #3a4450;
border-radius: 8px;
padding: 7px 14px;
font-weight: 600;
}
.bsc-network-page .bsc-toolbar-button:hover {
background:
linear-gradient(180deg,
rgba(47, 54, 67, 0.98) 0%,
rgba(39, 45, 56, 0.98) 100%);
}
.alert-success {
background-color: #d1e7dd;
border: 1px solid #badbcc;
border-radius: 8px;
padding: 10px;
color: #0f5132;
}
.alert-info {
background-color: #cff4fc;
border: 1px solid #b6effb;
border-radius: 8px;
padding: 10px;
color: #055160;
}
.settings-card {
background-color: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 14px;
padding: 16px;
}
.settings-card-title {
font-weight: 700;
font-size: 1.05rem;
}
.status-badge-success {
background-color: #d1e7dd;
color: #0f5132;
border: 1px solid #badbcc;
border-radius: 999px;
padding: 4px 10px;
}
.status-badge-danger {
background-color: #f8d7da;
color: #842029;
border: 1px solid #f5c2c7;
border-radius: 999px;
padding: 4px 10px;
}
.status-badge-warning {
background-color: #fff3cd;
color: #664d03;
border: 1px solid #ffecb5;
border-radius: 999px;
padding: 4px 10px;
}