BastionGuard/webui/assets/css/source/BastionGuard-dark.css
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

1853 lines
39 KiB
CSS

/* ===========================
* RESET GENERALE
* =========================== */
* {
all: unset;
font-family: "Cantarell";
font-size: 14px;
color: #e4e7eb;
}
/* ===========================
* FINESTRA PRINCIPALE
* =========================== */
window {
background-color: #1a1d23;
border-radius: 12px;
padding: 0;
}
/* ===========================
* TITOLO DASHBOARD
* =========================== */
.title {
font-size: 20px;
font-weight: bold;
color: #e4e7eb;
margin-bottom: 12px;
}
.card {
background: #242830;
border: 1px solid #3a3f4b;
border-radius: 12px;
/* box-shadow: 0 1px 3px rgba(0,0,0,0.4); */
padding: 8px;
width: 100%;
}
.card label {
color: #e4e7eb;
font-size: 14px;
line-height: 1.3;
/* word-wrap: break-word; */
}
.card image {
margin-right: 12px;
min-width: 64px;
min-height: 64px;
}
/* Titolo interno alle card */
.card label:first-child {
font-weight: bold;
font-size: 15px;
margin-bottom: 4px;
}
/* Card log */
.log-card {
min-height: 100px;
/* max-height: 100px; */
min-width: 0;
/* max-width: 100%; */
}
.log-card scrollbar.vertical {
min-width: 6px;
}
.log-card textview {
font-size: 11px;
}
/* ===========================
* FILECHOOSERDIALOG
* =========================== */
filechooserdialog {
background: #1a1d23;
color: #e4e7eb;
border-radius: 8px;
}
filechooserdialog headerbar {
background: #1e3352;
color: #ffffff;
border-bottom: 1px solid #1e3a56;
}
filechooserdialog button {
background: #1e3352;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
border: none;
font-weight: 500;
}
filechooserdialog button:hover {
background: #1e3a56;
}
filechooserdialog button:active {
background: #142d42;
}
filechooserdialog list row {
background: transparent;
color: #e4e7eb;
padding: 6px 10px;
border-radius: 4px;
}
filechooserdialog list row:hover {
background: rgba(58, 110, 165, 0.25);
}
filechooserdialog list row:selected {
background: #1e3352;
color: #ffffff;
}
/* ===========================
* HEADER BAR
* =========================== */
headerbar.custom-headerbar {
background: transparent;
border: none;
/* box-shadow: none; */
min-height: 32px;
padding: 0;
}
headerbar .header-left {
background-color: #1a1d23;
border-top-left-radius: 12px;
min-width: 240px;
padding: 0;
}
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);
}
/* ======================
* HEADER DELLA SIDEBAR
* ====================== */
.sidebar-header {
padding: 12px 16px;
margin-bottom: 6px;
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.sidebar-header image {
margin-right: 8px;
}
.sidebar-title {
font-weight: bold;
font-size: 15px;
color: #ffffff;
}
/* ===========================
* SIDEBAR
* =========================== */
.sidebar {
background-color: #1e3352;
border-bottom-left-radius: 12px;
padding: 12px;
}
.sidebar .sidebar-button {
color: #d0d9e8;
background-color: transparent;
border-radius: 8px;
padding: 4px 6px;
/* transition: background-color 160ms ease; */
}
.sidebar .sidebar-button:hover {
background-color: rgba(255, 255, 255, 0.12);
}
.sidebar .sidebar-button:pressed {
background-color: rgba(255, 255, 255, 0.20);
}
.sidebar .sidebar-button.active-sidebar-button {
background-color: rgba(255, 255, 255, 0.20);
}
.sidebar .sidebar-button label {
color: #ffffff;
font-weight: 500;
}
.sidebar-group-label {
color: #ffffff;
font-weight: 600;
}
/* ===========================
* COMBOBOX Sidebar
* =========================== */
.sidebar .sidebar-langrow {
margin: 6px 0 8px 0;
padding: 0;
min-width: 0;
}
.sidebar .sidebar-langcol {
margin: 6px 0 10px 0;
padding: 0;
min-width: 0;
}
.sidebar .sidebar-langcol combobox {
background-color: rgba(255, 255, 255, 0.12);
color: #ffffff;
border-radius: 6px;
padding: 6px 10px;
min-height: 28px;
min-width: 0;
/* max-width: 100%; */
}
.sidebar .sidebar-langcol combobox:hover {
background-color: rgba(255, 255, 255, 0.20);
}
.sidebar .sidebar-langcol combobox arrow {
-gtk-icon-source: -gtk-icontheme("pan-down-symbolic");
color: #ffffff;
}
.sidebar .sidebar-langcol button.sidebar-button-apply {
color: #ffffff;
background-color: rgba(255, 255, 255, 0.12);
border-radius: 6px;
padding: 6px 10px;
min-height: 28px;
margin-top: 6px;
}
.sidebar .sidebar-langcol button.sidebar-button-apply:hover {
background-color: rgba(255, 255, 255, 0.20);
}
/* Popover sidebar lang */
.sidebar .sidebar-langcol combobox popover,
.sidebar .sidebar-langcol combobox popover.menu,
.sidebar .sidebar-langcol popover.menu {
background: #2a2f3b;
color: #e4e7eb;
border-radius: 8px;
border: 1px solid #3a3f4b;
}
.sidebar .sidebar-langcol combobox popover modelbutton {
padding: 4px 10px;
margin: 2px 4px;
border-radius: 6px;
background: transparent;
color: #e4e7eb;
}
.sidebar .sidebar-langcol combobox popover modelbutton:hover {
background: rgba(58,110,165,0.25);
}
.sidebar .sidebar-langcol combobox popover modelbutton:checked,
.sidebar .sidebar-langcol combobox popover modelbutton:active {
background: #1e3352;
color: #ffffff;
}
.sidebar .sidebar-langcol combobox popover modelbutton:checked * {
color: #ffffff;
}
.sidebar .sidebar-langcol combobox popover list row,
.sidebar .sidebar-langcol combobox popover listview row {
padding: 4px 10px;
margin: 2px 4px;
border-radius: 6px;
background: transparent;
color: #e4e7eb;
}
.sidebar .sidebar-langcol combobox popover list row:hover,
.sidebar .sidebar-langcol combobox popover listview row:hover {
background: rgba(58,110,165,0.25);
}
.sidebar .sidebar-langcol combobox popover list row:selected,
.sidebar .sidebar-langcol combobox popover listview row:selected {
background: #1e3352;
color: #ffffff;
}
.sidebar .sidebar-langcol combobox popover list row:selected *,
.sidebar .sidebar-langcol combobox popover listview row:selected * {
color: #ffffff;
}
.sidebar .sidebar-langcol combobox:hover {
background-color: rgba(255,255,255,0.20);
}
/* ===========================
* SELEZIONE LISTE / GRIGLIE
* =========================== */
listview row:selected,
list row:selected,
columnview row:selected {
background-color: #1e3352;
color: #ffffff;
}
listview row:selected *,
list row:selected *,
columnview row:selected * {
color: #ffffff;
}
gridview child:selected,
flowbox child:selected {
background-color: #1e3352;
color: #ffffff;
border-radius: 6px;
}
gridview child:selected *,
flowbox child:selected * {
color: #ffffff;
}
filechooserdialog listview row:selected,
filechooserdialog list row:selected,
filechooserdialog columnview row:selected,
filechooserdialog gridview child:selected {
background-color: #1e3352;
color: #ffffff;
}
filechooserdialog listview row:selected *,
filechooserdialog list row:selected *,
filechooserdialog columnview row:selected *,
filechooserdialog gridview child:selected * {
color: #ffffff;
}
placessidebar row:selected,
placesview row:selected {
background-color: #1e3352;
color: #ffffff;
}
placessidebar row:selected *,
placesview row:selected * {
color: #ffffff;
}
listview row:hover,
list row:hover,
columnview row:hover,
gridview child:hover,
flowbox child:hover {
background-color: rgba(58,110,165,0.20);
}
/* Selezione testo */
entry selection,
text selection,
textview text selection {
background-color: #1e3352;
color: #ffffff;
}
/* ===========================
* FILE CHOOSER DIALOG BUTTONS
* =========================== */
window.dialog actionbar button,
window.dialog .dialog-action-area > button {
border-radius: 8px;
padding: 4px 10px;
min-height: 26px;
min-width: 110px;
font-weight: 500;
border: 1px solid transparent;
}
window.dialog actionbar box.start > button:first-child,
window.dialog .dialog-action-area > button:first-child {
background: #2a2f3b;
color: #c9cdd4;
border-color: #3a3f4b;
}
window.dialog actionbar box.start > button:first-child:hover,
window.dialog .dialog-action-area > button:first-child:hover {
background: #333844;
}
window.dialog actionbar box.end > button:last-child,
window.dialog .dialog-action-area > button:last-child,
window.dialog actionbar button.suggested-action,
window.dialog .dialog-action-area > button.suggested-action {
background: #0d6efd;
color: #ffffff;
border-color: #0b5ed7;
}
window.dialog actionbar box.end > button:last-child:hover,
window.dialog .dialog-action-area > button:last-child:hover,
window.dialog actionbar button.suggested-action:hover,
window.dialog .dialog-action-area > button.suggested-action:hover {
background: #0b5ed7;
}
window.dialog actionbar button:disabled,
window.dialog .dialog-action-area > button:disabled {
background: #2a2f3b;
border-color: #3a3f4b;
color: #5a6070;
}
/* ===========================
* MAIN CONTENT
* =========================== */
.content {
background-color: #1a1d23;
padding: 20px;
}
.content button {
background: #242830;
border: 1px solid #3a3f4b;
border-radius: 6px;
padding: 6px 12px;
color: #e4e7eb;
}
.content button:hover {
background: #2e333e;
}
/* ===========================
* NOTEBOOK / TAB
* =========================== */
notebook tab {
background: #242830;
border: 1px solid #3a3f4b;
border-bottom: none;
padding: 6px 12px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
notebook stack {
border: 1px solid #3a3f4b;
background: #242830;
padding: 12px;
}
notebook > header tab:checked {
background-color: #2e333e;
border-bottom: 2px solid #4d8fe0;
}
notebook > header tab:hover:not(:checked) {
background-color: rgba(77,143,224,0.10);
}
/* ===========================
* SWITCH
* =========================== */
switch {
min-width: 36px;
min-height: 20px;
/* max-width: 36px; */
/* max-height: 20px; */
border-radius: 10px;
background: #4a5060;
margin-left: auto;
margin-right: auto;
}
switch:checked {
background: #0d6efd;
}
switch slider {
background: #c9cdd4;
border-radius: 50%;
min-width: 16px;
min-height: 16px;
}
switch:checked slider {
background-color: #ffffff;
}
/* ===========================
* CHECKBOX
* =========================== */
checkbutton,
check {
color: #e4e7eb;
}
checkbutton check {
border: 1px solid #5a6070;
border-radius: 4px;
min-width: 16px;
min-height: 16px;
background: #2a2f3b;
}
checkbutton check:checked {
background: #0d6efd;
border-color: #0d6efd;
}
/* ===========================
* TEXTVIEW (Log)
* =========================== */
textview {
background-color: #0f1117;
border: 1px solid #3a3f4b;
border-radius: 6px;
padding: 8px;
color: #c9cdd4;
}
/* ===========================
* Dialog file infetto
* =========================== */
.app-dialog {
background-color: #1e2229;
border-radius: 12px;
padding: 20px;
min-width: 500px;
/* max-width: 700px; */
/* box-shadow: 0 4px 16px rgba(0,0,0,0.6); */
}
.app-dialog label {
font-size: 14px;
color: #c9cdd4;
margin-bottom: 12px;
line-height: 1.4;
/* word-wrap: break-word; */
/* text-align: center; */
}
.app-dialog GtkBox {
spacing: 10px;
margin-top: 14px;
/* justify-content: center; */
}
.app-dialog button {
color: #ffffff !important;
border-radius: 6px;
padding: 4px 12px;
font-weight: 500;
border: none;
min-width: 100px;
/* max-width: 180px; */
}
.app-dialog .btn-success { background-color: #28a745; }
.app-dialog .btn-success:hover { background-color: #218838; }
.app-dialog .btn-primary { background-color: #007bff; }
.app-dialog .btn-primary:hover { background-color: #0069d9; }
.app-dialog .btn-danger { background-color: #dc3545; }
.app-dialog .btn-danger:hover { background-color: #c82333; }
/* ===========================
* BOTTONI BOOTSTRAP
* =========================== */
button.btn-success {
background-color: #28a745;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
font-weight: 500;
border: none;
}
button.btn-success:hover { background-color: #218838; }
button.btn-success:active { background-color: #1e7e34; }
button.btn-danger {
background-color: #dc3545;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
font-weight: 500;
border: none;
}
button.btn-danger:hover { background-color: #c82333; }
button.btn-danger:active { background-color: #bd2130; }
button.btn-primary {
background-color: #0d6efd;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
font-weight: 500;
border: none;
}
button.btn-primary:hover { background-color: #0b5ed7; }
button.btn-primary:active { background-color: #0a58ca; }
button.btn-warning {
background-color: #e0952a;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
font-weight: 500;
border: none;
}
button.btn-warning:hover { background-color: #c47d1a; }
button.btn-warning:active { background-color: #a86a0e; }
button:disabled {
background-color: #3a3f4b;
color: #6a707d;
}
/* ===========================
* ALERT WINDOW
* =========================== */
.alert-window {
background-color: #1e2229;
border-radius: 12px;
padding: 20px;
min-width: 480px;
/* box-shadow: 0 4px 16px rgba(0,0,0,0.6); */
}
.alert-title {
font-size: 20px;
font-weight: bold;
color: #f05060;
margin-bottom: 12px;
/* text-align: center; */
}
.alert-message {
font-size: 14px;
color: #b0b8c5;
margin-bottom: 8px;
line-height: 1.4;
/* text-align: center; */
}
.alert-countdown {
font-size: 13px;
color: #7a8190;
margin-top: 6px;
/* text-align: center; */
}
/* ===========================
* ALERT BUTTONS
* =========================== */
.alert-button {
border-radius: 6px;
padding: 6px 14px;
font-weight: 500;
border: none;
color: #ffffff;
min-width: 120px;
margin: 0 4px;
}
.alert-danger { background-color: #dc3545; }
.alert-danger:hover { background-color: #c82333; }
.alert-danger:active { background-color: #bd2130; }
.alert-success { background-color: #28a745; }
.alert-success:hover { background-color: #218838; }
.alert-success:active { background-color: #1e7e34; }
/* ===========================
* NAVIGATION BUTTONS
* =========================== */
.btn-next { background-color: #0d6efd; }
.btn-next:hover { background-color: #0b5ed7; }
.btn-next:active { background-color: #0a58ca; }
.btn-back { background-color: #495360; }
.btn-back:hover { background-color: #3d4650; }
.btn-back:active { background-color: #313840; }
.btn-finish { background-color: #28a745; }
.btn-finish:hover { background-color: #218838; }
.btn-finish:active { background-color: #1e7e34; }
.btn-cancel { background-color: #dc3545; }
.btn-cancel:hover { background-color: #c82333; }
.btn-cancel:active { background-color: #bd2130; }
/* Barra nav */
.nav {
/* display: flex; */
/* flex-direction: column; */
/* align-items: flex-end; */
/* justify-content: flex-end; */
/* gap: 12px; */
padding: 16px;
min-width: 140px;
}
.nav button {
border-radius: 6px;
padding: 8px 16px;
min-width: 120px;
font-weight: 500;
margin: 2px 0;
color: #ffffff;
}
/* Sidebar buttons generic */
.sidebar-button {
color: #d0d9e8;
background: transparent;
border-radius: 8px;
padding: 8px 12px;
margin-bottom: 6px;
/* text-align: left; */
font-weight: 500;
}
.sidebar-button:hover { background-color: rgba(255, 255, 255, 0.12); }
.sidebar-button:checked { background-color: rgba(255, 255, 255, 0.22); font-weight: 600; }
.sidebar-button:active { background-color: rgba(255, 255, 255, 0.18); }
.sidebar-separator {
background-color: rgba(255, 255, 255, 0.12);
min-height: 1px;
margin-left: 8px;
margin-right: 8px;
border-radius: 1px;
}
/* ===========================
* ALERT WARNING
* =========================== */
.alert-warning {
background-color: #332b00;
color: #f0c040;
border: 1px solid #5a4800;
border-radius: 8px;
padding: 10px 12px;
margin: 6px 0;
font-weight: 500;
}
.alert-warning label { color: inherit; }
/* ===========================
* ALERT INFO
* =========================== */
.alert-info {
background-color: #0a2833;
color: #6dcfe0;
border: 1px solid #1a4a56;
border-radius: 8px;
padding: 10px 12px;
margin: 6px 0;
font-weight: 500;
}
.alert-info label { color: inherit; }
/* Mini toggle */
.mini-toggle {
min-width: 36px;
min-height: 18px;
padding: 0;
margin: 0 4px;
/* transform: scale(0.8); */
}
.mini-toggle slider {
min-width: 14px;
min-height: 14px;
}
/* Success label */
.success-label {
background-color: #0d2b12;
color: #4dbb6a;
border: 1px solid #1a5c28;
border-radius: 6px;
padding: 6px 10px;
margin-top: 8px;
font-weight: 600;
}
/* ===========================
* PROGRESS BAR (Bootstrap green)
* =========================== */
progressbar.progress-success > trough {
min-height: 20px;
border-radius: 6px;
background-color: #1a1f28;
/* box-shadow: inset 0 1px 2px rgba(0,0,0,0.4); */
}
progressbar.progress-success > trough > progress {
border-radius: 6px;
background-color: #28a745;
background-image:
repeating-linear-gradient(
45deg,
rgba(255,255,255,0.10),
rgba(255,255,255,0.10) 10px,
transparent 10px,
transparent 20px
),
linear-gradient(90deg, #28a745, #34ce57);
background-size: 40px 40px;
/* animation: progress-stripes 1.5s linear infinite; */
/* transition: width 0.4s ease; */
}
progressbar.progress-success text {
color: white;
font-weight: 700;
}
progressbar.progress-success.small > trough { min-height: 14px; }
@keyframes progress-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
/* ===========================
* WHITELIST ENTRY
* =========================== */
.whitelist-entry {
border-radius: 10px;
padding: 8px 12px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #1e3352;
/* transition: all 150ms ease-in-out; */
caret-color: #4d8fe0;
}
.whitelist-entry:focus {
border-color: #4d8fe0;
/* box-shadow: 0 0 8px rgba(77,143,224,0.3); */
background: #1a2030;
}
.whitelist-entry:hover { border-color: #1e3a56; }
.whitelist-view {
border-radius: 10px;
padding: 8px 12px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #1e3352;
/* transition: all 150ms ease-in-out; */
caret-color: #4d8fe0;
}
/* ===========================
* SCROLLBAR
* =========================== */
scrollbar,
scrollbar slider {
border-radius: 8px;
min-width: 10px;
min-height: 10px;
}
scrollbar { background: rgba(58,110,165,0.08); }
scrollbar slider {
background: #1e3352;
/* transition: background 0.2s ease; */
}
scrollbar slider:hover { background: #1e3a56; }
scrollbar slider:active { background: #4d8fe0; }
scrollbar trough {
margin: 2px;
border-radius: 8px;
}
/* ===========================
* INPUT ENTRIES (ransomware)
* =========================== */
.home-entry {
border-radius: 10px;
padding: 8px 12px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #1e3352;
/* transition: all 150ms ease-in-out; */
caret-color: #4d8fe0;
}
.home-entry:focus {
border-color: #4d8fe0;
/* box-shadow: 0 0 8px rgba(77,143,224,0.3); */
background: #1a2030;
}
.home-entry:hover { border-color: #1e3a56; }
.company-entry {
border-radius: 10px;
padding: 8px 12px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #3a5e20;
/* transition: all 150ms ease-in-out; */
caret-color: #76b041;
}
.company-entry:focus {
border-color: #76b041;
/* box-shadow: 0 0 8px rgba(118,176,65,0.3); */
background: #182015;
}
.company-entry:hover { border-color: #4a7a28; }
.danger-entry {
border-radius: 10px;
padding: 8px 12px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #7a1515;
/* transition: all 150ms ease-in-out; */
caret-color: #e53935;
}
.danger-entry:focus {
border-color: #e53935;
/* box-shadow: 0 0 8px rgba(229,57,53,0.3); */
background: #200f0f;
}
.danger-entry:hover { border-color: #a01e1e; }
/* ===========================
* TREEVIEW
* =========================== */
treeview {
background-color: #1e2229;
}
treeview row {
background-color: #1e2229;
}
treeview row:nth-child(even) {
background-color: #242830;
}
treeview.view:selected {
background-color: #1a3255;
}
/* ===========================
* SHA DIALOG
* =========================== */
.sha-dialog entry {
border-radius: 8px;
padding: 6px 10px;
font-size: 14px;
color: #e4e7eb;
background: #1e2229;
border: 2px solid #1e3352;
caret-color: #4d8fe0;
/* transition: all 150ms ease-in-out; */
}
.sha-dialog entry:focus {
border-color: #4d8fe0;
/* box-shadow: 0 0 6px rgba(77,143,224,0.3); */
background: #1a2030;
}
.sha-dialog entry:hover { border-color: #1e3a56; }
.sha-dialog button {
border-radius: 6px;
font-weight: 500;
padding: 6px 12px;
}
.sha-dialog button.suggested-action {
background-color: #0d6efd;
color: white;
}
.sha-dialog button.suggested-action:hover { background-color: #0b5ed7; }
/* ===========================
* SPINBUTTON
* =========================== */
.numeric-entry {
border: 1px solid #3a3f4b;
border-radius: 6px;
background: #1e2229;
color: #e4e7eb;
font-size: 13px;
min-height: 26px;
min-width: 80px;
/* max-width: 100px; */
padding: 4px 6px;
/* text-align: center; */
box-sizing: border-box;
}
.numeric-entry > button,
.numeric-entry > button.up,
.numeric-entry > button.down,
spinbutton.numeric-entry > button,
spinbutton.numeric-entry > button.up,
spinbutton.numeric-entry > button.down {
opacity: 0;
margin: 0;
padding: 0;
min-width: 0;
min-height: 0;
border: none;
background: transparent;
}
.numeric-entry > separator,
spinbutton.numeric-entry > separator {
opacity: 0;
min-width: 0;
}
.numeric-entry:focus-within {
border-color: #4d8fe0;
/* box-shadow: 0 0 4px rgba(77,143,224,0.3); */
}
/* ===========================
* COMBOBOX GENERALI
* =========================== */
.card combobox,
combobox {
background-color: #1e2229;
color: #e4e7eb;
border: 1px solid #3a3f4b;
border-radius: 6px;
padding: 6px 10px;
min-height: 28px;
min-width: 180px;
}
.card combobox:hover,
combobox:hover {
background-color: #2a2f3b;
}
.card combobox arrow,
combobox arrow {
-gtk-icon-source: -gtk-icontheme("pan-down-symbolic");
color: #e4e7eb;
}
.card combobox popover,
.card combobox popover.menu,
combobox popover,
combobox popover.menu {
background: #2a2f3b;
color: #e4e7eb;
border-radius: 8px;
border: 1px solid #3a3f4b;
/* box-shadow: 0 4px 12px rgba(0,0,0,0.5); */
}
.card combobox popover modelbutton,
combobox popover modelbutton {
padding: 4px 10px;
margin: 2px 4px;
border-radius: 6px;
background: transparent;
color: #e4e7eb;
}
.card combobox popover modelbutton:hover,
combobox popover modelbutton:hover {
background: rgba(77,143,224,0.18);
}
.card combobox popover modelbutton:checked,
.card combobox popover modelbutton:active,
combobox popover modelbutton:checked,
combobox popover modelbutton:active {
background: #1e3352;
color: #ffffff;
}
.card combobox popover modelbutton:checked *,
combobox popover modelbutton:checked * {
color: #ffffff;
}
/* Popover generico */
popover.background,
popover.menu,
combobox popover.background,
combobox popover.menu {
background-color: #2a2f3b;
border: 1px solid #3a3f4b;
border-radius: 8px;
/* box-shadow: 0 4px 12px rgba(0,0,0,0.5); */
}
popover.background modelbutton,
popover.menu modelbutton,
combobox popover modelbutton {
color: #e4e7eb;
background: transparent;
padding: 6px 10px;
border-radius: 6px;
}
popover.background modelbutton:hover,
popover.menu modelbutton:hover,
combobox popover modelbutton:hover {
background-color: rgba(77,143,224,0.18);
}
popover.background modelbutton:checked,
popover.menu modelbutton:checked,
combobox popover modelbutton:checked {
background-color: #1e3352;
color: #ffffff;
}
/* Entry generica */
.entry, entry, GtkEntry {
background-color: #1e2229;
color: #e4e7eb;
border: 1px solid #3a3f4b;
border-radius: 6px;
padding: 4px 6px;
}
.entry:focus {
border-color: #4d8fe0;
/* box-shadow: 0 0 0 2px rgba(77,143,224,0.25); */
}
/* ===========================
* PROGRESS BAR BastionGuard
* =========================== */
.progress-BastionGuard.progressbar {
min-height: 18px;
border-radius: 10px;
font-weight: 600;
/* letter-spacing: .2px; */
}
.progress-BastionGuard > trough {
background: rgba(255, 255, 255, 0.08);
border-radius: 10px;
/* box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); */
}
.progress-BastionGuard > trough > progress {
background: linear-gradient(90deg, #16a085, #0e8f73);
border-radius: 10px;
/* box-shadow: */
inset 0 -1px 0 rgba(0,0,0,.18),
0 1px 2px rgba(0,0,0,.25);
/* transition: width 160ms ease; */
}
.progress-BastionGuard text {
color: #e9f7ef;
text-shadow: 0 1px 0 rgba(0,0,0,.35);
font-size: 0.92rem;
}
.progress-BastionGuard:disabled { opacity: .5; }
.progress-BastionGuard {
min-height: 14px;
border-radius: 10px;
background-color: rgba(255, 255, 255, 0.07);
}
.progress-BastionGuard trough {
border-radius: 10px;
background-color: rgba(255, 255, 255, 0.07);
}
.progress-BastionGuard progress {
border-radius: 10px;
background-image: linear-gradient(to right, #4caf50, #8bc34a);
}
/* ===========================
* SECURE WINDOW (Banche)
* =========================== */
.secure-window {
background-color: #1a1d23;
border-radius: 12px;
/* box-shadow: 0 4px 12px rgba(0,0,0,0.5); */
/* overflow: hidden; */
}
.secure-headerbar {
background: linear-gradient(90deg, #1e3352, #1e3352);
color: #ffffff;
padding: 8px 14px;
/* display: flex; */
/* align-items: center; */
/* justify-content: space-between; */
font-weight: 600;
/* letter-spacing: 0.2px; */
border-top-left-radius: 12px;
border-top-right-radius: 12px;
/* box-shadow: 0 2px 6px rgba(0,0,0,0.4); */
}
.secure-headerbar .icon { font-size: 16px; margin-right: 6px; }
.secure-headerbar .title,
.secure-headerbar-title {
/* display: flex; */
/* align-items: center; */
/* gap: 6px; */
color: #ffffff;
}
.secure-headerbar .url {
font-size: 13px;
opacity: 0.85;
margin-left: 6px;
font-weight: 400;
}
.secure-headerbar .close-btn {
background: rgba(255,255,255,0.12);
border: none;
color: white;
border-radius: 4px;
font-size: 13px;
padding: 4px 8px;
/* transition: background 0.2s; */
}
.secure-headerbar .close-btn:hover { background: rgba(255,255,255,0.25); }
.secure-content {
padding: 20px;
background-color: #1e2229;
color: #e4e7eb;
}
.secure-content entry {
border-radius: 6px;
border: 1px solid #3a3f4b;
padding: 4px 8px;
background: #242830;
color: #e4e7eb;
}
.secure-content entry:focus {
border-color: #27ae60;
/* box-shadow: 0 0 4px rgba(46,204,113,0.4); */
}
.secure-content button {
background-color: #1f8a50;
color: #ffffff;
border-radius: 6px;
padding: 6px 12px;
font-weight: 500;
border: none;
/* transition: background 0.2s; */
}
.secure-content button:hover { background-color: #166a3d; }
/* ===========================
* HIGHLIGHT
* =========================== */
.highlight {
color: #4d8fe0;
font-weight: bold;
}
/* ===========================
* ACCORDION SORGENTI
* =========================== */
.source-header {
background-color: #242830;
border: 1px solid #3a3f4b;
border-radius: 6px;
padding: 6px 10px;
margin: 0;
border-bottom: none;
/* cursor: pointer; */
/* transition: all 0.15s ease-in-out; */
/* display: flex; */
/* align-items: center; */
/* justify-content: space-between; */
}
.source-header:hover { background-color: #2a2f3b; }
.source-header:last-child { border-bottom: 1px solid #3a3f4b; }
.source-header label {
color: #d0d9e8;
font-weight: 600;
font-size: 13px;
}
.expand-icon {
color: #4d8fe0;
font-weight: bold;
font-size: 13px;
margin-left: 4px;
/* transition: transform 0.25s ease-in-out, color 0.2s ease; */
}
.source-header.open {
background-color: #1a2a40;
border-color: #1e3352;
border-bottom: 1px solid #1e3352;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
/* box-shadow: 0 2px 5px rgba(13,110,253,0.15); */
}
.source-header.open .expand-icon {
/* transform: rotate(180deg); */
color: #7ab0f0;
}
.revealer-content {
background-color: #1e2229;
border: 1px solid #1e3352;
border-top: none;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
padding: 10px 12px;
margin: 0 0 6px 0;
}
label.highlight { color: #4d8fe0; font-weight: 600; }
label.suggested-action { color: #7a8190; font-weight: 600; }
/* ===========================
* PRIVACY POPUP
* =========================== */
.privacy-popup {
background-color: #1e2229;
border: 1px solid #3a3f4b;
border-radius: 12px;
/* box-shadow: 0 4px 18px rgba(0,0,0,0.6); */
color: #e4e7eb;
padding: 16px;
/* animation: popup-fade-in 0.25s ease-out; */
}
.privacy-popup-title {
font-weight: 700;
font-size: 18px;
color: #e4e7eb;
margin-bottom: 10px;
/* text-align: center; */
}
.privacy-popup label {
color: #c9cdd4;
font-size: 14px;
/* text-align: center; */
}
.privacy-popup-pending {
font-size: 13px;
color: #7a8190;
margin-top: 8px;
/* text-align: center; */
font-style: italic;
}
.privacy-allow-btn,
.privacy-deny-btn {
border-radius: 6px;
padding: 6px 14px;
font-weight: 500;
min-width: 120px;
border: none;
color: #ffffff;
/* transition: transform 0.15s ease, filter 0.15s ease; */
}
.privacy-allow-btn:hover,
.privacy-deny-btn:hover {
/* transform: scale(1.02); */
filter: brightness(1.08);
}
.privacy-allow-btn { background-color: #1f8a50; }
.privacy-allow-btn:hover { background-color: #166a3d; }
.privacy-deny-btn { background-color: #8b1a1a; }
.privacy-deny-btn:hover { background-color: #a81e1e; }
@keyframes popup-fade-in {
from { opacity: 0; transform: translateY(-8px); }
to { opacity: 1; transform: translateY(0); }
}
/* ===========================
* BASTIONGARD DIALOG
* =========================== */
.BastionGuard-dialog {
background-color: #1e2229;
border-radius: 12px;
padding: 16px;
border: 1px solid #3a3f4b;
}
.BastionGuard-popup {
border: 1px solid #3a3f4b;
/* box-shadow: 0 4px 16px rgba(0,0,0,0.5); */
background-color: #242830;
border-radius: 12px;
}
.BastionGuard-dialog-title {
font-size: 18px;
font-weight: 700;
color: #e4e7eb;
/* text-align: center; */
margin-bottom: 10px;
}
.BastionGuard-scroller {
border-radius: 8px;
border: 1px solid #3a3f4b;
background-color: #242830;
}
.BastionGuard-textview {
font-family: "Cantarell";
font-size: 12px;
background-color: #0f1117;
padding: 10px;
border-radius: 8px;
color: #c9cdd4;
}
.BastionGuard-close-btn {
background-color: #0d6efd;
color: #ffffff;
border-radius: 6px;
padding: 6px 14px;
border: none;
font-weight: 500;
min-width: 120px;
}
.BastionGuard-close-btn:hover { background-color: #0b5ed7; }
.BastionGuard-close-btn:active { background-color: #0a58ca; }
.BastionGuard-title {
padding: 8px 12px;
font-weight: 600;
font-size: 15px;
color: #c9cdd4;
}
/* ===========================
* BTN GREY
* =========================== */
.btn-grey {
background-color: #3a3f4b;
color: #8a909d;
padding: 8px 22px;
font-weight: 600;
border: none;
/* box-shadow: inset 0 0 0 1px #2a2f3b; */
}
.btn-grey:hover,
.btn-grey:active {
background-color: #3a3f4b !important;
color: #8a909d !important;
/* box-shadow: inset 0 0 0 1px #2a2f3b; */
/* cursor: default; */
}
/* ===========================
* SCAN FILE LIST
* =========================== */
.scan-file-list {
background-color: #242830;
border: 1px solid #3a3f4b;
border-radius: 10px;
padding: 6px 0;
/* box-shadow: 0 1px 3px rgba(0,0,0,0.3); */
}
.scan-file-list row {
padding: 6px 12px;
background: transparent;
border-radius: 6px;
margin: 2px 6px;
}
.scan-file-list row:hover {
background-color: rgba(77,143,224,0.15);
/* cursor: pointer; */
}
.scan-file-list row.current {
background-color: #1a2a40;
border-left: 3px solid #1e3352;
font-weight: 600;
}
.scan-file-list row label {
color: #c9cdd4;
font-size: 13px;
}
.scan-file-list scrollbar slider { background: #1e3352; border-radius: 6px; }
.scan-file-list scrollbar slider:hover { background: #1e3a56; }
.scan-file-list scrollbar { background: rgba(58,110,165,0.08); }
.scan-progressbar {
min-height: 18px;
font-weight: bold;
color: white;
padding: 0;
border-radius: 8px;
}
.scan-progressbar trough {
background-color: #1a1f28;
border-radius: 8px;
min-height: 18px;
}
.scan-progressbar progress {
background-color: #27ae60;
border-radius: 8px;
min-height: 18px;
}
/* ===========================
* USB CARD
* =========================== */
.usb-card {
background: #242830;
border: 1px solid #3a3f4b;
border-radius: 10px;
/* box-shadow: 0 1px 3px rgba(0,0,0,0.4); */
padding: 10px 12px;
margin: 6px;
min-width: 160px;
/* max-width: 180px; */
min-height: 120px;
/* display: flex; */
/* flex-direction: column; */
/* justify-content: space-between; */
/* transition: all 0.15s ease-in-out; */
}
.usb-card:hover {
background-color: #2a2f3b;
/* box-shadow: 0 2px 6px rgba(0,0,0,0.5); */
/* transform: translateY(-2px); */
}
.usb-card-title {
font-size: 14px;
font-weight: 600;
color: #d0d9e8;
margin-bottom: 4px;
line-height: 1.2;
}
.usb-card-info {
font-size: 12px;
color: #8a909d;
line-height: 1.2;
margin-bottom: 6px;
/* word-wrap: break-word; */
}
.usb-card-buttons {
/* display: flex; */
/* flex-direction: column; */
/* gap: 6px; */
margin-top: auto;
}
.usb-card button.mount-btn {
background-color: #0d6efd;
color: #ffffff;
border-radius: 6px;
padding: 4px 10px;
border: none;
font-size: 13px;
font-weight: 500;
}
.usb-card button.mount-btn:hover { background-color: #0b5ed7; }
.usb-card button.scan-btn {
background-color: #198754;
color: #ffffff;
border-radius: 6px;
padding: 4px 10px;
border: none;
font-size: 13px;
font-weight: 500;
}
.usb-card button.scan-btn:hover { background-color: #157347; }
.usb-card.disabled {
opacity: 0.45;
/* pointer-events: none; */
}
/* ===========================
* SERVICE ROWS
* =========================== */
.service-name {
font-weight: 600;
font-size: 1.05em;
color: #d0d9e8;
}
.service-desc {
font-size: 0.875em;
color: #8a909d;
margin-top: 2px;
}
.service-row:hover {
background-color: rgba(53, 132, 228, 0.10);
border-radius: 8px;
/* transition: background-color 180ms ease-out; */
}
.service-row:active { background-color: rgba(53, 132, 228, 0.20); }
/* ===========================
* UPDATE BADGE
* =========================== */
.update-badge {
padding: 6px 10px;
border-radius: 999px;
font-weight: 600;
border: 1px solid rgba(255, 255, 255, 0.08);
font-size: 13px;
}
.update-checking {
background: rgba(255, 255, 255, 0.06);
color: #9aa0ad;
}
.update-ok {
background: rgba(46, 204, 113, 0.15);
color: #4dbb6a;
}
.update-warn {
background: rgba(231, 76, 60, 0.18);
color: #f07070;
}
.update-unk {
background: rgba(243, 156, 18, 0.18);
color: #e0a840;
}
/* ===========================
* SUBTITLE / MISC LABELS
* =========================== */
.subtitle {
font-size: 14pt;
font-weight: bold;
color: #d0d9e8;
}
.small-label {
font-size: 10pt;
color: #9aa0ad;
}
.xsmall-label {
font-size: 9pt;
color: #7a8190;
}
.btn-small {
padding: 4px 8px;
font-size: 10pt;
}
.security-banner {
border-radius: 6px;
padding: 10px 14px;
margin-bottom: 6px;
}
.security-banner label {
color: #c8dff5;
font-size: 0.82em;
}
/* Verde = bloccato (sicuro), rosso = sbloccato (vault aperto = attenzione) */
.alert-success {
background-color: #26a269;
border-radius: 6px;
padding: 4px 14px;
}
.alert-success label {
color: white;
font-weight: bold;
}
.alert-danger {
background-color: #c01c28;
border-radius: 6px;
padding: 4px 14px;
}
.alert-danger label {
color: white;
font-weight: bold;
}
.theme-btn {
font-size: 1.2em;
padding: 2px 6px;
border-radius: 6px;
opacity: 0.5;
}
.theme-btn-active {
opacity: 1.0;
background-color: alpha(currentColor, 0.15);
}
.security-banner.alert-danger {
background-color: #c64600;
color: #ffffff;
border-left: 4px solid #a51d2d;
border-radius: 6px;
padding: 8px 12px;
}
.security-banner.alert-danger label {
color: #ffffff;
}
.security-banner.alert-info {
background: linear-gradient(to right, #1c3a5c, #1e4d78);
color: #ffffff;
border-left: 4px solid #1c3a5c;
border-radius: 6px;
padding: 8px 12px;
}
.security-banner.alert-info label {
color: #ffffff;
}
/* ── Pulsante intestazione gruppo (es. "Protezione", "Sicurezza") ─────────── */
.sidebar-group-button {
color: #ffffff;
background-color: transparent;
border-radius: 8px;
padding: 6px 6px;
font-weight: 700;
font-size: 13px;
letter-spacing: 0.03em;
}
.sidebar-group-button:hover {
background-color: rgba(255,255,255,0.12);
}
.sidebar-group-button:active {
background-color: rgba(255,255,255,0.20);
}
/* ── Freccia ▸ / ▾ ──────────────────────────────────────────────────────── */
.sidebar-arrow {
color: rgba(255,255,255,0.60);
font-size: 11px;
margin-right: 4px;
}
.sidebar .sidebar-button label,
.sidebar .sidebar-group-button label,
.sidebar-group-label {
color: #ffffff;
font-weight: 500;
}
.sidebar .sidebar-group-button,
.sidebar-group-button {
color: #ffffff;
background-color: transparent;
border-radius: 8px;
padding: 4px 6px;
font-weight: 600;
font-size: 14px;
}
.sidebar-arrow {
color: rgba(255,255,255,0.75);
font-size: 11px;
margin-right: 4px;
}