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