/* ===================================================== 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; }