/* ===== Status Badges ===== */ .status-badge { border-radius: 9px; padding: 3px 10px; min-height: 18px; font-size: 0.8em; font-weight: 600; } .status-badge.success { background: @success_bg_color; color: @success_fg_color; } .status-badge.warning { background: @warning_bg_color; color: @warning_fg_color; } .status-badge.error { background: @error_bg_color; color: @error_fg_color; } .status-badge.info { background: @accent_bg_color; color: @accent_fg_color; } .status-badge.neutral { background: @card_shade_color; color: @window_fg_color; } /* Badge with icon prefix */ .status-badge-with-icon { border-radius: 9px; padding: 3px 10px; min-height: 18px; font-size: 0.8em; font-weight: 600; } .status-badge-with-icon.success { background: @success_bg_color; color: @success_fg_color; } .status-badge-with-icon.warning { background: @warning_bg_color; color: @warning_fg_color; } .status-badge-with-icon.error { background: @error_bg_color; color: @error_fg_color; } .status-badge-with-icon.info { background: @accent_bg_color; color: @accent_fg_color; } .status-badge-with-icon.neutral { background: @card_shade_color; color: @window_fg_color; } /* ===== Drop Overlay ===== */ .drop-overlay-scrim { background: alpha(@window_bg_color, 0.75); } .drop-zone-card { background: @card_bg_color; border-radius: 16px; padding: 48px 40px; border: 2px dashed alpha(@accent_bg_color, 0.5); box-shadow: 0 8px 32px alpha(black, 0.15); } .drop-zone-icon { color: @accent_bg_color; opacity: 0.7; } /* ===== Card View (using libadwaita .card) ===== */ .card { padding: 24px 20px; } flowboxchild:focus-visible .card { outline: 2px solid @accent_bg_color; outline-offset: 3px; } /* Rounded icon clipping for list view */ .icon-rounded { border-radius: 8px; } /* ===== WCAG AAA Focus Indicators ===== */ button:focus-visible, togglebutton:focus-visible, menubutton:focus-visible, checkbutton:focus-visible, switch:focus-visible, entry:focus-visible, searchentry:focus-visible, spinbutton:focus-visible { outline: 2px solid @accent_bg_color; outline-offset: 2px; } row:focus-visible { outline: 2px solid @accent_bg_color; outline-offset: -2px; } /* Badge row in app cards */ .badge-row { margin-top: 4px; } /* Letter-circle fallback icon */ .letter-icon { border-radius: 50%; font-weight: 700; font-size: 1.4em; } /* Integration emblem on card icon */ .integration-emblem { background: @success_bg_color; color: @success_fg_color; border-radius: 50%; padding: 2px; min-width: 16px; min-height: 16px; } /* ===== Detail View Banner ===== */ .detail-banner { padding: 18px 0; background-image: linear-gradient( to bottom, alpha(@accent_bg_color, 0.08), transparent ); border-radius: 12px; margin-bottom: 6px; } /* Inline ViewSwitcher positioning */ .detail-view-switcher { margin-top: 6px; margin-bottom: 6px; } /* ===== Quick Action Pills ===== */ .quick-action-pill { border-radius: 18px; padding: 6px 16px; } /* ===== Compatibility Warning Banner ===== */ .compat-warning-banner { background: alpha(@warning_bg_color, 0.15); border-radius: 12px; padding: 12px; border: 1px solid alpha(@warning_bg_color, 0.3); } /* ===== Dark Mode Differentiation ===== */ @media (prefers-color-scheme: dark) { .compat-warning-banner { background: alpha(@warning_bg_color, 0.1); border: 1px solid alpha(@warning_bg_color, 0.2); } } /* ===== High Contrast Mode (WCAG AAA 1.4.6) ===== */ @media (prefers-contrast: more) { flowboxchild:focus-visible .card { outline-width: 3px; } button:focus-visible, togglebutton:focus-visible, menubutton:focus-visible, checkbutton:focus-visible, switch:focus-visible, entry:focus-visible, searchentry:focus-visible, spinbutton:focus-visible { outline-width: 3px; } row:focus-visible { outline-width: 3px; } .status-badge, .status-badge-with-icon { border: 1px solid currentColor; } .compat-warning-banner { border: 2px solid @warning_bg_color; } } /* ===== Reduced Motion (WCAG AAA 2.3.3) ===== */ /* Note: GTK CSS does not support prefers-reduced-motion or !important. Reduced motion is handled by the GTK toolkit settings instead (gtk-enable-animations). */ /* ===== Minimum Target Size (WCAG 2.5.8) ===== */ button.flat.circular, button.flat:not(.pill):not(.suggested-action):not(.destructive-action) { min-width: 24px; min-height: 24px; } /* ===== Screenshot Lightbox ===== */ window.lightbox { background-color: rgba(0, 0, 0, 0.92); border-radius: 12px; } window.lightbox .lightbox-counter { background: rgba(0, 0, 0, 0.6); color: white; border-radius: 12px; padding: 4px 12px; font-size: 0.85em; } window.lightbox .lightbox-nav { min-width: 48px; min-height: 48px; }