/* BastionGuard — Tema Chiaro * Generato da BastionGuard-dark.css con palette invertita * Colori: sfondo #f4f6f8, sidebar #3a6ea5, testo #212529 */ /* =========================== * RESET GENERALE * =========================== */ * { all: unset; font-family: system-ui, sans-serif; font-size: 14px; color: #212529; } /* =========================== * FINESTRA PRINCIPALE * =========================== */ window { background-color: #f4f6f8; border-radius: 12px; padding: 0; } /* =========================== * TITOLO DASHBOARD * =========================== */ .title { font-size: 20px; font-weight: bold; color: #212529; margin-bottom: 12px; } .card { background: #ffffff; border: 1px solid #dee2e6; border-radius: 12px; /* box-shadow: 0 1px 3px rgba(0,0,0,0.4); */ padding: 8px; width: 100%; } .card label { color: #212529; 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: #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: 6px; padding: 6px 12px; border: none; font-weight: 500; } filechooserdialog button:hover { background: #2c5d8a; } filechooserdialog button:active { background: #142d42; } filechooserdialog list row { background: transparent; color: #212529; padding: 6px 10px; border-radius: 4px; } filechooserdialog list row:hover { background: rgba(58, 110, 165, 0.25); } filechooserdialog list row:selected { background: #3a6ea5; color: #ffffff; } /* =========================== * HEADER BAR * =========================== */ headerbar.custom-headerbar { background: transparent; border: none; /* box-shadow: none; */ min-height: 32px; padding: 0; } headerbar .header-left { background-color: #f4f6f8; border-top-left-radius: 12px; min-width: 240px; padding: 0; } headerbar .header-right { background-color: #f4f6f8; 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: #3a6ea5; border-bottom-left-radius: 12px; } .sidebar .sidebar-button { color: #ffffff; 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; } /* =========================== * SIDEBAR LAYOUT FIX * =========================== */ .sidebar-group-label { color: #ffffff; font-weight: 600; margin-left: 6px; margin-right: 6px; margin-top: 8px; margin-bottom: 8px; } .sidebar .sidebar-button { color: #ffffff; background-color: transparent; border-radius: 10px; padding: 8px 10px; min-height: 36px; } .sidebar .sidebar-button > box { margin-left: 2px; margin-right: 2px; } .sidebar .sidebar-button image { margin-right: 10px; } .sidebar-theme-row { margin-left: 6px; margin-right: 6px; margin-top: 4px; margin-bottom: 10px; } .theme-btn { min-width: 0; min-height: 36px; padding: 0 14px; border-radius: 10px; background-color: rgba(255, 255, 255, 0.12); opacity: 0.85; } .theme-btn:hover { background-color: rgba(255, 255, 255, 0.20); } .theme-btn-active { opacity: 1.0; background-color: rgba(255, 255, 255, 0.24); } .sidebar-lang-combo, .sidebar .sidebar-lang-combo, .sidebar combobox.sidebar-lang-combo { margin-left: 6px; margin-right: 6px; margin-top: 4px; margin-bottom: 10px; min-height: 38px; min-width: 0; padding: 6px 12px; border-radius: 10px; background-color: rgba(255, 255, 255, 0.12); color: #ffffff; border: none; } .sidebar-lang-combo:hover, .sidebar combobox.sidebar-lang-combo:hover { background-color: rgba(255, 255, 255, 0.20); } .sidebar-lang-combo arrow, .sidebar combobox.sidebar-lang-combo arrow { color: #ffffff; } .sidebar-separator { background-color: rgba(255, 255, 255, 0.12); min-height: 1px; margin-left: 6px; margin-right: 6px; margin-top: 10px; margin-bottom: 10px; border-radius: 1px; } /* =========================== * 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: #f1f3f5; color: #212529; border-radius: 8px; border: 1px solid #dee2e6; } .sidebar .sidebar-langcol combobox popover modelbutton { padding: 4px 10px; margin: 2px 4px; border-radius: 6px; 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 .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: #212529; } .sidebar .sidebar-langcol combobox popover list row:hover, .sidebar .sidebar-langcol combobox popover listview row:hover { background: rgba(58,110,165,0.15); } .sidebar .sidebar-langcol combobox popover list row:selected, .sidebar .sidebar-langcol combobox popover listview row:selected { background: #3a6ea5; 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: #3a6ea5; color: #ffffff; } listview row:selected *, list row:selected *, columnview row:selected * { color: #ffffff; } gridview child:selected, flowbox child:selected { background-color: #3a6ea5; 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: #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; } 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: #3a6ea5; 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: #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; } /* =========================== * MAIN CONTENT * =========================== */ .content { background-color: #f4f6f8; padding: 20px; } .content button { background: #ffffff; border: 1px solid #dee2e6; border-radius: 6px; padding: 6px 12px; color: #212529; } .content button:hover { background: #e2e6ea; } /* =========================== * NOTEBOOK / TAB * =========================== */ notebook tab { background: #ffffff; border: 1px solid #dee2e6; border-bottom: none; padding: 6px 12px; border-top-left-radius: 6px; border-top-right-radius: 6px; } notebook stack { border: 1px solid #dee2e6; background: #ffffff; padding: 12px; } notebook > header tab:checked { background-color: #e2e6ea; border-bottom: 2px solid #3a6ea5; } notebook > header tab:hover:not(:checked) { background-color: rgba(58,110,165,0.10); } /* =========================== * SWITCH * =========================== */ switch { min-width: 36px; min-height: 20px; /* max-width: 36px; */ /* max-height: 20px; */ border-radius: 10px; background: #ced4da; 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: #212529; } checkbutton check { border: 1px solid #5a6070; border-radius: 4px; min-width: 16px; min-height: 16px; background: #f1f3f5; } checkbutton check:checked { background: #0d6efd; border-color: #0d6efd; } /* =========================== * TEXTVIEW (Log) * =========================== */ textview { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px; padding: 8px; color: #495057; } /* =========================== * Dialog file infetto * =========================== */ .app-dialog { background-color: #ffffff; 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: #495057; 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: #e9ecef; color: #6a707d; } /* =========================== * ALERT WINDOW * =========================== */ .alert-window { background-color: #ffffff; 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: #6c757d; margin-bottom: 8px; line-height: 1.4; /* text-align: center; */ } .alert-countdown { font-size: 13px; color: #868e96; 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: #ffffff; 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: #fff8e1; color: #856404; border: 1px solid #ffc107; border-radius: 8px; padding: 10px 12px; margin: 6px 0; font-weight: 500; } .alert-warning label { color: inherit; } /* =========================== * ALERT INFO * =========================== */ .alert-info { background-color: #e3f2fd; color: #0277bd; border: 1px solid #81d4fa; 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: #e8f5e9; color: #2e7d32; border: 1px solid #81c784; 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: #e9ecef; /* 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: #212529; background: #ffffff; border: 2px solid #3a6ea5; /* transition: all 150ms ease-in-out; */ caret-color: #3a6ea5; } .whitelist-entry:focus { border-color: #3a6ea5; /* box-shadow: 0 0 8px rgba(77,143,224,0.3); */ background: #eef2ff; } .whitelist-entry:hover { border-color: #2c5d8a; } .whitelist-view { border-radius: 10px; padding: 8px 12px; font-size: 14px; color: #212529; background: #ffffff; border: 2px solid #3a6ea5; /* transition: all 150ms ease-in-out; */ caret-color: #3a6ea5; } /* =========================== * SCROLLBAR * =========================== */ scrollbar, scrollbar slider { border-radius: 8px; min-width: 10px; min-height: 10px; } scrollbar { background: rgba(58,110,165,0.08); } scrollbar slider { background: #3a6ea5; /* transition: background 0.2s ease; */ } scrollbar slider:hover { background: #2c5d8a; } scrollbar slider:active { background: #3a6ea5; } scrollbar trough { margin: 2px; border-radius: 8px; } /* =========================== * INPUT ENTRIES (ransomware) * =========================== */ .home-entry { border-radius: 10px; padding: 8px 12px; font-size: 14px; color: #212529; background: #ffffff; border: 2px solid #3a6ea5; /* transition: all 150ms ease-in-out; */ caret-color: #3a6ea5; } .home-entry:focus { border-color: #3a6ea5; /* box-shadow: 0 0 8px rgba(77,143,224,0.3); */ background: #eef2ff; } .home-entry:hover { border-color: #2c5d8a; } .company-entry { border-radius: 10px; padding: 8px 12px; font-size: 14px; color: #212529; background: #ffffff; border: 2px solid #5a9a30; /* 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: #f0fff0; } .company-entry:hover { border-color: #4a7a28; } .danger-entry { border-radius: 10px; padding: 8px 12px; font-size: 14px; color: #212529; background: #ffffff; border: 2px solid #c82333; /* 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: #fff5f5; } .danger-entry:hover { border-color: #a01e1e; } /* =========================== * TREEVIEW * =========================== */ treeview { background-color: #ffffff; } treeview row { background-color: #ffffff; } treeview row:nth-child(even) { background-color: #ffffff; } treeview.view:selected { background-color: #2c5d8a; } /* =========================== * SHA DIALOG * =========================== */ .sha-dialog entry { border-radius: 8px; padding: 6px 10px; font-size: 14px; color: #212529; background: #ffffff; border: 2px solid #3a6ea5; caret-color: #3a6ea5; /* transition: all 150ms ease-in-out; */ } .sha-dialog entry:focus { border-color: #3a6ea5; /* box-shadow: 0 0 6px rgba(77,143,224,0.3); */ background: #eef2ff; } .sha-dialog entry:hover { border-color: #2c5d8a; } .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 #dee2e6; border-radius: 6px; background: #ffffff; color: #212529; 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: #3a6ea5; /* box-shadow: 0 0 4px rgba(77,143,224,0.3); */ } /* =========================== * COMBOBOX GENERALI * =========================== */ .card combobox, combobox { background-color: #ffffff; color: #212529; border: 1px solid #dee2e6; border-radius: 6px; padding: 6px 10px; min-height: 28px; min-width: 180px; } .card combobox:hover, combobox:hover { background-color: #f1f3f5; } .card combobox arrow, combobox arrow { -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); color: #212529; } .card combobox popover, .card combobox popover.menu, combobox popover, combobox popover.menu { background: #f1f3f5; color: #212529; border-radius: 8px; border: 1px solid #dee2e6; /* 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: #212529; } .card combobox popover modelbutton:hover, combobox popover modelbutton:hover { background: rgba(58,110,165,0.18); } .card combobox popover modelbutton:checked, .card combobox popover modelbutton:active, combobox popover modelbutton:checked, combobox popover modelbutton:active { background: #3a6ea5; 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: #f1f3f5; border: 1px solid #dee2e6; border-radius: 8px; /* box-shadow: 0 4px 12px rgba(0,0,0,0.5); */ } popover.background modelbutton, popover.menu modelbutton, combobox popover modelbutton { color: #212529; background: transparent; padding: 6px 10px; border-radius: 6px; } popover.background modelbutton:hover, popover.menu modelbutton:hover, combobox popover modelbutton:hover { background-color: rgba(58,110,165,0.18); } popover.background modelbutton:checked, popover.menu modelbutton:checked, combobox popover modelbutton:checked { background-color: #3a6ea5; color: #ffffff; } /* Entry generica */ .entry, entry, GtkEntry { background-color: #ffffff; color: #212529; border: 1px solid #dee2e6; border-radius: 6px; padding: 4px 6px; } .entry:focus { border-color: #3a6ea5; /* 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(0,0,0,0.05); 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(0,0,0,0.04); } .progress-BastionGuard trough { border-radius: 10px; background-color: rgba(0,0,0,0.04); } .progress-BastionGuard progress { border-radius: 10px; background-image: linear-gradient(to right, #4caf50, #8bc34a); } /* =========================== * SECURE WINDOW (Banche) * =========================== */ .secure-window { background-color: #f4f6f8; border-radius: 12px; /* box-shadow: 0 4px 12px rgba(0,0,0,0.5); */ /* overflow: hidden; */ } .secure-headerbar { background: linear-gradient(90deg, #3a6ea5, #3a6ea5); 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: #ffffff; color: #212529; } .secure-content entry { border-radius: 6px; border: 1px solid #dee2e6; padding: 4px 8px; background: #ffffff; color: #212529; } .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: #3a6ea5; font-weight: bold; } /* =========================== * ACCORDION SORGENTI * =========================== */ .source-header { background-color: #ffffff; border: 1px solid #dee2e6; 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: #f1f3f5; } .source-header:last-child { border-bottom: 1px solid #dee2e6; } .source-header label { color: #ffffff; font-weight: 600; font-size: 13px; } .expand-icon { color: #3a6ea5; 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: #e8f0fe; border-color: #3a6ea5; border-bottom: 1px solid #3a6ea5; 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: #ffffff; border: 1px solid #3a6ea5; border-top: none; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; padding: 10px 12px; margin: 0 0 6px 0; } label.highlight { color: #3a6ea5; font-weight: 600; } label.suggested-action { color: #868e96; font-weight: 600; } /* =========================== * PRIVACY POPUP * =========================== */ .privacy-popup { background-color: #ffffff; border: 1px solid #dee2e6; border-radius: 12px; /* box-shadow: 0 4px 18px rgba(0,0,0,0.6); */ color: #212529; padding: 16px; /* animation: popup-fade-in 0.25s ease-out; */ } .privacy-popup-title { font-weight: 700; font-size: 18px; color: #212529; margin-bottom: 10px; /* text-align: center; */ } .privacy-popup label { color: #495057; font-size: 14px; /* text-align: center; */ } .privacy-popup-pending { font-size: 13px; color: #868e96; 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: #ffffff; border-radius: 12px; padding: 16px; border: 1px solid #dee2e6; } .BastionGuard-popup { border: 1px solid #dee2e6; /* box-shadow: 0 4px 16px rgba(0,0,0,0.5); */ background-color: #ffffff; border-radius: 12px; } .BastionGuard-dialog-title { font-size: 18px; font-weight: 700; color: #212529; /* text-align: center; */ margin-bottom: 10px; } .BastionGuard-scroller { border-radius: 8px; border: 1px solid #dee2e6; background-color: #ffffff; } .BastionGuard-textview { font-family: monospace; font-size: 12px; background-color: #f8f9fa; padding: 10px; border-radius: 8px; color: #495057; } .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: #495057; } /* =========================== * BTN GREY * =========================== */ .btn-grey { background-color: #e9ecef; color: #6c757d; padding: 8px 22px; font-weight: 600; border: none; /* box-shadow: inset 0 0 0 1px #2a2f3b; */ } .btn-grey:hover, .btn-grey:active { background-color: #e9ecef !important; color: #8a909d !important; /* box-shadow: inset 0 0 0 1px #2a2f3b; */ /* cursor: default; */ } /* =========================== * SCAN FILE LIST * =========================== */ .scan-file-list { background-color: #ffffff; border: 1px solid #dee2e6; 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(58,110,165,0.15); /* cursor: pointer; */ } .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: 13px; } .scan-file-list scrollbar slider { background: #3a6ea5; border-radius: 6px; } .scan-file-list scrollbar slider:hover { background: #2c5d8a; } .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: #e9ecef; border-radius: 8px; min-height: 18px; } .scan-progressbar progress { background-color: #27ae60; border-radius: 8px; min-height: 18px; } /* =========================== * USB CARD * =========================== */ .usb-card { background: #ffffff; border: 1px solid #dee2e6; 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: #f1f3f5; /* box-shadow: 0 2px 6px rgba(0,0,0,0.5); */ /* transform: translateY(-2px); */ } .usb-card-title { font-size: 14px; font-weight: 600; color: #ffffff; margin-bottom: 4px; line-height: 1.2; } .usb-card-info { font-size: 12px; color: #6c757d; 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: #ffffff; } .service-desc { font-size: 0.875em; color: #6c757d; 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(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; } /* =========================== * SUBTITLE / MISC LABELS * =========================== */ .subtitle { font-size: 14pt; font-weight: bold; color: #000000; } .small-label { font-size: 10pt; color: #868e96; } .xsmall-label { font-size: 9pt; color: #868e96; } .btn-small { padding: 4px 8px; font-size: 10pt; } .security-banner { border-radius: 6px; padding: 10px 14px; margin-bottom: 6px; } .security-banner label { color: #495057; 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, #2c5d8a, #3a6ea5); color: #ffffff; border-left: 4px solid #2c5d8a; 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; } .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; } /* =========================== * ALIGNMENT FIX OVERRIDE * =========================== */ .sidebar { background-color: #3a6ea5; border-bottom-left-radius: 12px; padding: 10px; } .sidebar-group-label { color: #ffffff; font-weight: 600; margin: 8px 6px; } .sidebar .sidebar-button, .sidebar-button { color: #ffffff; background-color: transparent; border-radius: 10px; padding: 4px 6px; min-height: 36px; } .sidebar .sidebar-button > box, .sidebar-button > box { margin-left: 2px; margin-right: 2px; } .sidebar .sidebar-button image, .sidebar-button image { margin-right: 10px; } .sidebar .sidebar-button label, .sidebar .sidebar-group-button label, .sidebar-button label { color: #ffffff; font-weight: 500; } .sidebar .sidebar-button:hover, .sidebar-button:hover { background-color: rgba(255, 255, 255, 0.12); } .sidebar .sidebar-button:pressed, .sidebar-button:active { background-color: rgba(255, 255, 255, 0.20); } .sidebar .sidebar-button.active-sidebar-button, .sidebar-button:checked { background-color: rgba(255, 255, 255, 0.20); } .sidebar-theme-row, .sidebar .sidebar-langrow, .sidebar .sidebar-langcol, .sidebar-lang-combo, .sidebar .sidebar-lang-combo, .sidebar combobox.sidebar-lang-combo { margin-left: 6px; margin-right: 6px; } .sidebar-theme-row { margin-top: 4px; margin-bottom: 10px; } .sidebar .sidebar-langrow { margin-top: 6px; margin-bottom: 8px; } .sidebar .sidebar-langcol, .sidebar-lang-combo, .sidebar .sidebar-lang-combo, .sidebar combobox.sidebar-lang-combo { margin-top: 4px; margin-bottom: 10px; } .sidebar-separator { background-color: rgba(255, 255, 255, 0.12); min-height: 1px; margin: 10px 6px; border-radius: 1px; } .nav { padding: 16px; min-width: 140px; } .nav button { border-radius: 6px; padding: 8px 16px; min-width: 120px; margin: 2px 0; } /* Keep text selections readable in both themes. */ label selection, textview text selection { background-color: #0d6efd; color: #ffffff; }