BastionGuard/thirdparty/bastionguard-backup/files/BastionGuard.css
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

714 lines
40 KiB
CSS

/* ============================================================
* BastionGuard — Tema Chiaro
* Palette: bg #f4f6f8 · sidebar #3a6ea5 · testo #212529
* Riscritto da zero: NO tema di sistema, padding compatti
* ============================================================ */
/* ── RESET GLOBALE ─────────────────────────────────────────── */
* {
all: unset;
font-family: system-ui, sans-serif;
font-size: 13px;
color: #212529;
box-sizing: border-box;
}
/* ── FINESTRA ───────────────────────────────────────────────── */
window { background-color: #f4f6f8; border-radius: 10px; }
dialog { background-color: #f4f6f8; border-radius: 10px; }
/* ── HEADERBAR ──────────────────────────────────────────────── */
headerbar.custom-headerbar { background: transparent; border: none; min-height: 26px; padding: 0; margin: 0; }
headerbar .header-left { background-color: #f4f6f8; border-top-left-radius: 10px; min-width: 180px; padding: 0; }
headerbar .header-right { background-color: #f4f6f8; padding: 2px 6px; }
headerbar button.header-button { background: transparent; border: none; min-width: 24px; min-height: 24px; padding: 3px; border-radius: 5px; color: #212529; }
headerbar button.header-button:hover { background: rgba(0,0,0,0.08); }
/* ── SIDEBAR ────────────────────────────────────────────────── */
.sidebar { background-color: #3a6ea5; border-bottom-left-radius: 10px; padding: 6px; }
.sidebar-header { padding: 8px 12px; margin-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,0.15); }
.sidebar-header image { margin-right: 6px; }
.sidebar-title { font-weight: bold; font-size: 14px; color: #ffffff; }
.sidebar .sidebar-button, .sidebar-button {
color: #ffffff; background-color: transparent; border-radius: 6px;
padding: 5px 8px; margin: 1px 4px; font-weight: 500; min-height: 26px;
}
.sidebar .sidebar-button:hover { background-color: rgba(255,255,255,0.13); }
.sidebar .sidebar-button:active { background-color: rgba(255,255,255,0.18); }
.sidebar .sidebar-button.active-sidebar-button,
.sidebar .sidebar-button:checked { background-color: rgba(255,255,255,0.22); border: 1px solid rgba(255,255,255,0.35); }
.sidebar button, .sidebar .sidebar-button { background-image: none; box-shadow: none; }
.sidebar button box, .sidebar .sidebar-button box,
.sidebar button label, .sidebar .sidebar-button label,
.sidebar button image, .sidebar .sidebar-button image {
background-color: transparent; background-image: none; box-shadow: none; color: #ffffff;
}
.sidebar .sidebar-button:hover box, .sidebar .sidebar-button:hover label, .sidebar .sidebar-button:hover image,
.sidebar .sidebar-button.active-sidebar-button box, .sidebar .sidebar-button.active-sidebar-button label, .sidebar .sidebar-button.active-sidebar-button image,
.sidebar .sidebar-button:checked box, .sidebar .sidebar-button:checked label, .sidebar .sidebar-button:checked image {
background-color: transparent; background-image: none; color: #ffffff;
}
.sidebar-group-button { color: #ffffff; background-color: transparent; border-radius: 6px; padding: 4px 6px; font-weight: 700; font-size: 12px; }
.sidebar-group-button:hover { background-color: rgba(255,255,255,0.12); }
.sidebar-group-label { color: #ffffff; font-weight: 600; font-size: 11px; padding: 4px 8px 2px 8px; }
.sidebar-separator { background-color: rgba(255,255,255,0.14); min-height: 1px; margin: 3px 8px; border-radius: 1px; }
.sidebar-arrow { color: rgba(255,255,255,0.65); font-size: 10px; margin-right: 3px; }
.sidebar .sidebar-langcol { margin: 4px 0 6px 0; padding: 0; }
.sidebar .sidebar-langcol combobox, .sidebar combobox, .sidebar dropdown {
background-color: rgba(255,255,255,0.13); color: #ffffff; border-radius: 5px; padding: 4px 8px; min-height: 24px; border: none;
}
.sidebar .sidebar-langcol combobox:hover, .sidebar combobox:hover { background-color: rgba(255,255,255,0.20); }
.sidebar .sidebar-langcol combobox arrow, .sidebar combobox arrow { color: #ffffff; }
.sidebar .sidebar-langcol combobox popover, .sidebar .sidebar-langcol combobox popover.menu {
background: #f1f3f5; color: #212529; border-radius: 7px; border: 1px solid #dee2e6;
}
.sidebar .sidebar-langcol combobox popover modelbutton { padding: 3px 8px; margin: 1px 3px; border-radius: 5px; background: transparent; color: #212529; }
.sidebar .sidebar-langcol combobox popover modelbutton:hover { background: rgba(58,110,165,0.15); }
.sidebar .sidebar-langcol combobox popover modelbutton:checked,
.sidebar .sidebar-langcol combobox popover modelbutton:active { background: #3a6ea5; color: #ffffff; }
.sidebar entry, .sidebar spinbutton, .sidebar switch { background-color: rgba(255,255,255,0.13); color: #ffffff; border-color: rgba(255,255,255,0.28); border-radius: 5px; }
.sidebar popover, .sidebar popover.background, .sidebar popover.menu { background-color: #f8f9fa; color: #212529; border: 1px solid #dee2e6; border-radius: 7px; }
/* ── MAIN CONTENT ───────────────────────────────────────────── */
.content { background-color: #f4f6f8; padding: 10px; }
/* ── CARD ───────────────────────────────────────────────────── */
.card { background: #ffffff; border: 1px solid #dee2e6; border-radius: 8px; padding: 8px 10px; }
.card label { color: #212529; font-size: 13px; line-height: 1.3; }
.card image { margin-right: 8px; min-width: 48px; min-height: 48px; }
.card label:first-child { font-weight: bold; font-size: 14px; margin-bottom: 2px; }
.card box, .card grid, .card row, .card listview, .card listbox { background-color: transparent; }
.log-card { min-height: 80px; min-width: 0; }
.log-card scrollbar.vertical { min-width: 5px; }
.log-card textview { font-size: 11px; }
/* ── STACK / VIEWPORT / PREFERENCES ────────────────────────── */
stack, stack > box, stack > widget, stack > child,
viewport, scrolledwindow > viewport, frame > border,
preferencespage, preferencesgroup, preferencesrow,
preferencesgroup > box, preferencespage > box {
background-color: #f4f6f8; color: #212529; padding: 0; margin: 0;
}
listbox, listbox row, list, list row { background-color: transparent; color: #212529; }
listbox row:hover, list row:hover { background-color: rgba(58,110,165,0.08); border-radius: 6px; }
/* ── NOTEBOOK ───────────────────────────────────────────────── */
notebook tab { background: #f4f6f8; border: 1px solid #dee2e6; border-bottom: none; padding: 4px 10px; border-top-left-radius: 5px; border-top-right-radius: 5px; }
notebook stack { border: 1px solid #dee2e6; background: #ffffff; padding: 8px; }
notebook > header tab:checked { background-color: #ffffff; border-bottom: 2px solid #3a6ea5; }
notebook > header tab:hover:not(:checked) { background-color: rgba(58,110,165,0.08); }
/* ── TEXTVIEW ───────────────────────────────────────────────── */
textview, textview text { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 5px; padding: 5px; color: #495057; }
/* ── ENTRY ──────────────────────────────────────────────────── */
entry, .entry { background-color: #ffffff; color: #212529; border: 1px solid #ced4da; border-radius: 5px; padding: 3px 6px; min-height: 24px; caret-color: #3a6ea5; }
entry:focus, .entry:focus { border-color: #3a6ea5; }
entry:hover, .entry:hover { border-color: #adb5bd; }
/* ── SPINBUTTON ─────────────────────────────────────────────── */
spinbutton, .numeric-entry { background-color: #ffffff; color: #212529; border: 1px solid #ced4da; border-radius: 5px; padding: 3px 6px; min-height: 24px; min-width: 70px; }
spinbutton:focus-within, .numeric-entry:focus-within { border-color: #3a6ea5; }
.numeric-entry > button, spinbutton > button, .numeric-entry > separator, spinbutton > separator { opacity: 0; margin: 0; padding: 0; min-width: 0; min-height: 0; border: none; background: transparent; }
/* ── COMBOBOX / DROPDOWN ────────────────────────────────────── */
combobox, dropdown, .card combobox { background-color: #ffffff; color: #212529; border: 1px solid #ced4da; border-radius: 5px; padding: 3px 8px; min-height: 24px; }
combobox:hover, dropdown:hover { background-color: #f1f3f5; border-color: #adb5bd; }
combobox arrow, dropdown arrow { color: #495057; }
combobox popover, combobox popover.menu, dropdown popover, popover.background, popover.menu { background-color: #f1f3f5; color: #212529; border: 1px solid #dee2e6; border-radius: 7px; }
combobox popover modelbutton, dropdown popover modelbutton, popover.background modelbutton, popover.menu modelbutton { padding: 3px 8px; margin: 1px 3px; border-radius: 5px; background: transparent; color: #212529; }
combobox popover modelbutton:hover, dropdown popover modelbutton:hover, popover modelbutton:hover { background: rgba(58,110,165,0.15); }
combobox popover modelbutton:checked, combobox popover modelbutton:active, dropdown popover modelbutton:checked, popover modelbutton:checked { background: #3a6ea5; color: #ffffff; }
combobox popover modelbutton:checked *, popover modelbutton:checked * { color: #ffffff; }
/* ── SWITCH ─────────────────────────────────────────────────── */
switch { min-width: 34px; min-height: 18px; border-radius: 9px; background: #adb5bd; }
switch:checked { background: #0d6efd; }
switch slider { background: #ffffff; border-radius: 50%; min-width: 14px; min-height: 14px; }
/* ── CHECKBUTTON / RADIOBUTTON ──────────────────────────────── */
/* ── CHECKBUTTON ────────────────────────────────────────────── */
checkbutton,
checkbutton * {
color: #212529;
background-color: transparent;
}
checkbutton label { color: #212529; }
/* il quadratino (GTK3: check / GTK4: checkbutton > check) */
checkbutton check,
check {
background-color: #ffffff;
border: 2px solid #97a3b3;
border-radius: 4px;
min-width: 16px;
min-height: 16px;
-gtk-icon-size: 12px;
color: transparent;
}
checkbutton:hover check,
checkbutton:focus check,
check:hover {
border-color: #3a6ea5;
background-color: #f0f4ff;
}
checkbutton:checked check,
check:checked,
checkbutton check:checked {
background-color: #3a6ea5;
border-color: #3a6ea5;
color: #ffffff;
-gtk-icon-source: -gtk-icontheme("object-select-symbolic");
-gtk-icon-size: 12px;
}
checkbutton:disabled check,
check:disabled {
background-color: #e9ecef;
border-color: #ced4da;
color: #adb5bd;
}
checkbutton:indeterminate check,
check:indeterminate {
background-color: #3a6ea5;
border-color: #3a6ea5;
color: #ffffff;
}
/* ── RADIOBUTTON ────────────────────────────────────────────── */
radiobutton,
radiobutton * {
color: #212529;
background-color: transparent;
}
radiobutton label { color: #212529; }
/* il cerchietto (GTK3: radio / GTK4: radiobutton > radio) */
radiobutton radio,
radio {
background-color: #ffffff;
border: 2px solid #97a3b3;
border-radius: 999px;
min-width: 16px;
min-height: 16px;
-gtk-icon-size: 8px;
color: transparent;
}
radiobutton:hover radio,
radiobutton:focus radio,
radio:hover {
border-color: #3a6ea5;
background-color: #f0f4ff;
}
radiobutton:checked radio,
radio:checked,
radiobutton radio:checked {
background-color: #3a6ea5;
border-color: #3a6ea5;
color: #ffffff;
-gtk-icon-source: -gtk-icontheme("media-record-symbolic");
-gtk-icon-size: 8px;
}
radiobutton:disabled radio,
radio:disabled {
background-color: #e9ecef;
border-color: #ced4da;
color: #adb5bd;
}
/* ── BUTTON ─────────────────────────────────────────────────── */
button { background-image: none; box-shadow: none; }
/* Icone nei bottoni: seguono il colore testo del bottone */
button image { color: inherit; background-color: transparent; }
/* Bottoni generici contenuto: icone scure */
.content button { background: #ffffff; border: 1px solid #dee2e6; border-radius: 5px; padding: 4px 10px; color: #212529; min-height: 24px; }
.content button image { color: #212529; }
.content button:hover { background: #e9ecef; }
/* Bottoni semantici colorati: icone bianche */
button.btn-primary image, button.btn-success image, button.btn-danger image,
button.btn-warning image, button.btn-info image, button.btn-cancel image, button.btn-finish image,
button.btn-next image, button.btn-back image, .BastionGuard-close-btn image,
.privacy-allow-btn image, .privacy-deny-btn image, .alert-button image,
.usb-card button.mount-btn image, .usb-card button.scan-btn image,
.secure-content button image { color: #ffffff; }
/* Bottoni grigi: icone medie */
button.btn-grey image { color: #6c757d; }
/* Bottoni disabilitati */
button:disabled image { color: #adb5bd; }
button.btn-primary { background-color: #0d6efd; color: #ffffff; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; }
button.btn-primary:hover { background-color: #0b5ed7; }
button.btn-primary:active { background-color: #0a58ca; }
button.btn-success { background-color: #28a745; color: #ffffff; border-radius: 5px; padding: 4px 10px; 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: 5px; padding: 4px 10px; font-weight: 500; border: none; }
button.btn-danger:hover { background-color: #c82333; }
button.btn-danger:active { background-color: #bd2130; }
button.btn-warning { background-color: #e0952a; color: #ffffff; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; }
button.btn-warning:hover { background-color: #c47d1a; }
button.btn-warning:active { background-color: #a86a0e; }
button.btn-info { background-color: #17a2b8; color: #ffffff; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; }
button.btn-info:hover { background-color: #138496; }
button.btn-info:active { background-color: #0f6b78; }
button.btn-grey { background-color: #e9ecef; color: #6c757d; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; }
button.btn-grey:hover { background-color: #dee2e6; }
button.btn-grey:active { background-color: #d3d9df; }
button:disabled { background-color: #e9ecef; color: #6a707d; border: 1px solid #dee2e6; }
.btn-next { background-color: #0d6efd; color: #ffffff; border: none; border-radius: 5px; padding: 4px 10px; font-weight: 500; }
.btn-next:hover { background-color: #0b5ed7; }
.btn-back { background-color: #495360; color: #ffffff; border: none; border-radius: 5px; padding: 4px 10px; font-weight: 500; }
.btn-back:hover { background-color: #3d4650; }
.btn-finish { background-color: #28a745; color: #ffffff; border: none; border-radius: 5px; padding: 4px 10px; font-weight: 500; }
.btn-finish:hover { background-color: #218838; }
.btn-cancel { background-color: #dc3545; color: #ffffff; border: none; border-radius: 5px; padding: 4px 10px; font-weight: 500; }
.btn-cancel:hover { background-color: #c82333; }
.nav { padding: 8px; min-width: 120px; }
.nav button { border-radius: 5px; padding: 5px 12px; min-width: 100px; font-weight: 500; margin: 2px 0; color: #ffffff; }
/* ── TREEVIEW ───────────────────────────────────────────────── */
treeview, treeview.view { background-color: #ffffff; color: #212529; }
treeview row { background-color: #ffffff; color: #212529; padding: 2px 0; }
treeview.view:selected, treeview row:selected { background-color: #3a6ea5; color: #ffffff; }
/* ── LIST / COLUMNVIEW / GRIDVIEW ──────────────────────────── */
listview row:selected, list row:selected, columnview row:selected, treeview row:selected,
treeview.view:selected, flowboxchild:selected, gridview child:selected { background-color: #3a6ea5; color: #ffffff; border-radius: 5px; }
listview row:selected *, list row:selected *, columnview row:selected *, treeview row:selected *,
treeview.view:selected *, flowboxchild:selected *, gridview child:selected * { color: #ffffff; background-color: transparent; }
listview row:hover, list row:hover, columnview row:hover, gridview child:hover { background-color: rgba(58,110,165,0.10); border-radius: 5px; }
entry selection, text selection, textview text selection { background-color: #3a6ea5; color: #ffffff; }
/* ── SCROLLBAR ──────────────────────────────────────────────── */
scrollbar { background: rgba(58,110,165,0.07); border-radius: 8px; min-width: 8px; min-height: 8px; }
scrollbar slider { background: #adb5bd; border-radius: 8px; min-width: 6px; min-height: 6px; }
scrollbar slider:hover { background: #3a6ea5; }
scrollbar slider:active { background: #2c5d8a; }
scrollbar trough { margin: 2px; border-radius: 8px; background: transparent; }
/* ── PROGRESSBAR ────────────────────────────────────────────── */
progressbar.progress-success > trough { min-height: 16px; border-radius: 5px; background-color: #e9ecef; }
progressbar.progress-success > trough > progress { border-radius: 5px; background-color: #28a745; }
progressbar.progress-success text { color: white; font-weight: 700; }
.progress-BastionGuard { min-height: 14px; border-radius: 8px; }
.progress-BastionGuard > trough { background: rgba(0,0,0,0.06); border-radius: 8px; }
.progress-BastionGuard > trough > progress { background: linear-gradient(90deg, #16a085, #0e8f73); border-radius: 8px; }
.progress-BastionGuard text { color: #e9f7ef; font-size: 12px; }
.scan-progressbar { min-height: 16px; border-radius: 6px; }
.scan-progressbar trough { background-color: #e9ecef; border-radius: 6px; min-height: 16px; }
.scan-progressbar progress { background-color: #27ae60; border-radius: 6px; min-height: 16px; }
/* ── LABELS ─────────────────────────────────────────────────── */
label { color: #212529; }
.title { font-size: 16px; font-weight: bold; color: #212529; margin-bottom: 6px; }
.subtitle { font-size: 13px; font-weight: bold; color: #495057; }
.small-label { font-size: 11px; color: #6c757d; }
.xsmall-label { font-size: 10px; color: #868e96; }
.highlight { color: #3a6ea5; font-weight: bold; }
.page-title, h1, h2 { color: #212529; margin-top: 0; padding-top: 0; }
label.page-title { margin-bottom: 6px; }
/* ── ALERT / BANNER ─────────────────────────────────────────── */
.alert-warning { background-color: #fff8e1; color: #856404; border: 1px solid #ffc107; border-radius: 6px; padding: 6px 10px; margin: 4px 0; font-weight: 500; }
.alert-warning label { color: inherit; }
.alert-info { background-color: #e3f2fd; color: #0277bd; border: 1px solid #81d4fa; border-radius: 6px; padding: 6px 10px; margin: 4px 0; font-weight: 500; }
.alert-info label { color: inherit; }
.alert-success { background-color: #26a269; border-radius: 5px; padding: 3px 12px; }
.alert-success label { color: white; font-weight: bold; }
.alert-danger { background-color: #c01c28; border-radius: 5px; padding: 3px 12px; }
.alert-danger label { color: white; font-weight: bold; }
.security-banner { border-radius: 5px; padding: 7px 12px; margin-bottom: 4px; }
.security-banner label { font-size: 12px; color: #495057; }
.security-banner.alert-danger { background-color: #c64600; color: #ffffff; border-left: 3px solid #a51d2d; }
.security-banner.alert-danger label { color: #ffffff; }
.security-banner.alert-info { background: linear-gradient(to right, #2c5d8a, #3a6ea5); color: #ffffff; border-left: 3px solid #2c5d8a; }
.security-banner.alert-info label { color: #ffffff; }
.success-label { background-color: #e8f5e9; color: #2e7d32; border: 1px solid #81c784; border-radius: 5px; padding: 4px 8px; margin-top: 4px; font-weight: 600; }
.alert-window { background-color: #ffffff; border-radius: 10px; padding: 16px; min-width: 400px; }
.alert-title { font-size: 16px; font-weight: bold; color: #f05060; margin-bottom: 8px; }
.alert-message { font-size: 13px; color: #6c757d; margin-bottom: 6px; line-height: 1.4; }
.alert-countdown { font-size: 12px; color: #868e96; margin-top: 4px; }
.alert-button { border-radius: 5px; padding: 4px 12px; font-weight: 500; border: none; color: #ffffff; min-width: 100px; margin: 0 3px; }
/* ── APP DIALOG ─────────────────────────────────────────────── */
.app-dialog { background-color: #ffffff; border-radius: 10px; padding: 16px; min-width: 440px; }
.app-dialog label { font-size: 13px; color: #495057; margin-bottom: 8px; line-height: 1.4; }
.app-dialog button { color: #ffffff; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; min-width: 90px; }
.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; }
/* ── DIALOG BUTTON BAR ──────────────────────────────────────── */
window.dialog actionbar button, window.dialog .dialog-action-area > button { border-radius: 6px; padding: 4px 10px; min-height: 24px; min-width: 90px; font-weight: 500; border: 1px solid transparent; }
window.dialog actionbar box.start > button:first-child, window.dialog .dialog-action-area > button:first-child { background: #f1f3f5; color: #495057; border-color: #dee2e6; }
window.dialog actionbar box.start > button:first-child:hover, window.dialog .dialog-action-area > button:first-child:hover { background: #dee2e6; }
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: #f1f3f5; border-color: #dee2e6; color: #5a6070; }
/* ── FILE CHOOSER ───────────────────────────────────────────── */
filechooserdialog { background: #f4f6f8; color: #212529; border-radius: 8px; }
filechooserdialog headerbar { background: #3a6ea5; color: #ffffff; border-bottom: 1px solid #2c5d8a; }
filechooserdialog button { background: #3a6ea5; color: #ffffff; border-radius: 5px; padding: 4px 10px; border: none; font-weight: 500; }
filechooserdialog button:hover { background: #2c5d8a; }
filechooserdialog button:active { background: #142d42; }
filechooserdialog list row { background: transparent; color: #212529; padding: 4px 8px; border-radius: 4px; }
filechooserdialog list row:hover { background: rgba(58,110,165,0.20); }
filechooserdialog list row:selected { background: #3a6ea5; 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: #3a6ea5; color: #ffffff; }
placessidebar row:selected *, placesview row:selected * { color: #ffffff; }
/* ── BASTIONGUARD DIALOG ────────────────────────────────────── */
.BastionGuard-dialog { background-color: #ffffff; border-radius: 10px; padding: 12px; border: 1px solid #dee2e6; }
.BastionGuard-popup { border: 1px solid #dee2e6; background-color: #ffffff; border-radius: 10px; }
.BastionGuard-dialog-title { font-size: 15px; font-weight: 700; color: #212529; margin-bottom: 8px; }
.BastionGuard-scroller { border-radius: 6px; border: 1px solid #dee2e6; background-color: #ffffff; }
.BastionGuard-textview { font-family: monospace; font-size: 12px; background-color: #f8f9fa; padding: 8px; border-radius: 6px; color: #495057; }
.BastionGuard-close-btn { background-color: #0d6efd; color: #ffffff; border-radius: 5px; padding: 4px 12px; border: none; font-weight: 500; min-width: 100px; }
.BastionGuard-close-btn:hover { background-color: #0b5ed7; }
.BastionGuard-close-btn:active { background-color: #0a58ca; }
.BastionGuard-title { padding: 5px 10px; font-weight: 600; font-size: 14px; color: #495057; }
/* ── PRIVACY POPUP ──────────────────────────────────────────── */
.privacy-popup { background-color: #ffffff; border: 1px solid #dee2e6; border-radius: 10px; color: #212529; padding: 12px; }
.privacy-popup-title { font-weight: 700; font-size: 15px; color: #212529; margin-bottom: 8px; }
.privacy-popup label { color: #495057; font-size: 13px; }
.privacy-popup-pending { font-size: 12px; color: #868e96; margin-top: 6px; font-style: italic; }
.privacy-allow-btn, .privacy-deny-btn { border-radius: 5px; padding: 4px 12px; font-weight: 500; min-width: 100px; border: none; color: #ffffff; }
.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; }
/* ── SCAN FILE LIST ─────────────────────────────────────────── */
.scan-file-list { background-color: #ffffff; border: 1px solid #dee2e6; border-radius: 8px; padding: 4px 0; }
.scan-file-list row { padding: 4px 10px; background: transparent; border-radius: 5px; margin: 1px 4px; }
.scan-file-list row:hover { background-color: rgba(58,110,165,0.12); }
.scan-file-list row.current { background-color: #e8f0fe; border-left: 3px solid #3a6ea5; font-weight: 600; }
.scan-file-list row label { color: #495057; font-size: 12px; }
.scan-file-list scrollbar slider { background: #3a6ea5; border-radius: 5px; }
.scan-file-list scrollbar slider:hover { background: #2c5d8a; }
.scan-file-list scrollbar { background: rgba(58,110,165,0.07); }
/* ── USB CARD ───────────────────────────────────────────────── */
.usb-card { background: #ffffff; border: 1px solid #dee2e6; border-radius: 8px; padding: 8px 10px; margin: 4px; min-width: 140px; min-height: 100px; }
.usb-card:hover { background-color: #f1f3f5; }
.usb-card-title { font-size: 13px; font-weight: 600; color: #212529; margin-bottom: 3px; }
.usb-card-info { font-size: 12px; color: #6c757d; line-height: 1.2; margin-bottom: 4px; }
.usb-card button.mount-btn { background-color: #0d6efd; color: #ffffff; border-radius: 5px; padding: 3px 8px; border: none; font-size: 12px; font-weight: 500; }
.usb-card button.mount-btn:hover { background-color: #0b5ed7; }
.usb-card button.scan-btn { background-color: #198754; color: #ffffff; border-radius: 5px; padding: 3px 8px; border: none; font-size: 12px; font-weight: 500; }
.usb-card button.scan-btn:hover { background-color: #157347; }
.usb-card.disabled { opacity: 0.45; }
/* ── SOURCE ACCORDION ───────────────────────────────────────── */
.source-header { background-color: #ffffff; border: 1px solid #dee2e6; border-radius: 5px; padding: 5px 8px; border-bottom: none; }
.source-header:hover { background-color: #f1f3f5; }
.source-header:last-child { border-bottom: 1px solid #dee2e6; }
.source-header label { color: #495057; font-weight: 600; font-size: 12px; }
.expand-icon { color: #3a6ea5; font-weight: bold; font-size: 12px; margin-left: 3px; }
.source-header.open { background-color: #e8f0fe; border-color: #3a6ea5; border-bottom: 1px solid #3a6ea5; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.revealer-content { background-color: #ffffff; border: 1px solid #3a6ea5; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; padding: 8px 10px; margin: 0 0 4px 0; }
label.highlight { color: #3a6ea5; font-weight: 600; }
label.suggested-action { color: #868e96; font-weight: 600; }
/* ── ENTRIES SPECIALI ───────────────────────────────────────── */
.whitelist-entry, .whitelist-view, .home-entry { border-radius: 7px; padding: 5px 10px; font-size: 13px; color: #212529; background: #ffffff; border: 2px solid #3a6ea5; caret-color: #3a6ea5; }
.whitelist-entry:focus, .whitelist-view:focus, .home-entry:focus { border-color: #3a6ea5; background: #eef2ff; }
.whitelist-entry:hover, .whitelist-view:hover, .home-entry:hover { border-color: #2c5d8a; }
.company-entry { border-radius: 7px; padding: 5px 10px; font-size: 13px; color: #212529; background: #ffffff; border: 2px solid #5a9a30; caret-color: #76b041; }
.company-entry:focus { border-color: #76b041; background: #f0fff0; }
.company-entry:hover { border-color: #4a7a28; }
.danger-entry { border-radius: 7px; padding: 5px 10px; font-size: 13px; color: #212529; background: #ffffff; border: 2px solid #c82333; caret-color: #e53935; }
.danger-entry:focus { border-color: #e53935; background: #fff5f5; }
.danger-entry:hover { border-color: #a01e1e; }
/* ── SHA DIALOG ─────────────────────────────────────────────── */
.sha-dialog entry { border-radius: 6px; padding: 4px 8px; font-size: 13px; color: #212529; background: #ffffff; border: 2px solid #3a6ea5; caret-color: #3a6ea5; }
.sha-dialog entry:focus { border-color: #3a6ea5; background: #eef2ff; }
.sha-dialog entry:hover { border-color: #2c5d8a; }
.sha-dialog button { border-radius: 5px; font-weight: 500; padding: 4px 10px; }
.sha-dialog button.suggested-action { background-color: #0d6efd; color: white; }
.sha-dialog button.suggested-action:hover { background-color: #0b5ed7; }
/* ── SECURE WINDOW ──────────────────────────────────────────── */
.secure-window { background-color: #f4f6f8; border-radius: 10px; }
.secure-headerbar { background: #3a6ea5; color: #ffffff; padding: 6px 12px; font-weight: 600; border-top-left-radius: 10px; border-top-right-radius: 10px; }
.secure-headerbar .title, .secure-headerbar-title { color: #ffffff; }
.secure-headerbar .url { font-size: 12px; opacity: 0.85; margin-left: 5px; font-weight: 400; }
.secure-headerbar .close-btn { background: rgba(255,255,255,0.12); border: none; color: white; border-radius: 4px; font-size: 12px; padding: 3px 7px; }
.secure-headerbar .close-btn:hover { background: rgba(255,255,255,0.25); }
.secure-content { padding: 14px; background-color: #ffffff; color: #212529; }
.secure-content entry { border-radius: 5px; border: 1px solid #dee2e6; padding: 3px 7px; background: #ffffff; color: #212529; }
.secure-content entry:focus { border-color: #27ae60; }
.secure-content button { background-color: #1f8a50; color: #ffffff; border-radius: 5px; padding: 4px 10px; font-weight: 500; border: none; }
.secure-content button:hover { background-color: #166a3d; }
/* ── SERVICE ROWS ───────────────────────────────────────────── */
.service-name { font-weight: 600; font-size: 1.0em; color: #212529; }
.service-desc { font-size: 12px; color: #6c757d; margin-top: 1px; }
.service-row:hover { background-color: rgba(53,132,228,0.08); border-radius: 6px; }
.service-row:active { background-color: rgba(53,132,228,0.16); }
/* ── UPDATE BADGE ───────────────────────────────────────────── */
.update-badge { padding: 4px 8px; border-radius: 999px; font-weight: 600; border: 1px solid rgba(0,0,0,0.07); font-size: 12px; }
.update-checking { background: rgba(0,0,0,0.04); color: #868e96; }
.update-ok { background: rgba(40,167,69,0.12); color: #2e7d32; }
.update-warn { background: rgba(220,53,69,0.12); color: #dc3545; }
.update-unk { background: rgba(255,193,7,0.15); color: #856404; }
/* ── MISC ───────────────────────────────────────────────────── */
.mini-toggle { min-width: 32px; min-height: 16px; padding: 0; margin: 0 3px; }
.mini-toggle slider { min-width: 12px; min-height: 12px; }
.theme-btn { font-size: 1.1em; padding: 1px 5px; border-radius: 5px; opacity: 0.55; }
.theme-btn-active { opacity: 1.0; background-color: rgba(58,110,165,0.15); }
.btn-small { padding: 3px 7px; font-size: 11px; }
@keyframes progress-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
/* ============================================================
* ICONE SEMPRE VISIBILI — Light Theme
* Tutti i contesti dove le icone devono avere colore esplicito
* ============================================================ */
/* Regola base: ogni image dentro un button prende il color del button */
button image,
button image:disabled {
-gtk-icon-style: requested;
background-color: transparent;
}
/* ── Toolbar superiore (Crea, Ripristino, Sfoglia, Elimina) ── */
/* Su sfondo chiaro: icone scure */
toolbar button,
toolbar button image,
box > button image,
actionbar button image,
.toolbar button image,
headerbar button image,
headerbar button.header-button image {
color: #3a3f4b;
}
headerbar button.header-button image {
color: #3a3f4b;
}
/* ── Barra inferiore (Sfoglia file, Rsync Log, Mark, Elimina) ── */
/* Stessa regola: sfondo chiaro, icone scure */
revealer button image,
box.linked button image,
flowbox button image,
.bottom-bar button image,
actionbar > revealer > box > button image,
box.toolbar button image {
color: #3a3f4b;
}
/* Fallback universale: qualsiasi bottone su sfondo chiaro
che non sia già coperto da una regola più specifica */
window button image,
dialog button image {
color: #3a3f4b;
}
/* Override per bottoni colorati — sempre bianche */
button.btn-primary image,
button.btn-success image,
button.btn-danger image,
button.btn-warning image,
button.btn-cancel image,
button.btn-finish image,
button.btn-next image,
button.btn-back image,
button.suggested-action image,
button.destructive-action image,
.BastionGuard-close-btn image,
.privacy-allow-btn image,
.privacy-deny-btn image,
.alert-button image,
.usb-card button.mount-btn image,
.usb-card button.scan-btn image,
.secure-content button image,
window.dialog actionbar button.suggested-action image,
window.dialog actionbar button:last-child image {
color: #ffffff;
}
/* Override per sidebar — sempre bianche */
.sidebar button image,
.sidebar .sidebar-button image {
color: #ffffff;
}
/* Disabilitati */
button:disabled image {
color: #b0b8c4;
opacity: 0.5;
}
/* ── Action toolbar buttons ── */
.action-btn { border-radius: 5px; padding: 4px 10px; font-weight: 500; }
/* ── PROGRESSBAR GENERICA (Backup / Restore / Delete / Estimate / RsyncLog) ── */
progressbar {
min-height: 18px;
border-radius: 6px;
margin-top: 4px;
margin-bottom: 4px;
}
progressbar trough {
background-color: #e9ecef;
border-radius: 6px;
min-height: 18px;
border: 1px solid #ced4da;
}
progressbar progress {
background-color: #0d6efd;
background-image: linear-gradient(90deg, #0d6efd, #3d8bfd);
border-radius: 6px;
min-height: 18px;
}
progressbar text {
color: #ffffff;
font-weight: 600;
font-size: 12px;
}
progressbar.pulse trough {
background-color: #e9ecef;
}
progressbar.pulse progress {
background-color: #0d6efd;
background-image: linear-gradient(90deg, #0d6efd, #3d8bfd);
border-radius: 6px;
}
/* ── SNAPSHOT LIST ROWS ─────────────────────────────────────────────── */
/* Righe compatte per mostrare più snapshot visibili */
.boxed-list > row {
padding: 0;
margin: 0;
}
.boxed-list > row:not(:last-child) {
border-bottom: 1px solid #dee2e6;
}
/* Riduce l'altezza del campo Comments */
.boxed-list > row entry {
min-height: 22px;
padding: 2px 6px;
font-size: 12px;
color: #6c757d;
background-color: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 4px;
}
/* Testo data snapshot */
.boxed-list > row label {
font-size: 13px;
}
/* Meta text (Arch rolling • Tags) */
.boxed-list > row .dim-label {
font-size: 11px;
color: #6c757d;
}
/* ── SNAPSHOT PAGE LAYOUT COMPATTO ─────────────────────────────────── */
/* Riduce altezza card status in cima */
.card { padding: 6px 8px; }
/* Riduce img shield */
.card image { min-width: 36px; min-height: 36px; }
/* Snapshot list: rimuove padding extra della boxed-list */
listbox.boxed-list { padding: 0; }
listbox.boxed-list row { padding: 0; }
/* ── TOOLTIP ───────────────────────────────────────────────── */
/* Necessario perché il `* { all: unset }` in cima azzera anche i
* tooltip e li renderebbe illeggibili. */
tooltip {
background-color: #ffffff;
border: 1px solid #c8d0d8;
border-radius: 5px;
padding: 4px 8px;
}
tooltip,
tooltip * ,
tooltip label {
color: #212529;
font-size: 12px;
}
/* ── DIALOG ADD NETWORK SHARE (SMB) ────────────────────────── */
.smb-dialog { padding: 0; }
.smb-dialog .smb-title {
font-size: 15px;
font-weight: 700;
color: #1a3357;
margin-bottom: 4px;
}
.smb-dialog .smb-subtitle {
color: #5a6470;
font-size: 12px;
margin-bottom: 10px;
}
.smb-dialog entry {
background-color: #ffffff;
color: #212529;
border: 1px solid #c8d0d8;
border-radius: 5px;
padding: 4px 8px;
min-height: 26px;
}
.smb-dialog entry:focus-within { border-color: #3a6ea5; }
.smb-dialog .error-text { color: #b91c1c; }
/* Bottoni "Refresh" e "Add Network Share..." nella selezione device */
button.btn-toolbar {
background: #ffffff;
border: 1px solid #c8d0d8;
border-radius: 5px;
color: #212529;
padding: 4px 12px;
min-height: 26px;
min-width: 0;
}
button.btn-toolbar:hover { background: #eef2f7; }
button.btn-toolbar label { color: #212529; }