@gjsify/adwaita-web 0.33.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adwaita-web.css +46 -5
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/styles.generated.d.ts +1 -1
- package/package.json +6 -6
- package/scss/_navigation_split_view.scss +5 -1
- package/scss/_navigation_view.scss +28 -4
- package/scss/_overlay_split_view.scss +5 -1
- package/scss/_panes.scss +57 -0
- package/scss/_sidebar.scss +8 -1
- package/scss/_theme.scss +9 -0
- package/scss/_variables.scss +18 -1
- package/scss/adwaita-skin.scss +1 -0
- package/src/adw-about-dialog.spec.ts +36 -0
- package/src/adw-sidebar.spec.ts +32 -0
- package/src/elements/adw-navigation-split-view.ts +10 -0
- package/src/elements/adw-overlay-split-view.ts +17 -0
- package/src/split-views.spec.ts +91 -0
- package/src/styles.generated.ts +1 -1
package/dist/adwaita-web.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_icons.generated.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_variables.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_theme.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_root.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_reset.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_icon.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_labels.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_window.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_headerbar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_window_title.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button_content.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_popover.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_split_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_menu_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_drop_down.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toggle_group.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_switch.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_entry.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_checks.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_progress_bar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_preferences.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_card.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_data_grid.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_clamp.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_spinner.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_avatar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_banner.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_status_page.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_action_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_entry_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_switch_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_combo_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_spin_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_expander_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_password_entry_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toast.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toolbar_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_wrap_box.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_overlay_split_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_navigation_split_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_carousel.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_tab_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_switcher.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_inline_view_switcher.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_stack.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_switcher_bar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_navigation_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_bottom_sheet.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_sidebar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_about_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_alert_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_preferences_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/adwaita-skin.scss"],"names":[],"mappings":";AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AC1NF;EAEE;EACA;EAGA;EACA;EAGA;EACA;EACA;EAKA;EAGA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAIA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EASA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAcA;EACA;EACA;EACA;;;AClEF;EACE;IA7CA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAKA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAGA;;;AAWF;EAnDE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;;AChCF;EACE;EACA;EACA;EACA;EACA;;;ACiCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOA;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;ACtDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAQA;;AAKA;EACE;;;ACDJ;EACE;;;AAIF;EACE;;;AAOA;EACE;EAEA;EACA;EACA;;;AALF;EACE;EAEA;EACA;EACA;;;AALF;EACE;EAEA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;;;AC9HF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA;EACA;;;ACdF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;AAEA;EACE;EACA;EACA;EAEA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EAEA;;AAGF;EACE;EACA;EAGA;EACA;EACA;EAEA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACrEN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACvBJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKF;EACE;;AAEA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;;;AASJ;EACE;;AAEA;AAAA;EAEE;;AAGF;AAAA;EAEE;EACA;;AAGF;AAAA;EAEE;EACA;;AAGF;EACE;;;ACrHJ;EACE;EACA;;;AAKF;EACE;EACA;;;AAGF;EACE;EACA;EAEA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAGE;EACA;EACA;;AAMA;EACE;;AAGF;EACE;EACA;EACA;EACA;;;AChCN;EAIE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA,YACE;;AAOF;EA3BF;IA4BI,YACE;;;AAOJ;EACE;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAOA;EACE;;AAGF;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EAGE;;AAGF;EACE;;AAIF;EACE;IAIE;;;AAIJ;EACE;EACA;;AAGF;EAGE;EACA;;;AAWJ;EACE;EACA;EACA;;;AC9KF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EAEE;;AAIF;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EAEE;;AAYJ;EACE;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;;AAKJ;EACE;;AAIF;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;;ACnKN;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAKR;EACI;;AAIJ;EACI;;AAIJ;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAUR;EACI;EACA;EACA;;;AC7ER;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAWF;EACE;EACA;EACA;;AAKF;EACE;;AAIF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjIJ;EACE;EACA;;;AAGF;EAGE;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA,YACE;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;;AAMJ;EACE;EAEA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAKN;EACE;;;AC5FN;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AAMF;EACE;;AAEA;EACE;;;ACjFJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;ACOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;EACA;EACA;EACA;EACA;;AAIF;AAAA;EAME;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EAhBF;AAAA;IAoBI;;;AAKF;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAQF;AAAA;EACE;;AAEA;EAHF;AAAA;IAII;;;AAIJ;AAAA;EACE;EACA;;AAEA;EAJF;AAAA;IAKI;;;AAON;AAAA;AAAA;EAEE;EACA;EACA;;AAQA;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;;AAOJ;AAAA;EACE;EACA;;AAKF;AAAA;EACE;EACA;;;AAKJ;EACE;;;AAIF;EACE;;;AAIF;EACE,YAjJY;EAkJZ,oBAlJY;;;AAqJd;EACE,YApJa;EAqJb,oBArJa;;;AA6Jf;AAAA;EAEE,YA7JW;EA8JX,oBA9JW;;;AAmKb;AAAA;EAEE;;AAEA;AAAA;EACE;EACA;;AAKF;AAAA;EACE;;;ACxLJ;EACE;EACA;EACA;EAGA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAVF;IAYI;;;AAIJ;EAEE;EACA;EACA;EACA;EACA,YACE;;AAOJ;EAIE;;AAMF;EACE;;AAKF;EACE;;AAKF;EACE;;AAKF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAOJ;EACE;EACA;EACA;EACA;;AAIA;EARF;IASI;IACA;IACA;;;;AASN;EACE;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;ACvJJ;EACE;;AAMA;EACE;;AAKF;EACE;EACA;EACA;EACA;;AAKA;EACE;;AASF;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,YACE;EAGF;;;AC7EJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;;;ACGF;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAMF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAgBF;EAGE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;;AAKJ;EACE;;AAEA;EACE;;AAMJ;EACE;EACA;;AAEA;EACE;EACA;;AAOJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvIN;EACE;EACA;;;ACSF;EAIE;EACA;EACA;EACA;EACA;EACA;EAIA;;AAEA;EACE;EAGA;;;ACrCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;ACtBJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAGA;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAOF;EACE;EACA;;AAEA;EACE;;;AChDR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AC9BJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;;AAOJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;ACnDF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAGF;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;ACvDJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtCF;EACE;EACA;;;ACRJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAWA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAUJ;EACE;;AAGF;EACE;;;ACvFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtDN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;EACA;;AAGE;EACE;EACA;;AAMF;EACE;EACA;;AAMN;EACE;EACA;EACA;;AAGE;EACE;EACA;;AAMF;EACE;EACA;;;ACxFR;EACE;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAIF;AAAA;EAEE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAWF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACE;;;AC3FR;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKJ;EACE;EACA;;;ACpDJ;EACE;EACA;;AAGA;EACE;EACA;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;AClKN;EACE;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EAEE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;AAAA;EAEE;EACA;;AAGF;EACE,YACE;;AAGF;EACE;;AAIJ;EACE,YACE;;AAGF;EACE;;AAQJ;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAOJ;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AC3FF;EACE;EACA;EACA;EACA;EAKA;EACA;;;AAQF;EACE;;;AAWF;EACE;;;AAQF;AAAA;EAEE;;;AAYF;EACE;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;;;ACxDF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EAGA;;AAkBF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;;AAOA;EACE;;AAGF;EACE;;AASF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAOJ;EACE;EACA;EACA;EACA;;AAmBA;EACE;EACA;;AAGF;EACE;EACA;;AAKA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAQN;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAMJ;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC/LF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AASF;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;;AAGF;EACE;;AASJ;EACE;;AAGF;EACE;;AAMA;EACE;;AAGF;EACE;EACA;EACA;EACA;;;AChEN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEE;EACA;EACA;EACA;;AAIA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA,YACE;;AAMJ;EACE;;;AAON;EACE;;AAEA;EACE;EACA;EACA;EACA;EAEA;EACA,YACE;;AAGF;EACE;;;ACpHN;EACE;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;;AAEA;EACE;;AAGF;EACE;;AAON;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;EAIE;;AAGF;EACE;EACA;EACA;EACA;;AAQF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;;AAWJ;EACE;;AAEA;EACE;;AAOJ;EACE;;AAEA;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAKF;EACE;;AAMA;EAGE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACnRN;EACI;EACA;EACA;;AAIA;EACI;EACA;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;EACA;;AAOA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAMJ;EACI;EACA;;AAEA;EACI;;AAMZ;EACI;EACA;;AAMA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAOZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;;;AC1JZ;EAGI;EAEA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAGJ;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAIJ;EACI;EACA;EACA,YACI;;AAGJ;EACI;;AAOZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;;AAIA;EACI;;AAMR;EACI;EACA;EACA;;AAGJ;EACI;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;;AAMR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAKZ;EACI;;;ACpMZ;EACI;EACA;EACA;EAEA;EACA;;AAIA;EACI;;AAEA;EACI;EACA;EACA;EACA;;;ACdZ;EACI;;AAOA;EACI;;AATR;EAYI;EAGA;EACA;EACA;;AAGA;EACI;EACA;EAEA;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;EACA;;AAMA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EACI;;AAEA;EACI;;;AC/HhB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAKF;EACE;EACA;;AAMJ;EACE;;AAMF;EACE;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;ACjEJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA,YACE;EAEF;;AAUF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;;AAIF;EACE;;;ACnGJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EAEA;;AAGF;EACE;EACA;;AAKA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;;AAEA;EAEE;;AAKN;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AASA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;AAKN;EACE;;;ACnMN;EAEE;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;;AAEA;EACE;EACA;;AAKJ;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMA;EACE;EACA;;AAGF;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;ACpPJ;EACE;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;EAEA;;;AAIF;EACE;;;AAIF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAIF;EACE;;AAEA;EACE;;;AAMJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;;AAUN;EACE;EACA;;;AAGF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC7IJ;EAGE;;AAEA;EACE;;AAOF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAQJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAMJ;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAMA;EACE;;;ACxIR;EACE;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;EACA;;AAEA;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAIF;EACE;;AArKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAiKJ;EA/KE;IACE;IACA;IACA;;EAGF;IACE;IACA;IAEA;IACA;IACA;IACA;IACA;;;AAuKJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AChIJ;EACE","sourcesContent":["// _icons.generated.scss — auto-generated by scripts/build-scss.mjs\n// DO NOT EDIT — regenerated on every build from @gjsify/adwaita-icons.\n\n:root {\n --icon-edit-paste: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20h%20-2%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%209%20c%200%201.644531%201.355469%203%203%203%20h%208%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-9%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-2%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%20-3%203%20h%201%20v%201%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-1%20h%201%20c%200.570312%200%201%200.429688%201%201%20v%209%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-8%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-9%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-go-down: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201%205%20c%200%20-0.265625%200.105469%20-0.519531%200.292969%20-0.707031%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20l%205.292969%205.292969%20l%205.292969%20-5.292969%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20c%200.1875%200.1875%200.292969%200.441406%200.292969%200.707031%20s%20-0.105469%200.519531%20-0.292969%200.707031%20l%20-6%206%20c%20-0.390625%200.390625%20-1.023437%200.390625%20-1.414062%200%20l%20-6%20-6%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-sidebar-show: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206%2013%20v%20-10%20h%20-3%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208%20c%200%200.550781%200.449219%201%201%201%20z%20m%200%200'%20fill-opacity%3D'0.34902'%2F%3E%20%3Cpath%20d%3D'm%203%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-8%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200%202%20h%203%20v%2010%20h%20-3%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-8%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%204%200%20h%206%20c%200.570312%200%201%200.429688%201%201%20v%208%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-6%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-go-previous: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2012%202%20c%200%20-0.265625%20-0.105469%20-0.519531%20-0.292969%20-0.707031%20c%20-0.390625%20-0.390625%20-1.023437%20-0.390625%20-1.414062%200%20l%20-6%206%20c%20-0.1875%200.1875%20-0.292969%200.441406%20-0.292969%200.707031%20s%200.105469%200.519531%200.292969%200.707031%20l%206%206%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20c%200.1875%20-0.1875%200.292969%20-0.441406%200.292969%20-0.707031%20s%20-0.105469%20-0.519531%20-0.292969%20-0.707031%20l%20-5.292969%20-5.292969%20l%205.292969%20-5.292969%20c%200.1875%20-0.1875%200.292969%20-0.441406%200.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-go-next: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%204%202%20c%200%20-0.265625%200.105469%20-0.519531%200.292969%20-0.707031%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20l%206%206%20c%200.1875%200.1875%200.292969%200.441406%200.292969%200.707031%20s%20-0.105469%200.519531%20-0.292969%200.707031%20l%20-6%206%20c%20-0.390625%200.390625%20-1.023437%200.390625%20-1.414062%200%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20s%200.105469%20-0.519531%200.292969%20-0.707031%20l%205.292969%20-5.292969%20l%20-5.292969%20-5.292969%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-refresh: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207.40625%201%20c%20-0.613281%200.007812%20-1.234375%200.089844%20-1.847656%200.253906%20c%20-3.273438%200.878906%20-5.558594%203.855469%20-5.558594%207.246094%20s%202.285156%206.367188%205.558594%207.242188%20c%203.273437%200.878906%206.742187%20-0.558594%208.4375%20-3.492188%20c%200.277344%20-0.480469%200.109375%20-1.089844%20-0.367188%20-1.367188%20c%20-0.476562%20-0.273437%20-1.089844%20-0.109374%20-1.367187%200.367188%20c%20-1.246094%202.160156%20-3.777344%203.207031%20-6.1875%202.5625%20c%20-2.40625%20-0.644531%20-4.074219%20-2.820312%20-4.074219%20-5.3125%20c%200%20-2.496094%201.667969%20-4.667969%204.074219%20-5.3125%20c%202.410156%20-0.644531%204.941406%200.402344%206.1875%202.5625%20c%200.058593%200.085938%200.125%200.164062%200.203125%200.226562%20l%20-0.019532%200.015626%20l%20-0.007812%200.007812%20h%20-1.4375%20c%20-0.550781%200%20-1%200.449219%20-1%201%20c%200%200%200%201%201%201%20h%205%20v%20-5%20s%200.003906%20-1%20-1%20-1%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%201.6875%20l%20-0.015625%200.011719%20l%20-0.011719%200.011719%20c%20-1.277344%20-2.179688%20-3.53125%20-3.519532%20-5.953125%20-3.691407%20c%20-0.203125%20-0.015625%20-0.40625%20-0.019531%20-0.613281%20-0.019531%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-open-menu: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%201%202%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%201%207%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%201%2012%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-go-home: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200.363281%20c%20-0.5%200%20-1%200.167969%20-1.40625%200.507813%20l%20-4.464844%203.722656%20c%20-0.714844%200.59375%20-1.128906%201.476562%20-1.128906%202.40625%20v%206%20c%200%201.65625%201.34375%203%203%203%20h%208%20c%201.65625%200%203%20-1.34375%203%20-3%20v%20-6%20c%200%20-0.929688%20-0.414062%20-1.8125%20-1.128906%20-2.40625%20l%20-4.464844%20-3.722656%20c%20-0.40625%20-0.339844%20-0.90625%20-0.507813%20-1.40625%20-0.507813%20z%20m%20-0.015625%201.996094%20c%200.050781%20-0.003906%200.101563%200.011719%200.144531%200.046875%20l%204.464844%203.722656%20c%200.257812%200.214844%200.40625%200.535156%200.40625%200.871094%20v%206%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-2%20v%20-5%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20h%20-2%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%205%20h%20-2%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20v%20-6%20c%200%20-0.335938%200.148438%20-0.65625%200.40625%20-0.871094%20l%204.464844%20-3.722656%20c%200.035156%20-0.027344%200.074218%20-0.042969%200.113281%20-0.046875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-list-add: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207%201%20v%206%20h%20-6%20v%202%20h%206%20v%206%20h%202%20v%20-6%20h%206%20v%20-2%20h%20-6%20v%20-6%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-network-wireless: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201.992188%20c%20-2.617188%200%20-5.238281%200.933593%20-7.195312%202.808593%20l%20-0.496094%200.480469%20c%20-0.3984378%200.378906%20-0.410156%201.011719%20-0.03125%201.410156%20c%200.382812%200.398438%201.015625%200.410156%201.414062%200.03125%20l%200.5%20-0.476562%20c%203.085938%20-2.957032%208.53125%20-2.957032%2011.617188%200%20l%200.5%200.476562%20c%200.398437%200.378906%201.03125%200.367188%201.414062%20-0.03125%20c%200.378906%20-0.398437%200.367188%20-1.03125%20-0.03125%20-1.410156%20l%20-0.496094%20-0.484375%20c%20-1.957031%20-1.871094%20-4.578124%20-2.804687%20-7.195312%20-2.804687%20z%20m%20-0.03125%204.007812%20c%20-1.570312%200.011719%20-3.128906%200.628906%20-4.207031%201.8125%20l%20-0.5%200.550781%20c%20-0.179688%200.195313%20-0.277344%200.453125%20-0.261719%200.71875%20c%200.011719%200.265625%200.128906%200.515625%200.328125%200.695313%20c%200.195313%200.179687%200.453125%200.273437%200.71875%200.257812%20c%200.265625%20-0.011718%200.515625%20-0.128906%200.695313%20-0.328125%20l%200.496093%20-0.546875%20c%201.277344%20-1.402344%204.160157%20-1.496094%205.523438%200.003906%20l%200.5%200.542969%20c%200.175781%200.199219%200.425781%200.316407%200.691406%200.328125%20c%200.265625%200.015625%200.523437%20-0.078125%200.722656%20-0.257812%20c%200.195313%20-0.179688%200.3125%20-0.429688%200.324219%20-0.695313%20c%200.011719%20-0.261719%20-0.082031%20-0.523437%20-0.261719%20-0.71875%20l%20-0.5%20-0.546875%20c%20-1.121093%20-1.234375%20-2.703125%20-1.828125%20-4.269531%20-1.816406%20z%20m%200.03125%204%20c%20-0.511719%200%20-1.023438%200.195312%20-1.414062%200.585938%20c%20-0.78125%200.78125%20-0.78125%202.046874%200%202.828124%20s%202.046874%200.78125%202.828124%200%20s%200.78125%20-2.046874%200%20-2.828124%20c%20-0.390624%20-0.390626%20-0.902343%20-0.585938%20-1.414062%20-0.585938%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202.96875%201.003906%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644532%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355468%203%20-3%20v%20-6%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-3.585938%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%202%20h%203.585938%20l%201%201%20h%20-5.585938%20c%200%20-0.5625%200.4375%20-1%201%20-1%20z%20m%20-1%202%20h%2011%20c%200.5625%200%201%200.4375%201%201%20v%206%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-10%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-starred: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.429688%200%20-0.8125%200.273438%20-0.949219%200.683594%20l%20-1.449219%204.339844%20l%20-4.589843%20-0.015626%20c%20-0.980469%20-0.003906%20-1.382813%201.257813%20-0.582031%201.820313%20l%203.625%202.554687%20l%20-1.5%204.285157%20c%20-0.316407%200.902343%200.6875%201.691406%201.492187%201.171875%20l%204.003906%20-2.59375%20l%203.894531%202.585937%20c%200.800782%200.53125%201.816407%20-0.257812%201.5%20-1.160156%20l%20-1.503906%20-4.289063%20l%203.644532%20-2.578124%20c%200.789062%20-0.5625%200.394531%20-1.808594%20-0.574219%20-1.8125%20l%20-4.660157%20-0.015626%20l%20-1.402343%20-4.285156%20c%20-0.132813%20-0.410156%20-0.515625%20-0.68749975%20-0.949219%20-0.691406%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-system-search: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-3.578125%200%20-6.5%202.921875%20-6.5%206.5%20s%202.921875%206.496094%206.5%206.496094%20c%201.429688%200%202.753906%20-0.464844%203.828125%20-1.253906%20l%202.945313%202.945312%20c%200.957031%200.9375%202.363281%20-0.5%201.40625%20-1.4375%20l%20-2.929688%20-2.929688%20c%200.785156%20-1.074218%201.25%20-2.394531%201.25%20-3.820312%20c%200%20-3.578125%20-2.921875%20-6.5%20-6.5%20-6.5%20z%20m%200%202%20c%202.496094%200%204.5%202.003906%204.5%204.5%20s%20-2.003906%204.496094%20-4.5%204.496094%20s%20-4.5%20-2%20-4.5%20-4.496094%20s%202.003906%20-4.5%204.5%20-4.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-contact-new: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.65625%200%20-3%201.34375%20-3%203%20s%201.34375%203%203%203%20s%203%20-1.34375%203%20-3%20s%20-1.34375%20-3%20-3%20-3%20z%20m%20-1.5%207%20c%20-2.492188%200%20-4.5%202.007812%20-4.5%204.5%20v%200.5%20c%200%201.109375%200.890625%202%202%202%20h%206%20v%20-1%20h%20-3%20v%20-4%20h%203%20v%20-1.972656%20c%20-0.164062%20-0.019532%20-0.332031%20-0.027344%20-0.5%20-0.027344%20z%20m%204.5%200%20v%203%20h%20-3%20v%202%20h%203%20v%203%20h%202%20v%20-3%20h%203%20v%20-2%20h%20-3%20v%20-3%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-unread: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%203%202%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%206%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-6%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200.800781%202%20h%208.394531%20l%20-3.917968%202.613281%20c%20-0.171875%200.113281%20-0.382813%200.113281%20-0.554688%200%20z%20m%20-1.800781%201.203125%20l%204.613281%203.074219%20c%200.835938%200.558594%201.9375%200.558594%202.773438%200%20l%204.613281%20-3.074219%20v%205.796875%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-10%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-avatar-default: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.65625%200%20-3%201.34375%20-3%203%20s%201.34375%203%203%203%20s%203%20-1.34375%203%20-3%20s%20-1.34375%20-3%20-3%20-3%20z%20m%20-1.5%207%20c%20-2.492188%200%20-4.5%202.007812%20-4.5%204.5%20v%200.5%20c%200%201.109375%200.890625%202%202%202%20h%208%20c%201.109375%200%202%20-0.890625%202%20-2%20v%20-0.5%20c%200%20-2.492188%20-2.007812%20-4.5%20-4.5%20-4.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-camera-photo: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-0.265625%200%20-0.519531%200.105469%20-0.707031%200.292969%20l%20-1.707031%201.707031%20h%20-1.085938%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%207%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-7%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-1.085938%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200.414062%202%20h%202.171876%20l%201.707031%201.707031%20c%200.1875%200.1875%200.441406%200.292969%200.707031%200.292969%20h%201.5%20c%200.570312%200%201%200.429688%201%201%20v%207%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-10%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-7%20c%200%20-0.570312%200.429688%20-1%201%20-1%20h%201.5%20c%200.265625%200%200.519531%20-0.105469%200.707031%20-0.292969%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%208%204%20c%20-2.199219%200%20-4%201.800781%20-4%204%20s%201.800781%204%204%204%20s%204%20-1.800781%204%20-4%20s%20-1.800781%20-4%20-4%20-4%20z%20m%200%202%20c%201.117188%200%202%200.882812%202%202%20s%20-0.882812%202%20-2%202%20s%20-2%20-0.882812%20-2%20-2%20s%200.882812%20-2%202%20-2%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-user-trash: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-1.378906%200%20-2.5%201.121094%20-2.5%202.5%20v%200.5%20h%20-3%20c%20-0.550781%200%20-1%200.449219%20-1%201%20s%200.449219%201%201%201%20h%201%20v%208%20c%200%201.65625%201.34375%203%203%203%20h%206%20c%201.65625%200%203%20-1.34375%203%20-3%20v%20-8%20h%201%20c%200.550781%200%201%20-0.449219%201%20-1%20s%20-0.449219%20-1%20-1%20-1%20h%20-3.023438%20v%20-0.5%20c%200%20-1.378906%20-1.117187%20-2.5%20-2.5%20-2.5%20z%20m%200%202%20h%202.976562%20c%200.289063%200%200.5%200.210938%200.5%200.5%20v%200.5%20h%20-3.976562%20v%20-0.5%20c%200%20-0.289062%200.210938%20-0.5%200.5%20-0.5%20z%20m%20-2.5%203%20h%208%20v%208%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-6%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%207%207%20v%205%20c%200%200.277344%20-0.222656%200.5%20-0.5%200.5%20s%20-0.5%20-0.222656%20-0.5%20-0.5%20v%20-5%20c%200%20-0.277344%200.222656%20-0.5%200.5%20-0.5%20s%200.5%200.222656%200.5%200.5%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%2010%207%20v%205%20c%200%200.277344%20-0.222656%200.5%20-0.5%200.5%20s%20-0.5%20-0.222656%20-0.5%20-0.5%20v%20-5%20c%200%20-0.277344%200.222656%20-0.5%200.5%20-0.5%20s%200.5%200.222656%200.5%200.5%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-view-reveal: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%202%20c%20-3.648438%200.003906%20-6.832031%202.476562%20-7.738281%206.007812%20c%200.914062%203.527344%204.097656%205.988282%207.738281%205.992188%20c%203.648438%20-0.003906%206.832031%20-2.476562%207.738281%20-6.011719%20c%20-0.914062%20-3.523437%20-4.097656%20-5.984375%20-7.738281%20-5.988281%20z%20m%200%202%20c%202.210938%200%204%201.789062%204%204%20s%20-1.789062%204%20-4%204%20s%20-4%20-1.789062%20-4%20-4%20s%201.789062%20-4%204%20-4%20z%20m%200%202%20c%20-1.105469%200%20-2%200.894531%20-2%202%20s%200.894531%202%202%202%20s%202%20-0.894531%202%20-2%20s%20-0.894531%20-2%20-2%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-conceal: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201.53125%200.46875%20l%20-1.0625%201.0625%20l%2014%2014%20l%201.0625%20-1.0625%20l%20-2.382812%20-2.382812%20c%201.265624%20-1.0625%202.171874%20-2.496094%202.589843%20-4.097657%20c%20-0.914062%20-3.523437%20-4.097656%20-5.984375%20-7.738281%20-5.988281%20c%20-1.367188%200.011719%20-2.707031%200.371094%20-3.894531%201.042969%20z%20m%206.46875%203.53125%20c%202.210938%200%204%201.789062%204%204%20c%20-0.003906%200.800781%20-0.246094%201.578125%20-0.699219%202.238281%20l%20-1.46875%20-1.46875%20c%200.105469%20-0.242187%200.164063%20-0.503906%200.167969%20-0.769531%20c%200%20-1.105469%20-0.894531%20-2%20-2%20-2%20c%20-0.265625%200.003906%20-0.527344%200.0625%20-0.769531%200.167969%20l%20-1.46875%20-1.46875%20c%200.660156%20-0.453125%201.4375%20-0.695313%202.238281%20-0.699219%20z%20m%20-6.144531%200.917969%20c%20-0.753907%200.898437%20-1.296875%201.957031%20-1.59375%203.09375%20c%200.914062%203.523437%204.097656%205.984375%207.738281%205.988281%20c%200.855469%20-0.007812%201.703125%20-0.152344%202.511719%20-0.425781%20l%20-1.667969%20-1.667969%20c%20-0.277344%200.058594%20-0.5625%200.089844%20-0.84375%200.09375%20c%20-2.210938%200%20-4%20-1.789062%20-4%20-4%20c%200.003906%20-0.28125%200.035156%20-0.566406%200.09375%20-0.84375%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-edit: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2012.277344%200.832031%20c%20-0.578125%200.007813%20-1.167969%200.230469%20-1.691406%200.753907%20l%20-9%209%20c%20-0.375%200.375%20-0.585938%200.882812%20-0.585938%201.414062%20v%203%20h%203%20c%200.53125%200%201.039062%20-0.210938%201.414062%20-0.585938%20l%209%20-9%20c%201.789063%20-1.789062%200.082032%20-4.390624%20-1.890624%20-4.570312%20c%20-0.082032%20-0.011719%20-0.164063%20-0.011719%20-0.246094%20-0.011719%20z%20m%20-1.777344%203.605469%20l%201.0625%201.0625%20l%20-7.0625%207.0625%20l%20-1.0625%20-1.0625%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-open: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%203%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644531%201.355469%203%203%203%20h%208.882812%20c%200.832032%200%201.578126%20-0.402344%202.054688%20-0.9375%20c%200.472656%20-0.53125%200.738281%20-1.167969%200.910156%20-1.800781%20l%200.972656%20-2.609375%20c%200.390626%20-1.449219%20-0.09375%20-2.652344%20-0.820312%20-3.167969%20c%20-0.484375%20-0.34375%20-0.714844%20-0.292969%20-1%20-0.324219%20v%20-1.160156%20c%200%20-0.855469%20-0.558594%20-1.589844%20-1.09375%20-1.828125%20c%20-0.417969%20-0.1875%20-0.808594%20-0.183594%20-0.953125%20-0.171875%20h%20-3.539063%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%202%20h%202.585938%20l%201.707031%201.707031%20c%200.1875%200.1875%200.441406%200.292969%200.707031%200.292969%20h%204%20v%201%20h%20-5%20h%200.039062%20c%20-0.914062%20-0.039062%20-1.746093%200.394531%20-2.1875%200.96875%20c%20-0.714843%201.226562%20-1.160156%202.28125%20-1.800781%203.71875%20c%20-0.171875%200.527344%200.113281%201.09375%200.636719%201.265625%20c%200.527344%200.167969%201.09375%20-0.117187%201.261719%20-0.640625%20c%200.488281%20-1.011719%200.921875%20-1.816406%201.339843%20-2.808594%20c%200.210938%20-0.503906%200.703126%20-0.492187%200.898438%20-0.503906%20h%205.8125%20c%201%200%201.046875%200.703125%200.886719%201.128906%20l%20-0.96875%202.609375%20c%20-0.121094%200.4375%20-0.300781%200.800781%20-0.476563%200.996094%20c%20-0.175781%200.199219%20-0.285156%200.265625%20-0.558594%200.265625%20h%20-8.882812%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-8%20c%200%20-0.570312%200.46875%20-0.792969%201%20-1%20z%20m%209.105469%201.996094%20h%200.003906%20v%200.003906%20h%200.003906%20l%20-0.003906%200.003906%20h%20-0.003906%20v%20-0.003906%20c%20-0.003907%200%20-0.007813%200%20-0.011719%200%20h%20-0.003906%20l%20-0.003906%20-0.003906%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-save: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208.585938%20l%20-1.292969%20-1.292969%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20s%20-0.519531%200.105469%20-0.707031%200.292969%20c%20-0.390625%200.390625%20-0.390625%201.023437%200%201.414062%20l%203%203%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20l%203%20-3%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20s%20-1.023437%20-0.390625%20-1.414062%200%20l%20-1.292969%201.292969%20v%20-8.585938%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%20-7%2014%20v%202%20h%2014%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-send: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.257812%200%20-0.511719%200.0976562%20-0.707031%200.292969%20l%20-1.25%201.25%20l%20-1.761719%201.730469%20c%20-0.191406%200.199218%20-0.28125%200.441406%20-0.28125%200.75%20c%200%200.976562%201%201%201%201%20c%200.257812%200%200.527344%20-0.128907%200.71875%20-0.3125%20l%201.28125%20-1.28125%20v%203.570312%20s%200%201%201%201%20s%201%20-1%201%20-1%20v%20-3.570312%20l%201.28125%201.28125%20c%200.191406%200.183593%200.410156%200.3125%200.71875%200.3125%20c%200%200%201%20-0.023438%201%20-1%20c%200%20-0.308594%20-0.089844%20-0.550782%20-0.28125%20-0.75%20l%20-1.761719%20-1.730469%20l%20-1.25%20-1.25%20c%20-0.195312%20-0.1953128%20-0.449219%20-0.292969%20-0.707031%20-0.292969%20z%20m%20-5%209%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%204%20h%202%20v%20-3.800781%20l%204.613281%203.078125%20c%200.835938%200.558594%201.9375%200.558594%202.773438%200%20l%204.613281%20-3.078125%20v%203.800781%20h%202%20v%20-4%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200.800781%202%20h%208.398438%20l%20-3.921875%202.613281%20c%20-0.171875%200.113281%20-0.382813%200.113281%20-0.554688%200%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-reply-sender: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%205%202%20c%20-0.265625%200%20-0.519531%200.105469%20-0.707031%200.292969%20l%20-4%204%20c%20-0.3906252%200.390625%20-0.3906252%201.023437%200%201.414062%20l%204%204%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20s%200.390625%20-1.023437%200%20-1.414062%20l%20-2.292969%20-2.292969%20h%208.585938%20c%201.117188%200%202%200.882812%202%202%20v%203%20c%200%200.550781%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20v%20-3%20c%200%20-0.023438%200%20-0.046875%20-0.003906%20-0.070312%20c%20-0.035156%20-2.164063%20-1.820313%20-3.929688%20-3.996094%20-3.929688%20h%20-8.585938%20l%202.292969%20-2.292969%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder-download: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207.984375%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208.585938%20l%20-2.292969%20-2.292969%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20s%20-0.519531%200.105469%20-0.707031%200.292969%20c%20-0.390625%200.390625%20-0.390625%201.023437%200%201.414062%20l%204%204%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20l%204%20-4%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20s%20-1.023437%20-0.390625%20-1.414062%200%20l%20-2.292969%202.292969%20v%20-8.585938%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%20-6%2014%20v%202%20h%2012%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-grid: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%208%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%20-8%208%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%208%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-list: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%202%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-2%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%201%20v%202%20h%208%20v%20-2%20z%20m%20-5%204.015625%20c%20-0.554688%200%20-1%200.445313%20-1%201%20v%201.980469%20c%200%200.550781%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.449219%201%20-1%20v%20-1.980469%20c%200%20-0.554687%20-0.445312%20-1%20-1%20-1%20z%20m%205%200.984375%20v%202%20h%208%20v%20-2%20z%20m%20-5%204%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%201.980469%20c%200%200.550781%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.449219%201%20-1%20v%20-1.980469%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200.984375%20v%202%20h%208%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-columns: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-list-remove: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201%207%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-send-to: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.257812%200%20-0.511719%200.0976562%20-0.707031%200.292969%20l%20-1.246094%201.25%20l%20-1.765625%201.730469%20c%20-0.191406%200.199218%20-0.28125%200.441406%20-0.28125%200.75%20c%200%200.976562%201%201%201%201%20c%200.257812%200%200.527344%20-0.128907%200.71875%20-0.3125%20l%201.28125%20-1.28125%20v%207.570312%20s%200%201%201%201%20s%201%20-1%201%20-1%20v%20-7.570312%20l%201.28125%201.28125%20c%200.191406%200.183593%200.410156%200.3125%200.71875%200.3125%20c%200%200%201%20-0.023438%201%20-1%20c%200%20-0.308594%20-0.089844%20-0.550782%20-0.28125%20-0.75%20l%20-1.765625%20-1.730469%20l%20-1.246094%20-1.25%20c%20-0.195312%20-0.1953128%20-0.449219%20-0.292969%20-0.707031%20-0.292969%20z%20m%20-3.96875%206.964844%20c%20-1.660156%20-0.027344%20-3.03125%201.371094%20-3.03125%203.035156%20v%202.972656%20c%200%201.664063%201.371094%203.035156%203.03125%203.035156%20h%207.9375%20c%201.664062%200%203.03125%20-1.371093%203.03125%20-3.035156%20v%20-2.972656%20c%200%20-1.664062%20-1.367188%20-3.0625%20-3.03125%20-3.035156%20l%20-1.96875%200.035156%20v%202%20l%201.96875%20-0.035156%20c%200.589844%20-0.007813%201.03125%200.445312%201.03125%201.035156%20v%202.972656%20c%200%200.589844%20-0.441406%201.035156%20-1.03125%201.035156%20h%20-7.9375%20c%20-0.585938%200%20-1.03125%20-0.445312%20-1.03125%20-1.035156%20v%20-2.972656%20c%200%20-0.589844%200.445312%20-1.042969%201.03125%20-1.035156%20l%201.96875%200.035156%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder-music: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%204.339844%20c%20-0.457031%20-0.214844%20-0.964844%20-0.339844%20-1.5%20-0.339844%20c%20-1.921875%200%20-3.5%201.578125%20-3.5%203.5%20s%201.578125%203.5%203.5%203.5%20c%201.914062%200%203.492188%20-1.570312%203.5%20-3.484375%20c%200%20-0.003906%200%20-0.011719%200%20-0.015625%20v%20-7.5%20c%200%20-0.5625%200.4375%20-1%201%20-1%20h%204%20c%200.5625%200%201%200.4375%201%201%20v%204.339844%20c%20-0.457031%20-0.214844%20-0.964844%20-0.339844%20-1.5%20-0.339844%20c%20-1.921875%200%20-3.5%201.578125%20-3.5%203.5%20s%201.578125%203.5%203.5%203.5%20s%203.5%20-1.578125%203.5%20-3.5%20v%20-7.5%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%20-4.5%209%20c%200.839844%200%201.5%200.660156%201.5%201.5%20v%200.015625%20c%20-0.007812%200.832031%20-0.664062%201.484375%20-1.5%201.484375%20c%20-0.839844%200%20-1.5%20-0.660156%20-1.5%20-1.5%20s%200.660156%20-1.5%201.5%20-1.5%20z%20m%208%200%20c%200.839844%200%201.5%200.660156%201.5%201.5%20s%20-0.660156%201.5%20-1.5%201.5%20s%20-1.5%20-0.660156%20-1.5%20-1.5%20s%200.660156%20-1.5%201.5%20-1.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-edit-copy: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%200%203%20c%200%20-1.644531%201.355469%20-3%203%20-3%20h%205%20c%201.644531%200%203%201.355469%203%203%20c%200%200.550781%20-0.449219%201%20-1%201%20s%20-1%20-0.449219%20-1%20-1%20c%200%20-0.570312%20-0.429688%20-1%20-1%20-1%20h%20-5%20c%20-0.570312%200%20-1%200.429688%20-1%201%20v%205%20c%200%200.570312%200.429688%201%201%201%20c%200.550781%200%201%200.449219%201%201%20s%20-0.449219%201%20-1%201%20c%20-1.644531%200%20-3%20-1.355469%20-3%20-3%20z%20m%205%205%20c%200%20-1.644531%201.355469%20-3%203%20-3%20h%205%20c%201.644531%200%203%201.355469%203%203%20v%205%20c%200%201.644531%20-1.355469%203%20-3%203%20h%20-5%20c%20-1.644531%200%20-3%20-1.355469%20-3%20-3%20z%20m%202%200%20v%205%20c%200%200.570312%200.429688%201%201%201%20h%205%20c%200.570312%200%201%20-0.429688%201%20-1%20v%20-5%20c%200%20-0.570312%20-0.429688%20-1%20-1%20-1%20h%20-5%20c%20-0.570312%200%20-1%200.429688%20-1%201%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-emblem-system: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%200.238281%20c%200%200.464844%20-0.378906%200.902344%20-0.820312%201.046875%20c%20-0.023438%200.007813%20-0.042969%200.011719%20-0.0625%200.019532%20c%20-0.445313%200.148437%20-1.007813%200.015624%20-1.28125%20-0.359376%20l%20-0.140626%20-0.195312%20c%20-0.15625%20-0.214844%20-0.390624%20-0.359375%20-0.652343%20-0.398438%20c%20-0.261719%20-0.042968%20-0.53125%200.019532%20-0.742188%200.175782%20c%20-0.449219%200.324218%20-0.550781%200.949218%20-0.222656%201.398437%20l%200.140625%200.199219%20c%200.277344%200.375%200.226562%200.953125%20-0.050781%201.328125%20c%20-0.011719%200.015625%20-0.023438%200.035156%20-0.035157%200.050781%20c%20-0.273437%200.378906%20-0.804687%200.601563%20-1.25%200.457032%20l%20-0.230468%20-0.074219%20c%20-0.523438%20-0.171875%20-1.089844%200.117187%20-1.257813%200.640625%20c%20-0.171875%200.527344%200.113281%201.089844%200.640625%201.261718%20l%200.222656%200.074219%20c%200.445313%200.144531%200.738282%200.636719%200.75%201.101563%20v%200.070312%20c%200.015626%200.464844%20-0.304687%200.960938%20-0.746093%201.105469%20l%20-0.226563%200.070313%20c%20-0.527344%200.171874%20-0.8125%200.738281%20-0.640625%201.261718%20c%200.167969%200.523438%200.734375%200.8125%201.257813%200.640625%20l%200.230468%20-0.074219%20c%200.445313%20-0.144531%200.976563%200.078126%201.25%200.457032%20c%200.011719%200.015625%200.027344%200.035156%200.039063%200.050781%20c%200.277344%200.375%200.324219%200.953125%200.050781%201.328125%20l%20-0.144531%200.203125%20c%20-0.324219%200.445313%20-0.226563%201.070313%200.222656%201.394531%20c%200.445313%200.324219%201.070313%200.226563%201.394531%20-0.21875%20l%200.144532%20-0.199218%20c%200.273437%20-0.378907%200.835937%20-0.507813%201.277344%20-0.359376%20c%200.019531%200.007813%200.042968%200.011719%200.0625%200.019532%20c%200.445312%200.140625%200.820312%200.578125%200.820312%201.046875%20v%200.238281%20c%200%200.550781%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20v%20-0.238281%20c%200%20-0.46875%200.378906%20-0.90625%200.820312%20-1.046875%20c%200.023438%20-0.007813%200.042969%20-0.015625%200.066407%20-0.023438%20c%200.441406%20-0.144531%201.003906%20-0.015625%201.277343%200.363282%20l%200.144532%200.199218%20c%200.324218%200.445313%200.949218%200.542969%201.394531%200.21875%20c%200.445313%20-0.324218%200.546875%20-0.949218%200.222656%20-1.394531%20l%20-0.148437%20-0.203125%20c%20-0.273438%20-0.375%20-0.226563%20-0.953125%200.050781%20-1.328125%20c%200.015625%20-0.015625%200.027344%20-0.035156%200.039063%20-0.050781%20c%200.273437%20-0.378906%200.804687%20-0.601563%201.25%20-0.457032%20l%200.234374%200.078126%20c%200.523438%200.167968%201.085938%20-0.121094%201.257813%20-0.644532%20c%200.171875%20-0.523437%20-0.117187%20-1.089844%20-0.640625%20-1.257812%20l%20-0.230469%20-0.074219%20c%20-0.445312%20-0.144531%20-0.734375%20-0.640625%20-0.746093%20-1.105469%20c%200%20-0.023437%200%20-0.046875%200%20-0.070312%20c%20-0.015626%20-0.464844%200.300781%20-0.957032%200.746093%20-1.101563%20l%200.230469%20-0.074219%20c%200.523438%20-0.171874%200.8125%20-0.734374%200.640625%20-1.261718%20c%20-0.171875%20-0.523438%20-0.734375%20-0.8125%20-1.257813%20-0.640625%20l%20-0.230468%200.074219%20c%20-0.445313%200.144531%20-0.980469%20-0.078126%20-1.253906%20-0.457032%20c%20-0.011719%20-0.015625%20-0.023438%20-0.035156%20-0.035157%20-0.050781%20c%20-0.277343%20-0.375%20-0.324219%20-0.953125%20-0.050781%20-1.328125%20l%200.144531%20-0.199219%20c%200.324219%20-0.445312%200.226563%20-1.074219%20-0.222656%20-1.398437%20c%20-0.214844%20-0.15625%20-0.480469%20-0.21875%20-0.742187%20-0.179688%20c%20-0.265626%200.042969%20-0.5%200.1875%20-0.652344%200.402344%20l%20-0.144532%200.195312%20c%20-0.273437%200.378907%20-0.835937%200.507813%20-1.28125%200.363282%20c%20-0.019531%20-0.007813%20-0.039062%20-0.015625%20-0.0625%20-0.023438%20c%20-0.441406%20-0.140625%20-0.820312%20-0.578125%20-0.820312%20-1.046875%20v%20-0.238281%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%200%204%20c%200.871094%200%201.675781%200.273438%202.332031%200.742188%20c%200.003907%200.007812%200.011719%200.015624%200.019531%200.023437%20c%200.011719%200.003906%200.019532%200.007813%200.03125%200.015625%20c%200.660157%200.484375%201.160157%201.171875%201.421876%201.976562%20v%200.007813%20s%200.003906%200.003906%200.003906%200.007813%20c%200.292968%200.851562%200.15625%201.65625%200%202.457031%20c%200%200%20-0.003906%200.003906%20-0.003906%200.007812%20v%200.003907%20c%20-0.261719%200.800781%20-0.757813%201.488281%20-1.414063%201.976562%20c%20-0.015625%200.003906%20-0.027344%200.011719%20-0.039063%200.019531%20c%20-0.007812%200.003907%20-0.015624%200.011719%20-0.019531%200.019531%20c%20-0.65625%200.46875%20-1.460937%200.742188%20-2.332031%200.742188%20c%20-0.855469%200%20-1.644531%20-0.265625%20-2.289062%20-0.714844%20c%20-0.019532%20-0.015625%20-0.042969%20-0.035156%20-0.0625%20-0.046875%20c%20-0.011719%20-0.007812%20-0.023438%20-0.015625%20-0.035157%20-0.019531%20c%20-0.652343%20-0.484375%20-1.148437%20-1.160156%20-1.40625%20-1.945312%20c%20-0.003906%20-0.015626%20-0.007812%20-0.023438%20-0.011719%20-0.035157%20c%20-0.003906%20-0.007812%20-0.007812%20-0.015625%20-0.011718%20-0.019531%20c%20-0.285156%20-0.847656%20-0.148438%20-1.644531%200%20-2.4375%20c%200.003906%20-0.007812%200.007812%20-0.011719%200.011718%20-0.019531%20c%200.003907%20-0.011719%200.007813%20-0.023438%200.011719%20-0.039063%20c%200.261719%20-0.785156%200.757813%20-1.460937%201.414063%20-1.945312%20c%200.007812%20-0.003906%200.019531%20-0.007813%200.027344%20-0.015625%20c%200.019531%20-0.011719%200.042968%20-0.03125%200.058593%20-0.046875%20c%200.648438%20-0.449219%201.4375%20-0.714844%202.292969%20-0.714844%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-preferences-system: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2013.855469%200%20l%20-1.539063%201.4375%20c%20-0.453125%200.421875%20-0.53125%201.148438%20-0.269531%201.707031%20l%20-5.886719%205.996094%20c%20-0.011718%200%20-0.019531%200%20-0.03125%200%20c%20-0.257812%20-0.128906%20-0.550781%20-0.183594%20-0.839844%20-0.148437%20c%20-0.328124%200.046874%20-0.632812%200.199218%20-0.867187%200.441406%20l%20-3.945313%203.996094%20c%20-0.3906245%200.375%20-0.5468745%200.933593%20-0.4062495%201.457031%20c%200.1406255%200.523437%200.5546875%200.929687%201.0820315%201.058593%20c%200.527344%200.132813%201.082031%20-0.03125%201.453125%20-0.425781%20l%203.945312%20-3.996093%20c%200.472657%20-0.453126%200.59375%20-1.15625%200.296875%20-1.738282%20l%205.890625%20-5.964844%20c%200.558594%200.25%201.273438%200.148438%201.707031%20-0.289062%20l%201.414063%20-1.5625%20z%20m%20-10.308594%200.0898438%20c%20-0.398437%200%20-0.785156%200.0937502%20-1.140625%200.2187502%20l%201.882812%201.878906%20c%200.390626%200.382812%200.390626%201%200%201.386719%20l%20-0.710937%200.707031%20c%20-0.386719%200.386719%20-1%200.386719%20-1.390625%200%20l%20-1.882812%20-1.878906%20c%20-0.125%200.355468%20-0.2187505%200.742187%20-0.2187505%201.140625%20c%200%201.90625%201.5507815%203.453125%203.4609375%203.453125%20c%200.402344%200%200.789063%20-0.09375%201.144531%20-0.21875%20l%201.175782%201.171875%20h%200.058593%20l%202.070313%20-2.0625%20l%20-1.203125%20-1.203125%20c%200.125%20-0.359375%200.214843%20-0.742188%200.214843%20-1.140625%20c%200%20-1.90625%20-1.546874%20-3.4531252%20-3.460937%20-3.4531252%20z%20m%206.550781%207.8906252%20l%20-2.070312%202.066406%20c%200.011718%200.027344%200.023437%200.058594%200.03125%200.089844%20l%201.144531%201.140625%20c%20-0.125%200.355468%20-0.21875%200.742187%20-0.21875%201.140625%20c%200%201.902343%201.550781%203.449219%203.460937%203.449219%20c%200.433594%200%200.855469%20-0.101563%201.238282%20-0.246094%20l%20-2.007813%20-2%20c%20-0.386719%20-0.386719%20-0.386719%20-1.035156%200%20-1.417969%20l%200.679688%20-0.679687%20c%200.195312%20-0.191407%200.457031%20-0.308594%200.710937%20-0.308594%20s%200.515625%200.117187%200.710938%200.308594%20l%201.945312%201.941406%20c%200.105469%20-0.328125%200.183594%20-0.683594%200.183594%20-1.046875%20c%200%20-1.90625%20-1.546875%20-3.453125%20-3.460938%20-3.453125%20c%20-0.398437%200%20-0.785156%200.09375%20-1.140624%200.21875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-application-x-executable: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208.015625%200.015625%20c%20-0.769531%200%20-1.539063%200.292969%20-2.121094%200.875%20l%20-5.003906%205.003906%20c%20-1.164063%201.164063%20-1.164063%203.078125%200%204.242188%20l%205.003906%205.003906%20c%201.164063%201.164063%203.078125%201.164063%204.242188%200%20l%205.007812%20-5.003906%20c%201.164063%20-1.164063%201.164063%20-3.078125%200%20-4.242188%20l%20-5.007812%20-5.003906%20c%20-0.582031%20-0.582031%20-1.351563%20-0.875%20-2.121094%20-0.875%20z%20m%200.101563%201.988281%20c%200.210937%200.023438%200.414062%200.117188%200.585937%200.28125%20l%20-0.339844%200.113282%20c%20-0.074219%20-0.136719%20-0.15625%20-0.269532%20-0.246093%20-0.394532%20z%20m%20-1.570313%201.058594%20c%200.300781%200.421875%200.464844%200.929688%200.46875%201.453125%20c%200%201.378906%20-1.121094%202.5%20-2.5%202.5%20c%20-0.523437%20-0.003906%20-1.03125%20-0.171875%20-1.449219%20-0.472656%20z%20m%203.441406%200.503906%20l%203.742188%203.742188%20c%200.402343%200.402344%200.402343%201.011718%200%201.414062%20l%20-0.253907%200.25%20c%20-0.039062%20-0.046875%20-0.074218%20-0.09375%20-0.117187%20-0.140625%20l%200.621094%20-0.855469%20l%20-0.808594%20-0.585937%20l%20-0.621094%200.851563%20c%20-0.167969%20-0.078126%20-0.347656%20-0.136719%20-0.535156%20-0.175782%20v%20-1.050781%20h%20-1%20v%201.050781%20c%20-0.183594%200.039063%20-0.363281%200.097656%20-0.53125%200.175782%20l%20-0.621094%20-0.851563%20l%20-0.804687%200.585937%20l%200.617187%200.855469%20c%20-0.125%200.136719%20-0.238281%200.289063%20-0.332031%200.453125%20l%20-1%20-0.324218%20l%20-0.308594%200.949218%20l%201%200.324219%20c%20-0.011718%200.09375%20-0.019531%200.1875%20-0.019531%200.28125%20s%200.007813%200.1875%200.019531%200.28125%20l%20-1%200.324219%20l%200.308594%200.949218%20l%201%20-0.324218%20c%200.09375%200.164062%200.207031%200.316406%200.332031%200.453125%20l%20-0.617187%200.855469%20l%200.195312%200.140624%20l%20-0.53125%200.53125%20c%20-0.402344%200.40625%20-1.011718%200.40625%20-1.414062%200%20l%20-4.902344%20-4.902343%20l%200.027344%20-0.039063%20l%200.210937%20-0.289062%20c%200.328125%200.152344%200.679688%200.269531%201.046875%200.339844%20v%201.179687%20h%201.648438%20v%20-1.179687%20c%200.363281%20-0.070313%200.714844%20-0.1875%201.046875%20-0.339844%20l%200.207031%200.289062%20l%200.484375%200.667969%20l%201.335937%20-0.972656%20l%20-0.484374%20-0.667969%20l%20-0.210938%20-0.289062%20c%200.25%20-0.269532%200.46875%20-0.566407%200.648438%20-0.890626%20l%200.339843%200.113282%20l%200.785157%200.253906%20l%200.507812%20-1.566406%20l%20-0.785156%20-0.257813%20l%20-0.335938%20-0.109375%20c%200.019532%20-0.179687%200.035156%20-0.363281%200.035156%20-0.550781%20s%20-0.015624%20-0.371094%20-0.035156%20-0.550781%20l%200.335938%20-0.109375%20l%200.785156%20-0.257813%20z%20m%201.527344%205.449219%20c%200.527344%200%200.984375%200.265625%201.25%200.667969%20l%20-2.078125%202.082031%20c%20-0.40625%20-0.269531%20-0.671875%20-0.722656%20-0.671875%20-1.25%20c%200%20-0.835937%200.667969%20-1.5%201.5%20-1.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3Cpath%20d%3D'm%204.039062%20-18.988281%20c%20-1.449218%200%20-2.679687%201.046875%20-2.964843%202.421875%20c%20-0.019531%200.097656%20-0.035157%200.199218%20-0.046875%200.300781%20c%20-0.007813%200.101563%20-0.015625%200.203125%20-0.015625%200.304687%20v%207.910157%20c%200%201.660156%201.367187%203.027343%203.027343%203.027343%20h%207.949219%20c%201.660157%200%203.027344%20-1.367187%203.027344%20-3.027343%20v%20-7.910157%20c%200%20-0.105468%20-0.003906%20-0.207031%20-0.015625%20-0.304687%20c%20-0.011719%20-0.101563%20-0.027344%20-0.203125%20-0.046875%20-0.300781%20c%20-0.285156%20-1.375%20-1.511719%20-2.421875%20-2.964844%20-2.421875%20z%20m%200%202.003906%20h%202.976563%20v%203%20h%20-2.976563%20c%20-0.585937%200%20-1.027343%20-0.441406%20-1.027343%20-1.027344%20v%20-0.949219%20c%200.003906%20-0.035156%200.003906%20-0.070312%200.007812%20-0.105468%20c%200.003907%20-0.035156%200.007813%20-0.070313%200.011719%20-0.105469%20c%200.007812%20-0.035156%200.019531%20-0.066406%200.027344%20-0.097656%20c%200.125%20-0.421875%200.503906%20-0.714844%200.980468%20-0.714844%20z%20m%204.976563%200%20h%202.972656%20c%200.585938%200%201.023438%200.4375%201.027344%201.023437%20v%200.949219%20c%200%200.585938%20-0.441406%201.027344%20-1.027344%201.027344%20h%20-2.972656%20z%20m%204%203.71875%20v%205.214844%20c%200%200.585937%20-0.441406%201.027343%20-1.027344%201.027343%20h%20-7.949219%20c%20-0.585937%200%20-1.027343%20-0.441406%20-1.027343%20-1.027343%20v%20-5.175781%20c%200.324219%200.148437%200.671875%200.246093%201.027343%200.246093%20h%202.976563%20v%203.035157%20l%202%200.992187%20v%20-4.027344%20h%202.972656%20c%200.34375%200%200.695313%20-0.113281%201.027344%20-0.285156%20z%20m%20-5%2033.28125%20c%20-0.851563%200%20-1.699219%200.328125%20-2.351563%200.976563%20l%20-4.671874%204.671874%20c%20-1.300782%201.300782%20-1.300782%203.402344%200%204.703126%20l%204.671874%204.671874%20c%201.300782%201.300782%203.402344%201.300782%204.699219%200%20l%204.675781%20-4.671874%20c%201.300782%20-1.300782%201.300782%20-3.402344%200%20-4.703126%20l%20-4.675781%20-4.671874%20c%20-0.648437%20-0.648438%20-1.496093%20-0.976563%20-2.347656%20-0.976563%20z%20m%200%201.984375%20c%200.335937%200%200.675781%200.132812%200.941406%200.402344%20l%203.03125%203.027344%20c%20-0.066406%200.039062%20-0.136719%200.070312%20-0.210937%200.09375%20c%20-0.019532%200.003906%20-0.039063%200.011718%20-0.0625%200.015624%20c%20-0.441406%200.148438%20-1.003906%200.019532%20-1.277344%20-0.359374%20l%20-0.140625%20-0.195313%20c%20-0.15625%20-0.210937%20-0.390625%20-0.355469%20-0.652344%20-0.398437%20c%20-0.066406%20-0.011719%20-0.132812%20-0.015626%20-0.199219%20-0.011719%20c%20-0.195312%200.007812%20-0.382812%200.074219%20-0.542968%200.191406%20c%20-0.449219%200.324219%20-0.550782%200.949219%20-0.226563%201.394531%20l%200.144531%200.199219%20c%200.273438%200.378906%200.226563%200.953125%20-0.050781%201.332031%20c%20-0.011719%200.015625%20-0.023437%200.03125%20-0.035156%200.050782%20c%20-0.273437%200.378906%20-0.808594%200.597656%20-1.253906%200.453124%20l%20-0.226563%20-0.074218%20c%20-0.523437%20-0.167969%20-1.089844%200.117187%20-1.257812%200.644531%20c%20-0.171875%200.523437%200.113281%201.089844%200.636718%201.261719%20l%200.226563%200.070312%20c%200.445313%200.144532%200.738281%200.640625%200.746094%201.105469%20c%200.003906%200.023437%200.003906%200.042969%200.003906%200.066406%20c%200.015625%200.464844%20-0.304687%200.960938%20-0.75%201.105469%20l%20-0.226563%200.074219%20c%20-0.179687%200.058593%20-0.332031%200.164062%20-0.445312%200.296875%20l%20-3.785156%20-3.785156%20c%20-0.535156%20-0.535157%20-0.535156%20-1.355469%200%20-1.890626%20l%204.667968%20-4.667968%20c%200.269532%20-0.269532%200.609376%20-0.402344%200.945313%20-0.402344%20z%20m%205.585937%205.234375%20c%200.058594%200%200.117188%200.003906%200.175782%200.007813%20c%200.382812%200.523437%200.335937%201.234374%20-0.144532%201.71875%20l%20-3.753906%203.75%20c%20-0.027344%20-0.066407%20-0.050781%20-0.136719%20-0.070312%20-0.203126%20c%20-0.003906%20-0.011718%20-0.007813%20-0.023437%20-0.011719%20-0.035156%20c%20-0.003906%20-0.007812%20-0.007813%20-0.011718%20-0.011719%20-0.019531%20c%20-0.285156%20-0.84375%20-0.152344%20-1.644531%200%20-2.4375%20c%200.003906%20-0.003906%200.007813%20-0.007813%200.011719%20-0.015625%20c%200.003906%20-0.011719%200.007813%20-0.027344%200.011719%20-0.039062%20c%200.261718%20-0.789063%200.757812%20-1.464844%201.410156%20-1.945313%20c%200.011719%20-0.003906%200.023438%20-0.011719%200.03125%20-0.015625%20c%200.019531%20-0.015625%200.042969%20-0.03125%200.058594%20-0.046875%20c%200.648437%20-0.453125%201.4375%20-0.71875%202.292968%20-0.71875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-image-missing: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%204.015625%201.03125%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%201%20h%201%20v%20-1%20c%200%20-1.109375%200.890625%20-2%202%20-2%20h%201%20v%20-1%20z%20m%202%200%20v%201%20h%204%20v%20-1%20z%20m%205%200%20v%201%20h%201%20c%201.109375%200%202%200.890625%202%202%20v%201%20h%201%20v%20-1%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%20-5%204%20c%20-0.550781%200%20-1%200.449219%20-1%201%20s%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20s%20-0.449219%20-1%20-1%20-1%20z%20m%20-5%201%20v%204%20h%201%20v%20-4%20z%20m%2013%200%20v%204%20h%201%20v%20-4%20z%20m%20-4.5%202%20l%20-2%202%20l%20-1.5%20-1%20l%20-2%202%20v%200.5%20c%200%200.5%200.5%200.5%200.5%200.5%20h%207%20s%200.472656%20-0.035156%200.5%20-0.5%20v%20-1%20z%20m%20-8.5%203%20v%201%20c%200%201.644531%201.355469%203%203%203%20h%201%20v%20-1%20h%20-1%20c%20-1.109375%200%20-2%20-0.890625%20-2%20-2%20v%20-1%20z%20m%2013%200%20v%201%20c%200%201.109375%20-0.890625%202%20-2%202%20h%20-1%20v%201%20h%201%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-1%20z%20m%20-8%203%20v%201%20h%204%20v%20-1%20z%20m%200%200'%20fill%3D'currentColor'%20fill-opacity%3D'0.34902'%2F%3E%20%3C%2Fsvg%3E\");\n}\n\n.adw-icon--edit-paste {\n mask-image: var(--icon-edit-paste);\n -webkit-mask-image: var(--icon-edit-paste);\n}\n\n.adw-icon--go-down {\n mask-image: var(--icon-go-down);\n -webkit-mask-image: var(--icon-go-down);\n}\n\n.adw-icon--sidebar-show {\n mask-image: var(--icon-sidebar-show);\n -webkit-mask-image: var(--icon-sidebar-show);\n}\n\n.adw-icon--go-previous {\n mask-image: var(--icon-go-previous);\n -webkit-mask-image: var(--icon-go-previous);\n}\n\n.adw-icon--go-next {\n mask-image: var(--icon-go-next);\n -webkit-mask-image: var(--icon-go-next);\n}\n\n.adw-icon--view-refresh {\n mask-image: var(--icon-view-refresh);\n -webkit-mask-image: var(--icon-view-refresh);\n}\n\n.adw-icon--open-menu {\n mask-image: var(--icon-open-menu);\n -webkit-mask-image: var(--icon-open-menu);\n}\n\n.adw-icon--go-home {\n mask-image: var(--icon-go-home);\n -webkit-mask-image: var(--icon-go-home);\n}\n\n.adw-icon--list-add {\n mask-image: var(--icon-list-add);\n -webkit-mask-image: var(--icon-list-add);\n}\n\n.adw-icon--network-wireless {\n mask-image: var(--icon-network-wireless);\n -webkit-mask-image: var(--icon-network-wireless);\n}\n\n.adw-icon--folder {\n mask-image: var(--icon-folder);\n -webkit-mask-image: var(--icon-folder);\n}\n\n.adw-icon--starred {\n mask-image: var(--icon-starred);\n -webkit-mask-image: var(--icon-starred);\n}\n\n.adw-icon--system-search {\n mask-image: var(--icon-system-search);\n -webkit-mask-image: var(--icon-system-search);\n}\n\n.adw-icon--contact-new {\n mask-image: var(--icon-contact-new);\n -webkit-mask-image: var(--icon-contact-new);\n}\n\n.adw-icon--mail-unread {\n mask-image: var(--icon-mail-unread);\n -webkit-mask-image: var(--icon-mail-unread);\n}\n\n.adw-icon--avatar-default {\n mask-image: var(--icon-avatar-default);\n -webkit-mask-image: var(--icon-avatar-default);\n}\n\n.adw-icon--camera-photo {\n mask-image: var(--icon-camera-photo);\n -webkit-mask-image: var(--icon-camera-photo);\n}\n\n.adw-icon--user-trash {\n mask-image: var(--icon-user-trash);\n -webkit-mask-image: var(--icon-user-trash);\n}\n\n.adw-icon--view-reveal {\n mask-image: var(--icon-view-reveal);\n -webkit-mask-image: var(--icon-view-reveal);\n}\n\n.adw-icon--view-conceal {\n mask-image: var(--icon-view-conceal);\n -webkit-mask-image: var(--icon-view-conceal);\n}\n\n.adw-icon--document-edit {\n mask-image: var(--icon-document-edit);\n -webkit-mask-image: var(--icon-document-edit);\n}\n\n.adw-icon--document-open {\n mask-image: var(--icon-document-open);\n -webkit-mask-image: var(--icon-document-open);\n}\n\n.adw-icon--document-save {\n mask-image: var(--icon-document-save);\n -webkit-mask-image: var(--icon-document-save);\n}\n\n.adw-icon--mail-send {\n mask-image: var(--icon-mail-send);\n -webkit-mask-image: var(--icon-mail-send);\n}\n\n.adw-icon--mail-reply-sender {\n mask-image: var(--icon-mail-reply-sender);\n -webkit-mask-image: var(--icon-mail-reply-sender);\n}\n\n.adw-icon--folder-download {\n mask-image: var(--icon-folder-download);\n -webkit-mask-image: var(--icon-folder-download);\n}\n\n.adw-icon--view-grid {\n mask-image: var(--icon-view-grid);\n -webkit-mask-image: var(--icon-view-grid);\n}\n\n.adw-icon--view-list {\n mask-image: var(--icon-view-list);\n -webkit-mask-image: var(--icon-view-list);\n}\n\n.adw-icon--view-columns {\n mask-image: var(--icon-view-columns);\n -webkit-mask-image: var(--icon-view-columns);\n}\n\n.adw-icon--list-remove {\n mask-image: var(--icon-list-remove);\n -webkit-mask-image: var(--icon-list-remove);\n}\n\n.adw-icon--send-to {\n mask-image: var(--icon-send-to);\n -webkit-mask-image: var(--icon-send-to);\n}\n\n.adw-icon--folder-music {\n mask-image: var(--icon-folder-music);\n -webkit-mask-image: var(--icon-folder-music);\n}\n\n.adw-icon--edit-copy {\n mask-image: var(--icon-edit-copy);\n -webkit-mask-image: var(--icon-edit-copy);\n}\n\n.adw-icon--emblem-system {\n mask-image: var(--icon-emblem-system);\n -webkit-mask-image: var(--icon-emblem-system);\n}\n\n.adw-icon--preferences-system {\n mask-image: var(--icon-preferences-system);\n -webkit-mask-image: var(--icon-preferences-system);\n}\n\n.adw-icon--application-x-executable {\n mask-image: var(--icon-application-x-executable);\n -webkit-mask-image: var(--icon-application-x-executable);\n}\n\n.adw-icon--image-missing {\n mask-image: var(--icon-image-missing);\n -webkit-mask-image: var(--icon-image-missing);\n}\n","// _variables.scss — Adwaita CSS custom properties (light theme defaults).\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss (canonical color palette)\n// Reference: refs/adwaita-web/adwaita-web/scss/_variables.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Subset adapted for @gjsify/adwaita-web Web Components.\n\n:root {\n // Window\n --window-bg-color: #fafafb;\n --window-fg-color: rgba(0, 0, 6, 0.8);\n\n // Views\n --view-bg-color: #ffffff;\n --view-fg-color: rgba(0, 0, 6, 0.8);\n\n // Header bar\n --headerbar-bg-color: #ffffff;\n --headerbar-fg-color: rgba(0, 0, 6, 0.8);\n --headerbar-shade-color: rgba(0, 0, 6, 0.12);\n\n // Hairline separators (header underline, sidebar/pane dividers). Subtle in\n // BOTH themes — dark theme flips to a faint light line, the way libadwaita\n // draws separators, instead of a harsh near-black line on a dark surface.\n --separator-color: rgba(0, 0, 6, 0.1);\n\n // Sidebar\n --sidebar-bg-color: #ebebed;\n\n // Cards / boxed lists\n --card-bg-color: #ffffff;\n --card-fg-color: rgba(0, 0, 6, 0.8);\n --card-shade-color: rgba(0, 0, 6, 0.07);\n\n // Accent\n --accent-bg-color: #3584e4;\n --accent-fg-color: #ffffff;\n --accent-color: #1c71d8;\n\n // Popover (menus, dropdowns) — an elevated surface above the window.\n --popover-bg-color: #ffffff;\n --popover-fg-color: rgba(0, 0, 6, 0.8);\n --popover-shade-color: rgba(0, 0, 6, 0.07);\n\n // Dialog scrim — the dimming wash behind a presented dialog (Adw dims with\n // --shade-color at double alpha; this is the equivalent neutral wash).\n --dialog-scrim-color: rgba(0, 0, 6, 0.32);\n\n // Buttons\n --button-bg-color: rgba(0, 0, 6, 0.08);\n --button-hover-color: rgba(0, 0, 6, 0.13);\n --button-active-color: rgba(0, 0, 6, 0.19);\n\n // Entries\n --entry-bg-color: #ffffff;\n --entry-border-color: rgba(0, 0, 6, 0.18);\n --entry-border-hover-color: rgba(0, 0, 6, 0.28);\n\n // Destructive action\n --destructive-bg-color: #e01b24;\n --destructive-fg-color: #ffffff;\n\n // Semantic states. `.error` / `.warning` / `.success` (see _labels.scss) do\n // not just recolour text — they REBIND the three accent tokens to these, so\n // anything accent-coloured inside them follows. Values are libadwaita's\n // (_colors.scss:16-29): red_3 / yellow_5 / green_4 from _palette.scss:106-121.\n // The standalone `*-color` is upstream's own relative-colour derivation of the\n // background, kept as an expression rather than resolved to a hex so it tracks\n // a re-themed `*-bg-color`.\n --success-bg-color: #2ec27e;\n --success-fg-color: #ffffff;\n --success-color: oklab(from var(--success-bg-color) min(l, 0.5) a b);\n --warning-bg-color: #e5a50a;\n --warning-fg-color: rgba(0, 0, 0, 0.8);\n --warning-color: oklab(from var(--warning-bg-color) min(l, 0.5) a b);\n --error-bg-color: #e01b24;\n --error-fg-color: #ffffff;\n --error-color: oklab(from var(--error-bg-color) min(l, 0.5) a b);\n\n // Switch\n --switch-off-bg: rgba(0, 0, 0, 0.2);\n --switch-knob-bg: #ffffff;\n\n // Layout radii\n --window-radius: 15px;\n --card-radius: 12px;\n --button-radius: 9px;\n\n // Spacing scale\n --spacing-xs: 6px;\n --spacing-s: 9px;\n --spacing-m: 12px;\n --spacing-l: 18px;\n --spacing-xl: 24px;\n\n // Typography — GNOME default: Adwaita Sans 11\n --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;\n --font-size-base: 11pt;\n --font-size-small: 9pt;\n --font-size-heading: 12pt;\n --dim-opacity: 0.55;\n\n // Document + monospace families, behind `.document` / `.monospace`\n // (_labels.scss:75-84). In GTK these four are written into `:root` at RUNTIME\n // by AdwStyleManager from the desktop's font settings\n // (adw-style-manager.c:169-218), defaulting to `Sans 10` / `Monospace 10`\n // (:50-56). A browser has no style manager, so they are ordinary tokens here\n // — same names, so re-theming goes through the documented contract. The\n // monospace stack is the one `_data_grid.scss` used to inline; it has ONE home\n // now, and Adwaita Mono heads it because `@gjsify/adwaita-fonts` ships it.\n // `'Cantarell'` is dropped from that stack on the way here: Cantarell is\n // GNOME's PROPORTIONAL UI font, so a monospace fallback chain that reaches it\n // second lands on a font whose figures do not line up — the exact property\n // `.monospace` exists for.\n --document-font-family: var(--font-family);\n --document-font-size: var(--font-size-base);\n --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;\n --monospace-font-size: var(--font-size-base);\n}\n","// _theme.scss — Light/dark theme switching.\n// Auto via prefers-color-scheme + manual .theme-dark / .theme-light overrides.\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n@mixin dark-theme {\n --window-bg-color: #222226;\n --window-fg-color: #ffffff;\n --view-bg-color: #1d1d20;\n --view-fg-color: #ffffff;\n --headerbar-bg-color: #2e2e32;\n --headerbar-fg-color: #ffffff;\n --headerbar-shade-color: rgba(0, 0, 6, 0.36);\n --separator-color: rgba(255, 255, 255, 0.08);\n --sidebar-bg-color: #2e2e32;\n --card-bg-color: rgba(255, 255, 255, 0.08);\n --card-fg-color: #ffffff;\n --card-shade-color: rgba(0, 0, 6, 0.36);\n --accent-color: #78aeed;\n --popover-bg-color: #36363a;\n --popover-fg-color: #ffffff;\n --popover-shade-color: rgba(0, 0, 6, 0.36);\n // A deeper scrim in dark mode so the dimming reads against a dark window.\n --dialog-scrim-color: rgba(0, 0, 6, 0.55);\n --button-bg-color: rgba(255, 255, 255, 0.1);\n --button-hover-color: rgba(255, 255, 255, 0.15);\n --button-active-color: rgba(255, 255, 255, 0.22);\n --entry-bg-color: rgba(255, 255, 255, 0.06);\n --entry-border-color: rgba(255, 255, 255, 0.16);\n --entry-border-hover-color: rgba(255, 255, 255, 0.26);\n --destructive-bg-color: #c01c28;\n --destructive-fg-color: #ffffff;\n // Semantic states — libadwaita's dark overrides (_colors.scss:83-92): the\n // backgrounds darken (green_5 / a hand-picked amber / red_4) and the\n // standalone colour LIGHTENS instead of darkening, so it stays readable on a\n // dark surface. Upstream does not re-declare the `*-fg-color`s here either.\n --success-bg-color: #26a269;\n --success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);\n --warning-bg-color: #cd9309;\n --warning-color: oklab(from var(--warning-bg-color) max(l, 0.85) a b);\n --error-bg-color: #c01c28;\n --error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);\n --switch-off-bg: rgba(255, 255, 255, 0.2);\n --switch-knob-bg: #deddda;\n // The active toggle is a raised near-white chip in both themes, so its text\n // must be dark in dark mode (the default token is the light window-fg).\n --active-toggle-fg-color: rgba(0, 0, 6, 0.8);\n}\n\n// Auto dark theme via prefers-color-scheme — opt out with .theme-light\n@media (prefers-color-scheme: dark) {\n :root:not(.theme-light) {\n @include dark-theme;\n }\n}\n\n// Manual override\n:root.theme-dark {\n @include dark-theme;\n}\n","// _root.scss — opt-in page surface for chrome-less layouts.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss (surface tokens)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: original opt-in helper for @gjsify/adwaita-web.\n//\n// The components theme via the `--window-*` CSS custom properties, but only\n// `adw-window` actually PAINTS the window surface (background + text colour).\n// A page laid out WITHOUT an `<adw-window>` (e.g. a plain browser view that\n// hosts rows/cards directly) therefore renders on the browser default (white)\n// and its native form controls / scrollbars don't follow the light/dark scheme.\n//\n// Applying `.adw-root` to `<body>` (or `<html>` / the `:root` element) binds the\n// Adwaita window surface + `color-scheme: light dark` to the document, so a\n// window-less layout is themed exactly like the components inside it. This is\n// OPT-IN and additive — it does not change any component's own styling.\n.adw-root {\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n color-scheme: light dark;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n}\n","// _reset.scss — style-isolation boundary for embedding in arbitrary host pages.\n//\n// adwaita-web renders as LIGHT-DOM custom elements (by design: the widgets\n// compose with the page and stay overridable via the `--adw-*` / `--*` design\n// tokens). The trade-off of light DOM is that a host page's *inherited*\n// typography — `font-family`, `color`, `line-height`, `letter-spacing`, … — and\n// generic element resets can leak into the widgets.\n//\n// This partial establishes an Adwaita typographic + box-model context at EVERY\n// component boundary, so inheritance from the host stops at the widget. It sets\n// only a FLOOR: it is `@use`d before the component partials, so each component's\n// own rules override it, and consumers keep full control through the tokens and\n// ordinary higher-specificity rules (isolation without giving up overriding).\n//\n// The box battles (borders, backgrounds) are already won by the components'\n// class-scoped rules against realistic element-level host CSS; the real leak is\n// inherited typography + a host `* {}` box-sizing reset, which is what this\n// neutralises.\n\n// Every custom element adwaita-web defines — one entry per `customElements\n// .define('adw-…')` call under `src/`.\n//\n// DERIVED, NOT REMEMBERED: `scripts/check-adwaita-reset-components.mjs` walks\n// those calls and fails on any tag missing from this list (and on any entry with\n// no call behind it). A hand-kept list is a second copy of the registry, and it\n// had already drifted — `adw-source-view` was defined for its whole life and\n// never listed, so it silently ran without the isolation floor. Nothing noticed,\n// because the only spec touching this file instantiates `adw-switch-row`.\n$adw-components:\n adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response,\n adw-avatar, adw-banner, adw-bottom-sheet, adw-bottom-sheet-content,\n adw-bottom-sheet-sheet, adw-button, adw-button-content, adw-button-row,\n adw-card, adw-carousel, adw-carousel-indicator-dots,\n adw-carousel-indicator-lines, adw-checkbox, adw-clamp, adw-combo-row,\n adw-data-grid,\n adw-dialog, adw-drop-down, adw-entry, adw-entry-row, adw-expander-row,\n adw-header-bar, adw-icon, adw-inline-view-switcher, adw-menu-button,\n adw-navigation-page,\n adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view,\n adw-password-entry-row, adw-popover, adw-preferences-dialog,\n adw-preferences-group, adw-preferences-page, adw-progress-bar, adw-radio,\n adw-sidebar, adw-sidebar-item,\n adw-sidebar-section, adw-source-view, adw-spinner, adw-spin-row,\n adw-split-button, adw-status-page, adw-switch, adw-switch-row,\n adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group,\n adw-toolbar-view, adw-view-stack, adw-view-stack-page, adw-view-switcher,\n adw-view-switcher-bar, adw-view-switcher-page, adw-window, adw-window-title,\n adw-wrap-box;\n\n// Roots: re-root the inherited typographic properties (and the box model) so a\n// host page's font / colour / spacing cannot flow into the widget. Every value\n// is the Adwaita default; a component that wants something else overrides it on\n// its own element (this rule is emitted first).\n#{$adw-components} {\n box-sizing: border-box;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 400;\n font-style: normal;\n font-variant: normal;\n line-height: normal;\n letter-spacing: normal;\n word-spacing: normal;\n text-align: start;\n text-indent: 0;\n text-transform: none;\n text-shadow: none;\n}\n\n// Descendants: `box-sizing` does not inherit, so a host `*, *::before {\n// box-sizing: content-box }` reset would still reach internal elements. Pin it\n// to `border-box` (adwaita's model throughout) inside every component.\n@each $c in $adw-components {\n #{$c} *,\n #{$c} *::before,\n #{$c} *::after {\n box-sizing: border-box;\n }\n}\n","// _icon.scss — the symbolic icon box behind <adw-icon>.\n//\n// A symbolic icon is rendered as a CSS mask rather than an <img> or inline SVG,\n// so `currentColor` drives the fill and the glyph re-themes with whatever\n// contains it. The per-name `.adw-icon--<name>` mask classes are GENERATED into\n// scss/_icons.generated.scss by scripts/build-scss.mjs (one entry per icon in\n// its ICONS map), so adding an icon is a single map edit.\n//\n// This block lived in `_button.scss` for as long as the button was the only\n// widget that drew one. It is emitted BEFORE the widget partials so a context\n// that sizes its own icons (`.adw-about-dialog-icon` at 96px, the split button's\n// 14px arrows, the view switcher's 16px) still wins on ordinary specificity.\n//\n// Reference: refs/libadwaita/src/stylesheet/_common.scss:34-41 — `.normal-icons`\n// / `.large-icons` set `-gtk-icon-size`. libadwaita has NO `_icon.scss`: there\n// the icon is a GtkImage and its size is a widget property, not a rule.\n// Reference: refs/adwaita-web/adwaita-web/scss/_icon.scss — the vendored web\n// port's `.adw-icon` is an inline-flex holder around a real <svg>; this\n// package masks instead, which is what keeps it colourable via currentColor.\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components (mask-based).\n\n.adw-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n background-color: currentColor;\n mask-size: 16px;\n mask-repeat: no-repeat;\n mask-position: center;\n -webkit-mask-size: 16px;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n\n // `currentColor` IS the icon: the mask is painted with the inherited colour,\n // so a suggested-action button's `--accent-fg-color` has to reach it. Since\n // <adw-icon> is a custom element it is also in `$adw-components`, and the\n // ADR-0010 boundary reset re-roots `color` on every entry there — which would\n // otherwise repaint every icon in `--window-fg-color` regardless of its host.\n // Class beats type selector, so this restores inheritance.\n color: inherit;\n\n // `display: inline-block` (author CSS) otherwise beats the UA `[hidden]`\n // rule, so a hidden icon (e.g. an avatar's fallback icon while initials\n // show) would still render as a solid maskless square. Honor `hidden`.\n &[hidden] {\n display: none;\n }\n}\n","// _labels.scss — libadwaita's typography + semantic-colour UTILITY CLASSES.\n//\n// NO ELEMENT. `refs/libadwaita/src/stylesheet/widgets/_labels.scss` is a widget\n// partial in name only: `label { … }` is four lines of GtkLabel plumbing\n// (`caret-color`, `.separator`, `:disabled`) and everything else in it is a\n// CLASS a consumer puts on whatever node it already has. There is deliberately\n// no `<adw-label>` here to go with them — it would wrap a `<span>` and add\n// nothing a class does not, which is exactly ADR 0004's \"a widget with\n// genuinely trivial behaviour does not need a core class\" applied one level up,\n// and ADR 0010 already makes the token/class surface the public contract. An\n// element would only add a tag to `$adw-components` for no behaviour.\n//\n// This is also where the in-tree duplication ends: `_data_grid.scss` declared\n// `font-variant-numeric: tabular-nums` twice and inlined a whole monospace font\n// stack — i.e. `.numeric` and `.monospace` — and dimmed its header row with a\n// raw `opacity: var(--dim-opacity)` where `.dimmed` is the upstream spelling. It\n// composes these now.\n//\n// WHAT DIFFERS FROM UPSTREAM, AND WHY\n//\n// - `font-size` percentages are upstream's (181% / 136% / 118% / 82%), which\n// are relative to the INHERITED size. That is what libadwaita means by them\n// and it composes with `--font-size-base`, so they are kept verbatim rather\n// than resolved to pt values.\n// - `.document` / `.monospace` read `--document-font-*` / `--monospace-font-*`.\n// In GTK those four are written into `:root` at runtime by AdwStyleManager\n// from the desktop's font settings (adw-style-manager.c:169-218), defaulting\n// to `Sans 10` / `Monospace 10` (:50-56). There is no style manager in a\n// browser, so `_variables.scss` supplies them as ordinary tokens — same\n// names, so a consumer re-themes through the documented contract.\n// - `refs/adwaita-web/adwaita-web/scss/_utility_classes.scss` carries its own\n// version of this block (it puts these in `_utility_classes.scss`, NOT in\n// `_label.scss`) and it disagrees with libadwaita on two points: it adds a\n// `line-height` to every title/heading, and it dims `.caption` and\n// `.caption-heading` by folding `--dim-opacity` into them. Neither is in\n// libadwaita — a caption is small, not dim, and dimming is `.dimmed`'s job,\n// composable onto anything. libadwaita is followed here.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_labels.scss:13-88 (every class below)\n// Reference: refs/libadwaita/src/adw-style-manager.c:50-56,169-218 (the four font tokens)\n// Reference: refs/adwaita-web/adwaita-web/scss/_utility_classes.scss (the vendored port's variant, NOT followed — see above)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web; the `label {}` element rules\n// are GtkLabel plumbing with no DOM counterpart and are not ported.\n\n// _labels.scss:13-15\n.dimmed {\n opacity: var(--dim-opacity);\n}\n\n// _labels.scss:17-19\n.accent {\n color: var(--accent-color);\n}\n\n// _labels.scss:21-29 — a semantic class does not just recolour the text, it\n// REBINDS the three accent tokens, so a button or switch inside it turns the\n// same colour without knowing which state it is in.\n@each $e_type in error, warning, success {\n .#{$e_type} {\n color: var(--accent-color);\n\n --accent-bg-color: var(--#{$e_type}-bg-color);\n --accent-fg-color: var(--#{$e_type}-fg-color);\n --accent-color: var(--#{$e_type}-color);\n }\n}\n\n/**********************\n * General Typography *\n **********************/\n\n// _labels.scss:35-53\n.title-1 {\n font-weight: 800;\n font-size: 181%;\n}\n\n.title-2 {\n font-weight: 800;\n font-size: 136%;\n}\n\n.title-3 {\n font-weight: 700;\n font-size: 136%;\n}\n\n.title-4 {\n font-weight: 700;\n font-size: 118%;\n}\n\n// _labels.scss:55-57\n.heading {\n font-weight: 700;\n}\n\n// _labels.scss:59-62\n.body {\n font-weight: 400;\n line-height: 140%;\n}\n\n// _labels.scss:64-67\n.caption-heading {\n font-weight: 700;\n font-size: 82%;\n}\n\n// _labels.scss:69-73\n.caption {\n font-weight: 400;\n font-size: 82%;\n line-height: 140%;\n}\n\n// _labels.scss:75-79\n.document {\n font-family: var(--document-font-family);\n font-size: var(--document-font-size);\n line-height: 140%;\n}\n\n// _labels.scss:81-84\n.monospace {\n font-family: var(--monospace-font-family);\n font-size: var(--monospace-font-size);\n}\n\n// _labels.scss:86-88\n.numeric {\n font-variant-numeric: tabular-nums;\n}\n","// _window.scss — adw-window styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_window.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-window {\n display: flex;\n flex-direction: column;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n border-radius: var(--window-radius);\n box-shadow:\n 0 0 14px 5px rgb(0 0 0 / 15%),\n 0 0 5px 2px rgb(0 0 0 / 10%),\n 0 0 0 1px rgb(0 0 0 / 5%);\n overflow: hidden;\n outline: 1px solid rgb(255 255 255 / 7%);\n outline-offset: -1px;\n}\n","// _headerbar.scss — adw-header-bar styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_headerbar.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_header-bar.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-header-bar {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n box-shadow: inset 0 -1px var(--separator-color);\n // flex-shrink: 0 ensures the headerbar never collapses inside a flex-column\n // adw-window, preventing a spurious spacing band between bar and content.\n flex-shrink: 0;\n\n .adw-header-bar-center {\n flex: 1;\n display: flex;\n justify-content: center;\n // min-width: 0 prevents the title from pushing the end buttons off-screen.\n min-width: 0;\n }\n\n .adw-header-bar-title {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .adw-header-bar-start {\n display: flex;\n align-items: center;\n padding: 0 6px;\n gap: 4px;\n // flex-shrink: 0 keeps the start buttons visible when the window is narrow.\n flex-shrink: 0;\n }\n\n .adw-header-bar-end {\n display: flex;\n align-items: center;\n // justify-content: flex-end aligns end buttons to the right edge of the\n // end section, fixing the pause-button misposition bug.\n justify-content: flex-end;\n padding: 0 6px;\n gap: 4px;\n // flex-shrink: 0 keeps the end buttons visible when the window is narrow.\n flex-shrink: 0;\n }\n\n .adw-header-btn {\n position: relative;\n width: 34px;\n height: 34px;\n border: none;\n border-radius: var(--button-radius);\n background: transparent;\n color: var(--headerbar-fg-color);\n cursor: pointer;\n padding: 0;\n margin: 0;\n flex-shrink: 0;\n\n &:hover {\n background: rgba(128, 128, 128, 0.12);\n }\n\n &:active {\n background: rgba(128, 128, 128, 0.22);\n }\n }\n}\n","// _window_title.scss — adw-window-title styling (header-bar title widget).\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/windowtitle.md\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-window-title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 1.15;\n min-width: 0;\n\n .adw-window-title-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n color: var(--headerbar-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n .adw-window-title-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--headerbar-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n}\n","// _button.scss — adw-button + Adwaita button styles + symbolic icons + .linked.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// <adw-button> is a thin host that renders an inner <button class=\"adw-button\">;\n// the class set is the real styling API and works on a plain <button> too.\nadw-button {\n display: inline-flex;\n}\n\n.adw-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-height: 34px;\n min-width: 34px;\n margin: 0;\n padding: 4px 14px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &:disabled {\n opacity: 0.45;\n cursor: default;\n }\n\n // Flat — no resting background; only reacts on hover/active. The header bar's\n // navigation buttons use this.\n &.flat {\n background-color: transparent;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n // Suggested action — accent-coloured primary button.\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n &:hover {\n background-color: var(--accent-color);\n }\n\n &:active {\n background-color: var(--accent-color);\n filter: brightness(0.92);\n }\n }\n\n // Destructive action — red.\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n\n &:hover {\n filter: brightness(1.06);\n }\n\n &:active {\n filter: brightness(0.9);\n }\n }\n\n // Icon-only square button (no label).\n &.icon-only {\n padding: 0;\n width: 34px;\n }\n\n // Circular — round icon button.\n &.circular {\n padding: 0;\n width: 34px;\n border-radius: 9999px;\n }\n\n // Pill — fully-rounded ends.\n &.pill {\n padding: 6px 20px;\n border-radius: 9999px;\n }\n}\n\n// The symbolic icon (`.adw-icon`) used to be declared here, because the first\n// widget that needed one was the button. It is `scss/_icon.scss` now — every\n// other widget needs one too, and `<adw-icon>` is an element.\n\n// Linked group — adjacent buttons share edges (segmented control).\n.adw-linked {\n display: inline-flex;\n\n > .adw-button,\n > adw-button .adw-button {\n border-radius: 0;\n }\n\n > :first-child .adw-button,\n > .adw-button:first-child {\n border-top-left-radius: var(--button-radius);\n border-bottom-left-radius: var(--button-radius);\n }\n\n > :last-child .adw-button,\n > .adw-button:last-child {\n border-top-right-radius: var(--button-radius);\n border-bottom-right-radius: var(--button-radius);\n }\n\n > * + * {\n margin-left: 2px;\n }\n}\n","// _button_content.scss — adw-button-content styling (icon + label box used as a\n// button child). Mirrors libadwaita's `buttoncontent > box > {image, label}`\n// node: a horizontal box with 6px spacing between icon and label and a bold\n// label, plus optional ellipsizing when `.can-shrink` is set.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss (buttoncontent)\n// Reference: refs/libadwaita/src/adw-button-content.c (AdwButtonContent)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The class <adw-button-content> stamps on the button hosting it\n// (adw-button-content.c:115), removed again on unroot (:126).\n//\n// libadwaita: `button.image-text-button { padding-left: 9px; padding-right: 9px }`\n// (_buttons.scss:77-80) — against the 17px a plain `.text-button` gets (:72-75).\n// This rule lived in NEITHER renderer, so every icon+label button was drawn with\n// the wrong horizontal padding.\n//\n// Only the PADDING half of that block applies here. The same selector also\n// declares `> box, > box > box { border-spacing: 4px }` (:82-84), and neither\n// matches: the node tree is `button > buttoncontent > box` (:47-52), so the\n// button's direct child is the `buttoncontent`, not a box. The icon↔label gap\n// stays the 6px `buttoncontent > box` gives it (:626-628), which is the `gap`\n// below. It lives in this file rather than in `_button.scss` because the class\n// belongs to this widget, and `.adw-button.image-text-button` beats `.adw-button`\n// on specificity regardless of order.\n.adw-button.image-text-button {\n padding-left: 9px;\n padding-right: 9px;\n}\n\n// Inside a split button the class sits on the `splitbutton` node instead, and a\n// DIFFERENT block wins: `splitbutton.image-text-button > button` (:499-502).\n.adw-split-button.image-text-button > .adw-split-button-action {\n padding-left: 9px;\n padding-right: 9px;\n}\n\nadw-button-content {\n display: inline-flex;\n align-items: center;\n // Centered as a group, matching the box's halign:center in AdwButtonContent.\n justify-content: center;\n min-width: 0;\n\n // The inner box holds the image + label nodes (border-spacing 6px upstream).\n .adw-button-content-box {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-width: 0;\n }\n\n .adw-button-content-label {\n // libadwaita: `buttoncontent > box > label { font-weight: bold; }` with a\n // 2px trailing pad (LTR) so the label does not hug the button edge.\n font-weight: 700;\n line-height: 1;\n padding-right: 2px;\n }\n\n // can-shrink — the label ellipsizes instead of forcing the button wider\n // (Gtk.Label PANGO_ELLIPSIZE_END). The icon keeps its natural size.\n &.can-shrink {\n .adw-button-content-box {\n min-width: 0;\n }\n\n .adw-button-content-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n }\n}\n","// _popover.scss — <adw-popover>, the one popover surface in this package.\n//\n// It replaces three hand-rolled copies (`.adw-menu-button-popover`,\n// `.adw-drop-down-popover`, `.adw-split-button-menu`) that disagreed with\n// libadwaita AND with each other: 12px / 12px / 9px radius against libadwaita's\n// 15px, two correct three-layer shadows and one invented two-layer one. Nothing\n// compared any of them to the vendored stylesheet, so all three shipped.\n//\n// GROUND TRUTH, AND THE SELECTOR THAT WINS THE CASCADE\n//\n// `popover > contents` is `padding: 8px; border-radius: $popover_radius` plus a\n// three-layer shadow (_popovers.scss:13-21), with a `prefers-contrast: more`\n// variant that swaps the innermost layer for a hairline border (:23-27).\n// `$popover_radius` is `$menu_radius + 6` = 15px (_common.scss:10,13) — not\n// `$card_radius` (12px) and not `$button_radius` (9px), the two tokens the\n// copies reached for.\n//\n// The PADDING has a second, more specific rule: `popover.menu > contents`\n// re-declares `padding: 0` and moves the inset onto the item box as\n// `$menu_margin` (6px) at _menus.scss:58-66. Two element selectors plus a class\n// beats one element selector plus a child, so a MENU popover renders a 6px inset\n// and a plain one an 8px inset. The three copies all used 6px — they were right\n// about the inset for the menus they drew, and wrong only about the radius.\n//\n// We reproduce the menu inset with ONE node instead of GTK's contents+box pair:\n// `[menu]` puts the 6px directly on the surface. Same rendered geometry, and\n// there is no separate box element to hang it on in the DOM.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss:7-28\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss:58-66, :134-156\n// Reference: refs/libadwaita/src/stylesheet/_common.scss:10-13 ($menu_radius, $menu_margin, $popover_radius)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for the @gjsify/adwaita-web light-DOM custom elements.\n\n// Distance between the anchor and the surface. GTK gets this gap from the\n// popover's arrow, which this port does not draw (`has-arrow` is not modelled —\n// GtkPopover's C is not vendored here). 6px is what the menu button and the\n// drop-down already used; the split button's 4px was the odd one out.\n$popover-gap: 6px;\n\nadw-popover {\n // $popover_radius = $menu_radius + 6 (_common.scss:10,13). Exposed as a token\n // so consumers re-theme it the same way as the rest (ADR 0010), with the\n // libadwaita value as the fallback.\n --popover-radius: 15px;\n\n position: absolute;\n z-index: 10;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 120px; // popover.menu > contents (_menus.scss:2-4)\n padding: 8px; // popover > contents (_popovers.scss:14)\n border-radius: var(--popover-radius);\n background-color: var(--popover-bg-color, var(--window-bg-color, #fff));\n color: var(--popover-fg-color, var(--window-fg-color));\n\n // The exact three layers of _popovers.scss:18-20. The COUNT is load-bearing:\n // the split button shipped two.\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 1px 5px 1px rgba(0, 0, 0, 0.09),\n 0 2px 14px 3px rgba(0, 0, 0, 0.05);\n\n // _popovers.scss:23-27 — the innermost layer becomes a real hairline so the\n // surface has a visible edge when the shadow alone is not enough. Missing\n // from all three copies.\n @media (prefers-contrast: more) {\n box-shadow:\n 0 0 0 1px var(--separator-color),\n 0 1px 5px 1px rgba(0, 0, 0, 0.09),\n 0 2px 14px 3px rgba(0, 0, 0, 0.05);\n }\n\n // `popover.menu > contents { padding: 0 }` + `$menu_margin` on the item box\n // (_menus.scss:58-66), flattened onto the single surface node.\n &[menu] {\n padding: 6px;\n }\n\n // --- Placement. Pure CSS, as it always was: nothing measures a rect and\n // --- nothing flips on overflow, in either the element or the core.\n &[data-position='bottom'] {\n top: calc(100% + #{$popover-gap});\n }\n\n &[data-position='top'] {\n bottom: calc(100% + #{$popover-gap});\n }\n\n &[data-position='start'] {\n top: 0;\n right: calc(100% + #{$popover-gap});\n }\n\n &[data-position='end'] {\n top: 0;\n left: calc(100% + #{$popover-gap});\n }\n\n // `align` picks the edge the surface lines up with, and only applies on the\n // vertical axis — a start/end popover is already pinned horizontally.\n &[data-position='bottom'],\n &[data-position='top'] {\n &[data-align='start'] {\n left: 0;\n }\n\n &[data-align='end'] {\n right: 0;\n }\n }\n}\n\n// A popover row — libadwaita's `modelbutton` (_menus.scss:134-156).\n.adw-popover-item {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n width: 100%;\n min-height: 32px; // :135\n min-width: 40px; // :136\n margin: 0;\n // `padding: 0 $menu_padding` (:137) — $menu_padding is 12px (_common.scss:12),\n // and the vertical inset comes from min-height, not from padding. No 12px\n // spacing token exists in this port, so the value is literal like the radius.\n padding: 0 12px;\n border: none;\n border-radius: 9px; // $menu_radius (:138) — NOT calc(--button-radius - 2px), which two copies invented\n background-color: transparent; // :139\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: start;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n // `&:hover, &:selected { background-color: $selected_color }` (:141-144).\n // `:selected` is GTK's keyboard-highlight pseudo-class; in the DOM that state\n // is focus, so `.selected` (the drop-down's chosen row) and `:focus` share it.\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color); // $selected_active_color (:146-148)\n }\n\n // :150-156 — a contrast-mode ring on the same three states.\n @media (prefers-contrast: more) {\n &:hover,\n &:focus,\n &.selected,\n &:active {\n box-shadow: inset 0 0 0 1px var(--separator-color);\n }\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n &[disabled] {\n // `--disabled-opacity` is libadwaita's own variable (_colors.scss:320,\n // 50%); this port does not define it yet, so the fallback carries the value.\n opacity: var(--disabled-opacity, 0.5);\n pointer-events: none;\n }\n}\n\n// Optional heading atop a menu. libadwaita's `label.title` is `font-weight: bold`\n// + `padding: 4px ($menu_padding + 20px)` (_menus.scss:180-183) — 32px of\n// horizontal padding to centre the title over icon-indented rows, which\n// libadwaita's own comment calls out as fragile. This port keeps the tighter\n// inset `.adw-menu-button-title` already shipped rather than changing how the\n// existing menus look; only the class name moved here. A DELIBERATE deviation,\n// not a reading of :180-183.\n.adw-popover-title {\n padding: 4px var(--spacing-s) 6px;\n font-weight: 700;\n opacity: var(--dim-opacity);\n}\n","// _split_button.scss — adw-split-button styling: a primary action button fused\n// with a dropdown that opens a menu of related actions, split by a thin divider.\n// The suggested/destructive/flat style classes recolor the whole control like\n// the matching Adwaita button variants.\n// Reference: refs/libadwaita/src/adw-split-button.c (splitbutton CSS node)\n// Reference: refs/adwaita-web/adwaita-web/scss/_split_button.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n.adw-split-button {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: stretch;\n vertical-align: middle;\n min-height: 34px;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n user-select: none;\n -webkit-user-select: none;\n\n &:focus-within {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // Primary action half — fills the available width, rounded on the leading\n // side only so it meets the dropdown flush.\n .adw-split-button-action {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n flex-grow: 1;\n min-height: 34px;\n margin: 0;\n padding: 4px 14px;\n border: none;\n border-radius: var(--button-radius) 0 0 var(--button-radius);\n background-color: transparent;\n color: inherit;\n font: inherit;\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n }\n\n // Icon-only action half — square, no horizontal text padding.\n &.icon-only {\n padding: 0;\n width: 34px;\n flex-grow: 0;\n }\n }\n\n // Thin divider between the two halves (the splitbutton `separator` node).\n .adw-split-button-dropdown {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 34px;\n width: 28px;\n margin: 0;\n padding: 0 var(--spacing-xs);\n border: none;\n border-left: 1px solid var(--separator-color);\n border-radius: 0 var(--button-radius) var(--button-radius) 0;\n background-color: transparent;\n color: inherit;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n .adw-icon {\n width: 14px;\n height: 14px;\n mask-size: 14px;\n -webkit-mask-size: 14px;\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n }\n }\n\n // The dropdown menu is `<adw-popover>` (`_popover.scss`), and this was the\n // WORST of the three hand-rolled surfaces: `--button-radius` (9px) where\n // libadwaita's popover is 15px, under a two-layer shadow that exists nowhere\n // in the vendored stylesheet (`popover > contents` has three,\n // _popovers.scss:18-20), and a `calc(var(--button-radius) - 2px)` (7px) row\n // where `modelbutton` is 9px. Nothing element-specific was left to keep.\n\n // --- Suggested action — accent-coloured whole control ---\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n .adw-split-button-dropdown {\n border-left-color: rgba(255, 255, 255, 0.3);\n }\n\n .adw-split-button-action:hover,\n .adw-split-button-dropdown:hover {\n background-color: var(--accent-color);\n }\n\n .adw-split-button-action:active,\n .adw-split-button-dropdown:active {\n background-color: var(--accent-color);\n filter: brightness(0.92);\n }\n }\n\n // --- Destructive action — red whole control ---\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n\n .adw-split-button-dropdown {\n border-left-color: rgba(255, 255, 255, 0.3);\n }\n\n .adw-split-button-action:hover,\n .adw-split-button-dropdown:hover {\n filter: brightness(1.06);\n }\n\n .adw-split-button-action:active,\n .adw-split-button-dropdown:active {\n filter: brightness(0.9);\n }\n }\n\n // --- Flat — no resting background; only reacts on hover/active ---\n &.flat {\n background-color: transparent;\n }\n\n // --- Disabled ---\n &.disabled {\n opacity: 0.45;\n cursor: default;\n\n .adw-split-button-action,\n .adw-split-button-dropdown {\n cursor: default;\n pointer-events: none;\n }\n }\n}\n","// _menu_button.scss — adw-menu-button styling: a flat (or circular) icon button\n// that drops an Adwaita-styled popover menu (the web counterpart of\n// Adw.MenuButton / Gtk.MenuButton). The button mirrors libadwaita's flat/circular\n// `menubutton > button`; the popover reproduces `popover.menu > contents` with\n// its soft triple-shadow surface and `modelbutton`-style item rows.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss (menubutton flat/circular)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss (popover > contents)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss (popover.menu modelbutton)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n.adw-menu-button {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n vertical-align: middle;\n\n // The icon button — square with the button radius by default.\n .adw-menu-button-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 34px;\n min-height: 34px;\n margin: 0;\n padding: 0 8px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n .adw-menu-button-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n }\n\n // Flat — no resting fill (the header app-menu idiom).\n &.flat .adw-menu-button-button {\n background-color: transparent;\n }\n\n // The open state keeps a subtle fill so the button reads as \"checked\".\n &.active .adw-menu-button-button {\n background-color: var(--button-active-color);\n }\n\n // Circular — a round 34×34 button (window-control / FAB idiom).\n &.circular .adw-menu-button-button {\n padding: 0;\n border-radius: 9999px;\n }\n\n &.disabled {\n opacity: 0.45;\n\n .adw-menu-button-button {\n cursor: default;\n pointer-events: none;\n }\n }\n\n // The surface, the heading and the item row are `<adw-popover>`'s —\n // `_popover.scss` (`adw-popover`, `.adw-popover-title`, `.adw-popover-item`).\n // What used to be here was one of three hand-rolled copies: a\n // `--card-radius` (12px) surface where libadwaita's is 15px, and a\n // `calc(var(--button-radius) - 2px)` (7px) row where `modelbutton` is 9px.\n // Only the icon slot is a menu-button fact.\n .adw-menu-button-item-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n}\n","// _drop_down.scss — adw-drop-down: a standalone dropdown selector (the web\n// counterpart of Gtk.DropDown). A normal Adwaita button showing the current\n// selection + a `pan-down` chevron, dropping an elevated Adwaita popover list of\n// options. The popover reproduces libadwaita's popover.menu > contents surface\n// (soft triple shadow), the items its modelbutton rows, matching <adw-menu-button>.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss (popover > contents)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss (modelbutton rows)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_drop-down.scss (dropdown button)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n.adw-drop-down {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n vertical-align: middle;\n\n // The selection button — a normal Adwaita button (label + dim chevron).\n .adw-drop-down-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs);\n min-width: 100px;\n min-height: 34px;\n margin: 0;\n padding: 0 8px 0 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &:disabled {\n cursor: default;\n pointer-events: none;\n }\n }\n\n .adw-drop-down-label {\n flex: 1 1 auto;\n min-width: 0;\n text-align: start;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The chevron — a smaller, dimmed down-glyph after the label.\n .adw-drop-down-arrow {\n width: 12px;\n height: 12px;\n mask-size: 12px;\n -webkit-mask-size: 12px;\n flex: none;\n opacity: var(--dim-opacity);\n }\n\n &.disabled {\n opacity: 0.55;\n }\n\n // The popover SURFACE is `<adw-popover>`'s (`_popover.scss`, the `[menu]`\n // variant — a dropdown's popover is a `popover.menu`, _dropdowns.scss:22).\n // What stays here is what libadwaita ALSO scopes to `dropdown`:\n // - the extra 6px above the contents (`popover.menu { padding-top: 6px }`,\n // _dropdowns.scss:23). GTK puts it on the popover node while the 6px inset\n // sits on `> contents`; flattened onto one node they add, which is what\n // the two-node original renders too.\n // - the width tracking the button rather than libadwaita's flat `min-width`.\n .adw-drop-down-popover {\n padding-top: 12px;\n min-width: 100%;\n max-width: 320px;\n }\n\n // Search entry atop the popover (enable-search). It reuses the .adw-entry skin\n // but needs its own bottom margin to separate it from the list.\n .adw-drop-down-search {\n margin-bottom: var(--spacing-xs);\n }\n\n // Scrollable column of option rows.\n .adw-drop-down-list {\n display: flex;\n flex-direction: column;\n max-height: 320px;\n overflow-y: auto;\n }\n\n // An option row is `.adw-popover-item` (`_popover.scss` — libadwaita's\n // `modelbutton`). Only the trailing-check layout is a drop-down fact: the\n // label and the check sit at opposite ends of the row.\n .adw-drop-down-item {\n justify-content: space-between;\n gap: var(--spacing-s);\n }\n\n .adw-drop-down-item-label {\n flex: 1 1 auto;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The selected-row check — a CSS checkmark, shown only on `.selected`.\n .adw-drop-down-item-check {\n position: relative;\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-drop-down-item.selected .adw-drop-down-item-check::after {\n content: '';\n position: absolute;\n left: 5px;\n top: 2px;\n width: 4px;\n height: 8px;\n border: solid var(--accent-color);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n}\n","// _toggle_group.scss — adw-toggle-group styling (a linked set of toggle buttons\n// with a single active item, recolored with the Adwaita active-toggle accent).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toggle-group.scss (AdwToggleGroup)\n// Reference: refs/adwaita-web/adwaita-web/scss/_toggle_group.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The active toggle uses a white-on-fg \"raised\" chip. These tokens default to\n// libadwaita's light-theme values; _theme.scss overrides them for dark.\n:root {\n --active-toggle-bg-color: #ffffff;\n --active-toggle-fg-color: var(--window-fg-color);\n}\n\nadw-toggle-group {\n // libadwaita's ---group-padding: a small inset so the active chip floats\n // inside the group's pill, leaving a hairline of group background around it.\n --group-padding: 3px;\n\n display: inline-flex;\n box-sizing: border-box;\n padding: var(--group-padding);\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n\n .adw-toggle-group-inner {\n display: flex;\n align-items: stretch;\n gap: var(--group-padding);\n }\n\n // Each toggle is a button-shaped chip with the group's inner radius.\n .adw-toggle {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 34px;\n min-height: 28px;\n margin: 0;\n padding: 4px 11px;\n border: none;\n border-radius: calc(var(--button-radius) - var(--group-padding));\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n box-shadow 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // The active toggle — a raised white chip, the way libadwaita draws it.\n &.active {\n background-color: var(--active-toggle-bg-color);\n color: var(--active-toggle-fg-color);\n box-shadow:\n 0 1px 3px 1px rgba(0, 0, 6, 0.07),\n 0 2px 6px 2px rgba(0, 0, 6, 0.03);\n\n &:hover {\n background-color: var(--active-toggle-bg-color);\n }\n }\n }\n\n // Round — group + toggles become pill-shaped.\n &.round {\n border-radius: 17px;\n\n .adw-toggle {\n border-radius: calc(17px - var(--group-padding));\n padding-left: calc(15px - var(--group-padding));\n padding-right: calc(15px - var(--group-padding));\n }\n }\n\n // Flat — no group background; the active toggle uses a subtle fill instead of\n // the raised white chip.\n &.flat {\n --group-padding: 0px;\n\n padding: 0;\n background: none;\n\n .adw-toggle {\n border-radius: var(--button-radius);\n\n &.active {\n background-color: var(--button-active-color);\n color: inherit;\n box-shadow: none;\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n &.round .adw-toggle {\n border-radius: 17px;\n }\n }\n}\n","// _switch.scss — the <adw-switch> control: a track, a hidden checkbox and a\n// sliding knob. UNSCOPED, which is the whole point of the partial.\n//\n// WHY IT IS ITS OWN FILE. These rules used to live inside `_switch_row.scss`,\n// nested under `adw-switch-row { … }` — so `.adw-switch` did not exist anywhere\n// else, and the moment a second widget needed a toggle it could not use it.\n// `_expander_row.scss` therefore carried a character-for-character copy of the\n// whole block (same 44×24 box, same hidden input, same 20px knob, same\n// `translateX(20px)`, same focus ring) under a different class name. Two copies\n// of a control is how a hover state gets fixed in one of them.\n//\n// FIDELITY, RECORDED RATHER THAN \"FIXED\": the 44×24 track with the 20px knob is\n// `refs/adwaita-web/adwaita-web/scss/_switch.scss`'s geometry, NOT libadwaita's.\n// libadwaita draws `switch` as a 3px-padded trough around a 20px slider with\n// `border-radius: 14px` (refs/libadwaita/src/stylesheet/widgets/_switch.scss:3-4,\n// :24-26) — about 26px tall, not 24, and correspondingly narrower. What ships\n// here is the vendored web port's box, unchanged by the extraction; changing the\n// geometry is a visual decision for a separate change, and citing libadwaita for\n// numbers that came from somewhere else would be the misreading the conformance\n// header warns about.\n//\n// Reference: refs/adwaita-web/adwaita-web/scss/_switch.scss (the geometry that ships)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_switch.scss:3-4,20-26 (the geometry that does not, + the disabled treatment)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components; lifted out of\n// `adw-switch-row {}` so <adw-switch> is usable anywhere.\n\n.adw-switch {\n position: relative;\n display: inline-block;\n width: 44px;\n height: 24px;\n flex-shrink: 0;\n\n // The real control: focusable and keyboard-toggleable, but never painted —\n // the slider below is what the user sees and clicks.\n input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n }\n}\n\n.adw-switch-slider {\n position: absolute;\n cursor: pointer;\n inset: 0;\n background-color: var(--switch-off-bg);\n border-radius: 12px;\n transition: background-color 0.15s ease-out;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 20px;\n width: 20px;\n left: 2px;\n bottom: 2px;\n background-color: var(--switch-knob-bg);\n border-radius: 50%;\n transition: transform 0.15s ease-out;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%);\n }\n}\n\n.adw-switch input:checked + .adw-switch-slider {\n background-color: var(--accent-bg-color);\n\n &::before {\n transform: translateX(20px);\n }\n}\n\n.adw-switch input:focus-visible + .adw-switch-slider {\n outline: 2px solid var(--accent-color);\n outline-offset: 2px;\n}\n\n// libadwaita dims the whole widget (`filter: Opacity(var(--disabled-opacity))`,\n// _switch.scss:20-22). This package has no `--disabled-opacity` token, so the\n// existing `--dim-opacity` stands in rather than a fourth invented colour.\n.adw-switch.disabled {\n opacity: var(--dim-opacity);\n\n .adw-switch-slider {\n cursor: not-allowed;\n }\n}\n","// _entry.scss — adw-entry / .adw-entry text input (e.g. a browser URL bar).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// <adw-entry> hosts an inner <input class=\"adw-entry\">; it fills its flex slot.\nadw-entry {\n display: flex;\n flex: 1;\n min-width: 0;\n}\n\n.adw-entry {\n box-sizing: border-box;\n width: 100%;\n min-height: 34px;\n margin: 0;\n padding: 5px 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--entry-bg-color);\n color: var(--view-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n box-shadow: inset 0 0 0 1px var(--entry-border-color);\n transition: box-shadow 0.1s ease;\n\n &::placeholder {\n color: var(--view-fg-color);\n opacity: var(--dim-opacity);\n }\n\n &:hover {\n box-shadow: inset 0 0 0 1px var(--entry-border-hover-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Dimmed disabled state, mirroring .adw-button:disabled.\n &:disabled {\n opacity: 0.45;\n cursor: default;\n box-shadow: inset 0 0 0 1px var(--entry-border-color);\n }\n}\n","// _checks.scss — <adw-checkbox> AND <adw-radio>, in ONE partial.\n//\n// WHY ONE FILE FOR TWO ELEMENTS. `refs/libadwaita/src/stylesheet/widgets/\n// _checks.scss` merges them deliberately: everything but the corner radius and\n// the glyph is a shared `check, radio { … }` block (:20-65), and the\n// indeterminate dash is re-declared for BOTH at the end (:79-81). There is no\n// `_radio.scss` upstream to mirror. `refs/adwaita-web` does split them into\n// `_checkbox.scss` + `_radio.scss`, and the split is exactly where it drifted:\n// its two indicators grew different sizes, different border treatments and\n// different selection-mode rules, and only one of them has a hover state.\n//\n// TWO PLACES THE VENDORED WEB PORT DISAGREES WITH LIBADWAITA. libadwaita is\n// followed in both:\n//\n// 1. INDETERMINATE. `refs/adwaita-web/adwaita-web/scss/_checkbox.scss` has no\n// indeterminate state at all — no dash, no third glyph, nothing. libadwaita\n// paints it with the same accent fill as checked (:52-60) and its own dash\n// glyph (:79-81). Ported.\n// 2. THE CHECKED RADIO. `refs/adwaita-web/adwaita-web/scss/_radio.scss:22-33`\n// colours only the BORDER and the dot with `--accent-color`, leaving the\n// indicator's background as the view colour. libadwaita FILLS the whole\n// control with `--accent-bg-color` and draws the bullet in\n// `--accent-fg-color` (:54-55) — the same treatment the checkbox gets, which\n// is the point of the shared block. Ported.\n//\n// THE GLYPHS ARE LIBADWAITA'S OWN ASSETS. GTK draws them with\n// `-gtk-icon-source: -gtk-recolor(url(\"assets/check.svg\"))` (:70, :76, :80),\n// which has no CSS spelling. The path data below is copied from\n// `refs/libadwaita/src/stylesheet/assets/{check,bullet,dash}.svg` and painted as\n// a mask filled with `currentColor` — the same technique `_icon.scss` already\n// uses, and what makes `-gtk-recolor` work here: the shared block sets\n// `color: var(--accent-fg-color)` on a checked indicator, so the glyph follows.\n// `bullet.svg` carries a `transform=\"translate(-381 -339)\"` on a path whose\n// commands after the first are all relative, so the translation is folded into\n// the absolute `M` (388,342 → 7,3) and nothing else changes.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_checks.scss (all of it)\n// Reference: refs/libadwaita/src/stylesheet/assets/{check,bullet,dash}.svg (the three glyphs)\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss:280-286 (the trough colours)\n// Reference: refs/adwaita-web/adwaita-web/scss/{_checkbox,_radio}.scss (the vendored port's split, NOT followed — see above)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Implemented as Web Components for @gjsify/adwaita-web; the GTK\n// icon sources are re-expressed as CSS masks.\n\n// assets/check.svg\n$check-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E\");\n// assets/bullet.svg\n$bullet-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E\");\n// assets/dash.svg\n$dash-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E\");\n\n// `checkbutton { … }` (:3-18) — the host is the button, not the indicator.\nadw-checkbox,\nadw-radio {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 4px; // border-spacing: 4px (:4)\n padding: 3px; // (:6)\n border-radius: 9px; // $check_radius + 3px (:5)\n cursor: pointer;\n user-select: none;\n\n // The real control: focusable and keyboard-operable, never painted. The\n // indicator below is what the user sees; the host handles the pointer.\n .adw-check-input {\n position: absolute;\n width: 0;\n height: 0;\n margin: 0;\n opacity: 0;\n }\n\n // `check, radio { … }` (:20-31), shared by both elements.\n .adw-check-indicator {\n // GTK sizes the CONTENT box (`min-width`/`min-height: 14px`, :22-23) and\n // grows the drawn control with `padding: 3px` (:26), i.e. 20x20. Opting out\n // of the ADR-0010 descendant border-box pin keeps that arithmetic — and\n // keeps `checkbutton.selection-mode`'s one-line `padding: 7px` (:87)\n // working exactly as it does upstream instead of needing a second number.\n box-sizing: content-box;\n width: 14px;\n height: 14px;\n padding: 3px;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 15%, transparent); // $trough_color\n transition:\n background 200ms ease-out,\n box-shadow 200ms ease-out;\n\n @media (prefers-contrast: more) {\n // $trough_color_hc (_colors.scss:284) stands in for $border_color: this\n // package defines no `--border-opacity`, and the two are the same 30%\n // mix of currentColor in the light theme.\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 30%, transparent);\n }\n\n // The glyph layer. No mask until a state supplies one, so an unchecked\n // control paints nothing here.\n &::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n background-color: currentColor;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 14px; // -gtk-icon-size: 14px (:25)\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 14px;\n }\n }\n\n // `&:not(:checked):not(:indeterminate) { &:hover / &:active }` (:33-50).\n // Hover and active live on the HOST here — the indicator is 20px inside a\n // control whose label is part of the target, exactly as `checkbutton` is.\n &:not([checked]):not([indeterminate]):not([disabled]) {\n &:hover .adw-check-indicator {\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 20%, transparent); // $trough_hover_color\n\n @media (prefers-contrast: more) {\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 60%, transparent);\n }\n }\n\n &:active .adw-check-indicator {\n background-color: color-mix(in srgb, currentColor 25%, transparent); // $trough_active_color\n box-shadow: none;\n\n @media (prefers-contrast: more) {\n background-color: color-mix(in srgb, currentColor 60%, transparent);\n }\n }\n }\n\n // `&:checked, &:indeterminate { … }` (:52-60) — ONE block for both states, so\n // they differ only in the glyph.\n &[checked] .adw-check-indicator,\n &[indeterminate] .adw-check-indicator {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n box-shadow: none;\n }\n\n // GTK's `background-image: image(<colour>)` (:58-59) is a flat fill; a\n // two-stop gradient of one colour is its CSS spelling, as `_button_row.scss`\n // already does.\n &[checked]:not([disabled]),\n &[indeterminate]:not([disabled]) {\n &:hover .adw-check-indicator {\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active .adw-check-indicator {\n background-image: linear-gradient(rgb(0 0 6 / 20%), rgb(0 0 6 / 20%));\n }\n }\n\n // `&:disabled { filter: Opacity(var(--disabled-opacity)) }` (:62-64). This\n // package defines no `--disabled-opacity`, so `--dim-opacity` stands in — the\n // same substitution `_switch.scss` documents.\n &[disabled] {\n cursor: not-allowed;\n opacity: var(--dim-opacity);\n }\n\n // `@include focus-ring()` on `checkbutton` (:8). The ring follows the real\n // control's focus, not the host's, so keyboard focus is what shows it.\n .adw-check-input:focus-visible ~ .adw-check-indicator {\n outline: 2px solid var(--accent-color);\n outline-offset: 2px;\n }\n}\n\n// `check { border-radius: $check_radius }` (:67-68)\nadw-checkbox .adw-check-indicator {\n border-radius: 6px;\n}\n\n// `radio { border-radius: 100% }` (:73-74)\nadw-radio .adw-check-indicator {\n border-radius: 100%;\n}\n\n// `check:checked` → check.svg (:70) / `radio:checked` → bullet.svg (:76)\nadw-checkbox[checked] .adw-check-indicator::after {\n mask-image: $check-glyph;\n -webkit-mask-image: $check-glyph;\n}\n\nadw-radio[checked] .adw-check-indicator::after {\n mask-image: $bullet-glyph;\n -webkit-mask-image: $bullet-glyph;\n}\n\n// `check, radio { &:indeterminate { … dash.svg } }` (:79-81). Upstream this is a\n// SEPARATE rule after both `:checked` blocks at equal specificity, so the dash\n// wins over the check/bullet on a control that is both. Same order, same\n// specificity, same outcome here — and the same precedence `resolveCheckState`\n// in `@gjsify/adwaita-core` encodes for the a11y value.\nadw-checkbox[indeterminate] .adw-check-indicator::after,\nadw-radio[indeterminate] .adw-check-indicator::after {\n mask-image: $dash-glyph;\n -webkit-mask-image: $dash-glyph;\n}\n\n// `checkbutton.selection-mode { … }` (:83-95) — the big round check used in a\n// selection-mode header bar.\nadw-checkbox.selection-mode,\nadw-radio.selection-mode {\n border-radius: 100px;\n\n .adw-check-indicator {\n padding: 7px;\n border-radius: 100px;\n }\n\n // `label { &:dir(ltr) { margin-right: 6px } &:dir(rtl) { margin-left: 6px } }`\n // (:91-94) — one logical property covers both directions.\n .adw-check-label {\n margin-inline-end: 6px;\n }\n}\n","// _progress_bar.scss — <adw-progress-bar>, the determinate partner to\n// <adw-spinner>.\n//\n// TWO SOURCES, AND WHICH HALF CAME FROM WHICH — the two disagree, so this is not\n// bookkeeping:\n//\n// GEOMETRY + COLOUR + THE OSD VARIANT come from\n// `refs/libadwaita/src/stylesheet/widgets/_progress-bar.scss`: an 8px trough\n// (:6), the 99px `$_progress-radius` (:33-35), the `%scale_trough` /\n// `%scale_highlight` placeholders it shares with the scale\n// (`_scale.scss:1-17`), the `> trough.empty > progress { all: unset }` rule\n// that makes a zero fraction draw NOTHING rather than a 0px sliver (:85), and\n// the `.osd` variant — a 2px bar with no trough, for under a header bar\n// (:59-83).\n//\n// THE INDETERMINATE ANIMATION comes from\n// `refs/adwaita-web/adwaita-web/scss/_progressbar.scss:25-66`, because\n// libadwaita has NO CSS equivalent: GTK animates a pulsing block from C\n// (`gtk_progress_bar_pulse`), so the stylesheet has nothing to copy. Its\n// keyframes and its `prefers-reduced-motion` fallback are the only parts taken\n// from there. Its GEOMETRY is NOT: it draws a 6px bar with a 3px radius and\n// has no trough placeholder, no OSD variant and no text node, so copying its\n// numbers would put a bar in this package that matches neither source.\n//\n// NOT PORTED, deliberately: `progressbar.vertical` (:10-15) and the four\n// `progress.{left,right,top,bottom}` corner-radius rules (:37-55). Both exist\n// for orientations and trough-splitting `<adw-progress-bar>` does not expose —\n// there is no `orientation` attribute — and a rule nothing can ever select is a\n// rule that rots.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_progress-bar.scss:5-6,17-21,23-25,27-35,59-85\n// Reference: refs/libadwaita/src/stylesheet/_scale.scss:1-17 (%scale_trough, %scale_highlight)\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss:280-286 (the trough colours)\n// Reference: refs/adwaita-web/adwaita-web/scss/_progressbar.scss:25-66 (indeterminate keyframes + reduced-motion fallback ONLY)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Implemented as a Web Component for @gjsify/adwaita-web.\n\n// `.dimmed` / `.numeric`, which the text node @extends exactly as upstream does.\n@use 'labels';\n\nadw-progress-bar {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n // `progressbar.horizontal > trough { min-width: 150px }` (:5) is a WIDGET\n // minimum in GTK, so it belongs on the element rather than on the trough.\n min-width: 150px;\n\n .adw-progress-bar-trough {\n // %scale_trough (_scale.scss:1-10)\n position: relative;\n display: flex;\n overflow: hidden;\n height: 8px; // :6 — `&, > progress { min-height: 8px }`\n border-radius: 99px;\n background-color: color-mix(in srgb, currentColor 15%, transparent);\n transition: background 200ms ease-out;\n\n @media (prefers-contrast: more) {\n // $trough_color_hc (_colors.scss:284)\n background-color: color-mix(in srgb, currentColor 30%, transparent);\n }\n }\n\n .adw-progress-bar-progress {\n // %scale_highlight (_scale.scss:12-17) + $_progress-radius (:33-35)\n height: 100%;\n border-radius: 99px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n transition:\n width 200ms ease-out,\n background 200ms ease-out;\n }\n\n // `> text { @extend .dimmed; @extend .numeric; font-size: smaller; }` (:17-21)\n // — literally upstream's three lines, now that `.dimmed` and `.numeric` exist\n // here as the same utility classes they are there.\n .adw-progress-bar-text {\n @extend .dimmed;\n @extend .numeric;\n\n font-size: smaller;\n }\n\n // `&:disabled { filter: Opacity(var(--disabled-opacity)) }` (:23-25). This\n // package defines no `--disabled-opacity`, so `--dim-opacity` stands in — the\n // same substitution `_switch.scss` documents, not a fourth invented token.\n &[disabled] {\n opacity: var(--dim-opacity);\n }\n\n // Fill from the far end. GTK spells this `:inverted`; flexbox handles the\n // writing direction, so nothing here needs an RTL branch.\n &[inverted] .adw-progress-bar-trough {\n justify-content: flex-end;\n }\n\n // `> trough.empty > progress { all: unset }` (:85) — at fraction 0 the\n // indicator DISAPPEARS instead of drawing a rounded 0px stub.\n .adw-progress-bar-trough.empty .adw-progress-bar-progress {\n all: unset;\n }\n\n // The `.osd` variant (:59-83): a hairline bar with no trough at all, the way\n // it is drawn under a header bar.\n &[osd] {\n min-width: 2px;\n\n .adw-progress-bar-trough {\n height: 2px;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n }\n\n .adw-progress-bar-progress {\n border-radius: 0;\n }\n }\n\n // Indeterminate. The block leaves the flex flow and bounces across the trough;\n // this is the ONLY part of the widget taken from the vendored web port, since\n // GTK pulses from C and its stylesheet has no equivalent to copy.\n &[pulsing] .adw-progress-bar-progress {\n position: absolute;\n inset-block: 0;\n width: 30%;\n animation: adw-progress-bar-indeterminate 1.5s infinite ease-in-out;\n\n // `_progressbar.scss:42-49` — with motion suppressed the block stops moving\n // and fills the trough, so the bar still reads as \"busy\" and not as \"0%\".\n @media (prefers-reduced-motion: reduce) {\n left: 0;\n width: 100%;\n animation: none;\n }\n }\n}\n\n// refs/adwaita-web/adwaita-web/scss/_progressbar.scss:53-66, verbatim offsets.\n// `left` rather than `inset-inline-start`: the port animates a physical offset,\n// and a keyframe that flipped with the writing direction would no longer be the\n// animation being cited.\n@keyframes adw-progress-bar-indeterminate {\n 0% {\n left: -35%;\n width: 30%;\n }\n\n 50% {\n left: 50%;\n width: 40%;\n }\n\n 100% {\n left: 105%;\n width: 30%;\n }\n}\n","// _preferences.scss — adw-preferences-group styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_preferences.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_preferences.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-preferences-group {\n display: block;\n\n // An author `display` beats the UA `[hidden] { display: none }` regardless of\n // specificity, so without this a group hidden through the DOM `hidden`\n // property would keep rendering — the search treats it as invisible\n // (`is_visible_group`), and the two must agree.\n &[hidden] {\n display: none;\n }\n\n // The header is a flex row: a title/description label column on the left\n // (stretches to fill) and the optional header-suffix on the trailing edge.\n .adw-preferences-group-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n padding: var(--spacing-xs) 2px;\n\n // An author `display` beats the UA `[hidden] { display: none }` no matter\n // the specificity, so `headerEl.hidden = true` did NOTHING here: an empty\n // group kept its header box and its padding.\n &[hidden] {\n display: none;\n }\n\n // libadwaita's own metrics, keyed off `is_single_line`:\n // `> box.header:not(.single-line) { margin-bottom: 6px }` and\n // `> box.single-line { min-height: 34px }`\n // (refs/libadwaita/src/stylesheet/widgets/_preferences.scss:6-13). A\n // title-only or suffix-only header is one line tall and needs the height\n // floor instead of the gap below it.\n &:not(.single-line) {\n margin-bottom: 6px;\n }\n\n &.single-line {\n min-height: 34px;\n }\n }\n\n .adw-preferences-group-labels {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n min-width: 0;\n }\n\n .adw-preferences-group-suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .adw-preferences-group-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n margin: 0;\n color: var(--window-fg-color);\n }\n\n // Dimmed description line below the title.\n .adw-preferences-group-description {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n margin: 0;\n color: var(--window-fg-color);\n }\n\n .adw-preferences-group-listbox {\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n border-radius: var(--card-radius);\n box-shadow:\n 0 0 0 1px rgb(0 0 6 / 3%),\n 0 1px 3px 1px rgb(0 0 6 / 7%),\n 0 2px 6px 2px rgb(0 0 6 / 3%);\n overflow: hidden;\n }\n}\n","// _card.scss — adw-card styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_card.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-card,\n.adw-card {\n display: block;\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n border-radius: var(--card-radius);\n padding: var(--spacing-l);\n box-shadow:\n 0 0 0 1px rgb(0 0 6 / 3%),\n 0 1px 3px 1px rgb(0 0 6 / 7%),\n 0 2px 6px 2px rgb(0 0 6 / 3%);\n overflow: hidden;\n}\n","// _data_grid.scss — adw-data-grid: a slim, aligned numeric grid for genuinely\n// tabular data (an accounting BWA / P&L statement, invoice line-items). The web\n// mirror of the native Gtk.Grid the Buchhaltung app fills for its financial\n// statements — labels left, amounts right-aligned with tabular figures so\n// columns of numbers line up, plus the section / subtotal / total emphasis a\n// statement needs. NOT a Gtk.ColumnView (no sorting, no zebra striping); boxed\n// lists stay the default for record lists. Uses CSS subgrid so each row is a\n// real element (hover, hairline rules, activation) while columns stay aligned.\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss (separator / card / dim tokens)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss (boxed-list density)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_labels.scss:13-15,81-88 (.dimmed / .monospace / .numeric)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// `.dimmed` / `.monospace` / `.numeric`. This file used to declare\n// `font-variant-numeric: tabular-nums` twice, inline a whole monospace font\n// stack, and dim its header row with a raw `opacity: var(--dim-opacity)` — i.e.\n// three private copies of utilities libadwaita publishes. It composes them now,\n// the way upstream's own `_progress-bar.scss:17-21` composes the same two.\n@use 'labels';\n\n.adw-data-grid {\n display: block;\n box-sizing: border-box;\n color: var(--card-fg-color);\n font-size: var(--font-size-base);\n\n // Optional title above the grid.\n .adw-data-grid-caption {\n font-size: var(--font-size-heading);\n font-weight: 700;\n color: var(--window-fg-color);\n margin: 0 0 var(--spacing-s);\n padding: 0 var(--spacing-xs);\n }\n\n // Horizontal scroll is CONTAINED here — a wide statement (many month columns)\n // scrolls sideways within the grid instead of overflowing the page.\n .adw-data-grid-scroll {\n overflow-x: auto;\n overflow-y: hidden;\n }\n\n // The grid owns the column tracks; each row is a subgrid spanning them, so\n // figures in the same column line up across every row. `min-width: max-content`\n // keeps columns from crushing — they overflow into the scroller instead.\n .adw-data-grid-table {\n display: grid;\n box-sizing: border-box;\n width: 100%;\n min-width: max-content;\n // grid-template-columns is set inline from the column descriptors.\n }\n\n .adw-data-grid-row {\n display: grid;\n grid-template-columns: subgrid;\n grid-column: 1 / -1;\n align-items: center;\n }\n\n // Airy Adwaita cell density (matching the boxed-list row rhythm), single-line.\n .adw-data-grid-cell {\n box-sizing: border-box;\n min-width: 0;\n padding: var(--spacing-s) var(--spacing-m);\n white-space: nowrap;\n text-align: left;\n\n &.align-end {\n text-align: right;\n }\n\n &.align-center {\n text-align: center;\n }\n\n // Tabular figures are the WHOLE POINT vs a boxed list — numbers line up.\n // `numeric` needs no rule at all: the cell carries the bare class, so\n // libadwaita's own `.numeric` (_labels.scss:86-88) already applies.\n // A mono cell is monospace AND tabular, so it composes both.\n &.mono {\n @extend .monospace;\n @extend .numeric;\n }\n }\n\n // Header row — dim, small, uppercase caps with a hairline underline (Adwaita\n // list-column headings), never sortable.\n .adw-data-grid-row.header {\n .adw-data-grid-cell {\n @extend .dimmed;\n\n font-size: var(--font-size-small);\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n border-bottom: 1px solid var(--separator-color);\n }\n }\n\n // A section header spans all columns as a bold group title (a BWA's sections).\n .adw-data-grid-row.variant-section {\n .section-cell {\n font-weight: 700;\n color: var(--window-fg-color);\n padding-top: var(--spacing-m);\n }\n }\n\n // A subtotal is bold with a hairline rule above it (Gesamtleistung, Rohertrag…).\n .adw-data-grid-row.variant-subtotal {\n border-top: 1px solid var(--separator-color);\n\n .adw-data-grid-cell {\n font-weight: 700;\n }\n }\n\n // The final total is bold with a STRONGER rule above (the accounting result —\n // Betriebsergebnis), plus a thin rule below to evoke the ruled grand-total line.\n .adw-data-grid-row.variant-total {\n border-top: 2px solid var(--separator-color);\n border-bottom: 1px solid var(--separator-color);\n\n .adw-data-grid-cell {\n font-weight: 800;\n color: var(--window-fg-color);\n }\n }\n\n // Optional interactive rows (master-detail). Hairline separators only where\n // Adwaita would — NOT zebra striping — so no default row borders; the hover /\n // focus affordance carries the interaction.\n .adw-data-grid-row.interactive {\n cursor: pointer;\n border-radius: var(--button-radius);\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n }\n}\n","// _clamp.scss — adw-clamp styling.\n//\n// The element itself is deliberately UNCAPPED and full-width: it is the box the\n// tightening curve is evaluated against, so it has to keep reporting the\n// AVAILABLE width. The cap and the centring live on the children, written by the\n// element from `clampAllocate` (see src/elements/adw-clamp.ts) — an element that\n// capped itself would feed its own capped width back into its ResizeObserver.\n//\n// Reference: refs/libadwaita/src/adw-clamp-layout.c (adw_clamp_layout_allocate)\n// Reference: refs/adwaita-web/adwaita-web/scss/_clamp.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-clamp {\n display: block;\n width: 100%;\n}\n","// _spinner.scss — adw-spinner styling.\n//\n// Almost nothing is left here on purpose. The ring is an SVG the element draws\n// per frame from `@gjsify/adwaita-core`'s `spinnerArc`, because the arc BREATHES\n// (2.7 to 102.8 degrees) and CSS cannot express that: the `border-top-color`\n// chase this file used to carry was a fixed 90-degree quarter-circle at 0.8s\n// against libadwaita's 1.2s, with a hardcoded grey track and square-cut ends.\n//\n// What CSS still owns is the box: the element is `size × size` and the ring is\n// centred inside it, which is how a 200px spinner shows a 64px ring\n// (adw-spinner.c:95-99 hands the widget's real size to the paintable, which caps\n// only the radius).\n//\n// There is deliberately NO `prefers-reduced-motion` rule. The C opts out of the\n// animation setting explicitly (`adw_animation_set_follow_enable_animations_setting\n// (…, FALSE)`, adw-spinner-paintable.c:537) — a frozen busy indicator reads as a\n// hang. This file used to stop the animation there.\n//\n// Reference: refs/libadwaita/src/adw-spinner.c\n// Reference: refs/libadwaita/src/adw-spinner-paintable.c\n// Reference: refs/adwaita-web/adwaita-web/scss/_spinner.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-spinner {\n // The element writes the measured box onto `style` when it upgrades; these are\n // the values in force until then, which are Adwaita's own minimum\n // (adw-spinner.c:14, reported as both minimum and natural at :78-81).\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n // The arc strokes `currentColor` — `gtk_widget_get_color` (:432), the widget's\n // TEXT colour, never the accent. The track is the same colour at 15%, which\n // the SVG applies as `stroke-opacity`.\n color: inherit;\n\n svg {\n display: block;\n // The ring never grows past its own diameter, so an over-large box centres\n // it rather than stretching it.\n flex: none;\n }\n}\n","// _avatar.scss — adw-avatar styling (round, initials or fallback icon).\n// Reference: refs/adwaita-web/adwaita-web/scss/_avatar.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_avatar.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-avatar {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 50%;\n overflow: hidden;\n box-sizing: border-box;\n font-weight: 700;\n user-select: none;\n background-color: rgba(127, 127, 127, 0.25);\n color: var(--window-fg-color);\n\n .adw-avatar-text {\n line-height: 1;\n text-align: center;\n }\n\n .adw-avatar-icon {\n background-color: currentColor;\n opacity: 0.7;\n -webkit-mask-size: contain;\n mask-size: contain;\n }\n}\n","// _banner.scss — adw-banner styling (full-width accent message strip).\n// Reference: refs/adwaita-web/adwaita-web/scss/_banner.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_banner.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-m);\n padding: var(--spacing-xs) var(--spacing-m);\n width: 100%;\n box-sizing: border-box;\n // Adw.Banner uses a neutral elevated surface, not the accent colour.\n background-color: var(--sidebar-bg-color);\n color: var(--window-fg-color);\n\n // Adw.Banner stays hidden until revealed.\n &:not(.revealed) {\n display: none;\n }\n\n .adw-banner-title {\n flex: 1 1 auto;\n min-width: 0;\n font-size: var(--font-size-base);\n }\n\n .adw-banner-button {\n flex-shrink: 0;\n border: none;\n border-radius: var(--button-radius);\n padding: 4px 14px;\n background: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n cursor: pointer;\n\n &:hover {\n background: var(--button-hover-color);\n }\n\n // `button-style` (Since 1.7). ADW_BANNER_BUTTON_SUGGESTED adds\n // `.suggested-action` to the banner button (adw-banner.c:769), which is the\n // shared accent appearance — the same declaration `.adw-button.suggested-action`\n // carries, restated here because the banner button is not an `.adw-button`.\n &.suggested-action {\n background: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n &:hover {\n background: var(--accent-color);\n }\n }\n }\n}\n","// _status_page.scss — adw-status-page styling (centered empty state).\n// Reference: refs/adwaita-web/adwaita-web/scss/_status_page.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_status-page.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-status-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: var(--spacing-m);\n padding: var(--spacing-xl);\n color: var(--window-fg-color);\n\n .adw-status-page-icon {\n width: 96px;\n height: 96px;\n background-color: currentColor;\n opacity: 0.45;\n -webkit-mask-size: contain;\n mask-size: contain;\n }\n\n .adw-status-page-title {\n font-size: 18pt;\n font-weight: 800;\n }\n\n .adw-status-page-description {\n font-size: var(--font-size-base);\n opacity: var(--dim-opacity);\n max-width: 32ch;\n }\n\n .adw-status-page-child {\n margin-top: var(--spacing-s);\n }\n}\n","// _row.scss — Shared base styling for rows in preferences groups.\n// Reference: refs/adwaita-web/adwaita-web/scss/_row_types.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_action-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-switch-row,\nadw-combo-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n gap: var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n// Shared title/subtitle text column used by every row type (action/switch/\n// combo/spin). The title is the primary label; the subtitle is dimmed and\n// hidden when empty.\n.adw-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.adw-row-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n// Trailing edit pencil shared by editable rows (entry/password) — the\n// Adw.EntryRow edit affordance. Dimmed; clicking focuses the entry.\n.adw-row-edit {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--card-fg-color);\n opacity: 0.55;\n cursor: pointer;\n}\n\n// Utility separator (used by content layouts)\n.adw-separator-vertical {\n width: 1px;\n align-self: stretch;\n background-color: var(--card-shade-color);\n flex-shrink: 0;\n}\n","// _action_row.scss — adw-action-row styling (title/subtitle + prefix/suffix).\n// Reference: refs/adwaita-web/adwaita-web/scss/_action_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-action-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n &.activatable {\n cursor: pointer;\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n .adw-action-row-prefix,\n .adw-action-row-suffix {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n flex-shrink: 0;\n }\n\n .adw-action-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .adw-row-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","// _entry_row.scss — adw-entry-row styling (inline editable boxed-list row).\n// Reference: refs/adwaita-web/adwaita-web/scss/_entry_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-entry-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Focus ring matching libadwaita's row focus (inset accent outline).\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Filled Adw.EntryRow layout: a small floating title above the value,\n // both left-aligned in a column.\n .adw-entry-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n gap: 1px;\n }\n\n .adw-row-title {\n font-size: var(--font-size-small);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n }\n\n .adw-entry-row-input {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: left;\n outline: none;\n padding: 0;\n }\n}\n","// _switch_row.scss — adw-switch-row styling.\n//\n// The TOGGLE is not here: it is `<adw-switch>` and `scss/_switch.scss`. It used\n// to be, nested under `adw-switch-row {`, which is exactly why `.adw-switch` was\n// unreachable from anywhere else and `_expander_row.scss` grew a\n// character-for-character copy of it.\n//\n// Reference: refs/adwaita-web/adwaita-web/scss/_switch_row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-switch-row {\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n }\n}\n","// _combo_row.scss — adw-combo-row styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_combo_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_combo-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-combo-row {\n position: relative;\n cursor: pointer;\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n pointer-events: none;\n }\n\n // Hidden <select> overlay — stretches across the row to capture clicks\n // anywhere. The visual dropdown arrow is rendered by .adw-row-value::after\n // below, so the select itself doesn't need a background image.\n select {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n border: none;\n padding: 6px 24px 6px 8px;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n cursor: pointer;\n text-align: right;\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -1px;\n }\n\n option {\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n }\n }\n\n .adw-row-value {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n display: flex;\n align-items: center;\n gap: 4px;\n\n // Dropdown arrow — rendered via CSS mask so `currentColor` drives the\n // fill, making the icon theme-aware (matches libadwaita's dark theme).\n // Using background-image with a data-URI SVG would NOT resolve\n // `currentColor` in most browsers.\n //\n // `model_changed` (adw-combo-row.c:187-195) hides the arrow box entirely on\n // a model of one item or none, so the row stops presenting itself as a\n // chooser. `[data-presents-chooser='false']` below is that rule; the element\n // publishes the attribute and disables the overlaid <select> alongside.\n &::after {\n content: \"\";\n display: inline-block;\n width: 12px;\n height: 12px;\n background-color: currentColor;\n -webkit-mask-image: var(--icon-go-down);\n mask-image: var(--icon-go-down);\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-position: center;\n mask-position: center;\n }\n }\n}\n\n// A model with one item or none: no arrow, and the row is not activatable\n// (`model_changed`, adw-combo-row.c:187-195). Written as its own block rather\n// than a modifier inside `.adw-row-value` so the two selectors that draw the\n// arrow and the one that removes it read at the same specificity depth.\nadw-combo-row[data-presents-chooser='false'] {\n .adw-row-value::after {\n display: none;\n }\n\n select {\n cursor: default;\n }\n}\n","// _spin_row.scss — adw-spin-row styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_spin_button.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_spin-button.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-spin-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n gap: var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n }\n}\n\n.adw-spin-control {\n display: flex;\n align-items: center;\n gap: 2px;\n\n button {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--button-radius);\n background: transparent;\n color: var(--card-fg-color);\n cursor: pointer;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n &:hover {\n background: rgba(128, 128, 128, 0.15);\n }\n }\n\n input {\n width: 56px;\n text-align: center;\n border: none;\n border-radius: var(--button-radius);\n background: rgba(128, 128, 128, 0.1);\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n padding: 4px 2px;\n\n &:focus {\n outline: 2px solid var(--accent-color);\n outline-offset: -1px;\n }\n }\n}\n","// _button_row.scss — adw-button-row styling (a boxed-list row that acts as a\n// button: centered title + optional start icon, with suggested/destructive\n// recoloring).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss (row.button)\n// Reference: refs/adwaita-web/adwaita-web/scss/_button_row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-button-row {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:last-child {\n border-bottom: none;\n }\n\n // Contents are centered as a group (libadwaita's GtkBox halign:center), with\n // the start icon hugging the title via a small gap (border-spacing 6px).\n .adw-button-row-contents {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 0;\n }\n\n .adw-button-row-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n text-align: center;\n color: inherit;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Default (no style class): button-like hover/active feedback.\n &.activatable {\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n // Suggested action — accent-coloured, full-bleed (no separator line).\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n border-bottom: none;\n\n &.activatable {\n &:hover {\n background-color: var(--accent-bg-color);\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active {\n background-color: var(--accent-bg-color);\n background-image: linear-gradient(rgba(0, 0, 6, 0.2), rgba(0, 0, 6, 0.2));\n }\n }\n }\n\n // Destructive action — red, same full-bleed treatment as suggested.\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n border-bottom: none;\n\n &.activatable {\n &:hover {\n background-color: var(--destructive-bg-color);\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active {\n background-color: var(--destructive-bg-color);\n background-image: linear-gradient(rgba(0, 0, 6, 0.2), rgba(0, 0, 6, 0.2));\n }\n }\n }\n}\n","// _expander_row.scss — adw-expander-row styling (disclosure header + nested rows).\n// Reference: refs/adwaita-web/adwaita-web/scss/_expander_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_expander-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-expander-row {\n display: block;\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Header — styled like an activatable action row.\n .adw-expander-row-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n cursor: pointer;\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The text column takes the free space so prefix/suffix widgets, the enable\n // switch and the chevron sit at their respective edges.\n .adw-expander-row-header > .adw-row-text {\n flex: 1;\n min-width: 0;\n }\n\n // Header prefix / suffix widget slots (Adw.ExpanderRow add_prefix/add_suffix).\n .adw-expander-row-prefix,\n .adw-expander-row-suffix {\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n flex-shrink: 0;\n }\n\n // Disclosure chevron — points down when collapsed, flips up when expanded,\n // matching libadwaita's Adw.ExpanderRow arrow.\n .adw-expander-row-chevron {\n opacity: var(--dim-opacity);\n transform: rotate(0deg);\n transition: transform 0.2s ease-out;\n flex-shrink: 0;\n }\n\n &.expanded .adw-expander-row-chevron {\n transform: rotate(180deg);\n }\n\n // The optional enable switch is `<adw-switch>` and needs no geometry of its\n // own — `.adw-expander-row-enable-switch` is a query/override hook only. This\n // block used to be a character-for-character copy of the switch row's toggle\n // (44×24 box, hidden input, 20px knob, translateX(20px), focus ring), because\n // `.adw-switch` was nested inside `adw-switch-row {` and unreachable from here.\n\n // Disclosed content — a nested listbox of rows, hidden until expanded. The\n // nested surface is slightly inset/recessed, the way libadwaita draws it.\n .adw-expander-row-content {\n display: none;\n flex-direction: column;\n background-color: var(--window-bg-color);\n border-top: 1px solid var(--card-shade-color);\n\n &.expanded {\n display: flex;\n }\n\n // Nested rows: indent the text column and keep the hairline separators,\n // dropping the last one (the content area's own edge closes it off).\n > adw-action-row,\n > adw-entry-row,\n > adw-switch-row,\n > adw-combo-row,\n > adw-spin-row {\n padding-left: var(--spacing-xl);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n}\n","// _password_entry_row.scss — adw-password-entry-row styling (masked entry row\n// with a trailing peek toggle). Mirrors _entry_row.scss (the password row is a\n// specialization of the entry row) and adds the flat peek button.\n// Reference: refs/adwaita-web/adwaita-web/scss/_password_entry_row.scss\n// Reference: refs/libadwaita/src/adw-password-entry-row.c\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-password-entry-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Focus ring matching libadwaita's row focus (inset accent outline).\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Filled Adw.EntryRow layout: a small floating title above the value,\n // both left-aligned in a column.\n .adw-password-entry-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n gap: 1px;\n }\n\n .adw-row-title {\n font-size: var(--font-size-small);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n }\n\n .adw-password-entry-row-input {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: left;\n outline: none;\n padding: 0;\n\n // Slightly wider tracking for the masked dots, like the native entry.\n &[type='password'] {\n letter-spacing: 0.125em;\n }\n }\n\n // Trailing peek toggle — flat circular icon button, vertically centred.\n .adw-password-entry-row-toggle {\n flex-shrink: 0;\n align-self: center;\n }\n}\n","// _toast.scss — adw-toast and adw-toast-overlay styling.\n// adw-toast-overlay wraps content and layers transient `.adw-toast` banners over\n// the bottom of its own bounds (the Adw.ToastOverlay model). Each banner carries\n// a title, an optional action button and a CSS-drawn \"×\" close button, and slides\n// up on show / down on dismiss (mirroring Adw.Toast).\n// Reference: refs/adwaita-web/adwaita-web/scss/_toast.scss\n// Reference: refs/adwaita-web/adwaita-web/scss/_toast_overlay.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toast.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-toast-overlay {\n position: relative;\n display: block;\n\n // The wrapped content (Adw.ToastOverlay :child) occupies the overlay's box.\n .adw-toast-overlay-content {\n width: 100%;\n height: 100%;\n }\n\n // The toast slot: layered over the bottom edge of the overlay and centered,\n // the way AdwToastOverlay floats a toast above its child. Like\n // Adw.ToastOverlay only ONE toast is mounted at a time (the queue lives in\n // `@gjsify/adwaita-core`); the flex column keeps it centered and lets an\n // outgoing `.hiding` strip finish its exit transition in place.\n .adw-toast-overlay-toasts {\n position: absolute;\n bottom: var(--spacing-m);\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n display: flex;\n flex-direction: column-reverse;\n gap: var(--spacing-s);\n align-items: center;\n pointer-events: none;\n }\n}\n\n.adw-toast {\n background-color: #3d3846;\n color: #ffffff;\n padding: var(--spacing-s) var(--spacing-m);\n border-radius: var(--card-radius);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.25);\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n width: max-content;\n max-width: 400px;\n min-height: 36px;\n pointer-events: auto;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n\n opacity: 0;\n transform: translateY(100%) scale(0.9);\n transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0, 0, 0.2, 1);\n will-change: transform, opacity;\n\n &.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n &.hiding {\n opacity: 0;\n transform: translateY(100%) scale(0.9);\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n .adw-toast-content-wrapper {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-toast-title {\n font-weight: normal;\n line-height: 1.3;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Action button — a flat pill tinted with the accent color so it reads as\n // suggested against the dark toast surface (Adw.Toast:button-label).\n .adw-toast-action-button {\n flex-shrink: 0;\n box-sizing: border-box;\n margin: 0;\n padding: 4px var(--spacing-m);\n border: none;\n border-radius: var(--button-radius);\n background-color: rgba(255, 255, 255, 0.12);\n color: #ffffff;\n font-family: inherit;\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition: background-color 150ms ease-in-out;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n\n &:active {\n background-color: rgba(255, 255, 255, 0.26);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n }\n\n // Close affordance — a CSS-drawn \"×\" (mirrors adw-tab-view's .adw-tab-close;\n // no symbolic close icon ships in the curated adwaita-web icon set).\n .adw-toast-close-button {\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n width: 24px;\n height: 24px;\n margin: 0;\n padding: 0;\n border: none;\n border-radius: 9999px;\n background-color: transparent;\n color: #ffffff;\n cursor: pointer;\n opacity: 0.7;\n transition:\n background-color 150ms ease-in-out,\n opacity 150ms ease-in-out;\n\n &:hover {\n opacity: 1;\n background-color: rgba(255, 255, 255, 0.12);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 11px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n}\n","// _toolbar_view.scss — adw-toolbar-view styling (content framed by top/bottom bars).\n// Reference: refs/adwaita-web/adwaita-web/scss/_toolbar_view.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toolbars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-toolbar-view {\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n flex: 1 1 auto;\n // Positioning context for the extend-content-to-*-edge overlays below.\n position: relative;\n\n .adw-toolbar-view-top,\n .adw-toolbar-view-bottom {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n }\n\n .adw-toolbar-view-content {\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n overflow: auto;\n display: flex;\n flex-direction: column;\n background-color: var(--window-bg-color);\n }\n\n // top-bar-style / bottom-bar-style: an opaque background plus a persistent\n // shadow, which `.border` swaps for a hairline (adw-toolbar-view.c:1011-1024,\n // _toolbars.scss `> .top-bar.raised`).\n .adw-toolbar-view-top.raised,\n .adw-toolbar-view-bottom.raised {\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n }\n\n .adw-toolbar-view-top.raised {\n box-shadow:\n 0 1px var(--headerbar-shade-color),\n 0 2px 4px var(--headerbar-shade-color);\n\n &.border {\n box-shadow: 0 1px var(--headerbar-shade-color);\n }\n }\n\n .adw-toolbar-view-bottom.raised {\n box-shadow:\n 0 -1px var(--headerbar-shade-color),\n 0 -2px 4px var(--headerbar-shade-color);\n\n &.border {\n box-shadow: 0 -1px var(--headerbar-shade-color);\n }\n }\n\n // The scroll fade under a FLAT bar. libadwaita paints it on the scrolled\n // window; the browser equivalent is a non-interactive gradient stuck to the\n // scrollport edge, taking no space of its own — a NEGATIVE margin equal to its\n // height (_toolbars.scss :342-343, _scrolling.scss :150-157).\n &.undershoot-top .adw-toolbar-view-content::before,\n &.undershoot-bottom .adw-toolbar-view-content::after {\n content: '';\n position: sticky;\n height: 6px;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n &.undershoot-top .adw-toolbar-view-content::before {\n top: 0;\n margin-bottom: -6px;\n background: linear-gradient(to bottom, var(--headerbar-shade-color), transparent);\n }\n\n &.undershoot-bottom .adw-toolbar-view-content::after {\n bottom: 0;\n margin-top: -6px;\n background: linear-gradient(to top, var(--headerbar-shade-color), transparent);\n }\n}\n\n// extend-content-to-*-edge: the content spans the full height and the bar is\n// drawn OVER it, which is `content_offset = 0` / `content_height = height` in\n// adw_toolbar_view_size_allocate (adw-toolbar-view.c:390-397).\nadw-toolbar-view[extend-content-to-top-edge] > .adw-toolbar-view-top,\nadw-toolbar-view[extend-content-to-bottom-edge] > .adw-toolbar-view-bottom {\n position: absolute;\n left: 0;\n right: 0;\n}\n\nadw-toolbar-view[extend-content-to-top-edge] > .adw-toolbar-view-top {\n top: 0;\n}\n\nadw-toolbar-view[extend-content-to-bottom-edge] > .adw-toolbar-view-bottom {\n bottom: 0;\n}\n","// _wrap_box.scss — adw-wrap-box styling (a box that wraps its children onto new\n// lines, the web analog of flexbox `flex-wrap: wrap`). Mirrors Adw.WrapBox.\n// Reference: refs/adwaita-web/adwaita-web/scss/_wrap_box.scss\n// Reference: refs/libadwaita/src/adw-wrap-box.c / adw-wrap-layout.c (Adw.WrapBox)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// Direction, gaps, `justify-content` and `align-content` are driven imperatively\n// by the component from its attributes — these are the libadwaita defaults\n// (horizontal, packed to the start of each line, lines wrapping downwards from\n// the top). A wrap box is a pure layout container, so it carries no background\n// of its own; children handle their own theming.\nadw-wrap-box {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n // Each child is allocated the FULL cross extent of its line — `h = line_size`\n // in adw-wrap-layout.c:746-751 — which is `stretch`, the flexbox default. The\n // port used to write `flex-start` here and drive it from `align`, which is a\n // MAIN-axis property in libadwaita and belongs on `justify-content`.\n align-items: stretch;\n align-content: flex-start;\n}\n\n// `wrap-policy`, published by the component as a custom property. The FALLBACK\n// is the load-bearing part: it is `ADW_WRAP_NATURAL`, libadwaita's default\n// (adw-wrap-box.c:491-495), where CSS defaults `flex-shrink` to 1 — so a wrap\n// box that has not upgraded yet, or one whose policy is unset, draws Adwaita's\n// choice rather than the cascade's.\nadw-wrap-box > * {\n flex-shrink: var(--adw-wrap-box-child-shrink, 0);\n}\n\n// FILL grows the children and keeps the spacing constant\n// (adw-wrap-layout.c:317-319, :326-341); SPREAD deliberately does NOT, so the\n// gaps take the leftover instead. `data-line-justify` is the mode the component\n// resolved for a COMPLETE line.\n//\n// A lone child is excluded because it is not on a complete line: a box with one\n// element child has exactly one line, and that line is the final one — see\n// below.\nadw-wrap-box[data-line-justify='fill'] > *:not(:only-child) {\n flex-grow: 1;\n}\n\n// `:only-child` is the one line-membership fact CSS knows without a layout pass,\n// and libadwaita treats that line as the LAST one. Both justified modes stretch\n// it: FILL by definition, SPREAD because its \"keep the children at their minimum\n// size\" branch is guarded by `n_children > 1` (adw-wrap-layout.c:338), so a lone\n// child is stretched regardless (adw-wrap-box.c:349-352).\nadw-wrap-box[data-last-line-justify='fill'] > :only-child,\nadw-wrap-box[data-last-line-justify='spread'] > :only-child {\n flex-grow: 1;\n}\n\n// The final line, when it is NOT justified (`justify-last-line` unset — the C\n// default, adw-wrap-box.c:379-381): a generated flex item absorbs that line's\n// leftover space, so it packs at the start of the main axis the way an\n// un-justified line does, while `justify-content: space-between` keeps spreading\n// the complete lines above it. `::after` is the only per-line hook flexbox\n// offers, and it lands on the final line by construction.\n//\n// The negative main-axis margin cancels exactly the one gap the filler would\n// otherwise add, so an exactly-full line can never be pushed into a new one.\nadw-wrap-box[data-line-justify='spread'][data-last-line-justify='none']::after {\n content: '';\n flex: 1 0 0;\n min-width: 0;\n min-height: 0;\n margin-left: calc(-1 * var(--adw-wrap-box-child-spacing, 0px));\n}\n\n// A vertical box packs along the block axis, so the gap to cancel is the one\n// before the filler in that direction.\nadw-wrap-box[orientation='vertical'][data-line-justify='spread'][data-last-line-justify='none']::after {\n margin-left: 0;\n margin-top: calc(-1 * var(--adw-wrap-box-child-spacing, 0px));\n}\n","// _overlay_split_view.scss — adw-overlay-split-view styling.\n//\n// The GEOMETRY is no longer here. It used to be four `transform: translateX(±100%)`\n// rules keyed on `.collapsed` / `.show-sidebar` / `.sidebar-end`, which can only\n// express the two END STATES of a reveal — so `show-progress` was 0 or 1, the\n// five `OVERLAY_SWIPE_*` conformance tables shipped unexercised, and the docked\n// hide slid the wrong way for an `end` sidebar because the JS wrote `marginRight`\n// whichever edge the pane was on.\n//\n// The element now writes the pane rect per frame from\n// `layoutOverlaySplitView`, which is continuous and knows the edge (including\n// under RTL, where a `start` sidebar is drawn on the RIGHT —\n// `get_start_or_end`, adw-overlay-split-view.c:227-234). What is left here is\n// what CSS genuinely owns: the box model, the stacking, and the transition that\n// smooths a programmatic toggle.\n//\n// Reference: refs/libadwaita/src/adw-overlay-split-view.c\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented as Web Component for @gjsify/adwaita-web.\n\nadw-overlay-split-view {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n position: relative;\n overflow: hidden;\n\n .adw-osv-sidebar {\n background-color: var(--sidebar-bg-color);\n overflow-y: auto;\n flex-shrink: 0;\n z-index: 10;\n align-self: stretch;\n // Only `opacity` transitions. The offset is driven per frame, so animating\n // it here would fight the swipe: a gesture would lag its own finger.\n transition: opacity 0.2s ease;\n }\n\n // THE CONTAINER MINIMUM, as CSS spells it. `measure_uncollapsed`\n // (adw-overlay-split-view.c:558-563) is `trunc(sidebar_min * progress) +\n // content_min`, and a flex row reaches exactly that on its own PROVIDED the\n // content is allowed to claim its own minimum: the sidebar is `flex-shrink: 0`\n // with a `min-width` of `sidebar_min`, so the sum is the container's floor.\n //\n // `min-width: 0` was here instead — the flex idiom for \"let this be crushed so\n // an ellipsis can happen\" — which is precisely how the content pane could be\n // squeezed to nothing while the sidebar kept its whole width. A child that\n // needs to truncate can still ask for `min-width: 0` itself; the PANE may not.\n //\n // Not computed in JS: a measured number would need the content's min-content\n // size, which the DOM does not expose without a reflow, and the first attempt\n // used `scrollWidth` — the pane's CURRENT width — which pinned the view at\n // whatever it happened to be and stopped it responding to its breakpoint.\n .adw-osv-content {\n flex: 1;\n min-width: min-content;\n min-height: 0;\n display: flex;\n flex-direction: column;\n align-self: stretch;\n }\n\n // Docked — the sidebar sits in the flex row and the hidden part is taken off\n // its own edge by a negative margin the element computes.\n &:not(.collapsed) .adw-osv-sidebar {\n position: relative;\n }\n\n // Docked + sidebar-end — dock the sidebar to the far side of the content\n // (the Adw.OverlaySplitView { sidebar-position: end } layout). flex `order`\n // flips the visual order without changing the slotting DOM order.\n &:not(.collapsed).sidebar-end {\n .adw-osv-content {\n order: 1;\n }\n\n .adw-osv-sidebar {\n order: 2;\n }\n }\n\n // THE DIVIDER FOLLOWS THE VISUAL SIDE, not the logical one. `_sidebars.scss`\n // makes it `:dir()` × `.end` (:21-39), which is exactly the product\n // `.sidebar-at-visual-start` already carries: under RTL a `start` sidebar is\n // drawn on the right and its divider belongs on its left edge.\n &:not(.collapsed) {\n .adw-osv-sidebar {\n border-inline-end: none;\n border-inline-start: none;\n }\n\n &.sidebar-at-visual-start .adw-osv-sidebar {\n border-right: 1px solid var(--separator-color);\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n border-left: 1px solid var(--separator-color);\n }\n }\n\n // Overlay (collapsed) — the sidebar floats above the content at the absolute\n // offset the element writes into `left`, which is the only property that can\n // carry a mid-swipe position.\n &.collapsed .adw-osv-sidebar {\n position: absolute;\n top: 0;\n bottom: 0;\n box-shadow: 0 0 12px rgb(0 0 0 / 25%);\n }\n\n // THE TWO RESTING STATES ARE CSS. Everything BETWEEN them is JS.\n //\n // Dropping these is what shipped the docs-site regression. The offset is\n // driven per frame from `layoutOverlaySplitView` — but a view that has never\n // been measured drives nothing, and an absolutely-positioned pane with no\n // `left` resolves to `left: 0` at full opacity. So a HIDDEN sidebar was\n // painted over the content at the wrong edge, on a page whose slideshow\n // builds each slide inside `display: none` and moves it in, so the first\n // measurement never arrived and this fallback was the whole rendering.\n //\n // Not a second copy of the arithmetic: 0% and 100% ARE the two ends the JS\n // interpolates between, and neither of them needs a pixel to say. The element\n // clears its inline placement whenever it has no measurement, which is what\n // hands control back to these rules instead of stranding a stale offset.\n &.collapsed {\n // Revealed: flush against the edge the pane is drawn on.\n &.sidebar-at-visual-start .adw-osv-sidebar {\n left: 0;\n right: auto;\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n left: auto;\n right: 0;\n }\n\n // Hidden: entirely off that same edge, and untouchable while it is there.\n &:not(.show-sidebar) {\n .adw-osv-sidebar {\n opacity: 0;\n pointer-events: none;\n }\n\n &.sidebar-at-visual-start .adw-osv-sidebar {\n left: auto;\n right: 100%;\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n left: 100%;\n right: auto;\n }\n }\n }\n\n // Docked and hidden — the pane takes no room in the row. The JS expresses\n // this as a negative margin so it can animate; unmeasured, the end state is\n // simply a pane of no width.\n &:not(.collapsed):not(.show-sidebar) .adw-osv-sidebar {\n width: 0;\n min-width: 0;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n }\n\n // Backdrop — the click-outside shield. `hidden` is the element's, off\n // `shieldVisible`; the OPACITY is the shadow-helper progress, so it fades with\n // the reveal instead of appearing whole.\n .adw-osv-backdrop {\n display: none;\n }\n\n &.collapsed .adw-osv-backdrop:not([hidden]) {\n display: block;\n position: absolute;\n inset: 0;\n background: rgb(0 0 0 / 30%);\n z-index: 9;\n transition: opacity 0.2s ease;\n }\n}\n\n// Sidebar content layout helper — wraps the sidebar's children with the\n// standard Adwaita spacing scale (12px padding, 12px gap between groups).\n.adw-sidebar-content {\n padding: var(--spacing-m);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-m);\n}\n\n// Sidebar toggle button — sidebar-show-symbolic icon via CSS mask\n.adw-sidebar-toggle-icon::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: currentColor;\n -webkit-mask-image: var(--icon-sidebar-show);\n mask-image: var(--icon-sidebar-show);\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-size: 16px 16px;\n mask-size: 16px 16px;\n -webkit-mask-position: center;\n mask-position: center;\n pointer-events: none;\n}\n","// _navigation_split_view.scss — adw-navigation-split-view styling (docked sidebar).\n//\n// Visibility is `data-pane-visible`, written by the element from\n// `update_navigation_stack` (adw-navigation-split-view.c:342-405), not from the\n// two flags. Two of that table's rules are not expressible as\n// `.collapsed.show-content`: a LONE child stays visible whatever `show-content`\n// says (:389-401), and with `sidebar-position: end` the CONTENT is the root page\n// so the sidebar is pushed ON TOP of it rather than replacing it. This file used\n// to key off the flags and got both wrong — a collapsed view with only a sidebar\n// rendered blank.\n//\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/navigationsplitview.md\n// Reference: refs/libadwaita/src/adw-navigation-split-view.c\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-navigation-split-view {\n display: flex;\n flex-direction: row;\n min-height: 0;\n min-width: 0;\n flex: 1 1 auto;\n\n .adw-nsv-sidebar {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex-shrink: 0;\n background-color: var(--sidebar-bg-color);\n }\n\n // The container MINIMUM, as CSS spells it: `measure_uncollapsed`\n // (adw-navigation-split-view.c:264-267) is `sidebar_min + content_min`, which\n // a flex row reaches by itself once the content may claim its own minimum.\n // `min-width: 0` — the flex idiom for \"let this be crushed\" — was here, which\n // is how the content pane could be squeezed to nothing while the sidebar,\n // being `flex-shrink: 0`, kept its whole width.\n .adw-nsv-content {\n display: flex;\n flex-direction: column;\n min-width: min-content;\n min-height: 0;\n flex: 1 1 auto;\n background-color: var(--window-bg-color);\n }\n\n // `sidebar-position: end` docks the sidebar past the content. flex `order`\n // flips the visual order without changing the slotting DOM order.\n &.sidebar-end {\n .adw-nsv-content {\n order: 1;\n }\n\n .adw-nsv-sidebar {\n order: 2;\n }\n }\n\n // THE DIVIDER FOLLOWS THE VISUAL SIDE. `_sidebars.scss:1293-1302` makes it\n // `:dir()` × `.end`, which is the product `.sidebar-at-visual-start` carries:\n // under RTL a `start` sidebar is drawn on the right and its divider belongs on\n // its left edge. A fixed `border-right` drew it on the wrong side for half the\n // four combinations.\n &.sidebar-at-visual-start .adw-nsv-sidebar {\n border-right: 1px solid var(--separator-color);\n }\n\n &:not(.sidebar-at-visual-start) .adw-nsv-sidebar {\n border-left: 1px solid var(--separator-color);\n }\n\n // Collapsed: whichever pane the STACK puts on top fills the view, and the\n // other is not rendered at all.\n &.collapsed {\n [data-pane-visible='false'] {\n display: none;\n }\n\n .adw-nsv-sidebar[data-pane-visible='true'] {\n flex: 1 1 auto;\n max-width: none;\n border-right: none;\n border-left: none;\n }\n }\n}\n","// _carousel.scss — adw-carousel + its dot/line page indicators.\n//\n// A horizontal scroll-snap pager (adw-carousel) plus two indicator widgets that\n// bind to it. The indicators reproduce libadwaita's snapshot drawing as CSS: a\n// per-marker `--adw-carousel-progress` (0 = inactive, 1 = focused) lerps between\n// the inactive and selected size/opacity exactly as AdwCarousel does.\n//\n// Dots: DOTS_RADIUS 3 → DOTS_RADIUS_SELECTED 4 (6px → 8px), DOTS_SPACING 7,\n// DOTS_OPACITY 0.3 → DOTS_OPACITY_SELECTED 0.9, active fill = accent.\n// Lines: LINE_LENGTH 35, LINE_WIDTH 3, LINE_SPACING 5, LINE_OPACITY 0.3 →\n// LINE_OPACITY_ACTIVE 0.9, active fill = accent.\n//\n// Reference: refs/libadwaita/src/adw-carousel.c\n// Reference: refs/libadwaita/src/adw-carousel-indicator-dots.c\n// Reference: refs/libadwaita/src/adw-carousel-indicator-lines.c\n// Reference: refs/adwaita-web/adwaita-web/scss/_carousel_indicators.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-carousel {\n display: block;\n overflow: hidden;\n\n .adw-carousel-track {\n display: flex;\n flex-direction: row;\n height: 100%;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n // Hide the scrollbar — the carousel is paged, not scrolled by chrome.\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n .adw-carousel-page {\n flex: 0 0 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n}\n\n// Shared layout for both indicator kinds — a centered, horizontally-laid-out\n// row of markers (matching the AdwCarouselIndicator* widgets).\nadw-carousel-indicator-dots,\nadw-carousel-indicator-lines {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-xs);\n\n // The clickable marker resets the button chrome — the visible shape is drawn\n // by the per-kind rules below.\n button {\n appearance: none;\n -webkit-appearance: none;\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n flex: 0 0 auto;\n }\n}\n\n// Dots — DOTS_SPACING 7px between centers; base diameter 6px (radius 3) growing\n// to 8px (radius 4) on the focused dot, opacity ramping 0.3 → 0.9.\nadw-carousel-indicator-dots {\n gap: 7px;\n\n .adw-carousel-dot {\n width: 8px;\n height: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n // The painted disc lives in ::before so the 8px hit-target stays constant\n // while the visible dot grows from 6px → 8px with progress.\n &::before {\n content: '';\n display: block;\n // 6px + (8px - 6px) * progress\n width: calc(6px + 2px * var(--adw-carousel-progress, 0));\n height: calc(6px + 2px * var(--adw-carousel-progress, 0));\n border-radius: 50%;\n background-color: var(--window-fg-color);\n // 0.3 + (0.9 - 0.3) * progress\n opacity: calc(0.3 + 0.6 * var(--adw-carousel-progress, 0));\n transition:\n width 0.2s ease,\n height 0.2s ease,\n opacity 0.2s ease,\n background-color 0.2s ease;\n }\n\n &.active::before {\n background-color: var(--window-fg-color);\n }\n }\n}\n\n// Lines — LINE_LENGTH 35px, LINE_WIDTH 3px, LINE_SPACING 5px; opacity ramps\n// 0.3 → 0.9; the active line recolors to the accent.\nadw-carousel-indicator-lines {\n gap: 5px;\n\n .adw-carousel-line {\n width: 35px;\n height: 3px;\n border-radius: 1.5px;\n background-color: var(--window-fg-color);\n // 0.3 + (0.9 - 0.3) * progress\n opacity: calc(0.3 + 0.6 * var(--adw-carousel-progress, 0));\n transition:\n opacity 0.2s ease,\n background-color 0.2s ease;\n\n &.active {\n background-color: var(--window-fg-color);\n }\n }\n}\n","// _tab_view.scss — adw-tab-view styling (a dynamic tabbed container with a tab\n// bar header; one page visible at a time). The bar is a headerbar-colored strip\n// of rounded chips; the selected chip is raised onto the view background, the\n// way libadwaita draws AdwTabBar over an AdwTabView.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_tab-view.scss (tabbar/tabbox/tab)\n// Reference: refs/adwaita-web/adwaita-web/scss/_tabs.scss\n// Copyright (c) 2020-2022 Purism SPC / GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-tab-view {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // --- Tab bar (the AdwTabBar strip) ---\n // Faithful port of libadwaita's `tabbar` (refs/libadwaita _tab-view.scss +\n // _colors.scss): a headerbar-colored box with an inset bottom shade; tabs\n // FILL their slot as rounded rects and use the currentColor alpha fills —\n // selected 10% (hover 13%, active 19%), plain hover 7%, active 16%.\n .adw-tab-bar {\n display: flex;\n align-items: stretch;\n flex-shrink: 0;\n box-sizing: border-box;\n padding: 0 1px 1px;\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n // libadwaita's inset bottom shade under the bar.\n box-shadow: inset 0 -1px var(--headerbar-shade-color);\n overflow-x: auto;\n scrollbar-width: none;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-tab-box {\n display: flex;\n align-items: stretch;\n flex: 1 1 auto;\n padding: 4px 0;\n }\n\n // --- A single tab ---\n .adw-tab {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n max-width: 200px;\n min-height: 30px;\n margin: 0;\n padding: 0 var(--spacing-m);\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n line-height: 1;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n transition: background-color 150ms ease-in-out;\n\n &:hover {\n background-color: color-mix(in srgb, currentColor 7%, transparent);\n }\n\n &:active {\n background-color: color-mix(in srgb, currentColor 16%, transparent);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected tab — libadwaita's currentColor alpha fill covering the\n // whole tab slot (NOT a raised chip on the view background).\n &.active {\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n\n &:hover {\n background-color: color-mix(in srgb, currentColor 13%, transparent);\n }\n\n &:active {\n background-color: color-mix(in srgb, currentColor 19%, transparent);\n }\n }\n }\n\n // Thin separators between tabs, hidden next to the selected or hovered tab\n // (libadwaita tabbox > separator + its .hidden state).\n .adw-tab + .adw-tab::before {\n content: '';\n position: absolute;\n left: 0;\n top: 3px;\n bottom: 3px;\n width: 1px;\n background-color: currentColor;\n opacity: 0.2;\n transition: opacity 150ms ease-in-out;\n pointer-events: none;\n }\n\n .adw-tab.active + .adw-tab::before,\n .adw-tab + .adw-tab.active::before,\n .adw-tab:hover + .adw-tab::before,\n .adw-tab + .adw-tab:hover::before {\n opacity: 0;\n }\n\n .adw-tab-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n }\n\n // --- Icon + indicator slots (AdwTab update_icons) ---\n // Both are mask-image spans carrying `adw-icon adw-icon--<name>`; the element\n // toggles `hidden` from `tabIconState`, whose rules decide which of the two\n // shows — on a pinned tab the indicator REPLACES the icon.\n // Reference: refs/libadwaita/src/adw-tab.c (update_icons, :171-198)\n .adw-tab-icon,\n .adw-tab-indicator {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n\n &[hidden] {\n display: none;\n }\n }\n\n // `AdwTabPage:loading` swaps the icon image for an `AdwSpinnerPaintable`\n // (`update_icons`, adw-tab.c:172-190) — the SAME paintable `Adw.Spinner` uses.\n // So the tab mounts a real `<adw-spinner>` in the icon's slot and this block\n // only places it. It used to restate `border: 2px`,\n // `rgba(127, 127, 127, 0.25)` and `0.8s` under a comment claiming the geometry\n // and keyframes were adw-spinner's and \"not a second copy of them\" — which is\n // how it inherited every spinner defect independently.\n .adw-tab-spinner {\n flex: none;\n\n &[hidden] {\n display: none;\n }\n }\n\n // A pinned tab is a single-glyph chip: libadwaita hides both the title and the\n // close button at construction (refs/libadwaita/src/adw-tab.c:645-650). The\n // close button is gated in JS by `tabCloseVisible`, which carries the same rule.\n .adw-tab.pinned {\n padding: 0 var(--spacing-xs);\n\n .adw-tab-title {\n display: none;\n }\n }\n\n // `AdwTabPage:needs-attention` — the accent underline libadwaita animates in\n // (refs/libadwaita/src/adw-tab.c update_needs_attention).\n .adw-tab.needs-attention::after {\n content: '';\n position: absolute;\n bottom: 2px;\n left: 50%;\n width: 12px;\n height: 2px;\n transform: translateX(-50%);\n border-radius: 1px;\n background-color: var(--accent-bg-color);\n }\n\n // --- Close affordance (CSS-drawn \"×\", no symbolic icon ships) ---\n // Presence is decided in JS by `tabCloseVisible` — `(hovering && fullyVisible)\n // || selected || dragging`, and never on a pinned tab (adw-tab.c:124, :645-650)\n // — which is why the `[hidden]` rule below is load-bearing rather than cosmetic.\n .adw-tab-close {\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n width: 18px;\n height: 18px;\n margin: 0;\n padding: 0;\n border: none;\n border-radius: 9999px;\n background-color: transparent;\n color: inherit;\n cursor: pointer;\n opacity: 0.7;\n transition:\n background-color 150ms ease-in-out,\n opacity 150ms ease-in-out;\n\n &[hidden] {\n display: none;\n }\n\n &:hover {\n opacity: 1;\n background-color: var(--button-hover-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 9px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n\n // Adw.TabBar `expand-tabs` — tabs stretch to fill the bar evenly.\n &[expand-tabs] .adw-tab {\n flex: 1 1 0;\n max-width: none;\n }\n\n // Web-specific escape hatch: static tab sets (e.g. documentation command\n // tabs) render no close affordance.\n &[no-close] .adw-tab-close {\n display: none;\n }\n\n // Single-tab bars draw no tab background (libadwaita keeps a lone tab\n // non-interactive-looking).\n .adw-tab-bar.single-tab .adw-tab {\n &,\n &:hover,\n &:active {\n background: none;\n }\n }\n\n // --- Pages (the AdwTabView content area) ---\n .adw-tab-view-pages {\n flex: 1 1 auto;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--view-bg-color);\n color: var(--view-fg-color);\n }\n\n .adw-tab-page {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n &[hidden] {\n display: none;\n }\n\n &.active-page {\n display: block;\n }\n }\n}\n","// _view_switcher.scss — adw-view-switcher styling: an adaptive, tab-style\n// switcher (single `viewswitcher` node) above a content area showing one page\n// at a time. Buttons are always icon + label, laid out side by side (`.wide`)\n// or stacked (`.narrow`), matching libadwaita's policy style classes.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_view-switcher.scss (AdwViewSwitcher)\n// Reference: refs/adwaita-web/adwaita-web/scss/_viewswitcher.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-switcher {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n // The segmented button bar — the single `viewswitcher` node in libadwaita.\n // Homogeneous tabs (equal width via flex:1) with a small gutter between them.\n .adw-view-switcher-bar {\n display: flex;\n align-items: stretch;\n gap: 3px; // libadwaita's `border-spacing: 3px`\n min-height: 34px;\n }\n\n // Each tab is a flat, transparent toggle that lights up with a subtle fill\n // when hovered and shows the active page with an accent-tinted background.\n .adw-view-switcher-button {\n box-sizing: border-box;\n display: inline-flex;\n flex: 1 1 0; // homogeneous — every tab gets equal width\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 2px 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1.2;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n // A page with neither title nor icon has NO button at all\n // (adw-view-switcher.c:178), spelled here as the `hidden` attribute.\n // Re-assert it as an AUTHOR rule: the UA `[hidden] { display: none }`\n // loses to this block's own author `display: inline-flex` (cascade ORIGIN\n // beats specificity), so without this a hidden button stays on screen.\n &[hidden] {\n display: none;\n }\n\n .adw-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-view-switcher-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // AdwIndicatorBin's badge — the unread count, or a bare dot when only\n // `needs-attention` is set.\n // Reference: refs/libadwaita/src/adw-indicator-bin.c\n .adw-view-switcher-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected view — a neutral filled chip (libadwaita darkens the\n // whole button; the icon/label keep the normal foreground colour\n // rather than turning accent).\n &.active {\n background-color: var(--button-active-color);\n color: var(--window-fg-color);\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n // Wide policy — icon and label side by side.\n &.wide .adw-view-switcher-button {\n flex-direction: row;\n gap: var(--spacing-xs);\n }\n\n // Narrow policy — icon stacked above a smaller label, the compact layout\n // libadwaita drops to in a header bar at narrow window widths.\n &.narrow {\n .adw-view-switcher-bar {\n min-height: 6px;\n }\n\n .adw-view-switcher-button {\n flex-direction: column;\n gap: 1px;\n padding-top: 4px;\n padding-bottom: 2px;\n font-size: 0.75rem;\n\n .adw-view-switcher-label {\n min-height: 18px;\n line-height: 18px;\n }\n }\n }\n\n // The paired content area showing the active page — a card-like surface\n // below the switcher (the web stand-in for the Adw.ViewStack body).\n .adw-view-switcher-content {\n flex: 1 1 auto;\n margin-top: var(--spacing-s);\n padding: var(--spacing-m);\n background-color: var(--view-bg-color);\n border: 1px solid var(--separator-color);\n border-radius: var(--card-radius);\n }\n\n .adw-view-switcher-page {\n display: none;\n\n &.active-view {\n display: block;\n }\n }\n}\n","// _inline_view_switcher.scss — adw-inline-view-switcher styling (a compact view\n// switcher: a toggle-group-style bar of one toggle per page over a single\n// stacked content area, with the active toggle drawn as the raised Adwaita\n// active-toggle chip). The bar's per-display-mode sizing (labels / icons / both)\n// mirrors libadwaita's `inline-view-switcher > toggle-group.{labels,icons,both}`.\n// Reference: refs/libadwaita/src/adw-inline-view-switcher.c (AdwInlineViewSwitcher)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toggle-group.scss (inline-view-switcher > toggle-group)\n// Reference: refs/adwaita-web/adwaita-web/scss/_viewswitcher.scss\n// Copyright (c) 2023 Maximiliano Sandoval / 2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The active toggle uses a white-on-fg \"raised\" chip — the same tokens the\n// toggle-group uses (defined there; _theme.scss overrides them for dark).\n\nadw-inline-view-switcher {\n // libadwaita's ---group-padding: a small inset so the active chip floats\n // inside the group's pill, leaving a hairline of group background around it.\n --group-padding: 3px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n // The switcher bar — a toggle-group pill, sized to its content.\n .adw-inline-view-switcher-group {\n display: inline-flex;\n box-sizing: border-box;\n align-items: stretch;\n gap: var(--group-padding);\n padding: var(--group-padding);\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n }\n\n // Each toggle is a button-shaped chip with the group's inner radius.\n .adw-inline-view-switcher-toggle {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 34px;\n min-height: 28px;\n margin: 0;\n padding: 4px 11px;\n border: none;\n border-radius: calc(var(--button-radius) - var(--group-padding));\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n box-shadow 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // The active toggle — a raised white chip, the way libadwaita draws it.\n &.active {\n background-color: var(--active-toggle-bg-color);\n color: var(--active-toggle-fg-color);\n box-shadow:\n 0 1px 3px 1px rgba(0, 0, 6, 0.07),\n 0 2px 6px 2px rgba(0, 0, 6, 0.03);\n\n &:hover {\n background-color: var(--active-toggle-bg-color);\n }\n }\n }\n\n // The switcher's symbolic icon — a currentColor mask, sized like a toolbar\n // icon (matches the .adw-icon base used across @gjsify/adwaita-web).\n .adw-inline-view-switcher-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n flex: none;\n background-color: currentColor;\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n -webkit-mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n }\n\n .adw-inline-view-switcher-label {\n white-space: nowrap;\n }\n\n // AdwIndicatorBin's badge — the unread count, or a bare dot when only\n // `needs-attention` is set.\n // Reference: refs/libadwaita/src/adw-indicator-bin.c\n .adw-inline-view-switcher-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n // Author rule, not the UA one: the `display: inline-flex` above is also\n // an author rule and would otherwise keep an empty badge on screen\n // (cascade ORIGIN beats specificity — the same trap the bar hit).\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n // The stacked content area below the bar — exactly one page is visible.\n .adw-inline-view-switcher-pages {\n width: 100%;\n }\n\n .adw-inline-view-switcher-page {\n &:not(.active-view) {\n display: none;\n }\n }\n\n // Per-display-mode sizing, mirroring libadwaita's\n // inline-view-switcher > toggle-group.{icons,labels,both}.\n .adw-inline-view-switcher-group.icons .adw-inline-view-switcher-toggle {\n min-width: 34px;\n padding-left: 0;\n padding-right: 0;\n }\n\n .adw-inline-view-switcher-group.labels .adw-inline-view-switcher-toggle {\n min-width: calc(18px + var(--group-padding) * 2);\n }\n\n // Round — group + toggles become pill-shaped.\n &.round {\n .adw-inline-view-switcher-group {\n border-radius: 17px;\n }\n\n .adw-inline-view-switcher-toggle {\n border-radius: calc(17px - var(--group-padding));\n padding-left: calc(15px - var(--group-padding));\n padding-right: calc(15px - var(--group-padding));\n }\n }\n\n // Flat — no group background; the active toggle uses a subtle fill instead\n // of the raised white chip.\n &.flat {\n --group-padding: 0px;\n\n .adw-inline-view-switcher-group {\n padding: 0;\n background: none;\n }\n\n .adw-inline-view-switcher-toggle {\n border-radius: var(--button-radius);\n\n &.active {\n background-color: var(--button-active-color);\n color: inherit;\n box-shadow: none;\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n &.round .adw-inline-view-switcher-toggle {\n border-radius: 17px;\n }\n }\n}\n","// _view_stack.scss — adw-view-stack styling: a standalone named-page content\n// container that shows exactly one page at a time (the web counterpart of\n// Adw.ViewStack, decoupled from any switcher). It carries no chrome of its own —\n// a paired adw-view-switcher-bar (or a header-bar switcher) drives selection.\n// Reference: refs/libadwaita/src/adw-view-stack.c (AdwViewStack)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-stack {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n // vexpand-equivalent — fill the space a switcher shell allots to content.\n flex: 1 1 auto;\n min-height: 0;\n\n // Exactly one child is shown; the rest are laid out of flow. `hidden` is set\n // in JS too, but the class keeps the visible page a flex child that grows.\n .adw-view-stack-child {\n display: none;\n\n &.active-view {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n }\n}\n","// _view_switcher_bar.scss — adw-view-switcher-bar styling: the narrow BOTTOM\n// bar of homogeneous icon-over-label buttons bound to an adw-view-stack (the web\n// counterpart of Adw.ViewSwitcherBar). It sits at the window bottom with a top\n// hairline over a headerbar-toned surface, mirroring libadwaita's `.narrow`\n// view-switcher inside an actionbar. The active button's label is accent-tinted.\n// Reference: refs/libadwaita/src/adw-view-switcher-bar.c (AdwViewSwitcherBar)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_view-switcher.scss (.narrow policy)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toolbars.scss (actionbar top border)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-switcher-bar {\n display: block;\n\n // `revealed` drives visibility by toggling the `hidden` attribute\n // (_applyRevealed → this.hidden). Re-assert display:none for [hidden] as an\n // AUTHOR rule: the UA `[hidden] { display: none }` loses to this block's own\n // author `display: block` (cascade ORIGIN beats specificity), so without this\n // an unrevealed bar would stay visible. Author + higher specificity → wins.\n &[hidden] {\n display: none;\n }\n\n box-sizing: border-box;\n // The bottom bar over a headerbar-toned surface with a top hairline (the\n // libadwaita `actionbar` inset top border), NOT a bottom border.\n background-color: var(--headerbar-bg-color);\n border-top: 1px solid var(--separator-color);\n padding: 7px 0; // libadwaita `viewswitcherbar > box` vertical padding\n\n // The homogeneous button row — every button gets equal width.\n .adw-view-switcher-bar-box {\n display: flex;\n align-items: stretch;\n // The `.narrow` view-switcher drops to a 6px min-height (icon-over-label).\n min-height: 6px;\n }\n\n // Each button — icon stacked above a small label, a flat transparent toggle\n // that fills on hover/active and marks the selected page with an accent\n // label (the neutral fill stays the same across states, like libadwaita).\n .adw-view-switcher-bar-button {\n box-sizing: border-box;\n display: inline-flex;\n flex: 1 1 0; // homogeneous — equal width\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 1px;\n margin: 0;\n padding: 4px 3px 2px;\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: 0.75rem;\n font-weight: 700;\n line-height: 1.2;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n // Same cascade trap as the bar itself: a page with neither title nor\n // icon has no button (adw-view-switcher.c:178), and the UA\n // `[hidden] { display: none }` loses to this block's author\n // `display: inline-flex` unless it is re-asserted here.\n &[hidden] {\n display: none;\n }\n\n .adw-view-switcher-bar-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-view-switcher-bar-label {\n min-height: 18px;\n line-height: 18px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // AdwIndicatorBin's badge — see refs/libadwaita/src/adw-indicator-bin.c.\n .adw-view-switcher-bar-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected page — its label turns accent-coloured. (The icon stays\n // theme-fg, matching the NS twin's documented fidelity note.)\n &.active {\n color: var(--accent-color);\n\n .adw-view-switcher-bar-label {\n color: var(--accent-color);\n }\n }\n }\n}\n","// _navigation_view.scss — adw-navigation-view styling (a page-based navigation\n// container; one page visible at a time, controlled with push/pop). The visible\n// page fills the view on the window background; an automatic back button is\n// drawn flat at the start of the visible page's header bar.\n// Reference: refs/libadwaita/src/adw-navigation-view.c (css node \"navigation-view\")\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/navigationview.md\n// Copyright (c) 2022-2023 Purism SPC / GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-navigation-view {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // The page stack — fills the view; positioned so pages can stack.\n .adw-navigation-view-pages {\n flex: 1 1 auto;\n position: relative;\n box-sizing: border-box;\n min-height: 0;\n overflow: hidden;\n }\n\n // A single navigation page — the visible one fills the view, the rest are\n // hidden. Positioned absolutely so a transition can overlap two pages.\n .adw-navigation-page {\n box-sizing: border-box;\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n overflow: auto;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n &[hidden] {\n display: none;\n }\n\n &.visible-page {\n display: flex;\n }\n\n // Let a page whose direct child fills (a toolbar-view / status-page)\n // stretch to the full height.\n > * {\n flex: 1 1 auto;\n min-height: 0;\n }\n }\n\n // The injected automatic back button — flat, sits at the start of the visible\n // page's header bar (mirrors AdwHeaderBar's grown-in back button).\n .adw-navigation-back-button {\n flex-shrink: 0;\n }\n\n // Slide transition for the visible page when transitions are animated. The\n // entering page fades up from a slight horizontal offset (LTR push), matching\n // libadwaita's spring-driven slide closely enough for the web target.\n &.animated .adw-navigation-page.visible-page {\n animation: adw-navigation-page-in 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n }\n}\n\n@keyframes adw-navigation-page-in {\n from {\n opacity: 0;\n transform: translateX(12px);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","// _bottom_sheet.scss — adw-bottom-sheet styling (a content area with a sheet\n// that slides up from the bottom edge over the content, with an overlaid drag\n// handle). Mirrors libadwaita's AdwBottomSheet CSS node tree: a persistent\n// content layer, a dimming layer that fades in over it while open (modal), and\n// the sheet itself anchored to the bottom edge with rounded top corners + the\n// pill-shaped drag handle.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_bottom-sheet.scss\n// (dimming / sheet box-shadow / drag-handle pill / dialog top radius)\n// Reference: refs/libadwaita/src/adw-bottom-sheet.c (open / modal / can-close)\n// Copyright (c) 2023-2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-bottom-sheet {\n display: block;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // --- Persistent content layer ---\n .adw-bottom-sheet-content {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n }\n\n // --- Dimming layer (modal scrim over the content) ---\n // libadwaita: > dimming { background: shade-color × 2 }. Non-interactive +\n // transparent when the sheet is closed.\n .adw-bottom-sheet-dimming {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n background-color: rgba(0, 0, 6, 0.32);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition:\n opacity 200ms ease,\n visibility 0s linear 200ms;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transition:\n opacity 200ms ease,\n visibility 0s;\n }\n }\n\n // --- The slide-up sheet ---\n // Anchored to the bottom edge, full-width, rounded top corners (dialog\n // radius), slid off-screen when closed. The spring-driven AdwBottomSheet uses\n // a translate; the web port uses an eased transform for the same effect.\n .adw-bottom-sheet-sheet {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n max-height: 100%;\n overflow: auto;\n background-color: var(--view-bg-color);\n color: var(--view-fg-color);\n border-top-left-radius: var(--window-radius);\n border-top-right-radius: var(--window-radius);\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n transform: translateY(100%);\n transition:\n transform 250ms ease,\n box-shadow 250ms ease;\n will-change: transform;\n }\n\n // --- Drag handle (overlaid pill at the top of the sheet) ---\n // libadwaita: > drag-handle { min-width 54px; min-height 6px; margin 15px;\n // border-radius 99px; background currentColor @ 25% }.\n // It is built with can_focus = FALSE and can_target = FALSE\n // (adw-bottom-sheet.c:1197-1198) — a decorative pill, not a button;\n // `pointer-events: none` is can_target in CSS. The `cursor: pointer` + focus\n // ring that used to sit here belonged to a close button this widget never had.\n .adw-bottom-sheet-drag-handle {\n flex-shrink: 0;\n box-sizing: border-box;\n width: 54px;\n min-height: 6px;\n height: 6px;\n margin: 15px auto;\n border-radius: 99px;\n background-color: color-mix(in srgb, currentColor 25%, transparent);\n pointer-events: none;\n }\n\n .adw-bottom-sheet-sheet-body {\n box-sizing: border-box;\n }\n\n // --- Open state ---\n &.open .adw-bottom-sheet-sheet {\n transform: translateY(0);\n }\n\n // A non-modal sheet must not block the content beneath it.\n &:not(.modal) .adw-bottom-sheet-dimming {\n display: none;\n }\n}\n","// _sidebar.scss — adw-sidebar styling (a selectable navigation sidebar built\n// from titled sections of icon + title + subtitle items). In sidebar mode it\n// renders as the flat AdwSidebar navigation list (`.navigation-sidebar`); in\n// page mode it renders as boxed lists with a trailing chevron on each row (the\n// AdwPreferencesPage look the native widget switches to when collapsed).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss (.navigation-sidebar, sidebar)\n// Reference: refs/libadwaita/src/adw-sidebar.c (row/header/section structure)\n// Copyright (c) 2025 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-sidebar {\n display: block;\n box-sizing: border-box;\n overflow-y: auto;\n background-color: var(--sidebar-bg-color, var(--window-bg-color));\n color: var(--sidebar-fg-color, var(--window-fg-color));\n\n .adw-sidebar-list {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n // libadwaita's menu margins around the navigation list.\n padding: var(--spacing-xs) 0;\n }\n\n .adw-sidebar-section {\n display: flex;\n flex-direction: column;\n }\n\n // --- Section headers (heading or separator) ---\n .adw-sidebar-section-header {\n &[hidden] {\n display: none;\n }\n\n // Untitled section → a horizontal separator before its rows (the way the\n // AdwSidebar header stack shows its \"separator\" child).\n &.separator {\n height: 1px;\n margin: var(--spacing-xs) var(--spacing-s);\n background-color: var(--separator-color, var(--card-shade-color));\n }\n\n &.has-title {\n padding: var(--spacing-s) calc(var(--spacing-s) + 6px) var(--spacing-xs);\n\n // The first header sits flush with the top (mirrors `.header.first`).\n &.first {\n padding-top: 0;\n }\n }\n }\n\n .adw-sidebar-section-heading {\n font-size: var(--font-size-small);\n font-weight: 700;\n opacity: var(--dim-opacity);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // --- A single item row ---\n .adw-sidebar-item {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n width: 100%;\n min-height: 36px;\n // The native row has a context menu, so padding lives on the inner box and\n // the row itself carries the menu margin + radius.\n margin: 0 var(--spacing-xs) 2px;\n padding: 3px 14px;\n border: none;\n border-radius: var(--button-radius, 6px);\n background-color: transparent;\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: start;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n transition:\n background-color 150ms ease-in-out,\n color 150ms ease-in-out;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color, var(--button-hover-color));\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // Selected row — a neutral filled highlight; libadwaita's AdwSidebar\n // selection is a subtle fill with the normal foreground, not accent.\n &.selected {\n background-color: var(--button-active-color);\n color: var(--window-fg-color);\n\n &:hover,\n &:active {\n background-color: var(--button-active-color);\n }\n }\n }\n\n .adw-sidebar-item-icon {\n flex-shrink: 0;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-sidebar-item-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-sidebar-item-title {\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-sidebar-item-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &[hidden] {\n display: none;\n }\n }\n\n // The trailing chevron is only drawn in page (boxed-list) mode.\n .adw-sidebar-item-arrow {\n flex-shrink: 0;\n opacity: var(--dim-opacity);\n display: none;\n }\n\n // --- Page mode (boxed lists) ---\n // Sections become bordered, rounded cards (the AdwPreferencesGroup look) and\n // each row gains its trailing chevron; selection no longer fills the row with\n // the accent color, matching how the native widget drops the list selection\n // in page mode.\n &.page {\n .adw-sidebar-list {\n padding: var(--spacing-m);\n gap: var(--spacing-xs);\n }\n\n .adw-sidebar-section {\n border: 1px solid var(--card-shade-color);\n border-radius: var(--card-radius, 12px);\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n overflow: hidden;\n }\n\n .adw-sidebar-section-header.has-title {\n padding: var(--spacing-m) var(--spacing-xs) var(--spacing-xs);\n\n &.first {\n padding-top: var(--spacing-m);\n }\n }\n\n .adw-sidebar-item {\n margin: 0;\n padding: var(--spacing-s) var(--spacing-m);\n border-radius: 0;\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n &.selected {\n background-color: transparent;\n color: var(--card-fg-color);\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n }\n }\n\n .adw-sidebar-item-arrow {\n display: inline-block;\n }\n }\n}\n","// _about_dialog.scss — adw-about-dialog styling (a modal AdwDialog floating\n// sheet hosting the About navigation view: a full-cover scrim + a centred,\n// rounded, scrollable sheet box). Mirrors libadwaita's AdwDialog floating-sheet\n// node tree (dimming + rounded sheet with the outline + layered shadow) and the\n// AdwAboutDialog main page layout (large icon, title-1 name, dimmed developer\n// line, the version pill, then the navigation rows).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss\n// (floating-sheet > dimming / > sheet radius + box-shadow + outline)\n// Reference: refs/libadwaita/src/adw-about-dialog.ui (page tree, content-width 360)\n// Reference: refs/adwaita-web/adwaita-web/scss/_about_dialog.scss (web layout)\n// Copyright (c) 2022-2024 GNOME Foundation Inc. / Purism SPC (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-about-dialog {\n // The host is inert until presented; `.open` reveals the scrim + sheet.\n display: none;\n\n &.open {\n display: block;\n }\n\n // --- Full-cover modal scrim ---\n // libadwaita: floating-sheet > dimming { background shade-color × 2 }.\n .adw-about-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background-color: rgba(0, 0, 6, 0.32);\n animation: adw-about-dialog-scrim-in 200ms ease;\n }\n\n // --- Centred floating sheet ---\n // libadwaita: floating-sheet > sheet { dialog radius; layered shadow; 1px\n // outline -1px offset }. content-width 360 → a comfortable ~360px sheet.\n .adw-about-dialog-sheet {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n width: 360px;\n max-width: calc(100vw - 48px);\n max-height: calc(100vh - 48px);\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n animation: adw-about-dialog-sheet-in 200ms cubic-bezier(0, 0, 0.2, 1);\n\n &:focus {\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n }\n }\n\n // The navigation view fills the sheet; each page is a column.\n adw-navigation-view,\n .adw-navigation-view-pages,\n .adw-navigation-page {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n // --- Toolbar view (flat header bar over the window background + scroller) ---\n .adw-about-dialog-toolbar-view {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n // The dialog header bar is flat: transparent over the window background, no\n // bottom separator (libadwaita: window.about headerbar.titlebar { flat }).\n adw-header-bar {\n background-color: transparent;\n box-shadow: none;\n min-height: 47px;\n }\n\n // The close button — a flat circular button drawing a \"×\" glyph (no\n // window-close symbolic icon ships in @gjsify/adwaita-icons).\n .adw-about-dialog-close {\n width: 34px;\n height: 34px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n line-height: 1;\n\n &::before {\n content: '\\00d7'; // ×\n }\n }\n\n // --- Scrolling content area ---\n .adw-about-dialog-scroll {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .adw-about-dialog-clamp {\n width: 100%;\n max-width: 360px;\n margin-inline: auto;\n box-sizing: border-box;\n }\n\n .adw-about-dialog-page-body {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 0 var(--spacing-m) var(--spacing-l);\n }\n\n // --- Main page header title: hidden until the content scrolls ---\n // Mirrors AdwAboutDialog's update_headerbar_cb (show title once scrolled > 0).\n .main-page {\n adw-header-bar .adw-header-bar-title {\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n &.scrolled adw-header-bar .adw-header-bar-title {\n opacity: 1;\n }\n }\n\n // --- App icon (the large recessed glyph) ---\n .adw-about-dialog-icon {\n align-self: center;\n width: 96px;\n height: 96px;\n margin-top: var(--spacing-s);\n margin-bottom: var(--spacing-m);\n // Mask-driven adw-icon scaled up to the about-dialog app-icon size.\n -webkit-mask-size: contain;\n mask-size: contain;\n background-color: currentColor;\n }\n\n // --- App name (title-1) ---\n .adw-about-dialog-name {\n align-self: center;\n text-align: center;\n font-size: 18pt;\n font-weight: 800;\n line-height: 1.2;\n margin-bottom: var(--spacing-xs);\n }\n\n // --- Developer / vendor line ---\n .adw-about-dialog-developer {\n align-self: center;\n text-align: center;\n font-size: var(--font-size-base);\n opacity: var(--dim-opacity);\n margin-bottom: var(--spacing-m);\n }\n\n // --- Version pill ---\n // libadwaita: .app-version { small accent chip }.\n .adw-about-dialog-version {\n align-self: center;\n padding: 2px 12px;\n margin-bottom: var(--spacing-l);\n border-radius: 99px;\n font-size: var(--font-size-small);\n line-height: 1.4;\n background-color: color-mix(in srgb, var(--accent-bg-color) 14%, transparent);\n color: var(--accent-color);\n }\n\n // --- Row groups (Details / Credits / Legal navigation, link rows) ---\n .adw-about-dialog-rows {\n width: 100%;\n margin-top: var(--spacing-m);\n\n & + .adw-about-dialog-rows {\n margin-top: var(--spacing-l);\n }\n }\n\n // The trailing chevron / link affordance on a navigation or link row.\n .adw-about-dialog-chevron {\n width: 16px;\n height: 16px;\n opacity: var(--dim-opacity);\n }\n\n // --- Subpage content (Details / Credits / Legal) ---\n .adw-about-dialog-comments {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-base);\n line-height: 1.5;\n text-align: start;\n white-space: pre-wrap;\n }\n\n .adw-about-dialog-copyright {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n text-align: center;\n }\n\n .adw-about-dialog-license {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n text-align: center;\n\n a {\n color: var(--accent-color);\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n}\n\n@keyframes adw-about-dialog-scrim-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-about-dialog-sheet-in {\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n","// _alert_dialog.scss — adw-alert-dialog: a modal scrim + centred dialog box with\n// a bold heading, body text and a row/column of response buttons.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating-sheet,\n// AdwDialog sheet shadow + radius)\n// Reference: refs/adwaita-web/adwaita-web/scss/_dialog.scss (alert layout)\n// Reference: refs/libadwaita/src/adw-alert-dialog.c (response button layout)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// Host: lay the scrim + box out as a full-cover overlay only while open.\nadw-alert-dialog {\n display: none;\n\n &.open {\n display: block;\n }\n}\n\n// The scrim — a fixed full-cover dimming layer behind the dialog box.\n.adw-alert-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1050;\n background-color: rgba(0, 0, 6, 0.32);\n // Centre the dialog box (the box is the scrim's flex child).\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-l);\n // Mirror the AdwDialog present transition (a quick fade + scale).\n animation: adw-alert-dialog-fade-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n}\n\n// The dialog box — the AdwDialog \"sheet\": rounded window-colored surface with a\n// soft shadow + hairline outline, centred above the scrim.\n.adw-alert-dialog-box {\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1051;\n transform: translate(-50%, -50%);\n\n display: flex;\n flex-direction: column;\n\n box-sizing: border-box;\n width: 100%;\n max-width: 300px;\n max-height: calc(100vh - 2 * var(--spacing-xl));\n overflow: hidden;\n\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n\n font-family: var(--font-family);\n\n animation: adw-alert-dialog-pop-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Wider layout when responses are laid out horizontally (prefer-wide-layout).\n.adw-alert-dialog-box:has(.adw-alert-dialog-responses.horizontal) {\n max-width: 360px;\n}\n\n// The scrollable message area: heading + body + optional extra child.\n.adw-alert-dialog-message {\n display: flex;\n flex-direction: column;\n padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-l);\n overflow-y: auto;\n}\n\n.adw-alert-dialog-heading {\n margin: 0;\n // Matches the GTK .title-2 typography style (bold heading).\n font-size: 15pt;\n font-weight: 800;\n line-height: 1.3;\n text-align: center;\n}\n\n.adw-alert-dialog-body {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-base);\n line-height: 1.4;\n text-align: center;\n}\n\n// Extra child slot, displayed below the body.\n.adw-alert-dialog-child {\n margin-top: var(--spacing-m);\n\n &:empty {\n display: none;\n }\n}\n\n// Response button area. Vertical (stacked) by default; horizontal when the\n// dialog opts into the wide layout.\n.adw-alert-dialog-responses {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s);\n padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);\n\n &.horizontal {\n flex-direction: row;\n justify-content: stretch;\n\n .adw-alert-dialog-response {\n flex: 1 1 0;\n }\n }\n}\n\n// The response buttons — full-width pills within the stacked layout. They reuse\n// the .adw-button skin (incl. .suggested-action / .destructive-action), so only\n// the full width needs adding here. The default response is NOT accent-tinted —\n// libadwaita only colours suggested/destructive responses; the default one is\n// just the Enter-activated button and keeps the neutral button style.\n.adw-alert-dialog-response.adw-button {\n width: 100%;\n justify-content: center;\n}\n\n@keyframes adw-alert-dialog-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-alert-dialog-pop-in {\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n","// _preferences_dialog.scss — adw-preferences-dialog styling (scrim + dialog box).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating-sheet\n// scrim/dimming + sheet radius + box-shadow + outline)\n// Reference: refs/libadwaita/src/adw-preferences-dialog.ui (flat header + title)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-preferences-dialog {\n // Hidden until presented (the `open` class is toggled by the component). The\n // element itself contributes nothing to layout while closed.\n display: none;\n\n &.open {\n display: block;\n }\n\n // Full-cover scrim — a fixed dimming layer behind the dialog box. Adwaita\n // dims with `--shade-color` at double alpha (see _dialogs.scss `floating-sheet\n // > dimming`); --shade-color isn't in the adwaita-web token subset, so use the\n // equivalent neutral wash.\n .adw-preferences-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background-color: rgba(0, 0, 6, 0.32);\n }\n\n // The centred floating dialog box. Mirrors `floating-sheet > sheet`: the\n // dialog radius (= --window-radius in Adwaita), the layered drop shadow and a\n // 1px window outline.\n .adw-preferences-dialog-box {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n width: min(var(--adw-dialog-content-width, 640px), calc(100vw - 48px));\n max-height: calc(100vh - 48px);\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 14px 2px rgba(0, 0, 6, 0.03);\n }\n\n // Flat header bar — transparent over the window background (Adw's preferences\n // dialog header uses a flat AdwHeaderBar), title centred against the trailing\n // close button.\n .adw-preferences-dialog-header {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n flex-shrink: 0;\n }\n\n // Equal-width sides keep the title optically centred (strict centering).\n .adw-preferences-dialog-header-side {\n display: flex;\n align-items: center;\n flex: 1 1 0;\n min-width: 0;\n }\n\n .adw-preferences-dialog-header-side--end {\n justify-content: flex-end;\n }\n\n .adw-preferences-dialog-title {\n flex: 0 0 auto;\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 6px;\n }\n\n // Round flat close button drawing a CSS \"×\" glyph (no symbolic close icon\n // ships in @gjsify/adwaita-icons — same approach as <adw-tab-view>).\n .adw-preferences-dialog-close {\n appearance: none;\n border: none;\n margin: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 50%;\n background-color: transparent;\n color: var(--window-fg-color);\n cursor: pointer;\n position: relative;\n transition: background-color 0.1s ease;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &.locked {\n opacity: var(--dim-opacity);\n cursor: default;\n }\n }\n\n // Scrolled body holding the stacked pages. Adwaita preferences pages sit on\n // the window background (the boxed-list groups carry their own card surface).\n .adw-preferences-dialog-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n }\n\n // Clamped column of preferences groups — Adw.PreferencesPage clamps content to\n // a comfortable reading width and stacks groups with generous spacing.\n .adw-preferences-dialog-pages {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xl);\n max-width: 600px;\n margin: 0 auto;\n padding: var(--spacing-xl) var(--spacing-m);\n\n // The dialog keeps the <adw-preferences-page> ELEMENTS rather than hoisting\n // their children out — the page's title / name / icon-name are what a\n // search-result subtitle and a view switcher read. The page therefore has\n // to be layout-transparent so its groups stay flex items of this column;\n // a custom element's default `display: inline` would collapse it.\n > adw-preferences-page {\n display: contents;\n\n // `display: contents` above beats the UA `[hidden] { display: none }`, so\n // a page hidden through the DOM `hidden` property would keep rendering\n // its groups while the search (which reads the same flag) had already\n // dropped it from the corpus.\n &[hidden] {\n display: none;\n }\n }\n }\n}\n","// _dialog.scss — adw-dialog: a generic adaptive dialog. A full-cover scrim with\n// a floating window-coloured \"sheet\" centred on wide viewports, re-anchored as a\n// bottom sheet (full-width, rounded top corners) on narrow ones. Mirrors the\n// AdwDialog floating-sheet + bottom-sheet presentations.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating sheet)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_bottom-sheet.scss (bottom radius)\n// Copyright (c) 2023-2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// Bottom-sheet layout — shared by the explicit mode and the auto/narrow query.\n@mixin adw-dialog-bottom-sheet {\n .adw-dialog-scrim {\n align-items: flex-end;\n justify-content: stretch;\n padding: 0;\n }\n\n .adw-dialog-box {\n width: 100%;\n max-width: none;\n // Rounded only along the top edge — it hugs the bottom viewport edge.\n border-top-left-radius: var(--window-radius);\n border-top-right-radius: var(--window-radius);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n animation: adw-dialog-slide-up 0.25s cubic-bezier(0, 0, 0.2, 1);\n }\n}\n\n// Host: contributes nothing to layout while closed; the `open` class reveals it.\nadw-dialog {\n display: none;\n\n &.open {\n display: block;\n }\n\n // The full-cover scrim — a flex container centring the box; a dimming wash\n // behind it. Clicking the scrim (outside the box) attempts to dismiss.\n .adw-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1050;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-l);\n background-color: var(--dialog-scrim-color, rgba(0, 0, 6, 0.32));\n animation: adw-dialog-fade-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n }\n\n // The dialog box (\"sheet\"): a rounded window-coloured surface with a soft\n // layered shadow + hairline outline. Sized by the content-width/height props.\n .adw-dialog-box {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: min(var(--adw-dialog-content-width, 360px), calc(100vw - 2 * var(--spacing-l)));\n max-height: min(var(--adw-dialog-content-height, 100vh), calc(100vh - 2 * var(--spacing-l)));\n overflow: hidden;\n\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 14px 2px rgba(0, 0, 6, 0.03);\n\n font-family: var(--font-family);\n animation: adw-dialog-pop-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n\n &:focus {\n outline: 1px solid var(--separator-color);\n }\n }\n\n // Flat header bar — transparent over the window background, title strictly\n // centred against the trailing close button (the AdwHeaderBar idiom).\n .adw-dialog-header {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n flex-shrink: 0;\n }\n\n .adw-dialog-header-side {\n display: flex;\n align-items: center;\n flex: 1 1 0;\n min-width: 0;\n }\n\n .adw-dialog-header-side--end {\n justify-content: flex-end;\n }\n\n .adw-dialog-title {\n flex: 0 0 auto;\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 6px;\n }\n\n // Round flat close button drawing a CSS \"×\" glyph (no window-close symbolic\n // ships in @gjsify/adwaita-icons — same approach as <adw-preferences-dialog>).\n .adw-dialog-close {\n appearance: none;\n border: none;\n margin: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 50%;\n background-color: transparent;\n color: var(--window-fg-color);\n cursor: pointer;\n position: relative;\n flex: none;\n transition: background-color 0.1s ease;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &.locked {\n opacity: var(--dim-opacity);\n cursor: default;\n }\n }\n\n // Content area — the author's markup; scrolls when it exceeds the box height.\n .adw-dialog-content {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);\n }\n\n // A header-less dialog pads the content on all sides.\n .adw-dialog-header[hidden] + .adw-dialog-content {\n padding-top: var(--spacing-l);\n }\n\n // --- Explicit bottom-sheet presentation ---\n &[data-presentation='bottom-sheet'] {\n @include adw-dialog-bottom-sheet;\n }\n}\n\n// --- Adaptive (auto) presentation: bottom sheet on narrow viewports ---\n@media (max-width: 550px) {\n adw-dialog[data-presentation='auto'] {\n @include adw-dialog-bottom-sheet;\n }\n}\n\n@keyframes adw-dialog-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-dialog-pop-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes adw-dialog-slide-up {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n","// adwaita-skin.scss — Main entry point for @gjsify/adwaita-web.\n// Mirrors refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss organization.\n// Reference: refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n@use 'icons.generated';\n@use 'variables';\n@use 'theme';\n@use 'root';\n// Style-isolation boundary — emitted before the components so their own rules\n// override this typographic/box-model floor (see _reset.scss).\n@use 'reset';\n// The ONE symbolic-icon box, behind <adw-icon>. Emitted before every widget that\n// draws one, so a context that sizes its own icons (the about dialog's 96px, the\n// split button's 14px arrows, the view switcher's 16px) still wins on ordinary\n// specificity.\n@use 'icon';\n// libadwaita's typography + semantic-colour UTILITY CLASSES (`.dimmed`,\n// `.numeric`, `.monospace`, `.title-1`…). Classes only — there is deliberately\n// no <adw-label>, see _labels.scss. Emitted BEFORE every widget so a widget's\n// own rule wins on ordinary specificity, and because two partials @extend from\n// it (`_progress_bar.scss`'s text node, `_data_grid.scss`'s cells) exactly as\n// libadwaita's own `_progress-bar.scss` does.\n@use 'labels';\n@use 'window';\n@use 'headerbar';\n@use 'window_title';\n@use 'button';\n@use 'button_content';\n// The ONE popover surface. Emitted BEFORE the widgets that host one, so a\n// consumer's (or a widget's) own higher-specificity rule still wins over it.\n@use 'popover';\n@use 'split_button';\n@use 'menu_button';\n@use 'drop_down';\n@use 'toggle_group';\n// The ONE toggle, behind <adw-switch>. Emitted before `switch_row` and\n// `expander_row`, the two widgets that host one — and which each carried their\n// own copy of it until it was lifted out of `adw-switch-row {}`.\n@use 'switch';\n@use 'entry';\n// The two form-control primitives, in ONE partial because upstream merges them\n// (there is no `_radio.scss` in libadwaita) — see _checks.scss.\n@use 'checks';\n@use 'progress_bar';\n@use 'preferences';\n@use 'card';\n@use 'data_grid';\n@use 'clamp';\n@use 'spinner';\n@use 'avatar';\n@use 'banner';\n@use 'status_page';\n@use 'row';\n@use 'action_row';\n@use 'entry_row';\n@use 'switch_row';\n@use 'combo_row';\n@use 'spin_row';\n@use 'button_row';\n@use 'expander_row';\n@use 'password_entry_row';\n@use 'toast';\n@use 'toolbar_view';\n@use 'wrap_box';\n@use 'overlay_split_view';\n@use 'navigation_split_view';\n@use 'carousel';\n@use 'tab_view';\n@use 'view_switcher';\n@use 'inline_view_switcher';\n@use 'view_stack';\n@use 'view_switcher_bar';\n@use 'navigation_view';\n@use 'bottom_sheet';\n@use 'sidebar';\n@use 'about_dialog';\n@use 'alert_dialog';\n@use 'preferences_dialog';\n@use 'dialog';\n\n// Ensure the `hidden` attribute always wins: components that toggle visibility\n// via `element.hidden = true` set the HTML attribute, but a custom `display`\n// from a layout class (e.g. `.adw-switch { display: inline-flex }`) has equal\n// specificity and would otherwise override the UA `[hidden] { display: none }`,\n// leaving the element laid out (and stealing width from its siblings).\n[hidden] {\n display: none !important;\n}\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_icons.generated.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_variables.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_theme.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_root.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_reset.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_icon.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_labels.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_window.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_headerbar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_window_title.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button_content.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_popover.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_split_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_menu_button.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_drop_down.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toggle_group.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_switch.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_entry.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_checks.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_progress_bar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_preferences.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_card.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_data_grid.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_clamp.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_spinner.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_avatar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_banner.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_status_page.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_action_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_entry_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_switch_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_combo_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_spin_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_button_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_expander_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_password_entry_row.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toast.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_toolbar_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_wrap_box.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_panes.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_overlay_split_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_navigation_split_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_carousel.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_tab_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_switcher.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_inline_view_switcher.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_stack.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_view_switcher_bar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_navigation_view.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_bottom_sheet.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_sidebar.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_about_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_alert_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_preferences_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/_dialog.scss","file:///__w/gjsify/gjsify/packages/web/adwaita-web/scss/adwaita-skin.scss"],"names":[],"mappings":";AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AC1NF;EAEE;EACA;EAGA;EACA;EAGA;EACA;EACA;EAKA;EAMA;EACA;EACA;EACA;EACA;EAMA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAIA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EASA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAcA;EACA;EACA;EACA;;;AC1EF;EACE;IAtDA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAKA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAGA;;;AAWF;EA5DE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;;ACzCF;EACE;EACA;EACA;EACA;EACA;;;ACiCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOA;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;AAHF;AAAA;AAAA;EAGE;;;ACtDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAQA;;AAKA;EACE;;;ACDJ;EACE;;;AAIF;EACE;;;AAOA;EACE;EAEA;EACA;EACA;;;AALF;EACE;EAEA;EACA;EACA;;;AALF;EACE;EAEA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;;;AC9HF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA;EACA;;;ACdF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;AAEA;EACE;EACA;EACA;EAEA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EAEA;;AAGF;EACE;EACA;EAGA;EACA;EACA;EAEA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACrEN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACvBJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKF;EACE;;AAEA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;;;AASJ;EACE;;AAEA;AAAA;EAEE;;AAGF;AAAA;EAEE;EACA;;AAGF;AAAA;EAEE;EACA;;AAGF;EACE;;;ACrHJ;EACE;EACA;;;AAKF;EACE;EACA;;;AAGF;EACE;EACA;EAEA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAGE;EACA;EACA;;AAMA;EACE;;AAGF;EACE;EACA;EACA;EACA;;;AChCN;EAIE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA,YACE;;AAOF;EA3BF;IA4BI,YACE;;;AAOJ;EACE;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAOA;EACE;;AAGF;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EAGE;;AAGF;EACE;;AAIF;EACE;IAIE;;;AAIJ;EACE;EACA;;AAGF;EAGE;EACA;;;AAWJ;EACE;EACA;EACA;;;AC9KF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EAEE;;AAIF;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EAEE;;AAYJ;EACE;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;;AAKJ;EACE;;AAIF;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;;ACnKN;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAKR;EACI;;AAIJ;EACI;;AAIJ;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAUR;EACI;EACA;EACA;;;AC7ER;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAWF;EACE;EACA;EACA;;AAKF;EACE;;AAIF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjIJ;EACE;EACA;;;AAGF;EAGE;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA,YACE;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;;AAMJ;EACE;EAEA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAKN;EACE;;;AC5FN;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AAMF;EACE;;AAEA;EACE;;;ACjFJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;ACOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;EACA;EACA;EACA;EACA;;AAIF;AAAA;EAME;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EAhBF;AAAA;IAoBI;;;AAKF;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAQF;AAAA;EACE;;AAEA;EAHF;AAAA;IAII;;;AAIJ;AAAA;EACE;EACA;;AAEA;EAJF;AAAA;IAKI;;;AAON;AAAA;AAAA;EAEE;EACA;EACA;;AAQA;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;;AAOJ;AAAA;EACE;EACA;;AAKF;AAAA;EACE;EACA;;;AAKJ;EACE;;;AAIF;EACE;;;AAIF;EACE,YAjJY;EAkJZ,oBAlJY;;;AAqJd;EACE,YApJa;EAqJb,oBArJa;;;AA6Jf;AAAA;EAEE,YA7JW;EA8JX,oBA9JW;;;AAmKb;AAAA;EAEE;;AAEA;AAAA;EACE;EACA;;AAKF;AAAA;EACE;;;ACxLJ;EACE;EACA;EACA;EAGA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAVF;IAYI;;;AAIJ;EAEE;EACA;EACA;EACA;EACA,YACE;;AAOJ;EAIE;;AAMF;EACE;;AAKF;EACE;;AAKF;EACE;;AAKF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAOJ;EACE;EACA;EACA;EACA;;AAIA;EARF;IASI;IACA;IACA;;;;AASN;EACE;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;ACvJJ;EACE;;AAMA;EACE;;AAKF;EACE;EACA;EACA;EACA;;AAKA;EACE;;AASF;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,YACE;EAGF;;;AC7EJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;;;ACGF;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAMF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAgBF;EAGE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;;AAKJ;EACE;;AAEA;EACE;;AAMJ;EACE;EACA;;AAEA;EACE;EACA;;AAOJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvIN;EACE;EACA;;;ACSF;EAIE;EACA;EACA;EACA;EACA;EACA;EAIA;;AAEA;EACE;EAGA;;;ACrCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;ACtBJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAGA;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAOF;EACE;EACA;;AAEA;EACE;;;AChDR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AC9BJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;;AAOJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;ACnDF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAGF;EACE;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;ACvDJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtCF;EACE;EACA;;;ACRJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAWA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAUJ;EACE;;AAGF;EACE;;;ACvFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtDN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;EACA;;AAGE;EACE;EACA;;AAMF;EACE;EACA;;AAMN;EACE;EACA;EACA;;AAGE;EACE;EACA;;AAMF;EACE;EACA;;;ACxFR;EACE;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAIF;AAAA;EAEE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAWF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACE;;;AC3FR;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKJ;EACE;EACA;;;ACpDJ;EACE;EACA;;AAGA;EACE;EACA;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;AClKN;EACE;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EAEE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;AAAA;EAEE;EACA;;AAGF;EACE,YACE;;AAGF;EACE;;AAIJ;EACE,YACE;;AAGF;EACE;;AAQJ;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAOJ;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AC3FF;EACE;EACA;EACA;EACA;EAKA;EACA;;;AAQF;EACE;;;AAWF;EACE;;;AAQF;AAAA;EAEE;;;AAYF;EACE;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;;;ACnDF;EACE;EACA;;;AAUF;EACE;EACA;;;AAaF;EACE;EACA;;;AClCF;EACE;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;EACA;EACA;EACA;EAGA;;AAkBF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;;AAOA;EACE;;AAGF;EACE;;AASF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAOJ;EACE;EACA;EACA;EACA;;AAmBA;EACE;EACA;;AAGF;EACE;EACA;;AAKA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAQN;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAMJ;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnMF;EACE;EACA;EACA;EACA;EACA;;AAOA;EACE;EACA;EACA;EACA;;AASF;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;;AAGF;EACE;;AASJ;EACE;;AAGF;EACE;;AAMA;EACE;;AAGF;EACE;EACA;EACA;EACA;;;ACpEN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEE;EACA;EACA;EACA;;AAIA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA,YACE;;AAMJ;EACE;;;AAON;EACE;;AAEA;EACE;EACA;EACA;EACA;EAEA;EACA,YACE;;AAGF;EACE;;;ACpHN;EACE;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;;AAEA;EACE;;AAGF;EACE;;AAON;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;EAIE;;AAGF;EACE;EACA;EACA;EACA;;AAQF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;;AAWJ;EACE;;AAEA;EACE;;AAOJ;EACE;;AAEA;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAKF;EACE;;AAMA;EAGE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACnRN;EACI;EACA;EACA;;AAIA;EACI;EACA;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;EACA;;AAOA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAMJ;EACI;EACA;;AAEA;EACI;;AAMZ;EACI;EACA;;AAMA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAOZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;;;AC1JZ;EAGI;EAEA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAGJ;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAIJ;EACI;EACA;EACA,YACI;;AAGJ;EACI;;AAOZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;;AAIA;EACI;;AAMR;EACI;EACA;EACA;;AAGJ;EACI;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;;AAMR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAKZ;EACI;;;ACpMZ;EACI;EACA;EACA;EAEA;EACA;;AAIA;EACI;;AAEA;EACI;EACA;EACA;EACA;;;ACdZ;EACI;;AAOA;EACI;;AATR;EAYI;EAGA;EACA;EACA;;AAGA;EACI;EACA;EAEA;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;EACA;;AAMA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EACI;;AAEA;EACI;;;AC/HhB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAyBF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAKF;EACE;EACA;;AAMJ;EACE;;AAMF;EACE;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;ACzFJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;EACA,YACE;EAEF;;AAUF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;;AAIF;EACE;;;ACnGJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EAEA;;AAGF;EACE;EACA;;AAKA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAYF;EACE;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;;AAEA;EAEE;;AAKN;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AASA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;AAKN;EACE;;;AC1MN;EAEE;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAGF;;AAEA;EACE;EACA;;AAKJ;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMA;EACE;EACA;;AAGF;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;ACpPJ;EACE;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;EAEA;;;AAIF;EACE;;;AAIF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAIF;EACE;;AAEA;EACE;;;AAMJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;;AAUN;EACE;EACA;;;AAGF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC7IJ;EAGE;;AAEA;EACE;;AAOF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAQJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAMJ;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAMA;EACE;;;ACxIR;EACE;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;EACA;;AAEA;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAIF;EACE;;AArKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAiKJ;EA/KE;IACE;IACA;IACA;;EAGF;IACE;IACA;IAEA;IACA;IACA;IACA;IACA;;;AAuKJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AC/HJ;EACE","sourcesContent":["// _icons.generated.scss — auto-generated by scripts/build-scss.mjs\n// DO NOT EDIT — regenerated on every build from @gjsify/adwaita-icons.\n\n:root {\n --icon-edit-paste: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20h%20-2%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%209%20c%200%201.644531%201.355469%203%203%203%20h%208%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-9%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-2%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%20-3%203%20h%201%20v%201%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-1%20h%201%20c%200.570312%200%201%200.429688%201%201%20v%209%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-8%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-9%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-go-down: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201%205%20c%200%20-0.265625%200.105469%20-0.519531%200.292969%20-0.707031%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20l%205.292969%205.292969%20l%205.292969%20-5.292969%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20c%200.1875%200.1875%200.292969%200.441406%200.292969%200.707031%20s%20-0.105469%200.519531%20-0.292969%200.707031%20l%20-6%206%20c%20-0.390625%200.390625%20-1.023437%200.390625%20-1.414062%200%20l%20-6%20-6%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-sidebar-show: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206%2013%20v%20-10%20h%20-3%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208%20c%200%200.550781%200.449219%201%201%201%20z%20m%200%200'%20fill-opacity%3D'0.34902'%2F%3E%20%3Cpath%20d%3D'm%203%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-8%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200%202%20h%203%20v%2010%20h%20-3%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-8%20c%200%20-0.570312%200.429688%20-1%201%20-1%20z%20m%204%200%20h%206%20c%200.570312%200%201%200.429688%201%201%20v%208%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-6%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-go-previous: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2012%202%20c%200%20-0.265625%20-0.105469%20-0.519531%20-0.292969%20-0.707031%20c%20-0.390625%20-0.390625%20-1.023437%20-0.390625%20-1.414062%200%20l%20-6%206%20c%20-0.1875%200.1875%20-0.292969%200.441406%20-0.292969%200.707031%20s%200.105469%200.519531%200.292969%200.707031%20l%206%206%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20c%200.1875%20-0.1875%200.292969%20-0.441406%200.292969%20-0.707031%20s%20-0.105469%20-0.519531%20-0.292969%20-0.707031%20l%20-5.292969%20-5.292969%20l%205.292969%20-5.292969%20c%200.1875%20-0.1875%200.292969%20-0.441406%200.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-go-next: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%204%202%20c%200%20-0.265625%200.105469%20-0.519531%200.292969%20-0.707031%20c%200.390625%20-0.390625%201.023437%20-0.390625%201.414062%200%20l%206%206%20c%200.1875%200.1875%200.292969%200.441406%200.292969%200.707031%20s%20-0.105469%200.519531%20-0.292969%200.707031%20l%20-6%206%20c%20-0.390625%200.390625%20-1.023437%200.390625%20-1.414062%200%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20s%200.105469%20-0.519531%200.292969%20-0.707031%20l%205.292969%20-5.292969%20l%20-5.292969%20-5.292969%20c%20-0.1875%20-0.1875%20-0.292969%20-0.441406%20-0.292969%20-0.707031%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-refresh: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207.40625%201%20c%20-0.613281%200.007812%20-1.234375%200.089844%20-1.847656%200.253906%20c%20-3.273438%200.878906%20-5.558594%203.855469%20-5.558594%207.246094%20s%202.285156%206.367188%205.558594%207.242188%20c%203.273437%200.878906%206.742187%20-0.558594%208.4375%20-3.492188%20c%200.277344%20-0.480469%200.109375%20-1.089844%20-0.367188%20-1.367188%20c%20-0.476562%20-0.273437%20-1.089844%20-0.109374%20-1.367187%200.367188%20c%20-1.246094%202.160156%20-3.777344%203.207031%20-6.1875%202.5625%20c%20-2.40625%20-0.644531%20-4.074219%20-2.820312%20-4.074219%20-5.3125%20c%200%20-2.496094%201.667969%20-4.667969%204.074219%20-5.3125%20c%202.410156%20-0.644531%204.941406%200.402344%206.1875%202.5625%20c%200.058593%200.085938%200.125%200.164062%200.203125%200.226562%20l%20-0.019532%200.015626%20l%20-0.007812%200.007812%20h%20-1.4375%20c%20-0.550781%200%20-1%200.449219%20-1%201%20c%200%200%200%201%201%201%20h%205%20v%20-5%20s%200.003906%20-1%20-1%20-1%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%201.6875%20l%20-0.015625%200.011719%20l%20-0.011719%200.011719%20c%20-1.277344%20-2.179688%20-3.53125%20-3.519532%20-5.953125%20-3.691407%20c%20-0.203125%20-0.015625%20-0.40625%20-0.019531%20-0.613281%20-0.019531%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-open-menu: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%201%202%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%201%207%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%201%2012%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-go-home: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200.363281%20c%20-0.5%200%20-1%200.167969%20-1.40625%200.507813%20l%20-4.464844%203.722656%20c%20-0.714844%200.59375%20-1.128906%201.476562%20-1.128906%202.40625%20v%206%20c%200%201.65625%201.34375%203%203%203%20h%208%20c%201.65625%200%203%20-1.34375%203%20-3%20v%20-6%20c%200%20-0.929688%20-0.414062%20-1.8125%20-1.128906%20-2.40625%20l%20-4.464844%20-3.722656%20c%20-0.40625%20-0.339844%20-0.90625%20-0.507813%20-1.40625%20-0.507813%20z%20m%20-0.015625%201.996094%20c%200.050781%20-0.003906%200.101563%200.011719%200.144531%200.046875%20l%204.464844%203.722656%20c%200.257812%200.214844%200.40625%200.535156%200.40625%200.871094%20v%206%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-2%20v%20-5%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20h%20-2%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%205%20h%20-2%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20v%20-6%20c%200%20-0.335938%200.148438%20-0.65625%200.40625%20-0.871094%20l%204.464844%20-3.722656%20c%200.035156%20-0.027344%200.074218%20-0.042969%200.113281%20-0.046875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-list-add: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207%201%20v%206%20h%20-6%20v%202%20h%206%20v%206%20h%202%20v%20-6%20h%206%20v%20-2%20h%20-6%20v%20-6%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-network-wireless: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201.992188%20c%20-2.617188%200%20-5.238281%200.933593%20-7.195312%202.808593%20l%20-0.496094%200.480469%20c%20-0.3984378%200.378906%20-0.410156%201.011719%20-0.03125%201.410156%20c%200.382812%200.398438%201.015625%200.410156%201.414062%200.03125%20l%200.5%20-0.476562%20c%203.085938%20-2.957032%208.53125%20-2.957032%2011.617188%200%20l%200.5%200.476562%20c%200.398437%200.378906%201.03125%200.367188%201.414062%20-0.03125%20c%200.378906%20-0.398437%200.367188%20-1.03125%20-0.03125%20-1.410156%20l%20-0.496094%20-0.484375%20c%20-1.957031%20-1.871094%20-4.578124%20-2.804687%20-7.195312%20-2.804687%20z%20m%20-0.03125%204.007812%20c%20-1.570312%200.011719%20-3.128906%200.628906%20-4.207031%201.8125%20l%20-0.5%200.550781%20c%20-0.179688%200.195313%20-0.277344%200.453125%20-0.261719%200.71875%20c%200.011719%200.265625%200.128906%200.515625%200.328125%200.695313%20c%200.195313%200.179687%200.453125%200.273437%200.71875%200.257812%20c%200.265625%20-0.011718%200.515625%20-0.128906%200.695313%20-0.328125%20l%200.496093%20-0.546875%20c%201.277344%20-1.402344%204.160157%20-1.496094%205.523438%200.003906%20l%200.5%200.542969%20c%200.175781%200.199219%200.425781%200.316407%200.691406%200.328125%20c%200.265625%200.015625%200.523437%20-0.078125%200.722656%20-0.257812%20c%200.195313%20-0.179688%200.3125%20-0.429688%200.324219%20-0.695313%20c%200.011719%20-0.261719%20-0.082031%20-0.523437%20-0.261719%20-0.71875%20l%20-0.5%20-0.546875%20c%20-1.121093%20-1.234375%20-2.703125%20-1.828125%20-4.269531%20-1.816406%20z%20m%200.03125%204%20c%20-0.511719%200%20-1.023438%200.195312%20-1.414062%200.585938%20c%20-0.78125%200.78125%20-0.78125%202.046874%200%202.828124%20s%202.046874%200.78125%202.828124%200%20s%200.78125%20-2.046874%200%20-2.828124%20c%20-0.390624%20-0.390626%20-0.902343%20-0.585938%20-1.414062%20-0.585938%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202.96875%201.003906%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644532%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355468%203%20-3%20v%20-6%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-3.585938%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%202%20h%203.585938%20l%201%201%20h%20-5.585938%20c%200%20-0.5625%200.4375%20-1%201%20-1%20z%20m%20-1%202%20h%2011%20c%200.5625%200%201%200.4375%201%201%20v%206%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-10%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-starred: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.429688%200%20-0.8125%200.273438%20-0.949219%200.683594%20l%20-1.449219%204.339844%20l%20-4.589843%20-0.015626%20c%20-0.980469%20-0.003906%20-1.382813%201.257813%20-0.582031%201.820313%20l%203.625%202.554687%20l%20-1.5%204.285157%20c%20-0.316407%200.902343%200.6875%201.691406%201.492187%201.171875%20l%204.003906%20-2.59375%20l%203.894531%202.585937%20c%200.800782%200.53125%201.816407%20-0.257812%201.5%20-1.160156%20l%20-1.503906%20-4.289063%20l%203.644532%20-2.578124%20c%200.789062%20-0.5625%200.394531%20-1.808594%20-0.574219%20-1.8125%20l%20-4.660157%20-0.015626%20l%20-1.402343%20-4.285156%20c%20-0.132813%20-0.410156%20-0.515625%20-0.68749975%20-0.949219%20-0.691406%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-system-search: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-3.578125%200%20-6.5%202.921875%20-6.5%206.5%20s%202.921875%206.496094%206.5%206.496094%20c%201.429688%200%202.753906%20-0.464844%203.828125%20-1.253906%20l%202.945313%202.945312%20c%200.957031%200.9375%202.363281%20-0.5%201.40625%20-1.4375%20l%20-2.929688%20-2.929688%20c%200.785156%20-1.074218%201.25%20-2.394531%201.25%20-3.820312%20c%200%20-3.578125%20-2.921875%20-6.5%20-6.5%20-6.5%20z%20m%200%202%20c%202.496094%200%204.5%202.003906%204.5%204.5%20s%20-2.003906%204.496094%20-4.5%204.496094%20s%20-4.5%20-2%20-4.5%20-4.496094%20s%202.003906%20-4.5%204.5%20-4.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-contact-new: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.65625%200%20-3%201.34375%20-3%203%20s%201.34375%203%203%203%20s%203%20-1.34375%203%20-3%20s%20-1.34375%20-3%20-3%20-3%20z%20m%20-1.5%207%20c%20-2.492188%200%20-4.5%202.007812%20-4.5%204.5%20v%200.5%20c%200%201.109375%200.890625%202%202%202%20h%206%20v%20-1%20h%20-3%20v%20-4%20h%203%20v%20-1.972656%20c%20-0.164062%20-0.019532%20-0.332031%20-0.027344%20-0.5%20-0.027344%20z%20m%204.5%200%20v%203%20h%20-3%20v%202%20h%203%20v%203%20h%202%20v%20-3%20h%203%20v%20-2%20h%20-3%20v%20-3%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-unread: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%203%202%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%206%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-6%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200.800781%202%20h%208.394531%20l%20-3.917968%202.613281%20c%20-0.171875%200.113281%20-0.382813%200.113281%20-0.554688%200%20z%20m%20-1.800781%201.203125%20l%204.613281%203.074219%20c%200.835938%200.558594%201.9375%200.558594%202.773438%200%20l%204.613281%20-3.074219%20v%205.796875%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-10%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-avatar-default: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.65625%200%20-3%201.34375%20-3%203%20s%201.34375%203%203%203%20s%203%20-1.34375%203%20-3%20s%20-1.34375%20-3%20-3%20-3%20z%20m%20-1.5%207%20c%20-2.492188%200%20-4.5%202.007812%20-4.5%204.5%20v%200.5%20c%200%201.109375%200.890625%202%202%202%20h%208%20c%201.109375%200%202%20-0.890625%202%20-2%20v%20-0.5%20c%200%20-2.492188%20-2.007812%20-4.5%20-4.5%20-4.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-camera-photo: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-0.265625%200%20-0.519531%200.105469%20-0.707031%200.292969%20l%20-1.707031%201.707031%20h%20-1.085938%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%207%20c%200%201.644531%201.355469%203%203%203%20h%2010%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-7%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20h%20-1.085938%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200.414062%202%20h%202.171876%20l%201.707031%201.707031%20c%200.1875%200.1875%200.441406%200.292969%200.707031%200.292969%20h%201.5%20c%200.570312%200%201%200.429688%201%201%20v%207%20c%200%200.570312%20-0.429688%201%20-1%201%20h%20-10%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-7%20c%200%20-0.570312%200.429688%20-1%201%20-1%20h%201.5%20c%200.265625%200%200.519531%20-0.105469%200.707031%20-0.292969%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%208%204%20c%20-2.199219%200%20-4%201.800781%20-4%204%20s%201.800781%204%204%204%20s%204%20-1.800781%204%20-4%20s%20-1.800781%20-4%20-4%20-4%20z%20m%200%202%20c%201.117188%200%202%200.882812%202%202%20s%20-0.882812%202%20-2%202%20s%20-2%20-0.882812%20-2%20-2%20s%200.882812%20-2%202%20-2%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-user-trash: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cg%20fill%3D'currentColor'%3E%20%3Cpath%20d%3D'm%206.5%200%20c%20-1.378906%200%20-2.5%201.121094%20-2.5%202.5%20v%200.5%20h%20-3%20c%20-0.550781%200%20-1%200.449219%20-1%201%20s%200.449219%201%201%201%20h%201%20v%208%20c%200%201.65625%201.34375%203%203%203%20h%206%20c%201.65625%200%203%20-1.34375%203%20-3%20v%20-8%20h%201%20c%200.550781%200%201%20-0.449219%201%20-1%20s%20-0.449219%20-1%20-1%20-1%20h%20-3.023438%20v%20-0.5%20c%200%20-1.378906%20-1.117187%20-2.5%20-2.5%20-2.5%20z%20m%200%202%20h%202.976562%20c%200.289063%200%200.5%200.210938%200.5%200.5%20v%200.5%20h%20-3.976562%20v%20-0.5%20c%200%20-0.289062%200.210938%20-0.5%200.5%20-0.5%20z%20m%20-2.5%203%20h%208%20v%208%20c%200%200.5625%20-0.4375%201%20-1%201%20h%20-6%20c%20-0.5625%200%20-1%20-0.4375%20-1%20-1%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%207%207%20v%205%20c%200%200.277344%20-0.222656%200.5%20-0.5%200.5%20s%20-0.5%20-0.222656%20-0.5%20-0.5%20v%20-5%20c%200%20-0.277344%200.222656%20-0.5%200.5%20-0.5%20s%200.5%200.222656%200.5%200.5%20z%20m%200%200'%2F%3E%20%3Cpath%20d%3D'm%2010%207%20v%205%20c%200%200.277344%20-0.222656%200.5%20-0.5%200.5%20s%20-0.5%20-0.222656%20-0.5%20-0.5%20v%20-5%20c%200%20-0.277344%200.222656%20-0.5%200.5%20-0.5%20s%200.5%200.222656%200.5%200.5%20z%20m%200%200'%2F%3E%20%3C%2Fg%3E%20%3C%2Fsvg%3E\");\n --icon-view-reveal: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%202%20c%20-3.648438%200.003906%20-6.832031%202.476562%20-7.738281%206.007812%20c%200.914062%203.527344%204.097656%205.988282%207.738281%205.992188%20c%203.648438%20-0.003906%206.832031%20-2.476562%207.738281%20-6.011719%20c%20-0.914062%20-3.523437%20-4.097656%20-5.984375%20-7.738281%20-5.988281%20z%20m%200%202%20c%202.210938%200%204%201.789062%204%204%20s%20-1.789062%204%20-4%204%20s%20-4%20-1.789062%20-4%20-4%20s%201.789062%20-4%204%20-4%20z%20m%200%202%20c%20-1.105469%200%20-2%200.894531%20-2%202%20s%200.894531%202%202%202%20s%202%20-0.894531%202%20-2%20s%20-0.894531%20-2%20-2%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-conceal: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201.53125%200.46875%20l%20-1.0625%201.0625%20l%2014%2014%20l%201.0625%20-1.0625%20l%20-2.382812%20-2.382812%20c%201.265624%20-1.0625%202.171874%20-2.496094%202.589843%20-4.097657%20c%20-0.914062%20-3.523437%20-4.097656%20-5.984375%20-7.738281%20-5.988281%20c%20-1.367188%200.011719%20-2.707031%200.371094%20-3.894531%201.042969%20z%20m%206.46875%203.53125%20c%202.210938%200%204%201.789062%204%204%20c%20-0.003906%200.800781%20-0.246094%201.578125%20-0.699219%202.238281%20l%20-1.46875%20-1.46875%20c%200.105469%20-0.242187%200.164063%20-0.503906%200.167969%20-0.769531%20c%200%20-1.105469%20-0.894531%20-2%20-2%20-2%20c%20-0.265625%200.003906%20-0.527344%200.0625%20-0.769531%200.167969%20l%20-1.46875%20-1.46875%20c%200.660156%20-0.453125%201.4375%20-0.695313%202.238281%20-0.699219%20z%20m%20-6.144531%200.917969%20c%20-0.753907%200.898437%20-1.296875%201.957031%20-1.59375%203.09375%20c%200.914062%203.523437%204.097656%205.984375%207.738281%205.988281%20c%200.855469%20-0.007812%201.703125%20-0.152344%202.511719%20-0.425781%20l%20-1.667969%20-1.667969%20c%20-0.277344%200.058594%20-0.5625%200.089844%20-0.84375%200.09375%20c%20-2.210938%200%20-4%20-1.789062%20-4%20-4%20c%200.003906%20-0.28125%200.035156%20-0.566406%200.09375%20-0.84375%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-edit: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2012.277344%200.832031%20c%20-0.578125%200.007813%20-1.167969%200.230469%20-1.691406%200.753907%20l%20-9%209%20c%20-0.375%200.375%20-0.585938%200.882812%20-0.585938%201.414062%20v%203%20h%203%20c%200.53125%200%201.039062%20-0.210938%201.414062%20-0.585938%20l%209%20-9%20c%201.789063%20-1.789062%200.082032%20-4.390624%20-1.890624%20-4.570312%20c%20-0.082032%20-0.011719%20-0.164063%20-0.011719%20-0.246094%20-0.011719%20z%20m%20-1.777344%203.605469%20l%201.0625%201.0625%20l%20-7.0625%207.0625%20l%20-1.0625%20-1.0625%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-open: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%203%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%208%20c%200%201.644531%201.355469%203%203%203%20h%208.882812%20c%200.832032%200%201.578126%20-0.402344%202.054688%20-0.9375%20c%200.472656%20-0.53125%200.738281%20-1.167969%200.910156%20-1.800781%20l%200.972656%20-2.609375%20c%200.390626%20-1.449219%20-0.09375%20-2.652344%20-0.820312%20-3.167969%20c%20-0.484375%20-0.34375%20-0.714844%20-0.292969%20-1%20-0.324219%20v%20-1.160156%20c%200%20-0.855469%20-0.558594%20-1.589844%20-1.09375%20-1.828125%20c%20-0.417969%20-0.1875%20-0.808594%20-0.183594%20-0.953125%20-0.171875%20h%20-3.539063%20l%20-1.707031%20-1.707031%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%202%20h%202.585938%20l%201.707031%201.707031%20c%200.1875%200.1875%200.441406%200.292969%200.707031%200.292969%20h%204%20v%201%20h%20-5%20h%200.039062%20c%20-0.914062%20-0.039062%20-1.746093%200.394531%20-2.1875%200.96875%20c%20-0.714843%201.226562%20-1.160156%202.28125%20-1.800781%203.71875%20c%20-0.171875%200.527344%200.113281%201.09375%200.636719%201.265625%20c%200.527344%200.167969%201.09375%20-0.117187%201.261719%20-0.640625%20c%200.488281%20-1.011719%200.921875%20-1.816406%201.339843%20-2.808594%20c%200.210938%20-0.503906%200.703126%20-0.492187%200.898438%20-0.503906%20h%205.8125%20c%201%200%201.046875%200.703125%200.886719%201.128906%20l%20-0.96875%202.609375%20c%20-0.121094%200.4375%20-0.300781%200.800781%20-0.476563%200.996094%20c%20-0.175781%200.199219%20-0.285156%200.265625%20-0.558594%200.265625%20h%20-8.882812%20c%20-0.570312%200%20-1%20-0.429688%20-1%20-1%20v%20-8%20c%200%20-0.570312%200.46875%20-0.792969%201%20-1%20z%20m%209.105469%201.996094%20h%200.003906%20v%200.003906%20h%200.003906%20l%20-0.003906%200.003906%20h%20-0.003906%20v%20-0.003906%20c%20-0.003907%200%20-0.007813%200%20-0.011719%200%20h%20-0.003906%20l%20-0.003906%20-0.003906%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-document-save: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208.585938%20l%20-1.292969%20-1.292969%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20s%20-0.519531%200.105469%20-0.707031%200.292969%20c%20-0.390625%200.390625%20-0.390625%201.023437%200%201.414062%20l%203%203%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20l%203%20-3%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20s%20-1.023437%20-0.390625%20-1.414062%200%20l%20-1.292969%201.292969%20v%20-8.585938%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%20-7%2014%20v%202%20h%2014%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-send: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.257812%200%20-0.511719%200.0976562%20-0.707031%200.292969%20l%20-1.25%201.25%20l%20-1.761719%201.730469%20c%20-0.191406%200.199218%20-0.28125%200.441406%20-0.28125%200.75%20c%200%200.976562%201%201%201%201%20c%200.257812%200%200.527344%20-0.128907%200.71875%20-0.3125%20l%201.28125%20-1.28125%20v%203.570312%20s%200%201%201%201%20s%201%20-1%201%20-1%20v%20-3.570312%20l%201.28125%201.28125%20c%200.191406%200.183593%200.410156%200.3125%200.71875%200.3125%20c%200%200%201%20-0.023438%201%20-1%20c%200%20-0.308594%20-0.089844%20-0.550782%20-0.28125%20-0.75%20l%20-1.761719%20-1.730469%20l%20-1.25%20-1.25%20c%20-0.195312%20-0.1953128%20-0.449219%20-0.292969%20-0.707031%20-0.292969%20z%20m%20-5%209%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%204%20h%202%20v%20-3.800781%20l%204.613281%203.078125%20c%200.835938%200.558594%201.9375%200.558594%202.773438%200%20l%204.613281%20-3.078125%20v%203.800781%20h%202%20v%20-4%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%200.800781%202%20h%208.398438%20l%20-3.921875%202.613281%20c%20-0.171875%200.113281%20-0.382813%200.113281%20-0.554688%200%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-mail-reply-sender: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%205%202%20c%20-0.265625%200%20-0.519531%200.105469%20-0.707031%200.292969%20l%20-4%204%20c%20-0.3906252%200.390625%20-0.3906252%201.023437%200%201.414062%20l%204%204%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20s%200.390625%20-1.023437%200%20-1.414062%20l%20-2.292969%20-2.292969%20h%208.585938%20c%201.117188%200%202%200.882812%202%202%20v%203%20c%200%200.550781%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20v%20-3%20c%200%20-0.023438%200%20-0.046875%20-0.003906%20-0.070312%20c%20-0.035156%20-2.164063%20-1.820313%20-3.929688%20-3.996094%20-3.929688%20h%20-8.585938%20l%202.292969%20-2.292969%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder-download: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%207.984375%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%208.585938%20l%20-2.292969%20-2.292969%20c%20-0.1875%20-0.1875%20-0.441406%20-0.292969%20-0.707031%20-0.292969%20s%20-0.519531%200.105469%20-0.707031%200.292969%20c%20-0.390625%200.390625%20-0.390625%201.023437%200%201.414062%20l%204%204%20c%200.390625%200.390625%201.023437%200.390625%201.414062%200%20l%204%20-4%20c%200.390625%20-0.390625%200.390625%20-1.023437%200%20-1.414062%20s%20-1.023437%20-0.390625%20-1.414062%200%20l%20-2.292969%202.292969%20v%20-8.585938%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%20-6%2014%20v%202%20h%2012%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-grid: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%208%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%20-8%208%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%208%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%204%20c%200%200.554688%200.445312%201%201%201%20h%204%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-4%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-list: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%202%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-2%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%201%20v%202%20h%208%20v%20-2%20z%20m%20-5%204.015625%20c%20-0.554688%200%20-1%200.445313%20-1%201%20v%201.980469%20c%200%200.550781%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.449219%201%20-1%20v%20-1.980469%20c%200%20-0.554687%20-0.445312%20-1%20-1%20-1%20z%20m%205%200.984375%20v%202%20h%208%20v%20-2%20z%20m%20-5%204%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%201.980469%20c%200%200.550781%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.449219%201%20-1%20v%20-1.980469%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200.984375%20v%202%20h%208%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-view-columns: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%202%201%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%205%200%20c%20-0.554688%200%20-1%200.445312%20-1%201%20v%2012%20c%200%200.554688%200.445312%201%201%201%20h%202%20c%200.554688%200%201%20-0.445312%201%20-1%20v%20-12%20c%200%20-0.554688%20-0.445312%20-1%20-1%20-1%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-list-remove: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%201%207%20h%2014%20v%202%20h%20-14%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-send-to: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.257812%200%20-0.511719%200.0976562%20-0.707031%200.292969%20l%20-1.246094%201.25%20l%20-1.765625%201.730469%20c%20-0.191406%200.199218%20-0.28125%200.441406%20-0.28125%200.75%20c%200%200.976562%201%201%201%201%20c%200.257812%200%200.527344%20-0.128907%200.71875%20-0.3125%20l%201.28125%20-1.28125%20v%207.570312%20s%200%201%201%201%20s%201%20-1%201%20-1%20v%20-7.570312%20l%201.28125%201.28125%20c%200.191406%200.183593%200.410156%200.3125%200.71875%200.3125%20c%200%200%201%20-0.023438%201%20-1%20c%200%20-0.308594%20-0.089844%20-0.550782%20-0.28125%20-0.75%20l%20-1.765625%20-1.730469%20l%20-1.246094%20-1.25%20c%20-0.195312%20-0.1953128%20-0.449219%20-0.292969%20-0.707031%20-0.292969%20z%20m%20-3.96875%206.964844%20c%20-1.660156%20-0.027344%20-3.03125%201.371094%20-3.03125%203.035156%20v%202.972656%20c%200%201.664063%201.371094%203.035156%203.03125%203.035156%20h%207.9375%20c%201.664062%200%203.03125%20-1.371093%203.03125%20-3.035156%20v%20-2.972656%20c%200%20-1.664062%20-1.367188%20-3.0625%20-3.03125%20-3.035156%20l%20-1.96875%200.035156%20v%202%20l%201.96875%20-0.035156%20c%200.589844%20-0.007813%201.03125%200.445312%201.03125%201.035156%20v%202.972656%20c%200%200.589844%20-0.441406%201.035156%20-1.03125%201.035156%20h%20-7.9375%20c%20-0.585938%200%20-1.03125%20-0.445312%20-1.03125%20-1.035156%20v%20-2.972656%20c%200%20-0.589844%200.445312%20-1.042969%201.03125%20-1.035156%20l%201.96875%200.035156%20v%20-2%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-folder-music: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%201%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%204.339844%20c%20-0.457031%20-0.214844%20-0.964844%20-0.339844%20-1.5%20-0.339844%20c%20-1.921875%200%20-3.5%201.578125%20-3.5%203.5%20s%201.578125%203.5%203.5%203.5%20c%201.914062%200%203.492188%20-1.570312%203.5%20-3.484375%20c%200%20-0.003906%200%20-0.011719%200%20-0.015625%20v%20-7.5%20c%200%20-0.5625%200.4375%20-1%201%20-1%20h%204%20c%200.5625%200%201%200.4375%201%201%20v%204.339844%20c%20-0.457031%20-0.214844%20-0.964844%20-0.339844%20-1.5%20-0.339844%20c%20-1.921875%200%20-3.5%201.578125%20-3.5%203.5%20s%201.578125%203.5%203.5%203.5%20s%203.5%20-1.578125%203.5%20-3.5%20v%20-7.5%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%20-4.5%209%20c%200.839844%200%201.5%200.660156%201.5%201.5%20v%200.015625%20c%20-0.007812%200.832031%20-0.664062%201.484375%20-1.5%201.484375%20c%20-0.839844%200%20-1.5%20-0.660156%20-1.5%20-1.5%20s%200.660156%20-1.5%201.5%20-1.5%20z%20m%208%200%20c%200.839844%200%201.5%200.660156%201.5%201.5%20s%20-0.660156%201.5%20-1.5%201.5%20s%20-1.5%20-0.660156%20-1.5%20-1.5%20s%200.660156%20-1.5%201.5%20-1.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-edit-copy: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%200%203%20c%200%20-1.644531%201.355469%20-3%203%20-3%20h%205%20c%201.644531%200%203%201.355469%203%203%20c%200%200.550781%20-0.449219%201%20-1%201%20s%20-1%20-0.449219%20-1%20-1%20c%200%20-0.570312%20-0.429688%20-1%20-1%20-1%20h%20-5%20c%20-0.570312%200%20-1%200.429688%20-1%201%20v%205%20c%200%200.570312%200.429688%201%201%201%20c%200.550781%200%201%200.449219%201%201%20s%20-0.449219%201%20-1%201%20c%20-1.644531%200%20-3%20-1.355469%20-3%20-3%20z%20m%205%205%20c%200%20-1.644531%201.355469%20-3%203%20-3%20h%205%20c%201.644531%200%203%201.355469%203%203%20v%205%20c%200%201.644531%20-1.355469%203%20-3%203%20h%20-5%20c%20-1.644531%200%20-3%20-1.355469%20-3%20-3%20z%20m%202%200%20v%205%20c%200%200.570312%200.429688%201%201%201%20h%205%20c%200.570312%200%201%20-0.429688%201%20-1%20v%20-5%20c%200%20-0.570312%20-0.429688%20-1%20-1%20-1%20h%20-5%20c%20-0.570312%200%20-1%200.429688%20-1%201%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-emblem-system: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208%200%20c%20-0.550781%200%20-1%200.449219%20-1%201%20v%200.238281%20c%200%200.464844%20-0.378906%200.902344%20-0.820312%201.046875%20c%20-0.023438%200.007813%20-0.042969%200.011719%20-0.0625%200.019532%20c%20-0.445313%200.148437%20-1.007813%200.015624%20-1.28125%20-0.359376%20l%20-0.140626%20-0.195312%20c%20-0.15625%20-0.214844%20-0.390624%20-0.359375%20-0.652343%20-0.398438%20c%20-0.261719%20-0.042968%20-0.53125%200.019532%20-0.742188%200.175782%20c%20-0.449219%200.324218%20-0.550781%200.949218%20-0.222656%201.398437%20l%200.140625%200.199219%20c%200.277344%200.375%200.226562%200.953125%20-0.050781%201.328125%20c%20-0.011719%200.015625%20-0.023438%200.035156%20-0.035157%200.050781%20c%20-0.273437%200.378906%20-0.804687%200.601563%20-1.25%200.457032%20l%20-0.230468%20-0.074219%20c%20-0.523438%20-0.171875%20-1.089844%200.117187%20-1.257813%200.640625%20c%20-0.171875%200.527344%200.113281%201.089844%200.640625%201.261718%20l%200.222656%200.074219%20c%200.445313%200.144531%200.738282%200.636719%200.75%201.101563%20v%200.070312%20c%200.015626%200.464844%20-0.304687%200.960938%20-0.746093%201.105469%20l%20-0.226563%200.070313%20c%20-0.527344%200.171874%20-0.8125%200.738281%20-0.640625%201.261718%20c%200.167969%200.523438%200.734375%200.8125%201.257813%200.640625%20l%200.230468%20-0.074219%20c%200.445313%20-0.144531%200.976563%200.078126%201.25%200.457032%20c%200.011719%200.015625%200.027344%200.035156%200.039063%200.050781%20c%200.277344%200.375%200.324219%200.953125%200.050781%201.328125%20l%20-0.144531%200.203125%20c%20-0.324219%200.445313%20-0.226563%201.070313%200.222656%201.394531%20c%200.445313%200.324219%201.070313%200.226563%201.394531%20-0.21875%20l%200.144532%20-0.199218%20c%200.273437%20-0.378907%200.835937%20-0.507813%201.277344%20-0.359376%20c%200.019531%200.007813%200.042968%200.011719%200.0625%200.019532%20c%200.445312%200.140625%200.820312%200.578125%200.820312%201.046875%20v%200.238281%20c%200%200.550781%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20v%20-0.238281%20c%200%20-0.46875%200.378906%20-0.90625%200.820312%20-1.046875%20c%200.023438%20-0.007813%200.042969%20-0.015625%200.066407%20-0.023438%20c%200.441406%20-0.144531%201.003906%20-0.015625%201.277343%200.363282%20l%200.144532%200.199218%20c%200.324218%200.445313%200.949218%200.542969%201.394531%200.21875%20c%200.445313%20-0.324218%200.546875%20-0.949218%200.222656%20-1.394531%20l%20-0.148437%20-0.203125%20c%20-0.273438%20-0.375%20-0.226563%20-0.953125%200.050781%20-1.328125%20c%200.015625%20-0.015625%200.027344%20-0.035156%200.039063%20-0.050781%20c%200.273437%20-0.378906%200.804687%20-0.601563%201.25%20-0.457032%20l%200.234374%200.078126%20c%200.523438%200.167968%201.085938%20-0.121094%201.257813%20-0.644532%20c%200.171875%20-0.523437%20-0.117187%20-1.089844%20-0.640625%20-1.257812%20l%20-0.230469%20-0.074219%20c%20-0.445312%20-0.144531%20-0.734375%20-0.640625%20-0.746093%20-1.105469%20c%200%20-0.023437%200%20-0.046875%200%20-0.070312%20c%20-0.015626%20-0.464844%200.300781%20-0.957032%200.746093%20-1.101563%20l%200.230469%20-0.074219%20c%200.523438%20-0.171874%200.8125%20-0.734374%200.640625%20-1.261718%20c%20-0.171875%20-0.523438%20-0.734375%20-0.8125%20-1.257813%20-0.640625%20l%20-0.230468%200.074219%20c%20-0.445313%200.144531%20-0.980469%20-0.078126%20-1.253906%20-0.457032%20c%20-0.011719%20-0.015625%20-0.023438%20-0.035156%20-0.035157%20-0.050781%20c%20-0.277343%20-0.375%20-0.324219%20-0.953125%20-0.050781%20-1.328125%20l%200.144531%20-0.199219%20c%200.324219%20-0.445312%200.226563%20-1.074219%20-0.222656%20-1.398437%20c%20-0.214844%20-0.15625%20-0.480469%20-0.21875%20-0.742187%20-0.179688%20c%20-0.265626%200.042969%20-0.5%200.1875%20-0.652344%200.402344%20l%20-0.144532%200.195312%20c%20-0.273437%200.378907%20-0.835937%200.507813%20-1.28125%200.363282%20c%20-0.019531%20-0.007813%20-0.039062%20-0.015625%20-0.0625%20-0.023438%20c%20-0.441406%20-0.140625%20-0.820312%20-0.578125%20-0.820312%20-1.046875%20v%20-0.238281%20c%200%20-0.550781%20-0.449219%20-1%20-1%20-1%20z%20m%200%204%20c%200.871094%200%201.675781%200.273438%202.332031%200.742188%20c%200.003907%200.007812%200.011719%200.015624%200.019531%200.023437%20c%200.011719%200.003906%200.019532%200.007813%200.03125%200.015625%20c%200.660157%200.484375%201.160157%201.171875%201.421876%201.976562%20v%200.007813%20s%200.003906%200.003906%200.003906%200.007813%20c%200.292968%200.851562%200.15625%201.65625%200%202.457031%20c%200%200%20-0.003906%200.003906%20-0.003906%200.007812%20v%200.003907%20c%20-0.261719%200.800781%20-0.757813%201.488281%20-1.414063%201.976562%20c%20-0.015625%200.003906%20-0.027344%200.011719%20-0.039063%200.019531%20c%20-0.007812%200.003907%20-0.015624%200.011719%20-0.019531%200.019531%20c%20-0.65625%200.46875%20-1.460937%200.742188%20-2.332031%200.742188%20c%20-0.855469%200%20-1.644531%20-0.265625%20-2.289062%20-0.714844%20c%20-0.019532%20-0.015625%20-0.042969%20-0.035156%20-0.0625%20-0.046875%20c%20-0.011719%20-0.007812%20-0.023438%20-0.015625%20-0.035157%20-0.019531%20c%20-0.652343%20-0.484375%20-1.148437%20-1.160156%20-1.40625%20-1.945312%20c%20-0.003906%20-0.015626%20-0.007812%20-0.023438%20-0.011719%20-0.035157%20c%20-0.003906%20-0.007812%20-0.007812%20-0.015625%20-0.011718%20-0.019531%20c%20-0.285156%20-0.847656%20-0.148438%20-1.644531%200%20-2.4375%20c%200.003906%20-0.007812%200.007812%20-0.011719%200.011718%20-0.019531%20c%200.003907%20-0.011719%200.007813%20-0.023438%200.011719%20-0.039063%20c%200.261719%20-0.785156%200.757813%20-1.460937%201.414063%20-1.945312%20c%200.007812%20-0.003906%200.019531%20-0.007813%200.027344%20-0.015625%20c%200.019531%20-0.011719%200.042968%20-0.03125%200.058593%20-0.046875%20c%200.648438%20-0.449219%201.4375%20-0.714844%202.292969%20-0.714844%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-preferences-system: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%2013.855469%200%20l%20-1.539063%201.4375%20c%20-0.453125%200.421875%20-0.53125%201.148438%20-0.269531%201.707031%20l%20-5.886719%205.996094%20c%20-0.011718%200%20-0.019531%200%20-0.03125%200%20c%20-0.257812%20-0.128906%20-0.550781%20-0.183594%20-0.839844%20-0.148437%20c%20-0.328124%200.046874%20-0.632812%200.199218%20-0.867187%200.441406%20l%20-3.945313%203.996094%20c%20-0.3906245%200.375%20-0.5468745%200.933593%20-0.4062495%201.457031%20c%200.1406255%200.523437%200.5546875%200.929687%201.0820315%201.058593%20c%200.527344%200.132813%201.082031%20-0.03125%201.453125%20-0.425781%20l%203.945312%20-3.996093%20c%200.472657%20-0.453126%200.59375%20-1.15625%200.296875%20-1.738282%20l%205.890625%20-5.964844%20c%200.558594%200.25%201.273438%200.148438%201.707031%20-0.289062%20l%201.414063%20-1.5625%20z%20m%20-10.308594%200.0898438%20c%20-0.398437%200%20-0.785156%200.0937502%20-1.140625%200.2187502%20l%201.882812%201.878906%20c%200.390626%200.382812%200.390626%201%200%201.386719%20l%20-0.710937%200.707031%20c%20-0.386719%200.386719%20-1%200.386719%20-1.390625%200%20l%20-1.882812%20-1.878906%20c%20-0.125%200.355468%20-0.2187505%200.742187%20-0.2187505%201.140625%20c%200%201.90625%201.5507815%203.453125%203.4609375%203.453125%20c%200.402344%200%200.789063%20-0.09375%201.144531%20-0.21875%20l%201.175782%201.171875%20h%200.058593%20l%202.070313%20-2.0625%20l%20-1.203125%20-1.203125%20c%200.125%20-0.359375%200.214843%20-0.742188%200.214843%20-1.140625%20c%200%20-1.90625%20-1.546874%20-3.4531252%20-3.460937%20-3.4531252%20z%20m%206.550781%207.8906252%20l%20-2.070312%202.066406%20c%200.011718%200.027344%200.023437%200.058594%200.03125%200.089844%20l%201.144531%201.140625%20c%20-0.125%200.355468%20-0.21875%200.742187%20-0.21875%201.140625%20c%200%201.902343%201.550781%203.449219%203.460937%203.449219%20c%200.433594%200%200.855469%20-0.101563%201.238282%20-0.246094%20l%20-2.007813%20-2%20c%20-0.386719%20-0.386719%20-0.386719%20-1.035156%200%20-1.417969%20l%200.679688%20-0.679687%20c%200.195312%20-0.191407%200.457031%20-0.308594%200.710937%20-0.308594%20s%200.515625%200.117187%200.710938%200.308594%20l%201.945312%201.941406%20c%200.105469%20-0.328125%200.183594%20-0.683594%200.183594%20-1.046875%20c%200%20-1.90625%20-1.546875%20-3.453125%20-3.460938%20-3.453125%20c%20-0.398437%200%20-0.785156%200.09375%20-1.140624%200.21875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-application-x-executable: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%208.015625%200.015625%20c%20-0.769531%200%20-1.539063%200.292969%20-2.121094%200.875%20l%20-5.003906%205.003906%20c%20-1.164063%201.164063%20-1.164063%203.078125%200%204.242188%20l%205.003906%205.003906%20c%201.164063%201.164063%203.078125%201.164063%204.242188%200%20l%205.007812%20-5.003906%20c%201.164063%20-1.164063%201.164063%20-3.078125%200%20-4.242188%20l%20-5.007812%20-5.003906%20c%20-0.582031%20-0.582031%20-1.351563%20-0.875%20-2.121094%20-0.875%20z%20m%200.101563%201.988281%20c%200.210937%200.023438%200.414062%200.117188%200.585937%200.28125%20l%20-0.339844%200.113282%20c%20-0.074219%20-0.136719%20-0.15625%20-0.269532%20-0.246093%20-0.394532%20z%20m%20-1.570313%201.058594%20c%200.300781%200.421875%200.464844%200.929688%200.46875%201.453125%20c%200%201.378906%20-1.121094%202.5%20-2.5%202.5%20c%20-0.523437%20-0.003906%20-1.03125%20-0.171875%20-1.449219%20-0.472656%20z%20m%203.441406%200.503906%20l%203.742188%203.742188%20c%200.402343%200.402344%200.402343%201.011718%200%201.414062%20l%20-0.253907%200.25%20c%20-0.039062%20-0.046875%20-0.074218%20-0.09375%20-0.117187%20-0.140625%20l%200.621094%20-0.855469%20l%20-0.808594%20-0.585937%20l%20-0.621094%200.851563%20c%20-0.167969%20-0.078126%20-0.347656%20-0.136719%20-0.535156%20-0.175782%20v%20-1.050781%20h%20-1%20v%201.050781%20c%20-0.183594%200.039063%20-0.363281%200.097656%20-0.53125%200.175782%20l%20-0.621094%20-0.851563%20l%20-0.804687%200.585937%20l%200.617187%200.855469%20c%20-0.125%200.136719%20-0.238281%200.289063%20-0.332031%200.453125%20l%20-1%20-0.324218%20l%20-0.308594%200.949218%20l%201%200.324219%20c%20-0.011718%200.09375%20-0.019531%200.1875%20-0.019531%200.28125%20s%200.007813%200.1875%200.019531%200.28125%20l%20-1%200.324219%20l%200.308594%200.949218%20l%201%20-0.324218%20c%200.09375%200.164062%200.207031%200.316406%200.332031%200.453125%20l%20-0.617187%200.855469%20l%200.195312%200.140624%20l%20-0.53125%200.53125%20c%20-0.402344%200.40625%20-1.011718%200.40625%20-1.414062%200%20l%20-4.902344%20-4.902343%20l%200.027344%20-0.039063%20l%200.210937%20-0.289062%20c%200.328125%200.152344%200.679688%200.269531%201.046875%200.339844%20v%201.179687%20h%201.648438%20v%20-1.179687%20c%200.363281%20-0.070313%200.714844%20-0.1875%201.046875%20-0.339844%20l%200.207031%200.289062%20l%200.484375%200.667969%20l%201.335937%20-0.972656%20l%20-0.484374%20-0.667969%20l%20-0.210938%20-0.289062%20c%200.25%20-0.269532%200.46875%20-0.566407%200.648438%20-0.890626%20l%200.339843%200.113282%20l%200.785157%200.253906%20l%200.507812%20-1.566406%20l%20-0.785156%20-0.257813%20l%20-0.335938%20-0.109375%20c%200.019532%20-0.179687%200.035156%20-0.363281%200.035156%20-0.550781%20s%20-0.015624%20-0.371094%20-0.035156%20-0.550781%20l%200.335938%20-0.109375%20l%200.785156%20-0.257813%20z%20m%201.527344%205.449219%20c%200.527344%200%200.984375%200.265625%201.25%200.667969%20l%20-2.078125%202.082031%20c%20-0.40625%20-0.269531%20-0.671875%20-0.722656%20-0.671875%20-1.25%20c%200%20-0.835937%200.667969%20-1.5%201.5%20-1.5%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3Cpath%20d%3D'm%204.039062%20-18.988281%20c%20-1.449218%200%20-2.679687%201.046875%20-2.964843%202.421875%20c%20-0.019531%200.097656%20-0.035157%200.199218%20-0.046875%200.300781%20c%20-0.007813%200.101563%20-0.015625%200.203125%20-0.015625%200.304687%20v%207.910157%20c%200%201.660156%201.367187%203.027343%203.027343%203.027343%20h%207.949219%20c%201.660157%200%203.027344%20-1.367187%203.027344%20-3.027343%20v%20-7.910157%20c%200%20-0.105468%20-0.003906%20-0.207031%20-0.015625%20-0.304687%20c%20-0.011719%20-0.101563%20-0.027344%20-0.203125%20-0.046875%20-0.300781%20c%20-0.285156%20-1.375%20-1.511719%20-2.421875%20-2.964844%20-2.421875%20z%20m%200%202.003906%20h%202.976563%20v%203%20h%20-2.976563%20c%20-0.585937%200%20-1.027343%20-0.441406%20-1.027343%20-1.027344%20v%20-0.949219%20c%200.003906%20-0.035156%200.003906%20-0.070312%200.007812%20-0.105468%20c%200.003907%20-0.035156%200.007813%20-0.070313%200.011719%20-0.105469%20c%200.007812%20-0.035156%200.019531%20-0.066406%200.027344%20-0.097656%20c%200.125%20-0.421875%200.503906%20-0.714844%200.980468%20-0.714844%20z%20m%204.976563%200%20h%202.972656%20c%200.585938%200%201.023438%200.4375%201.027344%201.023437%20v%200.949219%20c%200%200.585938%20-0.441406%201.027344%20-1.027344%201.027344%20h%20-2.972656%20z%20m%204%203.71875%20v%205.214844%20c%200%200.585937%20-0.441406%201.027343%20-1.027344%201.027343%20h%20-7.949219%20c%20-0.585937%200%20-1.027343%20-0.441406%20-1.027343%20-1.027343%20v%20-5.175781%20c%200.324219%200.148437%200.671875%200.246093%201.027343%200.246093%20h%202.976563%20v%203.035157%20l%202%200.992187%20v%20-4.027344%20h%202.972656%20c%200.34375%200%200.695313%20-0.113281%201.027344%20-0.285156%20z%20m%20-5%2033.28125%20c%20-0.851563%200%20-1.699219%200.328125%20-2.351563%200.976563%20l%20-4.671874%204.671874%20c%20-1.300782%201.300782%20-1.300782%203.402344%200%204.703126%20l%204.671874%204.671874%20c%201.300782%201.300782%203.402344%201.300782%204.699219%200%20l%204.675781%20-4.671874%20c%201.300782%20-1.300782%201.300782%20-3.402344%200%20-4.703126%20l%20-4.675781%20-4.671874%20c%20-0.648437%20-0.648438%20-1.496093%20-0.976563%20-2.347656%20-0.976563%20z%20m%200%201.984375%20c%200.335937%200%200.675781%200.132812%200.941406%200.402344%20l%203.03125%203.027344%20c%20-0.066406%200.039062%20-0.136719%200.070312%20-0.210937%200.09375%20c%20-0.019532%200.003906%20-0.039063%200.011718%20-0.0625%200.015624%20c%20-0.441406%200.148438%20-1.003906%200.019532%20-1.277344%20-0.359374%20l%20-0.140625%20-0.195313%20c%20-0.15625%20-0.210937%20-0.390625%20-0.355469%20-0.652344%20-0.398437%20c%20-0.066406%20-0.011719%20-0.132812%20-0.015626%20-0.199219%20-0.011719%20c%20-0.195312%200.007812%20-0.382812%200.074219%20-0.542968%200.191406%20c%20-0.449219%200.324219%20-0.550782%200.949219%20-0.226563%201.394531%20l%200.144531%200.199219%20c%200.273438%200.378906%200.226563%200.953125%20-0.050781%201.332031%20c%20-0.011719%200.015625%20-0.023437%200.03125%20-0.035156%200.050782%20c%20-0.273437%200.378906%20-0.808594%200.597656%20-1.253906%200.453124%20l%20-0.226563%20-0.074218%20c%20-0.523437%20-0.167969%20-1.089844%200.117187%20-1.257812%200.644531%20c%20-0.171875%200.523437%200.113281%201.089844%200.636718%201.261719%20l%200.226563%200.070312%20c%200.445313%200.144532%200.738281%200.640625%200.746094%201.105469%20c%200.003906%200.023437%200.003906%200.042969%200.003906%200.066406%20c%200.015625%200.464844%20-0.304687%200.960938%20-0.75%201.105469%20l%20-0.226563%200.074219%20c%20-0.179687%200.058593%20-0.332031%200.164062%20-0.445312%200.296875%20l%20-3.785156%20-3.785156%20c%20-0.535156%20-0.535157%20-0.535156%20-1.355469%200%20-1.890626%20l%204.667968%20-4.667968%20c%200.269532%20-0.269532%200.609376%20-0.402344%200.945313%20-0.402344%20z%20m%205.585937%205.234375%20c%200.058594%200%200.117188%200.003906%200.175782%200.007813%20c%200.382812%200.523437%200.335937%201.234374%20-0.144532%201.71875%20l%20-3.753906%203.75%20c%20-0.027344%20-0.066407%20-0.050781%20-0.136719%20-0.070312%20-0.203126%20c%20-0.003906%20-0.011718%20-0.007813%20-0.023437%20-0.011719%20-0.035156%20c%20-0.003906%20-0.007812%20-0.007813%20-0.011718%20-0.011719%20-0.019531%20c%20-0.285156%20-0.84375%20-0.152344%20-1.644531%200%20-2.4375%20c%200.003906%20-0.003906%200.007813%20-0.007813%200.011719%20-0.015625%20c%200.003906%20-0.011719%200.007813%20-0.027344%200.011719%20-0.039062%20c%200.261718%20-0.789063%200.757812%20-1.464844%201.410156%20-1.945313%20c%200.011719%20-0.003906%200.023438%20-0.011719%200.03125%20-0.015625%20c%200.019531%20-0.015625%200.042969%20-0.03125%200.058594%20-0.046875%20c%200.648437%20-0.453125%201.4375%20-0.71875%202.292968%20-0.71875%20z%20m%200%200'%20fill%3D'currentColor'%2F%3E%20%3C%2Fsvg%3E\");\n --icon-image-missing: url(\"data:image/svg+xml,%3Csvg%20height%3D'16px'%20viewBox%3D'0%200%2016%2016'%20width%3D'16px'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%20%3Cpath%20d%3D'm%204.015625%201.03125%20c%20-1.644531%200%20-3%201.355469%20-3%203%20v%201%20h%201%20v%20-1%20c%200%20-1.109375%200.890625%20-2%202%20-2%20h%201%20v%20-1%20z%20m%202%200%20v%201%20h%204%20v%20-1%20z%20m%205%200%20v%201%20h%201%20c%201.109375%200%202%200.890625%202%202%20v%201%20h%201%20v%20-1%20c%200%20-1.644531%20-1.355469%20-3%20-3%20-3%20z%20m%20-5%204%20c%20-0.550781%200%20-1%200.449219%20-1%201%20s%200.449219%201%201%201%20s%201%20-0.449219%201%20-1%20s%20-0.449219%20-1%20-1%20-1%20z%20m%20-5%201%20v%204%20h%201%20v%20-4%20z%20m%2013%200%20v%204%20h%201%20v%20-4%20z%20m%20-4.5%202%20l%20-2%202%20l%20-1.5%20-1%20l%20-2%202%20v%200.5%20c%200%200.5%200.5%200.5%200.5%200.5%20h%207%20s%200.472656%20-0.035156%200.5%20-0.5%20v%20-1%20z%20m%20-8.5%203%20v%201%20c%200%201.644531%201.355469%203%203%203%20h%201%20v%20-1%20h%20-1%20c%20-1.109375%200%20-2%20-0.890625%20-2%20-2%20v%20-1%20z%20m%2013%200%20v%201%20c%200%201.109375%20-0.890625%202%20-2%202%20h%20-1%20v%201%20h%201%20c%201.644531%200%203%20-1.355469%203%20-3%20v%20-1%20z%20m%20-8%203%20v%201%20h%204%20v%20-1%20z%20m%200%200'%20fill%3D'currentColor'%20fill-opacity%3D'0.34902'%2F%3E%20%3C%2Fsvg%3E\");\n}\n\n.adw-icon--edit-paste {\n mask-image: var(--icon-edit-paste);\n -webkit-mask-image: var(--icon-edit-paste);\n}\n\n.adw-icon--go-down {\n mask-image: var(--icon-go-down);\n -webkit-mask-image: var(--icon-go-down);\n}\n\n.adw-icon--sidebar-show {\n mask-image: var(--icon-sidebar-show);\n -webkit-mask-image: var(--icon-sidebar-show);\n}\n\n.adw-icon--go-previous {\n mask-image: var(--icon-go-previous);\n -webkit-mask-image: var(--icon-go-previous);\n}\n\n.adw-icon--go-next {\n mask-image: var(--icon-go-next);\n -webkit-mask-image: var(--icon-go-next);\n}\n\n.adw-icon--view-refresh {\n mask-image: var(--icon-view-refresh);\n -webkit-mask-image: var(--icon-view-refresh);\n}\n\n.adw-icon--open-menu {\n mask-image: var(--icon-open-menu);\n -webkit-mask-image: var(--icon-open-menu);\n}\n\n.adw-icon--go-home {\n mask-image: var(--icon-go-home);\n -webkit-mask-image: var(--icon-go-home);\n}\n\n.adw-icon--list-add {\n mask-image: var(--icon-list-add);\n -webkit-mask-image: var(--icon-list-add);\n}\n\n.adw-icon--network-wireless {\n mask-image: var(--icon-network-wireless);\n -webkit-mask-image: var(--icon-network-wireless);\n}\n\n.adw-icon--folder {\n mask-image: var(--icon-folder);\n -webkit-mask-image: var(--icon-folder);\n}\n\n.adw-icon--starred {\n mask-image: var(--icon-starred);\n -webkit-mask-image: var(--icon-starred);\n}\n\n.adw-icon--system-search {\n mask-image: var(--icon-system-search);\n -webkit-mask-image: var(--icon-system-search);\n}\n\n.adw-icon--contact-new {\n mask-image: var(--icon-contact-new);\n -webkit-mask-image: var(--icon-contact-new);\n}\n\n.adw-icon--mail-unread {\n mask-image: var(--icon-mail-unread);\n -webkit-mask-image: var(--icon-mail-unread);\n}\n\n.adw-icon--avatar-default {\n mask-image: var(--icon-avatar-default);\n -webkit-mask-image: var(--icon-avatar-default);\n}\n\n.adw-icon--camera-photo {\n mask-image: var(--icon-camera-photo);\n -webkit-mask-image: var(--icon-camera-photo);\n}\n\n.adw-icon--user-trash {\n mask-image: var(--icon-user-trash);\n -webkit-mask-image: var(--icon-user-trash);\n}\n\n.adw-icon--view-reveal {\n mask-image: var(--icon-view-reveal);\n -webkit-mask-image: var(--icon-view-reveal);\n}\n\n.adw-icon--view-conceal {\n mask-image: var(--icon-view-conceal);\n -webkit-mask-image: var(--icon-view-conceal);\n}\n\n.adw-icon--document-edit {\n mask-image: var(--icon-document-edit);\n -webkit-mask-image: var(--icon-document-edit);\n}\n\n.adw-icon--document-open {\n mask-image: var(--icon-document-open);\n -webkit-mask-image: var(--icon-document-open);\n}\n\n.adw-icon--document-save {\n mask-image: var(--icon-document-save);\n -webkit-mask-image: var(--icon-document-save);\n}\n\n.adw-icon--mail-send {\n mask-image: var(--icon-mail-send);\n -webkit-mask-image: var(--icon-mail-send);\n}\n\n.adw-icon--mail-reply-sender {\n mask-image: var(--icon-mail-reply-sender);\n -webkit-mask-image: var(--icon-mail-reply-sender);\n}\n\n.adw-icon--folder-download {\n mask-image: var(--icon-folder-download);\n -webkit-mask-image: var(--icon-folder-download);\n}\n\n.adw-icon--view-grid {\n mask-image: var(--icon-view-grid);\n -webkit-mask-image: var(--icon-view-grid);\n}\n\n.adw-icon--view-list {\n mask-image: var(--icon-view-list);\n -webkit-mask-image: var(--icon-view-list);\n}\n\n.adw-icon--view-columns {\n mask-image: var(--icon-view-columns);\n -webkit-mask-image: var(--icon-view-columns);\n}\n\n.adw-icon--list-remove {\n mask-image: var(--icon-list-remove);\n -webkit-mask-image: var(--icon-list-remove);\n}\n\n.adw-icon--send-to {\n mask-image: var(--icon-send-to);\n -webkit-mask-image: var(--icon-send-to);\n}\n\n.adw-icon--folder-music {\n mask-image: var(--icon-folder-music);\n -webkit-mask-image: var(--icon-folder-music);\n}\n\n.adw-icon--edit-copy {\n mask-image: var(--icon-edit-copy);\n -webkit-mask-image: var(--icon-edit-copy);\n}\n\n.adw-icon--emblem-system {\n mask-image: var(--icon-emblem-system);\n -webkit-mask-image: var(--icon-emblem-system);\n}\n\n.adw-icon--preferences-system {\n mask-image: var(--icon-preferences-system);\n -webkit-mask-image: var(--icon-preferences-system);\n}\n\n.adw-icon--application-x-executable {\n mask-image: var(--icon-application-x-executable);\n -webkit-mask-image: var(--icon-application-x-executable);\n}\n\n.adw-icon--image-missing {\n mask-image: var(--icon-image-missing);\n -webkit-mask-image: var(--icon-image-missing);\n}\n","// _variables.scss — Adwaita CSS custom properties (light theme defaults).\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss (canonical color palette)\n// Reference: refs/adwaita-web/adwaita-web/scss/_variables.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Subset adapted for @gjsify/adwaita-web Web Components.\n\n:root {\n // Window\n --window-bg-color: #fafafb;\n --window-fg-color: rgba(0, 0, 6, 0.8);\n\n // Views\n --view-bg-color: #ffffff;\n --view-fg-color: rgba(0, 0, 6, 0.8);\n\n // Header bar\n --headerbar-bg-color: #ffffff;\n --headerbar-fg-color: rgba(0, 0, 6, 0.8);\n --headerbar-shade-color: rgba(0, 0, 6, 0.12);\n\n // Hairline separators (header underline, sidebar/pane dividers). Subtle in\n // BOTH themes — dark theme flips to a faint light line, the way libadwaita\n // draws separators, instead of a harsh near-black line on a dark surface.\n --separator-color: rgba(0, 0, 6, 0.1);\n\n // Sidebar / split panes. libadwaita defines the whole family, not just the\n // background (_colors.scss:47-58), and only the background was here — so\n // `.sidebar-pane` had no foreground to name, and an app overriding\n // `--sidebar-fg-color` was overriding nothing.\n --sidebar-bg-color: #ebebed;\n --sidebar-fg-color: rgba(0, 0, 6, 0.8);\n --sidebar-backdrop-color: #f2f2f4;\n --sidebar-shade-color: rgba(0, 0, 6, 0.07);\n --sidebar-border-color: rgba(0, 0, 6, 0.07);\n\n // The MIDDLE pane of a three-pane setup. Nothing renders one yet; the tokens\n // are defined because they are public API an app may already reference, and a\n // half-present family reads as \"this one is unsupported\" rather than \"this\n // composition is not built yet\".\n --secondary-sidebar-bg-color: #f3f3f5;\n --secondary-sidebar-fg-color: rgba(0, 0, 6, 0.8);\n --secondary-sidebar-backdrop-color: #f6f6fa;\n --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.07);\n --secondary-sidebar-border-color: rgba(0, 0, 6, 0.07);\n\n // Cards / boxed lists\n --card-bg-color: #ffffff;\n --card-fg-color: rgba(0, 0, 6, 0.8);\n --card-shade-color: rgba(0, 0, 6, 0.07);\n\n // Accent\n --accent-bg-color: #3584e4;\n --accent-fg-color: #ffffff;\n --accent-color: #1c71d8;\n\n // Popover (menus, dropdowns) — an elevated surface above the window.\n --popover-bg-color: #ffffff;\n --popover-fg-color: rgba(0, 0, 6, 0.8);\n --popover-shade-color: rgba(0, 0, 6, 0.07);\n\n // Dialog scrim — the dimming wash behind a presented dialog (Adw dims with\n // --shade-color at double alpha; this is the equivalent neutral wash).\n --dialog-scrim-color: rgba(0, 0, 6, 0.32);\n\n // Buttons\n --button-bg-color: rgba(0, 0, 6, 0.08);\n --button-hover-color: rgba(0, 0, 6, 0.13);\n --button-active-color: rgba(0, 0, 6, 0.19);\n\n // Entries\n --entry-bg-color: #ffffff;\n --entry-border-color: rgba(0, 0, 6, 0.18);\n --entry-border-hover-color: rgba(0, 0, 6, 0.28);\n\n // Destructive action\n --destructive-bg-color: #e01b24;\n --destructive-fg-color: #ffffff;\n\n // Semantic states. `.error` / `.warning` / `.success` (see _labels.scss) do\n // not just recolour text — they REBIND the three accent tokens to these, so\n // anything accent-coloured inside them follows. Values are libadwaita's\n // (_colors.scss:16-29): red_3 / yellow_5 / green_4 from _palette.scss:106-121.\n // The standalone `*-color` is upstream's own relative-colour derivation of the\n // background, kept as an expression rather than resolved to a hex so it tracks\n // a re-themed `*-bg-color`.\n --success-bg-color: #2ec27e;\n --success-fg-color: #ffffff;\n --success-color: oklab(from var(--success-bg-color) min(l, 0.5) a b);\n --warning-bg-color: #e5a50a;\n --warning-fg-color: rgba(0, 0, 0, 0.8);\n --warning-color: oklab(from var(--warning-bg-color) min(l, 0.5) a b);\n --error-bg-color: #e01b24;\n --error-fg-color: #ffffff;\n --error-color: oklab(from var(--error-bg-color) min(l, 0.5) a b);\n\n // Switch\n --switch-off-bg: rgba(0, 0, 0, 0.2);\n --switch-knob-bg: #ffffff;\n\n // Layout radii\n --window-radius: 15px;\n --card-radius: 12px;\n --button-radius: 9px;\n\n // Spacing scale\n --spacing-xs: 6px;\n --spacing-s: 9px;\n --spacing-m: 12px;\n --spacing-l: 18px;\n --spacing-xl: 24px;\n\n // Typography — GNOME default: Adwaita Sans 11\n --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;\n --font-size-base: 11pt;\n --font-size-small: 9pt;\n --font-size-heading: 12pt;\n --dim-opacity: 0.55;\n\n // Document + monospace families, behind `.document` / `.monospace`\n // (_labels.scss:75-84). In GTK these four are written into `:root` at RUNTIME\n // by AdwStyleManager from the desktop's font settings\n // (adw-style-manager.c:169-218), defaulting to `Sans 10` / `Monospace 10`\n // (:50-56). A browser has no style manager, so they are ordinary tokens here\n // — same names, so re-theming goes through the documented contract. The\n // monospace stack is the one `_data_grid.scss` used to inline; it has ONE home\n // now, and Adwaita Mono heads it because `@gjsify/adwaita-fonts` ships it.\n // `'Cantarell'` is dropped from that stack on the way here: Cantarell is\n // GNOME's PROPORTIONAL UI font, so a monospace fallback chain that reaches it\n // second lands on a font whose figures do not line up — the exact property\n // `.monospace` exists for.\n --document-font-family: var(--font-family);\n --document-font-size: var(--font-size-base);\n --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;\n --monospace-font-size: var(--font-size-base);\n}\n","// _theme.scss — Light/dark theme switching.\n// Auto via prefers-color-scheme + manual .theme-dark / .theme-light overrides.\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n@mixin dark-theme {\n --window-bg-color: #222226;\n --window-fg-color: #ffffff;\n --view-bg-color: #1d1d20;\n --view-fg-color: #ffffff;\n --headerbar-bg-color: #2e2e32;\n --headerbar-fg-color: #ffffff;\n --headerbar-shade-color: rgba(0, 0, 6, 0.36);\n --separator-color: rgba(255, 255, 255, 0.08);\n --sidebar-bg-color: #2e2e32;\n --sidebar-fg-color: #ffffff;\n --sidebar-backdrop-color: #28282c;\n --sidebar-shade-color: rgba(0, 0, 6, 0.25);\n --sidebar-border-color: rgba(0, 0, 6, 0.36);\n --secondary-sidebar-bg-color: #28282c;\n --secondary-sidebar-fg-color: #ffffff;\n --secondary-sidebar-backdrop-color: #252529;\n --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.25);\n --secondary-sidebar-border-color: rgba(0, 0, 6, 0.36);\n --card-bg-color: rgba(255, 255, 255, 0.08);\n --card-fg-color: #ffffff;\n --card-shade-color: rgba(0, 0, 6, 0.36);\n --accent-color: #78aeed;\n --popover-bg-color: #36363a;\n --popover-fg-color: #ffffff;\n --popover-shade-color: rgba(0, 0, 6, 0.36);\n // A deeper scrim in dark mode so the dimming reads against a dark window.\n --dialog-scrim-color: rgba(0, 0, 6, 0.55);\n --button-bg-color: rgba(255, 255, 255, 0.1);\n --button-hover-color: rgba(255, 255, 255, 0.15);\n --button-active-color: rgba(255, 255, 255, 0.22);\n --entry-bg-color: rgba(255, 255, 255, 0.06);\n --entry-border-color: rgba(255, 255, 255, 0.16);\n --entry-border-hover-color: rgba(255, 255, 255, 0.26);\n --destructive-bg-color: #c01c28;\n --destructive-fg-color: #ffffff;\n // Semantic states — libadwaita's dark overrides (_colors.scss:83-92): the\n // backgrounds darken (green_5 / a hand-picked amber / red_4) and the\n // standalone colour LIGHTENS instead of darkening, so it stays readable on a\n // dark surface. Upstream does not re-declare the `*-fg-color`s here either.\n --success-bg-color: #26a269;\n --success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);\n --warning-bg-color: #cd9309;\n --warning-color: oklab(from var(--warning-bg-color) max(l, 0.85) a b);\n --error-bg-color: #c01c28;\n --error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);\n --switch-off-bg: rgba(255, 255, 255, 0.2);\n --switch-knob-bg: #deddda;\n // The active toggle is a raised near-white chip in both themes, so its text\n // must be dark in dark mode (the default token is the light window-fg).\n --active-toggle-fg-color: rgba(0, 0, 6, 0.8);\n}\n\n// Auto dark theme via prefers-color-scheme — opt out with .theme-light\n@media (prefers-color-scheme: dark) {\n :root:not(.theme-light) {\n @include dark-theme;\n }\n}\n\n// Manual override\n:root.theme-dark {\n @include dark-theme;\n}\n","// _root.scss — opt-in page surface for chrome-less layouts.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss (surface tokens)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: original opt-in helper for @gjsify/adwaita-web.\n//\n// The components theme via the `--window-*` CSS custom properties, but only\n// `adw-window` actually PAINTS the window surface (background + text colour).\n// A page laid out WITHOUT an `<adw-window>` (e.g. a plain browser view that\n// hosts rows/cards directly) therefore renders on the browser default (white)\n// and its native form controls / scrollbars don't follow the light/dark scheme.\n//\n// Applying `.adw-root` to `<body>` (or `<html>` / the `:root` element) binds the\n// Adwaita window surface + `color-scheme: light dark` to the document, so a\n// window-less layout is themed exactly like the components inside it. This is\n// OPT-IN and additive — it does not change any component's own styling.\n.adw-root {\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n color-scheme: light dark;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n}\n","// _reset.scss — style-isolation boundary for embedding in arbitrary host pages.\n//\n// adwaita-web renders as LIGHT-DOM custom elements (by design: the widgets\n// compose with the page and stay overridable via the `--adw-*` / `--*` design\n// tokens). The trade-off of light DOM is that a host page's *inherited*\n// typography — `font-family`, `color`, `line-height`, `letter-spacing`, … — and\n// generic element resets can leak into the widgets.\n//\n// This partial establishes an Adwaita typographic + box-model context at EVERY\n// component boundary, so inheritance from the host stops at the widget. It sets\n// only a FLOOR: it is `@use`d before the component partials, so each component's\n// own rules override it, and consumers keep full control through the tokens and\n// ordinary higher-specificity rules (isolation without giving up overriding).\n//\n// The box battles (borders, backgrounds) are already won by the components'\n// class-scoped rules against realistic element-level host CSS; the real leak is\n// inherited typography + a host `* {}` box-sizing reset, which is what this\n// neutralises.\n\n// Every custom element adwaita-web defines — one entry per `customElements\n// .define('adw-…')` call under `src/`.\n//\n// DERIVED, NOT REMEMBERED: `scripts/check-adwaita-reset-components.mjs` walks\n// those calls and fails on any tag missing from this list (and on any entry with\n// no call behind it). A hand-kept list is a second copy of the registry, and it\n// had already drifted — `adw-source-view` was defined for its whole life and\n// never listed, so it silently ran without the isolation floor. Nothing noticed,\n// because the only spec touching this file instantiates `adw-switch-row`.\n$adw-components:\n adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response,\n adw-avatar, adw-banner, adw-bottom-sheet, adw-bottom-sheet-content,\n adw-bottom-sheet-sheet, adw-button, adw-button-content, adw-button-row,\n adw-card, adw-carousel, adw-carousel-indicator-dots,\n adw-carousel-indicator-lines, adw-checkbox, adw-clamp, adw-combo-row,\n adw-data-grid,\n adw-dialog, adw-drop-down, adw-entry, adw-entry-row, adw-expander-row,\n adw-header-bar, adw-icon, adw-inline-view-switcher, adw-menu-button,\n adw-navigation-page,\n adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view,\n adw-password-entry-row, adw-popover, adw-preferences-dialog,\n adw-preferences-group, adw-preferences-page, adw-progress-bar, adw-radio,\n adw-sidebar, adw-sidebar-item,\n adw-sidebar-section, adw-source-view, adw-spinner, adw-spin-row,\n adw-split-button, adw-status-page, adw-switch, adw-switch-row,\n adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group,\n adw-toolbar-view, adw-view-stack, adw-view-stack-page, adw-view-switcher,\n adw-view-switcher-bar, adw-view-switcher-page, adw-window, adw-window-title,\n adw-wrap-box;\n\n// Roots: re-root the inherited typographic properties (and the box model) so a\n// host page's font / colour / spacing cannot flow into the widget. Every value\n// is the Adwaita default; a component that wants something else overrides it on\n// its own element (this rule is emitted first).\n#{$adw-components} {\n box-sizing: border-box;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 400;\n font-style: normal;\n font-variant: normal;\n line-height: normal;\n letter-spacing: normal;\n word-spacing: normal;\n text-align: start;\n text-indent: 0;\n text-transform: none;\n text-shadow: none;\n}\n\n// Descendants: `box-sizing` does not inherit, so a host `*, *::before {\n// box-sizing: content-box }` reset would still reach internal elements. Pin it\n// to `border-box` (adwaita's model throughout) inside every component.\n@each $c in $adw-components {\n #{$c} *,\n #{$c} *::before,\n #{$c} *::after {\n box-sizing: border-box;\n }\n}\n","// _icon.scss — the symbolic icon box behind <adw-icon>.\n//\n// A symbolic icon is rendered as a CSS mask rather than an <img> or inline SVG,\n// so `currentColor` drives the fill and the glyph re-themes with whatever\n// contains it. The per-name `.adw-icon--<name>` mask classes are GENERATED into\n// scss/_icons.generated.scss by scripts/build-scss.mjs (one entry per icon in\n// its ICONS map), so adding an icon is a single map edit.\n//\n// This block lived in `_button.scss` for as long as the button was the only\n// widget that drew one. It is emitted BEFORE the widget partials so a context\n// that sizes its own icons (`.adw-about-dialog-icon` at 96px, the split button's\n// 14px arrows, the view switcher's 16px) still wins on ordinary specificity.\n//\n// Reference: refs/libadwaita/src/stylesheet/_common.scss:34-41 — `.normal-icons`\n// / `.large-icons` set `-gtk-icon-size`. libadwaita has NO `_icon.scss`: there\n// the icon is a GtkImage and its size is a widget property, not a rule.\n// Reference: refs/adwaita-web/adwaita-web/scss/_icon.scss — the vendored web\n// port's `.adw-icon` is an inline-flex holder around a real <svg>; this\n// package masks instead, which is what keeps it colourable via currentColor.\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components (mask-based).\n\n.adw-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n background-color: currentColor;\n mask-size: 16px;\n mask-repeat: no-repeat;\n mask-position: center;\n -webkit-mask-size: 16px;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n\n // `currentColor` IS the icon: the mask is painted with the inherited colour,\n // so a suggested-action button's `--accent-fg-color` has to reach it. Since\n // <adw-icon> is a custom element it is also in `$adw-components`, and the\n // ADR-0010 boundary reset re-roots `color` on every entry there — which would\n // otherwise repaint every icon in `--window-fg-color` regardless of its host.\n // Class beats type selector, so this restores inheritance.\n color: inherit;\n\n // `display: inline-block` (author CSS) otherwise beats the UA `[hidden]`\n // rule, so a hidden icon (e.g. an avatar's fallback icon while initials\n // show) would still render as a solid maskless square. Honor `hidden`.\n &[hidden] {\n display: none;\n }\n}\n","// _labels.scss — libadwaita's typography + semantic-colour UTILITY CLASSES.\n//\n// NO ELEMENT. `refs/libadwaita/src/stylesheet/widgets/_labels.scss` is a widget\n// partial in name only: `label { … }` is four lines of GtkLabel plumbing\n// (`caret-color`, `.separator`, `:disabled`) and everything else in it is a\n// CLASS a consumer puts on whatever node it already has. There is deliberately\n// no `<adw-label>` here to go with them — it would wrap a `<span>` and add\n// nothing a class does not, which is exactly ADR 0004's \"a widget with\n// genuinely trivial behaviour does not need a core class\" applied one level up,\n// and ADR 0010 already makes the token/class surface the public contract. An\n// element would only add a tag to `$adw-components` for no behaviour.\n//\n// This is also where the in-tree duplication ends: `_data_grid.scss` declared\n// `font-variant-numeric: tabular-nums` twice and inlined a whole monospace font\n// stack — i.e. `.numeric` and `.monospace` — and dimmed its header row with a\n// raw `opacity: var(--dim-opacity)` where `.dimmed` is the upstream spelling. It\n// composes these now.\n//\n// WHAT DIFFERS FROM UPSTREAM, AND WHY\n//\n// - `font-size` percentages are upstream's (181% / 136% / 118% / 82%), which\n// are relative to the INHERITED size. That is what libadwaita means by them\n// and it composes with `--font-size-base`, so they are kept verbatim rather\n// than resolved to pt values.\n// - `.document` / `.monospace` read `--document-font-*` / `--monospace-font-*`.\n// In GTK those four are written into `:root` at runtime by AdwStyleManager\n// from the desktop's font settings (adw-style-manager.c:169-218), defaulting\n// to `Sans 10` / `Monospace 10` (:50-56). There is no style manager in a\n// browser, so `_variables.scss` supplies them as ordinary tokens — same\n// names, so a consumer re-themes through the documented contract.\n// - `refs/adwaita-web/adwaita-web/scss/_utility_classes.scss` carries its own\n// version of this block (it puts these in `_utility_classes.scss`, NOT in\n// `_label.scss`) and it disagrees with libadwaita on two points: it adds a\n// `line-height` to every title/heading, and it dims `.caption` and\n// `.caption-heading` by folding `--dim-opacity` into them. Neither is in\n// libadwaita — a caption is small, not dim, and dimming is `.dimmed`'s job,\n// composable onto anything. libadwaita is followed here.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_labels.scss:13-88 (every class below)\n// Reference: refs/libadwaita/src/adw-style-manager.c:50-56,169-218 (the four font tokens)\n// Reference: refs/adwaita-web/adwaita-web/scss/_utility_classes.scss (the vendored port's variant, NOT followed — see above)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web; the `label {}` element rules\n// are GtkLabel plumbing with no DOM counterpart and are not ported.\n\n// _labels.scss:13-15\n.dimmed {\n opacity: var(--dim-opacity);\n}\n\n// _labels.scss:17-19\n.accent {\n color: var(--accent-color);\n}\n\n// _labels.scss:21-29 — a semantic class does not just recolour the text, it\n// REBINDS the three accent tokens, so a button or switch inside it turns the\n// same colour without knowing which state it is in.\n@each $e_type in error, warning, success {\n .#{$e_type} {\n color: var(--accent-color);\n\n --accent-bg-color: var(--#{$e_type}-bg-color);\n --accent-fg-color: var(--#{$e_type}-fg-color);\n --accent-color: var(--#{$e_type}-color);\n }\n}\n\n/**********************\n * General Typography *\n **********************/\n\n// _labels.scss:35-53\n.title-1 {\n font-weight: 800;\n font-size: 181%;\n}\n\n.title-2 {\n font-weight: 800;\n font-size: 136%;\n}\n\n.title-3 {\n font-weight: 700;\n font-size: 136%;\n}\n\n.title-4 {\n font-weight: 700;\n font-size: 118%;\n}\n\n// _labels.scss:55-57\n.heading {\n font-weight: 700;\n}\n\n// _labels.scss:59-62\n.body {\n font-weight: 400;\n line-height: 140%;\n}\n\n// _labels.scss:64-67\n.caption-heading {\n font-weight: 700;\n font-size: 82%;\n}\n\n// _labels.scss:69-73\n.caption {\n font-weight: 400;\n font-size: 82%;\n line-height: 140%;\n}\n\n// _labels.scss:75-79\n.document {\n font-family: var(--document-font-family);\n font-size: var(--document-font-size);\n line-height: 140%;\n}\n\n// _labels.scss:81-84\n.monospace {\n font-family: var(--monospace-font-family);\n font-size: var(--monospace-font-size);\n}\n\n// _labels.scss:86-88\n.numeric {\n font-variant-numeric: tabular-nums;\n}\n","// _window.scss — adw-window styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_window.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-window {\n display: flex;\n flex-direction: column;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n border-radius: var(--window-radius);\n box-shadow:\n 0 0 14px 5px rgb(0 0 0 / 15%),\n 0 0 5px 2px rgb(0 0 0 / 10%),\n 0 0 0 1px rgb(0 0 0 / 5%);\n overflow: hidden;\n outline: 1px solid rgb(255 255 255 / 7%);\n outline-offset: -1px;\n}\n","// _headerbar.scss — adw-header-bar styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_headerbar.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_header-bar.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-header-bar {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n box-shadow: inset 0 -1px var(--separator-color);\n // flex-shrink: 0 ensures the headerbar never collapses inside a flex-column\n // adw-window, preventing a spurious spacing band between bar and content.\n flex-shrink: 0;\n\n .adw-header-bar-center {\n flex: 1;\n display: flex;\n justify-content: center;\n // min-width: 0 prevents the title from pushing the end buttons off-screen.\n min-width: 0;\n }\n\n .adw-header-bar-title {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .adw-header-bar-start {\n display: flex;\n align-items: center;\n padding: 0 6px;\n gap: 4px;\n // flex-shrink: 0 keeps the start buttons visible when the window is narrow.\n flex-shrink: 0;\n }\n\n .adw-header-bar-end {\n display: flex;\n align-items: center;\n // justify-content: flex-end aligns end buttons to the right edge of the\n // end section, fixing the pause-button misposition bug.\n justify-content: flex-end;\n padding: 0 6px;\n gap: 4px;\n // flex-shrink: 0 keeps the end buttons visible when the window is narrow.\n flex-shrink: 0;\n }\n\n .adw-header-btn {\n position: relative;\n width: 34px;\n height: 34px;\n border: none;\n border-radius: var(--button-radius);\n background: transparent;\n color: var(--headerbar-fg-color);\n cursor: pointer;\n padding: 0;\n margin: 0;\n flex-shrink: 0;\n\n &:hover {\n background: rgba(128, 128, 128, 0.12);\n }\n\n &:active {\n background: rgba(128, 128, 128, 0.22);\n }\n }\n}\n","// _window_title.scss — adw-window-title styling (header-bar title widget).\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/windowtitle.md\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-window-title {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 1.15;\n min-width: 0;\n\n .adw-window-title-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n color: var(--headerbar-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n .adw-window-title-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--headerbar-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n}\n","// _button.scss — adw-button + Adwaita button styles + symbolic icons + .linked.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// <adw-button> is a thin host that renders an inner <button class=\"adw-button\">;\n// the class set is the real styling API and works on a plain <button> too.\nadw-button {\n display: inline-flex;\n}\n\n.adw-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-height: 34px;\n min-width: 34px;\n margin: 0;\n padding: 4px 14px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &:disabled {\n opacity: 0.45;\n cursor: default;\n }\n\n // Flat — no resting background; only reacts on hover/active. The header bar's\n // navigation buttons use this.\n &.flat {\n background-color: transparent;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n // Suggested action — accent-coloured primary button.\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n &:hover {\n background-color: var(--accent-color);\n }\n\n &:active {\n background-color: var(--accent-color);\n filter: brightness(0.92);\n }\n }\n\n // Destructive action — red.\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n\n &:hover {\n filter: brightness(1.06);\n }\n\n &:active {\n filter: brightness(0.9);\n }\n }\n\n // Icon-only square button (no label).\n &.icon-only {\n padding: 0;\n width: 34px;\n }\n\n // Circular — round icon button.\n &.circular {\n padding: 0;\n width: 34px;\n border-radius: 9999px;\n }\n\n // Pill — fully-rounded ends.\n &.pill {\n padding: 6px 20px;\n border-radius: 9999px;\n }\n}\n\n// The symbolic icon (`.adw-icon`) used to be declared here, because the first\n// widget that needed one was the button. It is `scss/_icon.scss` now — every\n// other widget needs one too, and `<adw-icon>` is an element.\n\n// Linked group — adjacent buttons share edges (segmented control).\n.adw-linked {\n display: inline-flex;\n\n > .adw-button,\n > adw-button .adw-button {\n border-radius: 0;\n }\n\n > :first-child .adw-button,\n > .adw-button:first-child {\n border-top-left-radius: var(--button-radius);\n border-bottom-left-radius: var(--button-radius);\n }\n\n > :last-child .adw-button,\n > .adw-button:last-child {\n border-top-right-radius: var(--button-radius);\n border-bottom-right-radius: var(--button-radius);\n }\n\n > * + * {\n margin-left: 2px;\n }\n}\n","// _button_content.scss — adw-button-content styling (icon + label box used as a\n// button child). Mirrors libadwaita's `buttoncontent > box > {image, label}`\n// node: a horizontal box with 6px spacing between icon and label and a bold\n// label, plus optional ellipsizing when `.can-shrink` is set.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss (buttoncontent)\n// Reference: refs/libadwaita/src/adw-button-content.c (AdwButtonContent)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The class <adw-button-content> stamps on the button hosting it\n// (adw-button-content.c:115), removed again on unroot (:126).\n//\n// libadwaita: `button.image-text-button { padding-left: 9px; padding-right: 9px }`\n// (_buttons.scss:77-80) — against the 17px a plain `.text-button` gets (:72-75).\n// This rule lived in NEITHER renderer, so every icon+label button was drawn with\n// the wrong horizontal padding.\n//\n// Only the PADDING half of that block applies here. The same selector also\n// declares `> box, > box > box { border-spacing: 4px }` (:82-84), and neither\n// matches: the node tree is `button > buttoncontent > box` (:47-52), so the\n// button's direct child is the `buttoncontent`, not a box. The icon↔label gap\n// stays the 6px `buttoncontent > box` gives it (:626-628), which is the `gap`\n// below. It lives in this file rather than in `_button.scss` because the class\n// belongs to this widget, and `.adw-button.image-text-button` beats `.adw-button`\n// on specificity regardless of order.\n.adw-button.image-text-button {\n padding-left: 9px;\n padding-right: 9px;\n}\n\n// Inside a split button the class sits on the `splitbutton` node instead, and a\n// DIFFERENT block wins: `splitbutton.image-text-button > button` (:499-502).\n.adw-split-button.image-text-button > .adw-split-button-action {\n padding-left: 9px;\n padding-right: 9px;\n}\n\nadw-button-content {\n display: inline-flex;\n align-items: center;\n // Centered as a group, matching the box's halign:center in AdwButtonContent.\n justify-content: center;\n min-width: 0;\n\n // The inner box holds the image + label nodes (border-spacing 6px upstream).\n .adw-button-content-box {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-width: 0;\n }\n\n .adw-button-content-label {\n // libadwaita: `buttoncontent > box > label { font-weight: bold; }` with a\n // 2px trailing pad (LTR) so the label does not hug the button edge.\n font-weight: 700;\n line-height: 1;\n padding-right: 2px;\n }\n\n // can-shrink — the label ellipsizes instead of forcing the button wider\n // (Gtk.Label PANGO_ELLIPSIZE_END). The icon keeps its natural size.\n &.can-shrink {\n .adw-button-content-box {\n min-width: 0;\n }\n\n .adw-button-content-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n }\n}\n","// _popover.scss — <adw-popover>, the one popover surface in this package.\n//\n// It replaces three hand-rolled copies (`.adw-menu-button-popover`,\n// `.adw-drop-down-popover`, `.adw-split-button-menu`) that disagreed with\n// libadwaita AND with each other: 12px / 12px / 9px radius against libadwaita's\n// 15px, two correct three-layer shadows and one invented two-layer one. Nothing\n// compared any of them to the vendored stylesheet, so all three shipped.\n//\n// GROUND TRUTH, AND THE SELECTOR THAT WINS THE CASCADE\n//\n// `popover > contents` is `padding: 8px; border-radius: $popover_radius` plus a\n// three-layer shadow (_popovers.scss:13-21), with a `prefers-contrast: more`\n// variant that swaps the innermost layer for a hairline border (:23-27).\n// `$popover_radius` is `$menu_radius + 6` = 15px (_common.scss:10,13) — not\n// `$card_radius` (12px) and not `$button_radius` (9px), the two tokens the\n// copies reached for.\n//\n// The PADDING has a second, more specific rule: `popover.menu > contents`\n// re-declares `padding: 0` and moves the inset onto the item box as\n// `$menu_margin` (6px) at _menus.scss:58-66. Two element selectors plus a class\n// beats one element selector plus a child, so a MENU popover renders a 6px inset\n// and a plain one an 8px inset. The three copies all used 6px — they were right\n// about the inset for the menus they drew, and wrong only about the radius.\n//\n// We reproduce the menu inset with ONE node instead of GTK's contents+box pair:\n// `[menu]` puts the 6px directly on the surface. Same rendered geometry, and\n// there is no separate box element to hang it on in the DOM.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss:7-28\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss:58-66, :134-156\n// Reference: refs/libadwaita/src/stylesheet/_common.scss:10-13 ($menu_radius, $menu_margin, $popover_radius)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for the @gjsify/adwaita-web light-DOM custom elements.\n\n// Distance between the anchor and the surface. GTK gets this gap from the\n// popover's arrow, which this port does not draw (`has-arrow` is not modelled —\n// GtkPopover's C is not vendored here). 6px is what the menu button and the\n// drop-down already used; the split button's 4px was the odd one out.\n$popover-gap: 6px;\n\nadw-popover {\n // $popover_radius = $menu_radius + 6 (_common.scss:10,13). Exposed as a token\n // so consumers re-theme it the same way as the rest (ADR 0010), with the\n // libadwaita value as the fallback.\n --popover-radius: 15px;\n\n position: absolute;\n z-index: 10;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 120px; // popover.menu > contents (_menus.scss:2-4)\n padding: 8px; // popover > contents (_popovers.scss:14)\n border-radius: var(--popover-radius);\n background-color: var(--popover-bg-color, var(--window-bg-color, #fff));\n color: var(--popover-fg-color, var(--window-fg-color));\n\n // The exact three layers of _popovers.scss:18-20. The COUNT is load-bearing:\n // the split button shipped two.\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 1px 5px 1px rgba(0, 0, 0, 0.09),\n 0 2px 14px 3px rgba(0, 0, 0, 0.05);\n\n // _popovers.scss:23-27 — the innermost layer becomes a real hairline so the\n // surface has a visible edge when the shadow alone is not enough. Missing\n // from all three copies.\n @media (prefers-contrast: more) {\n box-shadow:\n 0 0 0 1px var(--separator-color),\n 0 1px 5px 1px rgba(0, 0, 0, 0.09),\n 0 2px 14px 3px rgba(0, 0, 0, 0.05);\n }\n\n // `popover.menu > contents { padding: 0 }` + `$menu_margin` on the item box\n // (_menus.scss:58-66), flattened onto the single surface node.\n &[menu] {\n padding: 6px;\n }\n\n // --- Placement. Pure CSS, as it always was: nothing measures a rect and\n // --- nothing flips on overflow, in either the element or the core.\n &[data-position='bottom'] {\n top: calc(100% + #{$popover-gap});\n }\n\n &[data-position='top'] {\n bottom: calc(100% + #{$popover-gap});\n }\n\n &[data-position='start'] {\n top: 0;\n right: calc(100% + #{$popover-gap});\n }\n\n &[data-position='end'] {\n top: 0;\n left: calc(100% + #{$popover-gap});\n }\n\n // `align` picks the edge the surface lines up with, and only applies on the\n // vertical axis — a start/end popover is already pinned horizontally.\n &[data-position='bottom'],\n &[data-position='top'] {\n &[data-align='start'] {\n left: 0;\n }\n\n &[data-align='end'] {\n right: 0;\n }\n }\n}\n\n// A popover row — libadwaita's `modelbutton` (_menus.scss:134-156).\n.adw-popover-item {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n width: 100%;\n min-height: 32px; // :135\n min-width: 40px; // :136\n margin: 0;\n // `padding: 0 $menu_padding` (:137) — $menu_padding is 12px (_common.scss:12),\n // and the vertical inset comes from min-height, not from padding. No 12px\n // spacing token exists in this port, so the value is literal like the radius.\n padding: 0 12px;\n border: none;\n border-radius: 9px; // $menu_radius (:138) — NOT calc(--button-radius - 2px), which two copies invented\n background-color: transparent; // :139\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: start;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n // `&:hover, &:selected { background-color: $selected_color }` (:141-144).\n // `:selected` is GTK's keyboard-highlight pseudo-class; in the DOM that state\n // is focus, so `.selected` (the drop-down's chosen row) and `:focus` share it.\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color); // $selected_active_color (:146-148)\n }\n\n // :150-156 — a contrast-mode ring on the same three states.\n @media (prefers-contrast: more) {\n &:hover,\n &:focus,\n &.selected,\n &:active {\n box-shadow: inset 0 0 0 1px var(--separator-color);\n }\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n &[disabled] {\n // `--disabled-opacity` is libadwaita's own variable (_colors.scss:320,\n // 50%); this port does not define it yet, so the fallback carries the value.\n opacity: var(--disabled-opacity, 0.5);\n pointer-events: none;\n }\n}\n\n// Optional heading atop a menu. libadwaita's `label.title` is `font-weight: bold`\n// + `padding: 4px ($menu_padding + 20px)` (_menus.scss:180-183) — 32px of\n// horizontal padding to centre the title over icon-indented rows, which\n// libadwaita's own comment calls out as fragile. This port keeps the tighter\n// inset `.adw-menu-button-title` already shipped rather than changing how the\n// existing menus look; only the class name moved here. A DELIBERATE deviation,\n// not a reading of :180-183.\n.adw-popover-title {\n padding: 4px var(--spacing-s) 6px;\n font-weight: 700;\n opacity: var(--dim-opacity);\n}\n","// _split_button.scss — adw-split-button styling: a primary action button fused\n// with a dropdown that opens a menu of related actions, split by a thin divider.\n// The suggested/destructive/flat style classes recolor the whole control like\n// the matching Adwaita button variants.\n// Reference: refs/libadwaita/src/adw-split-button.c (splitbutton CSS node)\n// Reference: refs/adwaita-web/adwaita-web/scss/_split_button.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n.adw-split-button {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: stretch;\n vertical-align: middle;\n min-height: 34px;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n user-select: none;\n -webkit-user-select: none;\n\n &:focus-within {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // Primary action half — fills the available width, rounded on the leading\n // side only so it meets the dropdown flush.\n .adw-split-button-action {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n flex-grow: 1;\n min-height: 34px;\n margin: 0;\n padding: 4px 14px;\n border: none;\n border-radius: var(--button-radius) 0 0 var(--button-radius);\n background-color: transparent;\n color: inherit;\n font: inherit;\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n }\n\n // Icon-only action half — square, no horizontal text padding.\n &.icon-only {\n padding: 0;\n width: 34px;\n flex-grow: 0;\n }\n }\n\n // Thin divider between the two halves (the splitbutton `separator` node).\n .adw-split-button-dropdown {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 34px;\n width: 28px;\n margin: 0;\n padding: 0 var(--spacing-xs);\n border: none;\n border-left: 1px solid var(--separator-color);\n border-radius: 0 var(--button-radius) var(--button-radius) 0;\n background-color: transparent;\n color: inherit;\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n .adw-icon {\n width: 14px;\n height: 14px;\n mask-size: 14px;\n -webkit-mask-size: 14px;\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n }\n }\n\n // The dropdown menu is `<adw-popover>` (`_popover.scss`), and this was the\n // WORST of the three hand-rolled surfaces: `--button-radius` (9px) where\n // libadwaita's popover is 15px, under a two-layer shadow that exists nowhere\n // in the vendored stylesheet (`popover > contents` has three,\n // _popovers.scss:18-20), and a `calc(var(--button-radius) - 2px)` (7px) row\n // where `modelbutton` is 9px. Nothing element-specific was left to keep.\n\n // --- Suggested action — accent-coloured whole control ---\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n .adw-split-button-dropdown {\n border-left-color: rgba(255, 255, 255, 0.3);\n }\n\n .adw-split-button-action:hover,\n .adw-split-button-dropdown:hover {\n background-color: var(--accent-color);\n }\n\n .adw-split-button-action:active,\n .adw-split-button-dropdown:active {\n background-color: var(--accent-color);\n filter: brightness(0.92);\n }\n }\n\n // --- Destructive action — red whole control ---\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n\n .adw-split-button-dropdown {\n border-left-color: rgba(255, 255, 255, 0.3);\n }\n\n .adw-split-button-action:hover,\n .adw-split-button-dropdown:hover {\n filter: brightness(1.06);\n }\n\n .adw-split-button-action:active,\n .adw-split-button-dropdown:active {\n filter: brightness(0.9);\n }\n }\n\n // --- Flat — no resting background; only reacts on hover/active ---\n &.flat {\n background-color: transparent;\n }\n\n // --- Disabled ---\n &.disabled {\n opacity: 0.45;\n cursor: default;\n\n .adw-split-button-action,\n .adw-split-button-dropdown {\n cursor: default;\n pointer-events: none;\n }\n }\n}\n","// _menu_button.scss — adw-menu-button styling: a flat (or circular) icon button\n// that drops an Adwaita-styled popover menu (the web counterpart of\n// Adw.MenuButton / Gtk.MenuButton). The button mirrors libadwaita's flat/circular\n// `menubutton > button`; the popover reproduces `popover.menu > contents` with\n// its soft triple-shadow surface and `modelbutton`-style item rows.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss (menubutton flat/circular)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss (popover > contents)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss (popover.menu modelbutton)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n.adw-menu-button {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n vertical-align: middle;\n\n // The icon button — square with the button radius by default.\n .adw-menu-button-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 34px;\n min-height: 34px;\n margin: 0;\n padding: 0 8px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n .adw-menu-button-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n }\n\n // Flat — no resting fill (the header app-menu idiom).\n &.flat .adw-menu-button-button {\n background-color: transparent;\n }\n\n // The open state keeps a subtle fill so the button reads as \"checked\".\n &.active .adw-menu-button-button {\n background-color: var(--button-active-color);\n }\n\n // Circular — a round 34×34 button (window-control / FAB idiom).\n &.circular .adw-menu-button-button {\n padding: 0;\n border-radius: 9999px;\n }\n\n &.disabled {\n opacity: 0.45;\n\n .adw-menu-button-button {\n cursor: default;\n pointer-events: none;\n }\n }\n\n // The surface, the heading and the item row are `<adw-popover>`'s —\n // `_popover.scss` (`adw-popover`, `.adw-popover-title`, `.adw-popover-item`).\n // What used to be here was one of three hand-rolled copies: a\n // `--card-radius` (12px) surface where libadwaita's is 15px, and a\n // `calc(var(--button-radius) - 2px)` (7px) row where `modelbutton` is 9px.\n // Only the icon slot is a menu-button fact.\n .adw-menu-button-item-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n}\n","// _drop_down.scss — adw-drop-down: a standalone dropdown selector (the web\n// counterpart of Gtk.DropDown). A normal Adwaita button showing the current\n// selection + a `pan-down` chevron, dropping an elevated Adwaita popover list of\n// options. The popover reproduces libadwaita's popover.menu > contents surface\n// (soft triple shadow), the items its modelbutton rows, matching <adw-menu-button>.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_popovers.scss (popover > contents)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_menus.scss (modelbutton rows)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_drop-down.scss (dropdown button)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n.adw-drop-down {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n vertical-align: middle;\n\n // The selection button — a normal Adwaita button (label + dim chevron).\n .adw-drop-down-button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs);\n min-width: 100px;\n min-height: 34px;\n margin: 0;\n padding: 0 8px 0 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &:disabled {\n cursor: default;\n pointer-events: none;\n }\n }\n\n .adw-drop-down-label {\n flex: 1 1 auto;\n min-width: 0;\n text-align: start;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The chevron — a smaller, dimmed down-glyph after the label.\n .adw-drop-down-arrow {\n width: 12px;\n height: 12px;\n mask-size: 12px;\n -webkit-mask-size: 12px;\n flex: none;\n opacity: var(--dim-opacity);\n }\n\n &.disabled {\n opacity: 0.55;\n }\n\n // The popover SURFACE is `<adw-popover>`'s (`_popover.scss`, the `[menu]`\n // variant — a dropdown's popover is a `popover.menu`, _dropdowns.scss:22).\n // What stays here is what libadwaita ALSO scopes to `dropdown`:\n // - the extra 6px above the contents (`popover.menu { padding-top: 6px }`,\n // _dropdowns.scss:23). GTK puts it on the popover node while the 6px inset\n // sits on `> contents`; flattened onto one node they add, which is what\n // the two-node original renders too.\n // - the width tracking the button rather than libadwaita's flat `min-width`.\n .adw-drop-down-popover {\n padding-top: 12px;\n min-width: 100%;\n max-width: 320px;\n }\n\n // Search entry atop the popover (enable-search). It reuses the .adw-entry skin\n // but needs its own bottom margin to separate it from the list.\n .adw-drop-down-search {\n margin-bottom: var(--spacing-xs);\n }\n\n // Scrollable column of option rows.\n .adw-drop-down-list {\n display: flex;\n flex-direction: column;\n max-height: 320px;\n overflow-y: auto;\n }\n\n // An option row is `.adw-popover-item` (`_popover.scss` — libadwaita's\n // `modelbutton`). Only the trailing-check layout is a drop-down fact: the\n // label and the check sit at opposite ends of the row.\n .adw-drop-down-item {\n justify-content: space-between;\n gap: var(--spacing-s);\n }\n\n .adw-drop-down-item-label {\n flex: 1 1 auto;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The selected-row check — a CSS checkmark, shown only on `.selected`.\n .adw-drop-down-item-check {\n position: relative;\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-drop-down-item.selected .adw-drop-down-item-check::after {\n content: '';\n position: absolute;\n left: 5px;\n top: 2px;\n width: 4px;\n height: 8px;\n border: solid var(--accent-color);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n}\n","// _toggle_group.scss — adw-toggle-group styling (a linked set of toggle buttons\n// with a single active item, recolored with the Adwaita active-toggle accent).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toggle-group.scss (AdwToggleGroup)\n// Reference: refs/adwaita-web/adwaita-web/scss/_toggle_group.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The active toggle uses a white-on-fg \"raised\" chip. These tokens default to\n// libadwaita's light-theme values; _theme.scss overrides them for dark.\n:root {\n --active-toggle-bg-color: #ffffff;\n --active-toggle-fg-color: var(--window-fg-color);\n}\n\nadw-toggle-group {\n // libadwaita's ---group-padding: a small inset so the active chip floats\n // inside the group's pill, leaving a hairline of group background around it.\n --group-padding: 3px;\n\n display: inline-flex;\n box-sizing: border-box;\n padding: var(--group-padding);\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n\n .adw-toggle-group-inner {\n display: flex;\n align-items: stretch;\n gap: var(--group-padding);\n }\n\n // Each toggle is a button-shaped chip with the group's inner radius.\n .adw-toggle {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 34px;\n min-height: 28px;\n margin: 0;\n padding: 4px 11px;\n border: none;\n border-radius: calc(var(--button-radius) - var(--group-padding));\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n box-shadow 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // The active toggle — a raised white chip, the way libadwaita draws it.\n &.active {\n background-color: var(--active-toggle-bg-color);\n color: var(--active-toggle-fg-color);\n box-shadow:\n 0 1px 3px 1px rgba(0, 0, 6, 0.07),\n 0 2px 6px 2px rgba(0, 0, 6, 0.03);\n\n &:hover {\n background-color: var(--active-toggle-bg-color);\n }\n }\n }\n\n // Round — group + toggles become pill-shaped.\n &.round {\n border-radius: 17px;\n\n .adw-toggle {\n border-radius: calc(17px - var(--group-padding));\n padding-left: calc(15px - var(--group-padding));\n padding-right: calc(15px - var(--group-padding));\n }\n }\n\n // Flat — no group background; the active toggle uses a subtle fill instead of\n // the raised white chip.\n &.flat {\n --group-padding: 0px;\n\n padding: 0;\n background: none;\n\n .adw-toggle {\n border-radius: var(--button-radius);\n\n &.active {\n background-color: var(--button-active-color);\n color: inherit;\n box-shadow: none;\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n &.round .adw-toggle {\n border-radius: 17px;\n }\n }\n}\n","// _switch.scss — the <adw-switch> control: a track, a hidden checkbox and a\n// sliding knob. UNSCOPED, which is the whole point of the partial.\n//\n// WHY IT IS ITS OWN FILE. These rules used to live inside `_switch_row.scss`,\n// nested under `adw-switch-row { … }` — so `.adw-switch` did not exist anywhere\n// else, and the moment a second widget needed a toggle it could not use it.\n// `_expander_row.scss` therefore carried a character-for-character copy of the\n// whole block (same 44×24 box, same hidden input, same 20px knob, same\n// `translateX(20px)`, same focus ring) under a different class name. Two copies\n// of a control is how a hover state gets fixed in one of them.\n//\n// FIDELITY, RECORDED RATHER THAN \"FIXED\": the 44×24 track with the 20px knob is\n// `refs/adwaita-web/adwaita-web/scss/_switch.scss`'s geometry, NOT libadwaita's.\n// libadwaita draws `switch` as a 3px-padded trough around a 20px slider with\n// `border-radius: 14px` (refs/libadwaita/src/stylesheet/widgets/_switch.scss:3-4,\n// :24-26) — about 26px tall, not 24, and correspondingly narrower. What ships\n// here is the vendored web port's box, unchanged by the extraction; changing the\n// geometry is a visual decision for a separate change, and citing libadwaita for\n// numbers that came from somewhere else would be the misreading the conformance\n// header warns about.\n//\n// Reference: refs/adwaita-web/adwaita-web/scss/_switch.scss (the geometry that ships)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_switch.scss:3-4,20-26 (the geometry that does not, + the disabled treatment)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components; lifted out of\n// `adw-switch-row {}` so <adw-switch> is usable anywhere.\n\n.adw-switch {\n position: relative;\n display: inline-block;\n width: 44px;\n height: 24px;\n flex-shrink: 0;\n\n // The real control: focusable and keyboard-toggleable, but never painted —\n // the slider below is what the user sees and clicks.\n input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n }\n}\n\n.adw-switch-slider {\n position: absolute;\n cursor: pointer;\n inset: 0;\n background-color: var(--switch-off-bg);\n border-radius: 12px;\n transition: background-color 0.15s ease-out;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 20px;\n width: 20px;\n left: 2px;\n bottom: 2px;\n background-color: var(--switch-knob-bg);\n border-radius: 50%;\n transition: transform 0.15s ease-out;\n box-shadow: 0 1px 2px rgb(0 0 0 / 20%);\n }\n}\n\n.adw-switch input:checked + .adw-switch-slider {\n background-color: var(--accent-bg-color);\n\n &::before {\n transform: translateX(20px);\n }\n}\n\n.adw-switch input:focus-visible + .adw-switch-slider {\n outline: 2px solid var(--accent-color);\n outline-offset: 2px;\n}\n\n// libadwaita dims the whole widget (`filter: Opacity(var(--disabled-opacity))`,\n// _switch.scss:20-22). This package has no `--disabled-opacity` token, so the\n// existing `--dim-opacity` stands in rather than a fourth invented colour.\n.adw-switch.disabled {\n opacity: var(--dim-opacity);\n\n .adw-switch-slider {\n cursor: not-allowed;\n }\n}\n","// _entry.scss — adw-entry / .adw-entry text input (e.g. a browser URL bar).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// <adw-entry> hosts an inner <input class=\"adw-entry\">; it fills its flex slot.\nadw-entry {\n display: flex;\n flex: 1;\n min-width: 0;\n}\n\n.adw-entry {\n box-sizing: border-box;\n width: 100%;\n min-height: 34px;\n margin: 0;\n padding: 5px 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: var(--entry-bg-color);\n color: var(--view-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n box-shadow: inset 0 0 0 1px var(--entry-border-color);\n transition: box-shadow 0.1s ease;\n\n &::placeholder {\n color: var(--view-fg-color);\n opacity: var(--dim-opacity);\n }\n\n &:hover {\n box-shadow: inset 0 0 0 1px var(--entry-border-hover-color);\n }\n\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Dimmed disabled state, mirroring .adw-button:disabled.\n &:disabled {\n opacity: 0.45;\n cursor: default;\n box-shadow: inset 0 0 0 1px var(--entry-border-color);\n }\n}\n","// _checks.scss — <adw-checkbox> AND <adw-radio>, in ONE partial.\n//\n// WHY ONE FILE FOR TWO ELEMENTS. `refs/libadwaita/src/stylesheet/widgets/\n// _checks.scss` merges them deliberately: everything but the corner radius and\n// the glyph is a shared `check, radio { … }` block (:20-65), and the\n// indeterminate dash is re-declared for BOTH at the end (:79-81). There is no\n// `_radio.scss` upstream to mirror. `refs/adwaita-web` does split them into\n// `_checkbox.scss` + `_radio.scss`, and the split is exactly where it drifted:\n// its two indicators grew different sizes, different border treatments and\n// different selection-mode rules, and only one of them has a hover state.\n//\n// TWO PLACES THE VENDORED WEB PORT DISAGREES WITH LIBADWAITA. libadwaita is\n// followed in both:\n//\n// 1. INDETERMINATE. `refs/adwaita-web/adwaita-web/scss/_checkbox.scss` has no\n// indeterminate state at all — no dash, no third glyph, nothing. libadwaita\n// paints it with the same accent fill as checked (:52-60) and its own dash\n// glyph (:79-81). Ported.\n// 2. THE CHECKED RADIO. `refs/adwaita-web/adwaita-web/scss/_radio.scss:22-33`\n// colours only the BORDER and the dot with `--accent-color`, leaving the\n// indicator's background as the view colour. libadwaita FILLS the whole\n// control with `--accent-bg-color` and draws the bullet in\n// `--accent-fg-color` (:54-55) — the same treatment the checkbox gets, which\n// is the point of the shared block. Ported.\n//\n// THE GLYPHS ARE LIBADWAITA'S OWN ASSETS. GTK draws them with\n// `-gtk-icon-source: -gtk-recolor(url(\"assets/check.svg\"))` (:70, :76, :80),\n// which has no CSS spelling. The path data below is copied from\n// `refs/libadwaita/src/stylesheet/assets/{check,bullet,dash}.svg` and painted as\n// a mask filled with `currentColor` — the same technique `_icon.scss` already\n// uses, and what makes `-gtk-recolor` work here: the shared block sets\n// `color: var(--accent-fg-color)` on a checked indicator, so the glyph follows.\n// `bullet.svg` carries a `transform=\"translate(-381 -339)\"` on a path whose\n// commands after the first are all relative, so the translation is folded into\n// the absolute `M` (388,342 → 7,3) and nothing else changes.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_checks.scss (all of it)\n// Reference: refs/libadwaita/src/stylesheet/assets/{check,bullet,dash}.svg (the three glyphs)\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss:280-286 (the trough colours)\n// Reference: refs/adwaita-web/adwaita-web/scss/{_checkbox,_radio}.scss (the vendored port's split, NOT followed — see above)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Implemented as Web Components for @gjsify/adwaita-web; the GTK\n// icon sources are re-expressed as CSS masks.\n\n// assets/check.svg\n$check-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E\");\n// assets/bullet.svg\n$bullet-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E\");\n// assets/dash.svg\n$dash-glyph: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E\");\n\n// `checkbutton { … }` (:3-18) — the host is the button, not the indicator.\nadw-checkbox,\nadw-radio {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 4px; // border-spacing: 4px (:4)\n padding: 3px; // (:6)\n border-radius: 9px; // $check_radius + 3px (:5)\n cursor: pointer;\n user-select: none;\n\n // The real control: focusable and keyboard-operable, never painted. The\n // indicator below is what the user sees; the host handles the pointer.\n .adw-check-input {\n position: absolute;\n width: 0;\n height: 0;\n margin: 0;\n opacity: 0;\n }\n\n // `check, radio { … }` (:20-31), shared by both elements.\n .adw-check-indicator {\n // GTK sizes the CONTENT box (`min-width`/`min-height: 14px`, :22-23) and\n // grows the drawn control with `padding: 3px` (:26), i.e. 20x20. Opting out\n // of the ADR-0010 descendant border-box pin keeps that arithmetic — and\n // keeps `checkbutton.selection-mode`'s one-line `padding: 7px` (:87)\n // working exactly as it does upstream instead of needing a second number.\n box-sizing: content-box;\n width: 14px;\n height: 14px;\n padding: 3px;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 15%, transparent); // $trough_color\n transition:\n background 200ms ease-out,\n box-shadow 200ms ease-out;\n\n @media (prefers-contrast: more) {\n // $trough_color_hc (_colors.scss:284) stands in for $border_color: this\n // package defines no `--border-opacity`, and the two are the same 30%\n // mix of currentColor in the light theme.\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 30%, transparent);\n }\n\n // The glyph layer. No mask until a state supplies one, so an unchecked\n // control paints nothing here.\n &::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n background-color: currentColor;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 14px; // -gtk-icon-size: 14px (:25)\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 14px;\n }\n }\n\n // `&:not(:checked):not(:indeterminate) { &:hover / &:active }` (:33-50).\n // Hover and active live on the HOST here — the indicator is 20px inside a\n // control whose label is part of the target, exactly as `checkbutton` is.\n &:not([checked]):not([indeterminate]):not([disabled]) {\n &:hover .adw-check-indicator {\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 20%, transparent); // $trough_hover_color\n\n @media (prefers-contrast: more) {\n box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 60%, transparent);\n }\n }\n\n &:active .adw-check-indicator {\n background-color: color-mix(in srgb, currentColor 25%, transparent); // $trough_active_color\n box-shadow: none;\n\n @media (prefers-contrast: more) {\n background-color: color-mix(in srgb, currentColor 60%, transparent);\n }\n }\n }\n\n // `&:checked, &:indeterminate { … }` (:52-60) — ONE block for both states, so\n // they differ only in the glyph.\n &[checked] .adw-check-indicator,\n &[indeterminate] .adw-check-indicator {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n box-shadow: none;\n }\n\n // GTK's `background-image: image(<colour>)` (:58-59) is a flat fill; a\n // two-stop gradient of one colour is its CSS spelling, as `_button_row.scss`\n // already does.\n &[checked]:not([disabled]),\n &[indeterminate]:not([disabled]) {\n &:hover .adw-check-indicator {\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active .adw-check-indicator {\n background-image: linear-gradient(rgb(0 0 6 / 20%), rgb(0 0 6 / 20%));\n }\n }\n\n // `&:disabled { filter: Opacity(var(--disabled-opacity)) }` (:62-64). This\n // package defines no `--disabled-opacity`, so `--dim-opacity` stands in — the\n // same substitution `_switch.scss` documents.\n &[disabled] {\n cursor: not-allowed;\n opacity: var(--dim-opacity);\n }\n\n // `@include focus-ring()` on `checkbutton` (:8). The ring follows the real\n // control's focus, not the host's, so keyboard focus is what shows it.\n .adw-check-input:focus-visible ~ .adw-check-indicator {\n outline: 2px solid var(--accent-color);\n outline-offset: 2px;\n }\n}\n\n// `check { border-radius: $check_radius }` (:67-68)\nadw-checkbox .adw-check-indicator {\n border-radius: 6px;\n}\n\n// `radio { border-radius: 100% }` (:73-74)\nadw-radio .adw-check-indicator {\n border-radius: 100%;\n}\n\n// `check:checked` → check.svg (:70) / `radio:checked` → bullet.svg (:76)\nadw-checkbox[checked] .adw-check-indicator::after {\n mask-image: $check-glyph;\n -webkit-mask-image: $check-glyph;\n}\n\nadw-radio[checked] .adw-check-indicator::after {\n mask-image: $bullet-glyph;\n -webkit-mask-image: $bullet-glyph;\n}\n\n// `check, radio { &:indeterminate { … dash.svg } }` (:79-81). Upstream this is a\n// SEPARATE rule after both `:checked` blocks at equal specificity, so the dash\n// wins over the check/bullet on a control that is both. Same order, same\n// specificity, same outcome here — and the same precedence `resolveCheckState`\n// in `@gjsify/adwaita-core` encodes for the a11y value.\nadw-checkbox[indeterminate] .adw-check-indicator::after,\nadw-radio[indeterminate] .adw-check-indicator::after {\n mask-image: $dash-glyph;\n -webkit-mask-image: $dash-glyph;\n}\n\n// `checkbutton.selection-mode { … }` (:83-95) — the big round check used in a\n// selection-mode header bar.\nadw-checkbox.selection-mode,\nadw-radio.selection-mode {\n border-radius: 100px;\n\n .adw-check-indicator {\n padding: 7px;\n border-radius: 100px;\n }\n\n // `label { &:dir(ltr) { margin-right: 6px } &:dir(rtl) { margin-left: 6px } }`\n // (:91-94) — one logical property covers both directions.\n .adw-check-label {\n margin-inline-end: 6px;\n }\n}\n","// _progress_bar.scss — <adw-progress-bar>, the determinate partner to\n// <adw-spinner>.\n//\n// TWO SOURCES, AND WHICH HALF CAME FROM WHICH — the two disagree, so this is not\n// bookkeeping:\n//\n// GEOMETRY + COLOUR + THE OSD VARIANT come from\n// `refs/libadwaita/src/stylesheet/widgets/_progress-bar.scss`: an 8px trough\n// (:6), the 99px `$_progress-radius` (:33-35), the `%scale_trough` /\n// `%scale_highlight` placeholders it shares with the scale\n// (`_scale.scss:1-17`), the `> trough.empty > progress { all: unset }` rule\n// that makes a zero fraction draw NOTHING rather than a 0px sliver (:85), and\n// the `.osd` variant — a 2px bar with no trough, for under a header bar\n// (:59-83).\n//\n// THE INDETERMINATE ANIMATION comes from\n// `refs/adwaita-web/adwaita-web/scss/_progressbar.scss:25-66`, because\n// libadwaita has NO CSS equivalent: GTK animates a pulsing block from C\n// (`gtk_progress_bar_pulse`), so the stylesheet has nothing to copy. Its\n// keyframes and its `prefers-reduced-motion` fallback are the only parts taken\n// from there. Its GEOMETRY is NOT: it draws a 6px bar with a 3px radius and\n// has no trough placeholder, no OSD variant and no text node, so copying its\n// numbers would put a bar in this package that matches neither source.\n//\n// NOT PORTED, deliberately: `progressbar.vertical` (:10-15) and the four\n// `progress.{left,right,top,bottom}` corner-radius rules (:37-55). Both exist\n// for orientations and trough-splitting `<adw-progress-bar>` does not expose —\n// there is no `orientation` attribute — and a rule nothing can ever select is a\n// rule that rots.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_progress-bar.scss:5-6,17-21,23-25,27-35,59-85\n// Reference: refs/libadwaita/src/stylesheet/_scale.scss:1-17 (%scale_trough, %scale_highlight)\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss:280-286 (the trough colours)\n// Reference: refs/adwaita-web/adwaita-web/scss/_progressbar.scss:25-66 (indeterminate keyframes + reduced-motion fallback ONLY)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Implemented as a Web Component for @gjsify/adwaita-web.\n\n// `.dimmed` / `.numeric`, which the text node @extends exactly as upstream does.\n@use 'labels';\n\nadw-progress-bar {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n // `progressbar.horizontal > trough { min-width: 150px }` (:5) is a WIDGET\n // minimum in GTK, so it belongs on the element rather than on the trough.\n min-width: 150px;\n\n .adw-progress-bar-trough {\n // %scale_trough (_scale.scss:1-10)\n position: relative;\n display: flex;\n overflow: hidden;\n height: 8px; // :6 — `&, > progress { min-height: 8px }`\n border-radius: 99px;\n background-color: color-mix(in srgb, currentColor 15%, transparent);\n transition: background 200ms ease-out;\n\n @media (prefers-contrast: more) {\n // $trough_color_hc (_colors.scss:284)\n background-color: color-mix(in srgb, currentColor 30%, transparent);\n }\n }\n\n .adw-progress-bar-progress {\n // %scale_highlight (_scale.scss:12-17) + $_progress-radius (:33-35)\n height: 100%;\n border-radius: 99px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n transition:\n width 200ms ease-out,\n background 200ms ease-out;\n }\n\n // `> text { @extend .dimmed; @extend .numeric; font-size: smaller; }` (:17-21)\n // — literally upstream's three lines, now that `.dimmed` and `.numeric` exist\n // here as the same utility classes they are there.\n .adw-progress-bar-text {\n @extend .dimmed;\n @extend .numeric;\n\n font-size: smaller;\n }\n\n // `&:disabled { filter: Opacity(var(--disabled-opacity)) }` (:23-25). This\n // package defines no `--disabled-opacity`, so `--dim-opacity` stands in — the\n // same substitution `_switch.scss` documents, not a fourth invented token.\n &[disabled] {\n opacity: var(--dim-opacity);\n }\n\n // Fill from the far end. GTK spells this `:inverted`; flexbox handles the\n // writing direction, so nothing here needs an RTL branch.\n &[inverted] .adw-progress-bar-trough {\n justify-content: flex-end;\n }\n\n // `> trough.empty > progress { all: unset }` (:85) — at fraction 0 the\n // indicator DISAPPEARS instead of drawing a rounded 0px stub.\n .adw-progress-bar-trough.empty .adw-progress-bar-progress {\n all: unset;\n }\n\n // The `.osd` variant (:59-83): a hairline bar with no trough at all, the way\n // it is drawn under a header bar.\n &[osd] {\n min-width: 2px;\n\n .adw-progress-bar-trough {\n height: 2px;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n }\n\n .adw-progress-bar-progress {\n border-radius: 0;\n }\n }\n\n // Indeterminate. The block leaves the flex flow and bounces across the trough;\n // this is the ONLY part of the widget taken from the vendored web port, since\n // GTK pulses from C and its stylesheet has no equivalent to copy.\n &[pulsing] .adw-progress-bar-progress {\n position: absolute;\n inset-block: 0;\n width: 30%;\n animation: adw-progress-bar-indeterminate 1.5s infinite ease-in-out;\n\n // `_progressbar.scss:42-49` — with motion suppressed the block stops moving\n // and fills the trough, so the bar still reads as \"busy\" and not as \"0%\".\n @media (prefers-reduced-motion: reduce) {\n left: 0;\n width: 100%;\n animation: none;\n }\n }\n}\n\n// refs/adwaita-web/adwaita-web/scss/_progressbar.scss:53-66, verbatim offsets.\n// `left` rather than `inset-inline-start`: the port animates a physical offset,\n// and a keyframe that flipped with the writing direction would no longer be the\n// animation being cited.\n@keyframes adw-progress-bar-indeterminate {\n 0% {\n left: -35%;\n width: 30%;\n }\n\n 50% {\n left: 50%;\n width: 40%;\n }\n\n 100% {\n left: 105%;\n width: 30%;\n }\n}\n","// _preferences.scss — adw-preferences-group styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_preferences.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_preferences.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-preferences-group {\n display: block;\n\n // An author `display` beats the UA `[hidden] { display: none }` regardless of\n // specificity, so without this a group hidden through the DOM `hidden`\n // property would keep rendering — the search treats it as invisible\n // (`is_visible_group`), and the two must agree.\n &[hidden] {\n display: none;\n }\n\n // The header is a flex row: a title/description label column on the left\n // (stretches to fill) and the optional header-suffix on the trailing edge.\n .adw-preferences-group-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n padding: var(--spacing-xs) 2px;\n\n // An author `display` beats the UA `[hidden] { display: none }` no matter\n // the specificity, so `headerEl.hidden = true` did NOTHING here: an empty\n // group kept its header box and its padding.\n &[hidden] {\n display: none;\n }\n\n // libadwaita's own metrics, keyed off `is_single_line`:\n // `> box.header:not(.single-line) { margin-bottom: 6px }` and\n // `> box.single-line { min-height: 34px }`\n // (refs/libadwaita/src/stylesheet/widgets/_preferences.scss:6-13). A\n // title-only or suffix-only header is one line tall and needs the height\n // floor instead of the gap below it.\n &:not(.single-line) {\n margin-bottom: 6px;\n }\n\n &.single-line {\n min-height: 34px;\n }\n }\n\n .adw-preferences-group-labels {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n min-width: 0;\n }\n\n .adw-preferences-group-suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .adw-preferences-group-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n margin: 0;\n color: var(--window-fg-color);\n }\n\n // Dimmed description line below the title.\n .adw-preferences-group-description {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n margin: 0;\n color: var(--window-fg-color);\n }\n\n .adw-preferences-group-listbox {\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n border-radius: var(--card-radius);\n box-shadow:\n 0 0 0 1px rgb(0 0 6 / 3%),\n 0 1px 3px 1px rgb(0 0 6 / 7%),\n 0 2px 6px 2px rgb(0 0 6 / 3%);\n overflow: hidden;\n }\n}\n","// _card.scss — adw-card styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_card.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-card,\n.adw-card {\n display: block;\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n border-radius: var(--card-radius);\n padding: var(--spacing-l);\n box-shadow:\n 0 0 0 1px rgb(0 0 6 / 3%),\n 0 1px 3px 1px rgb(0 0 6 / 7%),\n 0 2px 6px 2px rgb(0 0 6 / 3%);\n overflow: hidden;\n}\n","// _data_grid.scss — adw-data-grid: a slim, aligned numeric grid for genuinely\n// tabular data (an accounting BWA / P&L statement, invoice line-items). The web\n// mirror of the native Gtk.Grid the Buchhaltung app fills for its financial\n// statements — labels left, amounts right-aligned with tabular figures so\n// columns of numbers line up, plus the section / subtotal / total emphasis a\n// statement needs. NOT a Gtk.ColumnView (no sorting, no zebra striping); boxed\n// lists stay the default for record lists. Uses CSS subgrid so each row is a\n// real element (hover, hairline rules, activation) while columns stay aligned.\n// Reference: refs/libadwaita/src/stylesheet/_colors.scss (separator / card / dim tokens)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss (boxed-list density)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_labels.scss:13-15,81-88 (.dimmed / .monospace / .numeric)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// `.dimmed` / `.monospace` / `.numeric`. This file used to declare\n// `font-variant-numeric: tabular-nums` twice, inline a whole monospace font\n// stack, and dim its header row with a raw `opacity: var(--dim-opacity)` — i.e.\n// three private copies of utilities libadwaita publishes. It composes them now,\n// the way upstream's own `_progress-bar.scss:17-21` composes the same two.\n@use 'labels';\n\n.adw-data-grid {\n display: block;\n box-sizing: border-box;\n color: var(--card-fg-color);\n font-size: var(--font-size-base);\n\n // Optional title above the grid.\n .adw-data-grid-caption {\n font-size: var(--font-size-heading);\n font-weight: 700;\n color: var(--window-fg-color);\n margin: 0 0 var(--spacing-s);\n padding: 0 var(--spacing-xs);\n }\n\n // Horizontal scroll is CONTAINED here — a wide statement (many month columns)\n // scrolls sideways within the grid instead of overflowing the page.\n .adw-data-grid-scroll {\n overflow-x: auto;\n overflow-y: hidden;\n }\n\n // The grid owns the column tracks; each row is a subgrid spanning them, so\n // figures in the same column line up across every row. `min-width: max-content`\n // keeps columns from crushing — they overflow into the scroller instead.\n .adw-data-grid-table {\n display: grid;\n box-sizing: border-box;\n width: 100%;\n min-width: max-content;\n // grid-template-columns is set inline from the column descriptors.\n }\n\n .adw-data-grid-row {\n display: grid;\n grid-template-columns: subgrid;\n grid-column: 1 / -1;\n align-items: center;\n }\n\n // Airy Adwaita cell density (matching the boxed-list row rhythm), single-line.\n .adw-data-grid-cell {\n box-sizing: border-box;\n min-width: 0;\n padding: var(--spacing-s) var(--spacing-m);\n white-space: nowrap;\n text-align: left;\n\n &.align-end {\n text-align: right;\n }\n\n &.align-center {\n text-align: center;\n }\n\n // Tabular figures are the WHOLE POINT vs a boxed list — numbers line up.\n // `numeric` needs no rule at all: the cell carries the bare class, so\n // libadwaita's own `.numeric` (_labels.scss:86-88) already applies.\n // A mono cell is monospace AND tabular, so it composes both.\n &.mono {\n @extend .monospace;\n @extend .numeric;\n }\n }\n\n // Header row — dim, small, uppercase caps with a hairline underline (Adwaita\n // list-column headings), never sortable.\n .adw-data-grid-row.header {\n .adw-data-grid-cell {\n @extend .dimmed;\n\n font-size: var(--font-size-small);\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n border-bottom: 1px solid var(--separator-color);\n }\n }\n\n // A section header spans all columns as a bold group title (a BWA's sections).\n .adw-data-grid-row.variant-section {\n .section-cell {\n font-weight: 700;\n color: var(--window-fg-color);\n padding-top: var(--spacing-m);\n }\n }\n\n // A subtotal is bold with a hairline rule above it (Gesamtleistung, Rohertrag…).\n .adw-data-grid-row.variant-subtotal {\n border-top: 1px solid var(--separator-color);\n\n .adw-data-grid-cell {\n font-weight: 700;\n }\n }\n\n // The final total is bold with a STRONGER rule above (the accounting result —\n // Betriebsergebnis), plus a thin rule below to evoke the ruled grand-total line.\n .adw-data-grid-row.variant-total {\n border-top: 2px solid var(--separator-color);\n border-bottom: 1px solid var(--separator-color);\n\n .adw-data-grid-cell {\n font-weight: 800;\n color: var(--window-fg-color);\n }\n }\n\n // Optional interactive rows (master-detail). Hairline separators only where\n // Adwaita would — NOT zebra striping — so no default row borders; the hover /\n // focus affordance carries the interaction.\n .adw-data-grid-row.interactive {\n cursor: pointer;\n border-radius: var(--button-radius);\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n }\n}\n","// _clamp.scss — adw-clamp styling.\n//\n// The element itself is deliberately UNCAPPED and full-width: it is the box the\n// tightening curve is evaluated against, so it has to keep reporting the\n// AVAILABLE width. The cap and the centring live on the children, written by the\n// element from `clampAllocate` (see src/elements/adw-clamp.ts) — an element that\n// capped itself would feed its own capped width back into its ResizeObserver.\n//\n// Reference: refs/libadwaita/src/adw-clamp-layout.c (adw_clamp_layout_allocate)\n// Reference: refs/adwaita-web/adwaita-web/scss/_clamp.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-clamp {\n display: block;\n width: 100%;\n}\n","// _spinner.scss — adw-spinner styling.\n//\n// Almost nothing is left here on purpose. The ring is an SVG the element draws\n// per frame from `@gjsify/adwaita-core`'s `spinnerArc`, because the arc BREATHES\n// (2.7 to 102.8 degrees) and CSS cannot express that: the `border-top-color`\n// chase this file used to carry was a fixed 90-degree quarter-circle at 0.8s\n// against libadwaita's 1.2s, with a hardcoded grey track and square-cut ends.\n//\n// What CSS still owns is the box: the element is `size × size` and the ring is\n// centred inside it, which is how a 200px spinner shows a 64px ring\n// (adw-spinner.c:95-99 hands the widget's real size to the paintable, which caps\n// only the radius).\n//\n// There is deliberately NO `prefers-reduced-motion` rule. The C opts out of the\n// animation setting explicitly (`adw_animation_set_follow_enable_animations_setting\n// (…, FALSE)`, adw-spinner-paintable.c:537) — a frozen busy indicator reads as a\n// hang. This file used to stop the animation there.\n//\n// Reference: refs/libadwaita/src/adw-spinner.c\n// Reference: refs/libadwaita/src/adw-spinner-paintable.c\n// Reference: refs/adwaita-web/adwaita-web/scss/_spinner.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-spinner {\n // The element writes the measured box onto `style` when it upgrades; these are\n // the values in force until then, which are Adwaita's own minimum\n // (adw-spinner.c:14, reported as both minimum and natural at :78-81).\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n // The arc strokes `currentColor` — `gtk_widget_get_color` (:432), the widget's\n // TEXT colour, never the accent. The track is the same colour at 15%, which\n // the SVG applies as `stroke-opacity`.\n color: inherit;\n\n svg {\n display: block;\n // The ring never grows past its own diameter, so an over-large box centres\n // it rather than stretching it.\n flex: none;\n }\n}\n","// _avatar.scss — adw-avatar styling (round, initials or fallback icon).\n// Reference: refs/adwaita-web/adwaita-web/scss/_avatar.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_avatar.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-avatar {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 50%;\n overflow: hidden;\n box-sizing: border-box;\n font-weight: 700;\n user-select: none;\n background-color: rgba(127, 127, 127, 0.25);\n color: var(--window-fg-color);\n\n .adw-avatar-text {\n line-height: 1;\n text-align: center;\n }\n\n .adw-avatar-icon {\n background-color: currentColor;\n opacity: 0.7;\n -webkit-mask-size: contain;\n mask-size: contain;\n }\n}\n","// _banner.scss — adw-banner styling (full-width accent message strip).\n// Reference: refs/adwaita-web/adwaita-web/scss/_banner.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_banner.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-m);\n padding: var(--spacing-xs) var(--spacing-m);\n width: 100%;\n box-sizing: border-box;\n // Adw.Banner uses a neutral elevated surface, not the accent colour.\n background-color: var(--sidebar-bg-color);\n color: var(--window-fg-color);\n\n // Adw.Banner stays hidden until revealed.\n &:not(.revealed) {\n display: none;\n }\n\n .adw-banner-title {\n flex: 1 1 auto;\n min-width: 0;\n font-size: var(--font-size-base);\n }\n\n .adw-banner-button {\n flex-shrink: 0;\n border: none;\n border-radius: var(--button-radius);\n padding: 4px 14px;\n background: var(--button-bg-color);\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n cursor: pointer;\n\n &:hover {\n background: var(--button-hover-color);\n }\n\n // `button-style` (Since 1.7). ADW_BANNER_BUTTON_SUGGESTED adds\n // `.suggested-action` to the banner button (adw-banner.c:769), which is the\n // shared accent appearance — the same declaration `.adw-button.suggested-action`\n // carries, restated here because the banner button is not an `.adw-button`.\n &.suggested-action {\n background: var(--accent-bg-color);\n color: var(--accent-fg-color);\n\n &:hover {\n background: var(--accent-color);\n }\n }\n }\n}\n","// _status_page.scss — adw-status-page styling (centered empty state).\n// Reference: refs/adwaita-web/adwaita-web/scss/_status_page.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_status-page.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-status-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: var(--spacing-m);\n padding: var(--spacing-xl);\n color: var(--window-fg-color);\n\n .adw-status-page-icon {\n width: 96px;\n height: 96px;\n background-color: currentColor;\n opacity: 0.45;\n -webkit-mask-size: contain;\n mask-size: contain;\n }\n\n .adw-status-page-title {\n font-size: 18pt;\n font-weight: 800;\n }\n\n .adw-status-page-description {\n font-size: var(--font-size-base);\n opacity: var(--dim-opacity);\n max-width: 32ch;\n }\n\n .adw-status-page-child {\n margin-top: var(--spacing-s);\n }\n}\n","// _row.scss — Shared base styling for rows in preferences groups.\n// Reference: refs/adwaita-web/adwaita-web/scss/_row_types.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_action-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-switch-row,\nadw-combo-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n gap: var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n// Shared title/subtitle text column used by every row type (action/switch/\n// combo/spin). The title is the primary label; the subtitle is dimmed and\n// hidden when empty.\n.adw-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.adw-row-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n// Trailing edit pencil shared by editable rows (entry/password) — the\n// Adw.EntryRow edit affordance. Dimmed; clicking focuses the entry.\n.adw-row-edit {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--card-fg-color);\n opacity: 0.55;\n cursor: pointer;\n}\n\n// Utility separator (used by content layouts)\n.adw-separator-vertical {\n width: 1px;\n align-self: stretch;\n background-color: var(--card-shade-color);\n flex-shrink: 0;\n}\n","// _action_row.scss — adw-action-row styling (title/subtitle + prefix/suffix).\n// Reference: refs/adwaita-web/adwaita-web/scss/_action_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-action-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n &.activatable {\n cursor: pointer;\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n .adw-action-row-prefix,\n .adw-action-row-suffix {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n flex-shrink: 0;\n }\n\n .adw-action-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .adw-row-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","// _entry_row.scss — adw-entry-row styling (inline editable boxed-list row).\n// Reference: refs/adwaita-web/adwaita-web/scss/_entry_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-entry-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Focus ring matching libadwaita's row focus (inset accent outline).\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Filled Adw.EntryRow layout: a small floating title above the value,\n // both left-aligned in a column.\n .adw-entry-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n gap: 1px;\n }\n\n .adw-row-title {\n font-size: var(--font-size-small);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n }\n\n .adw-entry-row-input {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: left;\n outline: none;\n padding: 0;\n }\n}\n","// _switch_row.scss — adw-switch-row styling.\n//\n// The TOGGLE is not here: it is `<adw-switch>` and `scss/_switch.scss`. It used\n// to be, nested under `adw-switch-row {`, which is exactly why `.adw-switch` was\n// unreachable from anywhere else and `_expander_row.scss` grew a\n// character-for-character copy of it.\n//\n// Reference: refs/adwaita-web/adwaita-web/scss/_switch_row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-switch-row {\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n }\n}\n","// _combo_row.scss — adw-combo-row styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_combo_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_combo-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-combo-row {\n position: relative;\n cursor: pointer;\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n pointer-events: none;\n }\n\n // Hidden <select> overlay — stretches across the row to capture clicks\n // anywhere. The visual dropdown arrow is rendered by .adw-row-value::after\n // below, so the select itself doesn't need a background image.\n select {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n border: none;\n padding: 6px 24px 6px 8px;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n cursor: pointer;\n text-align: right;\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -1px;\n }\n\n option {\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n }\n }\n\n .adw-row-value {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n display: flex;\n align-items: center;\n gap: 4px;\n\n // Dropdown arrow — rendered via CSS mask so `currentColor` drives the\n // fill, making the icon theme-aware (matches libadwaita's dark theme).\n // Using background-image with a data-URI SVG would NOT resolve\n // `currentColor` in most browsers.\n //\n // `model_changed` (adw-combo-row.c:187-195) hides the arrow box entirely on\n // a model of one item or none, so the row stops presenting itself as a\n // chooser. `[data-presents-chooser='false']` below is that rule; the element\n // publishes the attribute and disables the overlaid <select> alongside.\n &::after {\n content: \"\";\n display: inline-block;\n width: 12px;\n height: 12px;\n background-color: currentColor;\n -webkit-mask-image: var(--icon-go-down);\n mask-image: var(--icon-go-down);\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-position: center;\n mask-position: center;\n }\n }\n}\n\n// A model with one item or none: no arrow, and the row is not activatable\n// (`model_changed`, adw-combo-row.c:187-195). Written as its own block rather\n// than a modifier inside `.adw-row-value` so the two selectors that draw the\n// arrow and the one that removes it read at the same specificity depth.\nadw-combo-row[data-presents-chooser='false'] {\n .adw-row-value::after {\n display: none;\n }\n\n select {\n cursor: default;\n }\n}\n","// _spin_row.scss — adw-spin-row styling.\n// Reference: refs/adwaita-web/adwaita-web/scss/_spin_button.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_spin-button.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-spin-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n gap: var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n }\n}\n\n.adw-spin-control {\n display: flex;\n align-items: center;\n gap: 2px;\n\n button {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--button-radius);\n background: transparent;\n color: var(--card-fg-color);\n cursor: pointer;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n &:hover {\n background: rgba(128, 128, 128, 0.15);\n }\n }\n\n input {\n width: 56px;\n text-align: center;\n border: none;\n border-radius: var(--button-radius);\n background: rgba(128, 128, 128, 0.1);\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n padding: 4px 2px;\n\n &:focus {\n outline: 2px solid var(--accent-color);\n outline-offset: -1px;\n }\n }\n}\n","// _button_row.scss — adw-button-row styling (a boxed-list row that acts as a\n// button: centered title + optional start icon, with suggested/destructive\n// recoloring).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_lists.scss (row.button)\n// Reference: refs/adwaita-web/adwaita-web/scss/_button_row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-button-row {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n cursor: pointer;\n transition: background-color 0.1s ease;\n\n &:last-child {\n border-bottom: none;\n }\n\n // Contents are centered as a group (libadwaita's GtkBox halign:center), with\n // the start icon hugging the title via a small gap (border-spacing 6px).\n .adw-button-row-contents {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 0;\n }\n\n .adw-button-row-title {\n font-size: var(--font-size-base);\n font-weight: 700;\n text-align: center;\n color: inherit;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Default (no style class): button-like hover/active feedback.\n &.activatable {\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n // Suggested action — accent-coloured, full-bleed (no separator line).\n &.suggested-action {\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n border-bottom: none;\n\n &.activatable {\n &:hover {\n background-color: var(--accent-bg-color);\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active {\n background-color: var(--accent-bg-color);\n background-image: linear-gradient(rgba(0, 0, 6, 0.2), rgba(0, 0, 6, 0.2));\n }\n }\n }\n\n // Destructive action — red, same full-bleed treatment as suggested.\n &.destructive-action {\n background-color: var(--destructive-bg-color);\n color: var(--destructive-fg-color);\n border-bottom: none;\n\n &.activatable {\n &:hover {\n background-color: var(--destructive-bg-color);\n background-image: linear-gradient(\n color-mix(in srgb, currentColor 10%, transparent),\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n\n &:active {\n background-color: var(--destructive-bg-color);\n background-image: linear-gradient(rgba(0, 0, 6, 0.2), rgba(0, 0, 6, 0.2));\n }\n }\n }\n}\n","// _expander_row.scss — adw-expander-row styling (disclosure header + nested rows).\n// Reference: refs/adwaita-web/adwaita-web/scss/_expander_row.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_expander-row.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-expander-row {\n display: block;\n border-bottom: 1px solid var(--card-shade-color);\n color: var(--card-fg-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Header — styled like an activatable action row.\n .adw-expander-row-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-s) var(--spacing-m);\n cursor: pointer;\n\n &:hover {\n background-color: var(--button-bg-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n }\n\n .adw-row-title {\n font-size: var(--font-size-base);\n color: var(--card-fg-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // The text column takes the free space so prefix/suffix widgets, the enable\n // switch and the chevron sit at their respective edges.\n .adw-expander-row-header > .adw-row-text {\n flex: 1;\n min-width: 0;\n }\n\n // Header prefix / suffix widget slots (Adw.ExpanderRow add_prefix/add_suffix).\n .adw-expander-row-prefix,\n .adw-expander-row-suffix {\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n flex-shrink: 0;\n }\n\n // Disclosure chevron — points down when collapsed, flips up when expanded,\n // matching libadwaita's Adw.ExpanderRow arrow.\n .adw-expander-row-chevron {\n opacity: var(--dim-opacity);\n transform: rotate(0deg);\n transition: transform 0.2s ease-out;\n flex-shrink: 0;\n }\n\n &.expanded .adw-expander-row-chevron {\n transform: rotate(180deg);\n }\n\n // The optional enable switch is `<adw-switch>` and needs no geometry of its\n // own — `.adw-expander-row-enable-switch` is a query/override hook only. This\n // block used to be a character-for-character copy of the switch row's toggle\n // (44×24 box, hidden input, 20px knob, translateX(20px), focus ring), because\n // `.adw-switch` was nested inside `adw-switch-row {` and unreachable from here.\n\n // Disclosed content — a nested listbox of rows, hidden until expanded. The\n // nested surface is slightly inset/recessed, the way libadwaita draws it.\n .adw-expander-row-content {\n display: none;\n flex-direction: column;\n background-color: var(--window-bg-color);\n border-top: 1px solid var(--card-shade-color);\n\n &.expanded {\n display: flex;\n }\n\n // Nested rows: indent the text column and keep the hairline separators,\n // dropping the last one (the content area's own edge closes it off).\n > adw-action-row,\n > adw-entry-row,\n > adw-switch-row,\n > adw-combo-row,\n > adw-spin-row {\n padding-left: var(--spacing-xl);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n}\n","// _password_entry_row.scss — adw-password-entry-row styling (masked entry row\n// with a trailing peek toggle). Mirrors _entry_row.scss (the password row is a\n// specialization of the entry row) and adds the flat peek button.\n// Reference: refs/adwaita-web/adwaita-web/scss/_password_entry_row.scss\n// Reference: refs/libadwaita/src/adw-password-entry-row.c\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-password-entry-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 50px;\n padding: var(--spacing-xs) var(--spacing-m);\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n // Focus ring matching libadwaita's row focus (inset accent outline).\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--accent-color);\n }\n\n // Filled Adw.EntryRow layout: a small floating title above the value,\n // both left-aligned in a column.\n .adw-password-entry-row-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n gap: 1px;\n }\n\n .adw-row-title {\n font-size: var(--font-size-small);\n color: var(--card-fg-color);\n opacity: var(--dim-opacity);\n }\n\n .adw-password-entry-row-input {\n width: 100%;\n min-width: 0;\n border: none;\n background: transparent;\n color: var(--card-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: left;\n outline: none;\n padding: 0;\n\n // Slightly wider tracking for the masked dots, like the native entry.\n &[type='password'] {\n letter-spacing: 0.125em;\n }\n }\n\n // Trailing peek toggle — flat circular icon button, vertically centred.\n .adw-password-entry-row-toggle {\n flex-shrink: 0;\n align-self: center;\n }\n}\n","// _toast.scss — adw-toast and adw-toast-overlay styling.\n// adw-toast-overlay wraps content and layers transient `.adw-toast` banners over\n// the bottom of its own bounds (the Adw.ToastOverlay model). Each banner carries\n// a title, an optional action button and a CSS-drawn \"×\" close button, and slides\n// up on show / down on dismiss (mirroring Adw.Toast).\n// Reference: refs/adwaita-web/adwaita-web/scss/_toast.scss\n// Reference: refs/adwaita-web/adwaita-web/scss/_toast_overlay.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toast.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-toast-overlay {\n position: relative;\n display: block;\n\n // The wrapped content (Adw.ToastOverlay :child) occupies the overlay's box.\n .adw-toast-overlay-content {\n width: 100%;\n height: 100%;\n }\n\n // The toast slot: layered over the bottom edge of the overlay and centered,\n // the way AdwToastOverlay floats a toast above its child. Like\n // Adw.ToastOverlay only ONE toast is mounted at a time (the queue lives in\n // `@gjsify/adwaita-core`); the flex column keeps it centered and lets an\n // outgoing `.hiding` strip finish its exit transition in place.\n .adw-toast-overlay-toasts {\n position: absolute;\n bottom: var(--spacing-m);\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n display: flex;\n flex-direction: column-reverse;\n gap: var(--spacing-s);\n align-items: center;\n pointer-events: none;\n }\n}\n\n.adw-toast {\n background-color: #3d3846;\n color: #ffffff;\n padding: var(--spacing-s) var(--spacing-m);\n border-radius: var(--card-radius);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.25);\n display: flex;\n align-items: center;\n gap: var(--spacing-s);\n width: max-content;\n max-width: 400px;\n min-height: 36px;\n pointer-events: auto;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n\n opacity: 0;\n transform: translateY(100%) scale(0.9);\n transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0, 0, 0.2, 1);\n will-change: transform, opacity;\n\n &.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n &.hiding {\n opacity: 0;\n transform: translateY(100%) scale(0.9);\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n .adw-toast-content-wrapper {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-toast-title {\n font-weight: normal;\n line-height: 1.3;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Action button — a flat pill tinted with the accent color so it reads as\n // suggested against the dark toast surface (Adw.Toast:button-label).\n .adw-toast-action-button {\n flex-shrink: 0;\n box-sizing: border-box;\n margin: 0;\n padding: 4px var(--spacing-m);\n border: none;\n border-radius: var(--button-radius);\n background-color: rgba(255, 255, 255, 0.12);\n color: #ffffff;\n font-family: inherit;\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition: background-color 150ms ease-in-out;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n\n &:active {\n background-color: rgba(255, 255, 255, 0.26);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n }\n\n // Close affordance — a CSS-drawn \"×\" (mirrors adw-tab-view's .adw-tab-close;\n // no symbolic close icon ships in the curated adwaita-web icon set).\n .adw-toast-close-button {\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n width: 24px;\n height: 24px;\n margin: 0;\n padding: 0;\n border: none;\n border-radius: 9999px;\n background-color: transparent;\n color: #ffffff;\n cursor: pointer;\n opacity: 0.7;\n transition:\n background-color 150ms ease-in-out,\n opacity 150ms ease-in-out;\n\n &:hover {\n opacity: 1;\n background-color: rgba(255, 255, 255, 0.12);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 11px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n}\n","// _toolbar_view.scss — adw-toolbar-view styling (content framed by top/bottom bars).\n// Reference: refs/adwaita-web/adwaita-web/scss/_toolbar_view.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toolbars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-toolbar-view {\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n flex: 1 1 auto;\n // Positioning context for the extend-content-to-*-edge overlays below.\n position: relative;\n\n .adw-toolbar-view-top,\n .adw-toolbar-view-bottom {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n }\n\n .adw-toolbar-view-content {\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n overflow: auto;\n display: flex;\n flex-direction: column;\n background-color: var(--window-bg-color);\n }\n\n // top-bar-style / bottom-bar-style: an opaque background plus a persistent\n // shadow, which `.border` swaps for a hairline (adw-toolbar-view.c:1011-1024,\n // _toolbars.scss `> .top-bar.raised`).\n .adw-toolbar-view-top.raised,\n .adw-toolbar-view-bottom.raised {\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n }\n\n .adw-toolbar-view-top.raised {\n box-shadow:\n 0 1px var(--headerbar-shade-color),\n 0 2px 4px var(--headerbar-shade-color);\n\n &.border {\n box-shadow: 0 1px var(--headerbar-shade-color);\n }\n }\n\n .adw-toolbar-view-bottom.raised {\n box-shadow:\n 0 -1px var(--headerbar-shade-color),\n 0 -2px 4px var(--headerbar-shade-color);\n\n &.border {\n box-shadow: 0 -1px var(--headerbar-shade-color);\n }\n }\n\n // The scroll fade under a FLAT bar. libadwaita paints it on the scrolled\n // window; the browser equivalent is a non-interactive gradient stuck to the\n // scrollport edge, taking no space of its own — a NEGATIVE margin equal to its\n // height (_toolbars.scss :342-343, _scrolling.scss :150-157).\n &.undershoot-top .adw-toolbar-view-content::before,\n &.undershoot-bottom .adw-toolbar-view-content::after {\n content: '';\n position: sticky;\n height: 6px;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n &.undershoot-top .adw-toolbar-view-content::before {\n top: 0;\n margin-bottom: -6px;\n background: linear-gradient(to bottom, var(--headerbar-shade-color), transparent);\n }\n\n &.undershoot-bottom .adw-toolbar-view-content::after {\n bottom: 0;\n margin-top: -6px;\n background: linear-gradient(to top, var(--headerbar-shade-color), transparent);\n }\n}\n\n// extend-content-to-*-edge: the content spans the full height and the bar is\n// drawn OVER it, which is `content_offset = 0` / `content_height = height` in\n// adw_toolbar_view_size_allocate (adw-toolbar-view.c:390-397).\nadw-toolbar-view[extend-content-to-top-edge] > .adw-toolbar-view-top,\nadw-toolbar-view[extend-content-to-bottom-edge] > .adw-toolbar-view-bottom {\n position: absolute;\n left: 0;\n right: 0;\n}\n\nadw-toolbar-view[extend-content-to-top-edge] > .adw-toolbar-view-top {\n top: 0;\n}\n\nadw-toolbar-view[extend-content-to-bottom-edge] > .adw-toolbar-view-bottom {\n bottom: 0;\n}\n","// _wrap_box.scss — adw-wrap-box styling (a box that wraps its children onto new\n// lines, the web analog of flexbox `flex-wrap: wrap`). Mirrors Adw.WrapBox.\n// Reference: refs/adwaita-web/adwaita-web/scss/_wrap_box.scss\n// Reference: refs/libadwaita/src/adw-wrap-box.c / adw-wrap-layout.c (Adw.WrapBox)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// Direction, gaps, `justify-content` and `align-content` are driven imperatively\n// by the component from its attributes — these are the libadwaita defaults\n// (horizontal, packed to the start of each line, lines wrapping downwards from\n// the top). A wrap box is a pure layout container, so it carries no background\n// of its own; children handle their own theming.\nadw-wrap-box {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n // Each child is allocated the FULL cross extent of its line — `h = line_size`\n // in adw-wrap-layout.c:746-751 — which is `stretch`, the flexbox default. The\n // port used to write `flex-start` here and drive it from `align`, which is a\n // MAIN-axis property in libadwaita and belongs on `justify-content`.\n align-items: stretch;\n align-content: flex-start;\n}\n\n// `wrap-policy`, published by the component as a custom property. The FALLBACK\n// is the load-bearing part: it is `ADW_WRAP_NATURAL`, libadwaita's default\n// (adw-wrap-box.c:491-495), where CSS defaults `flex-shrink` to 1 — so a wrap\n// box that has not upgraded yet, or one whose policy is unset, draws Adwaita's\n// choice rather than the cascade's.\nadw-wrap-box > * {\n flex-shrink: var(--adw-wrap-box-child-shrink, 0);\n}\n\n// FILL grows the children and keeps the spacing constant\n// (adw-wrap-layout.c:317-319, :326-341); SPREAD deliberately does NOT, so the\n// gaps take the leftover instead. `data-line-justify` is the mode the component\n// resolved for a COMPLETE line.\n//\n// A lone child is excluded because it is not on a complete line: a box with one\n// element child has exactly one line, and that line is the final one — see\n// below.\nadw-wrap-box[data-line-justify='fill'] > *:not(:only-child) {\n flex-grow: 1;\n}\n\n// `:only-child` is the one line-membership fact CSS knows without a layout pass,\n// and libadwaita treats that line as the LAST one. Both justified modes stretch\n// it: FILL by definition, SPREAD because its \"keep the children at their minimum\n// size\" branch is guarded by `n_children > 1` (adw-wrap-layout.c:338), so a lone\n// child is stretched regardless (adw-wrap-box.c:349-352).\nadw-wrap-box[data-last-line-justify='fill'] > :only-child,\nadw-wrap-box[data-last-line-justify='spread'] > :only-child {\n flex-grow: 1;\n}\n\n// The final line, when it is NOT justified (`justify-last-line` unset — the C\n// default, adw-wrap-box.c:379-381): a generated flex item absorbs that line's\n// leftover space, so it packs at the start of the main axis the way an\n// un-justified line does, while `justify-content: space-between` keeps spreading\n// the complete lines above it. `::after` is the only per-line hook flexbox\n// offers, and it lands on the final line by construction.\n//\n// The negative main-axis margin cancels exactly the one gap the filler would\n// otherwise add, so an exactly-full line can never be pushed into a new one.\nadw-wrap-box[data-line-justify='spread'][data-last-line-justify='none']::after {\n content: '';\n flex: 1 0 0;\n min-width: 0;\n min-height: 0;\n margin-left: calc(-1 * var(--adw-wrap-box-child-spacing, 0px));\n}\n\n// A vertical box packs along the block axis, so the gap to cancel is the one\n// before the filler in that direction.\nadw-wrap-box[orientation='vertical'][data-line-justify='spread'][data-last-line-justify='none']::after {\n margin-left: 0;\n margin-top: calc(-1 * var(--adw-wrap-box-child-spacing, 0px));\n}\n","// _panes.scss — `.sidebar-pane` / `.content-pane` / `.overlay-pane`.\n//\n// These are libadwaita STYLE CLASSES, not private markup of one widget. Both\n// split views document them as their CSS node tree\n// (adw-navigation-split-view.c:157-165, adw-overlay-split-view.c:136-152) and\n// both apply them to their pane bins, which makes them the supported hook an\n// app themes a pane through. They lived nowhere in this stylesheet, so each\n// split view hard-coded `--sidebar-bg-color` onto its own private pane div\n// instead — with two consequences.\n//\n// The first is that an app writing the documented selector styles nothing, and\n// gets no error saying so. Our own docs site is the evidence: every split-view\n// example carried `class=\"sidebar\"` on the sidebar toolbar view, hand-written\n// by someone reaching for exactly this, matching no rule in the build.\n//\n// The second is a rendering defect, because the class is not constant — it is\n// how the widget says which of its states a pane is in. A collapsed overlay\n// sidebar is an `.overlay-pane`, on the WINDOW background, not the sidebar one\n// (adw-overlay-split-view.c:718-741); a collapsed navigation split view has no\n// pane bins at all, its pages being ordinary navigation pages. Painting the\n// sidebar colour at every width, as the private rules did, got both wrong.\n//\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss (.sidebar-pane, .overlay-pane)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n.sidebar-pane {\n background-color: var(--sidebar-bg-color);\n color: var(--sidebar-fg-color);\n}\n\n// A pane nested inside another sidebar pane defers to it rather than stacking a\n// second tint (`.sidebar-pane .sidebar-pane`, _sidebars.scss). libadwaita also\n// recolours the MIDDLE pane of a three-pane setup through\n// `--secondary-sidebar-*`; that needs a split view nested in a split view to\n// mean anything, and no such composition is rendered yet, so the tokens are\n// defined (they are public API an app may already reference) and the selector\n// is left for whoever builds the composition that can test it.\n.sidebar-pane .sidebar-pane {\n background-color: transparent;\n color: inherit;\n}\n\n// `.content-pane` deliberately has NO rule here. libadwaita gives it no colour\n// of its own — the window shows through — and writing `transparent` would be a\n// claim, not a copy: it would override the `--window-bg-color` the navigation\n// split view sets on its own content pane for the case where the view is not a\n// window's direct child. The class is still applied, because being able to\n// select it is the point.\n\n// Collapsed: the sidebar floats ABOVE the content as a temporary panel, and\n// libadwaita gives it the window colours rather than the sidebar ones — a panel\n// over the content is not the same surface as a pane beside it.\n.overlay-pane {\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n}\n","// _overlay_split_view.scss — adw-overlay-split-view styling.\n//\n// The GEOMETRY is no longer here. It used to be four `transform: translateX(±100%)`\n// rules keyed on `.collapsed` / `.show-sidebar` / `.sidebar-end`, which can only\n// express the two END STATES of a reveal — so `show-progress` was 0 or 1, the\n// five `OVERLAY_SWIPE_*` conformance tables shipped unexercised, and the docked\n// hide slid the wrong way for an `end` sidebar because the JS wrote `marginRight`\n// whichever edge the pane was on.\n//\n// The element now writes the pane rect per frame from\n// `layoutOverlaySplitView`, which is continuous and knows the edge (including\n// under RTL, where a `start` sidebar is drawn on the RIGHT —\n// `get_start_or_end`, adw-overlay-split-view.c:227-234). What is left here is\n// what CSS genuinely owns: the box model, the stacking, and the transition that\n// smooths a programmatic toggle.\n//\n// Reference: refs/libadwaita/src/adw-overlay-split-view.c\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented as Web Component for @gjsify/adwaita-web.\n\nadw-overlay-split-view {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n position: relative;\n overflow: hidden;\n\n // NO background here. The pane colour comes from the `.sidebar-pane` /\n // `.overlay-pane` class the element toggles (see _panes.scss), because which\n // of the two a pane is in is exactly what decides its colour — hard-coding\n // `--sidebar-bg-color` on this private class painted a collapsed overlay,\n // which libadwaita puts on the window background, as though it were docked.\n .adw-osv-sidebar {\n overflow-y: auto;\n flex-shrink: 0;\n z-index: 10;\n align-self: stretch;\n // Only `opacity` transitions. The offset is driven per frame, so animating\n // it here would fight the swipe: a gesture would lag its own finger.\n transition: opacity 0.2s ease;\n }\n\n // THE CONTAINER MINIMUM, as CSS spells it. `measure_uncollapsed`\n // (adw-overlay-split-view.c:558-563) is `trunc(sidebar_min * progress) +\n // content_min`, and a flex row reaches exactly that on its own PROVIDED the\n // content is allowed to claim its own minimum: the sidebar is `flex-shrink: 0`\n // with a `min-width` of `sidebar_min`, so the sum is the container's floor.\n //\n // `min-width: 0` was here instead — the flex idiom for \"let this be crushed so\n // an ellipsis can happen\" — which is precisely how the content pane could be\n // squeezed to nothing while the sidebar kept its whole width. A child that\n // needs to truncate can still ask for `min-width: 0` itself; the PANE may not.\n //\n // Not computed in JS: a measured number would need the content's min-content\n // size, which the DOM does not expose without a reflow, and the first attempt\n // used `scrollWidth` — the pane's CURRENT width — which pinned the view at\n // whatever it happened to be and stopped it responding to its breakpoint.\n .adw-osv-content {\n flex: 1;\n min-width: min-content;\n min-height: 0;\n display: flex;\n flex-direction: column;\n align-self: stretch;\n }\n\n // Docked — the sidebar sits in the flex row and the hidden part is taken off\n // its own edge by a negative margin the element computes.\n &:not(.collapsed) .adw-osv-sidebar {\n position: relative;\n }\n\n // Docked + sidebar-end — dock the sidebar to the far side of the content\n // (the Adw.OverlaySplitView { sidebar-position: end } layout). flex `order`\n // flips the visual order without changing the slotting DOM order.\n &:not(.collapsed).sidebar-end {\n .adw-osv-content {\n order: 1;\n }\n\n .adw-osv-sidebar {\n order: 2;\n }\n }\n\n // THE DIVIDER FOLLOWS THE VISUAL SIDE, not the logical one. `_sidebars.scss`\n // makes it `:dir()` × `.end` (:21-39), which is exactly the product\n // `.sidebar-at-visual-start` already carries: under RTL a `start` sidebar is\n // drawn on the right and its divider belongs on its left edge.\n &:not(.collapsed) {\n .adw-osv-sidebar {\n border-inline-end: none;\n border-inline-start: none;\n }\n\n &.sidebar-at-visual-start .adw-osv-sidebar {\n border-right: 1px solid var(--separator-color);\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n border-left: 1px solid var(--separator-color);\n }\n }\n\n // Overlay (collapsed) — the sidebar floats above the content at the absolute\n // offset the element writes into `left`, which is the only property that can\n // carry a mid-swipe position.\n &.collapsed .adw-osv-sidebar {\n position: absolute;\n top: 0;\n bottom: 0;\n box-shadow: 0 0 12px rgb(0 0 0 / 25%);\n }\n\n // THE TWO RESTING STATES ARE CSS. Everything BETWEEN them is JS.\n //\n // Dropping these is what shipped the docs-site regression. The offset is\n // driven per frame from `layoutOverlaySplitView` — but a view that has never\n // been measured drives nothing, and an absolutely-positioned pane with no\n // `left` resolves to `left: 0` at full opacity. So a HIDDEN sidebar was\n // painted over the content at the wrong edge, on a page whose slideshow\n // builds each slide inside `display: none` and moves it in, so the first\n // measurement never arrived and this fallback was the whole rendering.\n //\n // Not a second copy of the arithmetic: 0% and 100% ARE the two ends the JS\n // interpolates between, and neither of them needs a pixel to say. The element\n // clears its inline placement whenever it has no measurement, which is what\n // hands control back to these rules instead of stranding a stale offset.\n &.collapsed {\n // Revealed: flush against the edge the pane is drawn on.\n &.sidebar-at-visual-start .adw-osv-sidebar {\n left: 0;\n right: auto;\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n left: auto;\n right: 0;\n }\n\n // Hidden: entirely off that same edge, and untouchable while it is there.\n &:not(.show-sidebar) {\n .adw-osv-sidebar {\n opacity: 0;\n pointer-events: none;\n }\n\n &.sidebar-at-visual-start .adw-osv-sidebar {\n left: auto;\n right: 100%;\n }\n\n &:not(.sidebar-at-visual-start) .adw-osv-sidebar {\n left: 100%;\n right: auto;\n }\n }\n }\n\n // Docked and hidden — the pane takes no room in the row. The JS expresses\n // this as a negative margin so it can animate; unmeasured, the end state is\n // simply a pane of no width.\n &:not(.collapsed):not(.show-sidebar) .adw-osv-sidebar {\n width: 0;\n min-width: 0;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n }\n\n // Backdrop — the click-outside shield. `hidden` is the element's, off\n // `shieldVisible`; the OPACITY is the shadow-helper progress, so it fades with\n // the reveal instead of appearing whole.\n .adw-osv-backdrop {\n display: none;\n }\n\n &.collapsed .adw-osv-backdrop:not([hidden]) {\n display: block;\n position: absolute;\n inset: 0;\n background: rgb(0 0 0 / 30%);\n z-index: 9;\n transition: opacity 0.2s ease;\n }\n}\n\n// Sidebar content layout helper — wraps the sidebar's children with the\n// standard Adwaita spacing scale (12px padding, 12px gap between groups).\n.adw-sidebar-content {\n padding: var(--spacing-m);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-m);\n}\n\n// Sidebar toggle button — sidebar-show-symbolic icon via CSS mask\n.adw-sidebar-toggle-icon::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: currentColor;\n -webkit-mask-image: var(--icon-sidebar-show);\n mask-image: var(--icon-sidebar-show);\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-size: 16px 16px;\n mask-size: 16px 16px;\n -webkit-mask-position: center;\n mask-position: center;\n pointer-events: none;\n}\n","// _navigation_split_view.scss — adw-navigation-split-view styling (docked sidebar).\n//\n// Visibility is `data-pane-visible`, written by the element from\n// `update_navigation_stack` (adw-navigation-split-view.c:342-405), not from the\n// two flags. Two of that table's rules are not expressible as\n// `.collapsed.show-content`: a LONE child stays visible whatever `show-content`\n// says (:389-401), and with `sidebar-position: end` the CONTENT is the root page\n// so the sidebar is pushed ON TOP of it rather than replacing it. This file used\n// to key off the flags and got both wrong — a collapsed view with only a sidebar\n// rendered blank.\n//\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/navigationsplitview.md\n// Reference: refs/libadwaita/src/adw-navigation-split-view.c\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-navigation-split-view {\n display: flex;\n flex-direction: row;\n min-height: 0;\n min-width: 0;\n flex: 1 1 auto;\n\n // NO background here — it comes from the `.sidebar-pane` class the element\n // applies while DOCKED (see _panes.scss). Collapsed, libadwaita builds no\n // pane bins at all and the sidebar is an ordinary full-window navigation\n // page; a background nailed to this private class made it sidebar-coloured\n // at every width.\n .adw-nsv-sidebar {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex-shrink: 0;\n }\n\n // The container MINIMUM, as CSS spells it: `measure_uncollapsed`\n // (adw-navigation-split-view.c:264-267) is `sidebar_min + content_min`, which\n // a flex row reaches by itself once the content may claim its own minimum.\n // `min-width: 0` — the flex idiom for \"let this be crushed\" — was here, which\n // is how the content pane could be squeezed to nothing while the sidebar,\n // being `flex-shrink: 0`, kept its whole width.\n .adw-nsv-content {\n display: flex;\n flex-direction: column;\n min-width: min-content;\n min-height: 0;\n flex: 1 1 auto;\n background-color: var(--window-bg-color);\n }\n\n // `sidebar-position: end` docks the sidebar past the content. flex `order`\n // flips the visual order without changing the slotting DOM order.\n &.sidebar-end {\n .adw-nsv-content {\n order: 1;\n }\n\n .adw-nsv-sidebar {\n order: 2;\n }\n }\n\n // THE DIVIDER FOLLOWS THE VISUAL SIDE. `_sidebars.scss:1293-1302` makes it\n // `:dir()` × `.end`, which is the product `.sidebar-at-visual-start` carries:\n // under RTL a `start` sidebar is drawn on the right and its divider belongs on\n // its left edge. A fixed `border-right` drew it on the wrong side for half the\n // four combinations.\n &.sidebar-at-visual-start .adw-nsv-sidebar {\n border-right: 1px solid var(--separator-color);\n }\n\n &:not(.sidebar-at-visual-start) .adw-nsv-sidebar {\n border-left: 1px solid var(--separator-color);\n }\n\n // Collapsed: whichever pane the STACK puts on top fills the view, and the\n // other is not rendered at all.\n &.collapsed {\n [data-pane-visible='false'] {\n display: none;\n }\n\n .adw-nsv-sidebar[data-pane-visible='true'] {\n flex: 1 1 auto;\n max-width: none;\n border-right: none;\n border-left: none;\n }\n }\n}\n","// _carousel.scss — adw-carousel + its dot/line page indicators.\n//\n// A horizontal scroll-snap pager (adw-carousel) plus two indicator widgets that\n// bind to it. The indicators reproduce libadwaita's snapshot drawing as CSS: a\n// per-marker `--adw-carousel-progress` (0 = inactive, 1 = focused) lerps between\n// the inactive and selected size/opacity exactly as AdwCarousel does.\n//\n// Dots: DOTS_RADIUS 3 → DOTS_RADIUS_SELECTED 4 (6px → 8px), DOTS_SPACING 7,\n// DOTS_OPACITY 0.3 → DOTS_OPACITY_SELECTED 0.9, active fill = accent.\n// Lines: LINE_LENGTH 35, LINE_WIDTH 3, LINE_SPACING 5, LINE_OPACITY 0.3 →\n// LINE_OPACITY_ACTIVE 0.9, active fill = accent.\n//\n// Reference: refs/libadwaita/src/adw-carousel.c\n// Reference: refs/libadwaita/src/adw-carousel-indicator-dots.c\n// Reference: refs/libadwaita/src/adw-carousel-indicator-lines.c\n// Reference: refs/adwaita-web/adwaita-web/scss/_carousel_indicators.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-carousel {\n display: block;\n overflow: hidden;\n\n .adw-carousel-track {\n display: flex;\n flex-direction: row;\n height: 100%;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n // Hide the scrollbar — the carousel is paged, not scrolled by chrome.\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n .adw-carousel-page {\n flex: 0 0 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n}\n\n// Shared layout for both indicator kinds — a centered, horizontally-laid-out\n// row of markers (matching the AdwCarouselIndicator* widgets).\nadw-carousel-indicator-dots,\nadw-carousel-indicator-lines {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-xs);\n\n // The clickable marker resets the button chrome — the visible shape is drawn\n // by the per-kind rules below.\n button {\n appearance: none;\n -webkit-appearance: none;\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n flex: 0 0 auto;\n }\n}\n\n// Dots — DOTS_SPACING 7px between centers; base diameter 6px (radius 3) growing\n// to 8px (radius 4) on the focused dot, opacity ramping 0.3 → 0.9.\nadw-carousel-indicator-dots {\n gap: 7px;\n\n .adw-carousel-dot {\n width: 8px;\n height: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n // The painted disc lives in ::before so the 8px hit-target stays constant\n // while the visible dot grows from 6px → 8px with progress.\n &::before {\n content: '';\n display: block;\n // 6px + (8px - 6px) * progress\n width: calc(6px + 2px * var(--adw-carousel-progress, 0));\n height: calc(6px + 2px * var(--adw-carousel-progress, 0));\n border-radius: 50%;\n background-color: var(--window-fg-color);\n // 0.3 + (0.9 - 0.3) * progress\n opacity: calc(0.3 + 0.6 * var(--adw-carousel-progress, 0));\n transition:\n width 0.2s ease,\n height 0.2s ease,\n opacity 0.2s ease,\n background-color 0.2s ease;\n }\n\n &.active::before {\n background-color: var(--window-fg-color);\n }\n }\n}\n\n// Lines — LINE_LENGTH 35px, LINE_WIDTH 3px, LINE_SPACING 5px; opacity ramps\n// 0.3 → 0.9; the active line recolors to the accent.\nadw-carousel-indicator-lines {\n gap: 5px;\n\n .adw-carousel-line {\n width: 35px;\n height: 3px;\n border-radius: 1.5px;\n background-color: var(--window-fg-color);\n // 0.3 + (0.9 - 0.3) * progress\n opacity: calc(0.3 + 0.6 * var(--adw-carousel-progress, 0));\n transition:\n opacity 0.2s ease,\n background-color 0.2s ease;\n\n &.active {\n background-color: var(--window-fg-color);\n }\n }\n}\n","// _tab_view.scss — adw-tab-view styling (a dynamic tabbed container with a tab\n// bar header; one page visible at a time). The bar is a headerbar-colored strip\n// of rounded chips; the selected chip is raised onto the view background, the\n// way libadwaita draws AdwTabBar over an AdwTabView.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_tab-view.scss (tabbar/tabbox/tab)\n// Reference: refs/adwaita-web/adwaita-web/scss/_tabs.scss\n// Copyright (c) 2020-2022 Purism SPC / GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-tab-view {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // --- Tab bar (the AdwTabBar strip) ---\n // Faithful port of libadwaita's `tabbar` (refs/libadwaita _tab-view.scss +\n // _colors.scss): a headerbar-colored box with an inset bottom shade; tabs\n // FILL their slot as rounded rects and use the currentColor alpha fills —\n // selected 10% (hover 13%, active 19%), plain hover 7%, active 16%.\n .adw-tab-bar {\n display: flex;\n align-items: stretch;\n flex-shrink: 0;\n box-sizing: border-box;\n padding: 0 1px 1px;\n background-color: var(--headerbar-bg-color);\n color: var(--headerbar-fg-color);\n // libadwaita's inset bottom shade under the bar.\n box-shadow: inset 0 -1px var(--headerbar-shade-color);\n overflow-x: auto;\n scrollbar-width: none;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-tab-box {\n display: flex;\n align-items: stretch;\n flex: 1 1 auto;\n padding: 4px 0;\n }\n\n // --- A single tab ---\n .adw-tab {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n max-width: 200px;\n min-height: 30px;\n margin: 0;\n padding: 0 var(--spacing-m);\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n line-height: 1;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n transition: background-color 150ms ease-in-out;\n\n &:hover {\n background-color: color-mix(in srgb, currentColor 7%, transparent);\n }\n\n &:active {\n background-color: color-mix(in srgb, currentColor 16%, transparent);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected tab — libadwaita's currentColor alpha fill covering the\n // whole tab slot (NOT a raised chip on the view background).\n &.active {\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n\n &:hover {\n background-color: color-mix(in srgb, currentColor 13%, transparent);\n }\n\n &:active {\n background-color: color-mix(in srgb, currentColor 19%, transparent);\n }\n }\n }\n\n // Thin separators between tabs, hidden next to the selected or hovered tab\n // (libadwaita tabbox > separator + its .hidden state).\n .adw-tab + .adw-tab::before {\n content: '';\n position: absolute;\n left: 0;\n top: 3px;\n bottom: 3px;\n width: 1px;\n background-color: currentColor;\n opacity: 0.2;\n transition: opacity 150ms ease-in-out;\n pointer-events: none;\n }\n\n .adw-tab.active + .adw-tab::before,\n .adw-tab + .adw-tab.active::before,\n .adw-tab:hover + .adw-tab::before,\n .adw-tab + .adw-tab:hover::before {\n opacity: 0;\n }\n\n .adw-tab-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n }\n\n // --- Icon + indicator slots (AdwTab update_icons) ---\n // Both are mask-image spans carrying `adw-icon adw-icon--<name>`; the element\n // toggles `hidden` from `tabIconState`, whose rules decide which of the two\n // shows — on a pinned tab the indicator REPLACES the icon.\n // Reference: refs/libadwaita/src/adw-tab.c (update_icons, :171-198)\n .adw-tab-icon,\n .adw-tab-indicator {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n\n &[hidden] {\n display: none;\n }\n }\n\n // `AdwTabPage:loading` swaps the icon image for an `AdwSpinnerPaintable`\n // (`update_icons`, adw-tab.c:172-190) — the SAME paintable `Adw.Spinner` uses.\n // So the tab mounts a real `<adw-spinner>` in the icon's slot and this block\n // only places it. It used to restate `border: 2px`,\n // `rgba(127, 127, 127, 0.25)` and `0.8s` under a comment claiming the geometry\n // and keyframes were adw-spinner's and \"not a second copy of them\" — which is\n // how it inherited every spinner defect independently.\n .adw-tab-spinner {\n flex: none;\n\n &[hidden] {\n display: none;\n }\n }\n\n // A pinned tab is a single-glyph chip: libadwaita hides both the title and the\n // close button at construction (refs/libadwaita/src/adw-tab.c:645-650). The\n // close button is gated in JS by `tabCloseVisible`, which carries the same rule.\n .adw-tab.pinned {\n padding: 0 var(--spacing-xs);\n\n .adw-tab-title {\n display: none;\n }\n }\n\n // `AdwTabPage:needs-attention` — the accent underline libadwaita animates in\n // (refs/libadwaita/src/adw-tab.c update_needs_attention).\n .adw-tab.needs-attention::after {\n content: '';\n position: absolute;\n bottom: 2px;\n left: 50%;\n width: 12px;\n height: 2px;\n transform: translateX(-50%);\n border-radius: 1px;\n background-color: var(--accent-bg-color);\n }\n\n // --- Close affordance (CSS-drawn \"×\", no symbolic icon ships) ---\n // Presence is decided in JS by `tabCloseVisible` — `(hovering && fullyVisible)\n // || selected || dragging`, and never on a pinned tab (adw-tab.c:124, :645-650)\n // — which is why the `[hidden]` rule below is load-bearing rather than cosmetic.\n .adw-tab-close {\n box-sizing: border-box;\n flex-shrink: 0;\n position: relative;\n width: 18px;\n height: 18px;\n margin: 0;\n padding: 0;\n border: none;\n border-radius: 9999px;\n background-color: transparent;\n color: inherit;\n cursor: pointer;\n opacity: 0.7;\n transition:\n background-color 150ms ease-in-out,\n opacity 150ms ease-in-out;\n\n &[hidden] {\n display: none;\n }\n\n &:hover {\n opacity: 1;\n background-color: var(--button-hover-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 9px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n\n // Adw.TabBar `expand-tabs` — tabs stretch to fill the bar evenly.\n &[expand-tabs] .adw-tab {\n flex: 1 1 0;\n max-width: none;\n }\n\n // Web-specific escape hatch: static tab sets (e.g. documentation command\n // tabs) render no close affordance.\n &[no-close] .adw-tab-close {\n display: none;\n }\n\n // Single-tab bars draw no tab background (libadwaita keeps a lone tab\n // non-interactive-looking).\n .adw-tab-bar.single-tab .adw-tab {\n &,\n &:hover,\n &:active {\n background: none;\n }\n }\n\n // --- Pages (the AdwTabView content area) ---\n .adw-tab-view-pages {\n flex: 1 1 auto;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--view-bg-color);\n color: var(--view-fg-color);\n }\n\n .adw-tab-page {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n &[hidden] {\n display: none;\n }\n\n &.active-page {\n display: block;\n }\n }\n}\n","// _view_switcher.scss — adw-view-switcher styling: an adaptive, tab-style\n// switcher (single `viewswitcher` node) above a content area showing one page\n// at a time. Buttons are always icon + label, laid out side by side (`.wide`)\n// or stacked (`.narrow`), matching libadwaita's policy style classes.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_view-switcher.scss (AdwViewSwitcher)\n// Reference: refs/adwaita-web/adwaita-web/scss/_viewswitcher.scss\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-switcher {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n // The segmented button bar — the single `viewswitcher` node in libadwaita.\n // Homogeneous tabs (equal width via flex:1) with a small gutter between them.\n .adw-view-switcher-bar {\n display: flex;\n align-items: stretch;\n gap: 3px; // libadwaita's `border-spacing: 3px`\n min-height: 34px;\n }\n\n // Each tab is a flat, transparent toggle that lights up with a subtle fill\n // when hovered and shows the active page with an accent-tinted background.\n .adw-view-switcher-button {\n box-sizing: border-box;\n display: inline-flex;\n flex: 1 1 0; // homogeneous — every tab gets equal width\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 2px 12px;\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1.2;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n // A page with neither title nor icon has NO button at all\n // (adw-view-switcher.c:178), spelled here as the `hidden` attribute.\n // Re-assert it as an AUTHOR rule: the UA `[hidden] { display: none }`\n // loses to this block's own author `display: inline-flex` (cascade ORIGIN\n // beats specificity), so without this a hidden button stays on screen.\n &[hidden] {\n display: none;\n }\n\n .adw-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-view-switcher-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // AdwIndicatorBin's badge — the unread count, or a bare dot when only\n // `needs-attention` is set.\n // Reference: refs/libadwaita/src/adw-indicator-bin.c\n .adw-view-switcher-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected view — a neutral filled chip (libadwaita darkens the\n // whole button; the icon/label keep the normal foreground colour\n // rather than turning accent).\n &.active {\n background-color: var(--button-active-color);\n color: var(--window-fg-color);\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n // Wide policy — icon and label side by side.\n &.wide .adw-view-switcher-button {\n flex-direction: row;\n gap: var(--spacing-xs);\n }\n\n // Narrow policy — icon stacked above a smaller label, the compact layout\n // libadwaita drops to in a header bar at narrow window widths.\n &.narrow {\n .adw-view-switcher-bar {\n min-height: 6px;\n }\n\n .adw-view-switcher-button {\n flex-direction: column;\n gap: 1px;\n padding-top: 4px;\n padding-bottom: 2px;\n font-size: 0.75rem;\n\n .adw-view-switcher-label {\n min-height: 18px;\n line-height: 18px;\n }\n }\n }\n\n // The paired content area showing the active page — a card-like surface\n // below the switcher (the web stand-in for the Adw.ViewStack body).\n .adw-view-switcher-content {\n flex: 1 1 auto;\n margin-top: var(--spacing-s);\n padding: var(--spacing-m);\n background-color: var(--view-bg-color);\n border: 1px solid var(--separator-color);\n border-radius: var(--card-radius);\n }\n\n .adw-view-switcher-page {\n display: none;\n\n &.active-view {\n display: block;\n }\n }\n}\n","// _inline_view_switcher.scss — adw-inline-view-switcher styling (a compact view\n// switcher: a toggle-group-style bar of one toggle per page over a single\n// stacked content area, with the active toggle drawn as the raised Adwaita\n// active-toggle chip). The bar's per-display-mode sizing (labels / icons / both)\n// mirrors libadwaita's `inline-view-switcher > toggle-group.{labels,icons,both}`.\n// Reference: refs/libadwaita/src/adw-inline-view-switcher.c (AdwInlineViewSwitcher)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toggle-group.scss (inline-view-switcher > toggle-group)\n// Reference: refs/adwaita-web/adwaita-web/scss/_viewswitcher.scss\n// Copyright (c) 2023 Maximiliano Sandoval / 2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n// The active toggle uses a white-on-fg \"raised\" chip — the same tokens the\n// toggle-group uses (defined there; _theme.scss overrides them for dark).\n\nadw-inline-view-switcher {\n // libadwaita's ---group-padding: a small inset so the active chip floats\n // inside the group's pill, leaving a hairline of group background around it.\n --group-padding: 3px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n // The switcher bar — a toggle-group pill, sized to its content.\n .adw-inline-view-switcher-group {\n display: inline-flex;\n box-sizing: border-box;\n align-items: stretch;\n gap: var(--group-padding);\n padding: var(--group-padding);\n border-radius: var(--button-radius);\n background-color: var(--button-bg-color);\n }\n\n // Each toggle is a button-shaped chip with the group's inner radius.\n .adw-inline-view-switcher-toggle {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n min-width: 34px;\n min-height: 28px;\n margin: 0;\n padding: 4px 11px;\n border: none;\n border-radius: calc(var(--button-radius) - var(--group-padding));\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n font-weight: 700;\n line-height: 1;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n box-shadow 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n // The active toggle — a raised white chip, the way libadwaita draws it.\n &.active {\n background-color: var(--active-toggle-bg-color);\n color: var(--active-toggle-fg-color);\n box-shadow:\n 0 1px 3px 1px rgba(0, 0, 6, 0.07),\n 0 2px 6px 2px rgba(0, 0, 6, 0.03);\n\n &:hover {\n background-color: var(--active-toggle-bg-color);\n }\n }\n }\n\n // The switcher's symbolic icon — a currentColor mask, sized like a toolbar\n // icon (matches the .adw-icon base used across @gjsify/adwaita-web).\n .adw-inline-view-switcher-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n flex: none;\n background-color: currentColor;\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n -webkit-mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n }\n\n .adw-inline-view-switcher-label {\n white-space: nowrap;\n }\n\n // AdwIndicatorBin's badge — the unread count, or a bare dot when only\n // `needs-attention` is set.\n // Reference: refs/libadwaita/src/adw-indicator-bin.c\n .adw-inline-view-switcher-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n // Author rule, not the UA one: the `display: inline-flex` above is also\n // an author rule and would otherwise keep an empty badge on screen\n // (cascade ORIGIN beats specificity — the same trap the bar hit).\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n // The stacked content area below the bar — exactly one page is visible.\n .adw-inline-view-switcher-pages {\n width: 100%;\n }\n\n .adw-inline-view-switcher-page {\n &:not(.active-view) {\n display: none;\n }\n }\n\n // Per-display-mode sizing, mirroring libadwaita's\n // inline-view-switcher > toggle-group.{icons,labels,both}.\n .adw-inline-view-switcher-group.icons .adw-inline-view-switcher-toggle {\n min-width: 34px;\n padding-left: 0;\n padding-right: 0;\n }\n\n .adw-inline-view-switcher-group.labels .adw-inline-view-switcher-toggle {\n min-width: calc(18px + var(--group-padding) * 2);\n }\n\n // Round — group + toggles become pill-shaped.\n &.round {\n .adw-inline-view-switcher-group {\n border-radius: 17px;\n }\n\n .adw-inline-view-switcher-toggle {\n border-radius: calc(17px - var(--group-padding));\n padding-left: calc(15px - var(--group-padding));\n padding-right: calc(15px - var(--group-padding));\n }\n }\n\n // Flat — no group background; the active toggle uses a subtle fill instead\n // of the raised white chip.\n &.flat {\n --group-padding: 0px;\n\n .adw-inline-view-switcher-group {\n padding: 0;\n background: none;\n }\n\n .adw-inline-view-switcher-toggle {\n border-radius: var(--button-radius);\n\n &.active {\n background-color: var(--button-active-color);\n color: inherit;\n box-shadow: none;\n\n &:hover {\n background-color: var(--button-active-color);\n }\n }\n }\n\n &.round .adw-inline-view-switcher-toggle {\n border-radius: 17px;\n }\n }\n}\n","// _view_stack.scss — adw-view-stack styling: a standalone named-page content\n// container that shows exactly one page at a time (the web counterpart of\n// Adw.ViewStack, decoupled from any switcher). It carries no chrome of its own —\n// a paired adw-view-switcher-bar (or a header-bar switcher) drives selection.\n// Reference: refs/libadwaita/src/adw-view-stack.c (AdwViewStack)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-stack {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n // vexpand-equivalent — fill the space a switcher shell allots to content.\n flex: 1 1 auto;\n min-height: 0;\n\n // Exactly one child is shown; the rest are laid out of flow. `hidden` is set\n // in JS too, but the class keeps the visible page a flex child that grows.\n .adw-view-stack-child {\n display: none;\n\n &.active-view {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n }\n}\n","// _view_switcher_bar.scss — adw-view-switcher-bar styling: the narrow BOTTOM\n// bar of homogeneous icon-over-label buttons bound to an adw-view-stack (the web\n// counterpart of Adw.ViewSwitcherBar). It sits at the window bottom with a top\n// hairline over a headerbar-toned surface, mirroring libadwaita's `.narrow`\n// view-switcher inside an actionbar. The active button's label is accent-tinted.\n// Reference: refs/libadwaita/src/adw-view-switcher-bar.c (AdwViewSwitcherBar)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_view-switcher.scss (.narrow policy)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_toolbars.scss (actionbar top border)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-view-switcher-bar {\n display: block;\n\n // `revealed` drives visibility by toggling the `hidden` attribute\n // (_applyRevealed → this.hidden). Re-assert display:none for [hidden] as an\n // AUTHOR rule: the UA `[hidden] { display: none }` loses to this block's own\n // author `display: block` (cascade ORIGIN beats specificity), so without this\n // an unrevealed bar would stay visible. Author + higher specificity → wins.\n &[hidden] {\n display: none;\n }\n\n box-sizing: border-box;\n // The bottom bar over a headerbar-toned surface with a top hairline (the\n // libadwaita `actionbar` inset top border), NOT a bottom border.\n background-color: var(--headerbar-bg-color);\n border-top: 1px solid var(--separator-color);\n padding: 7px 0; // libadwaita `viewswitcherbar > box` vertical padding\n\n // The homogeneous button row — every button gets equal width.\n .adw-view-switcher-bar-box {\n display: flex;\n align-items: stretch;\n // The `.narrow` view-switcher drops to a 6px min-height (icon-over-label).\n min-height: 6px;\n }\n\n // Each button — icon stacked above a small label, a flat transparent toggle\n // that fills on hover/active and marks the selected page with an accent\n // label (the neutral fill stays the same across states, like libadwaita).\n .adw-view-switcher-bar-button {\n box-sizing: border-box;\n display: inline-flex;\n flex: 1 1 0; // homogeneous — equal width\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 1px;\n margin: 0;\n padding: 4px 3px 2px;\n border: none;\n border-radius: var(--button-radius);\n background-color: transparent;\n color: var(--window-fg-color);\n font-family: var(--font-family);\n font-size: 0.75rem;\n font-weight: 700;\n line-height: 1.2;\n cursor: pointer;\n transition:\n color 0.2s ease,\n background-color 0.2s ease;\n user-select: none;\n -webkit-user-select: none;\n\n // Same cascade trap as the bar itself: a page with neither title nor\n // icon has no button (adw-view-switcher.c:178), and the UA\n // `[hidden] { display: none }` loses to this block's author\n // `display: inline-flex` unless it is re-asserted here.\n &[hidden] {\n display: none;\n }\n\n .adw-view-switcher-bar-icon {\n width: 16px;\n height: 16px;\n flex: none;\n }\n\n .adw-view-switcher-bar-label {\n min-height: 18px;\n line-height: 18px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // AdwIndicatorBin's badge — see refs/libadwaita/src/adw-indicator-bin.c.\n .adw-view-switcher-bar-indicator {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: 8px;\n background-color: var(--accent-bg-color);\n color: var(--accent-fg-color);\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n\n &[hidden] {\n display: none;\n }\n\n &.needs-attention {\n min-width: 6px;\n width: 6px;\n height: 6px;\n padding: 0;\n border-radius: 3px;\n }\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // The selected page — its label turns accent-coloured. (The icon stays\n // theme-fg, matching the NS twin's documented fidelity note.)\n &.active {\n color: var(--accent-color);\n\n .adw-view-switcher-bar-label {\n color: var(--accent-color);\n }\n }\n }\n}\n","// _navigation_view.scss — adw-navigation-view styling (a page-based navigation\n// container; one page visible at a time, controlled with push/pop). The visible\n// page fills the view on the window background; an automatic back button is\n// drawn flat at the start of the visible page's header bar.\n// Reference: refs/libadwaita/src/adw-navigation-view.c (css node \"navigation-view\")\n// Reference: refs/adwaita-web/adwaita-web/docs/widgets/navigationview.md\n// Copyright (c) 2022-2023 Purism SPC / GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-navigation-view {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // The page stack — fills the view when it is given a height, and MEASURES the\n // visible page when it is not. A flex column rather than a positioning\n // context: the page is an in-flow item, so its content reaches the view.\n .adw-navigation-view-pages {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n min-height: 0;\n overflow: hidden;\n }\n\n // A single navigation page — the visible one fills the view, the rest are\n // `display: none`.\n //\n // IN FLOW, not absolute. It was `position: absolute; inset: 0` under a comment\n // saying it had to be \"so a transition can overlap two pages\" — but two pages\n // never overlap here: `adw-navigation-view.ts` marks every page but the\n // visible one `[hidden]`, which is `display: none` below, and the push\n // animation runs on `.visible-page` alone. So the absolute positioning bought\n // an overlap that does not happen, and what it cost was the HEIGHT: an\n // absolutely-positioned child contributes nothing to its parent, so the page\n // stack measured 0, the view above it measured 0, and the page — `inset: 0` of\n // a zero-height parent — measured 0 in turn. A closed circle.\n //\n // Inside a window that never showed, because a definite height arrived from\n // outside. `<adw-about-dialog>` is the case where none does: its sheet is\n // `position: fixed` with a width and no height, exactly as\n // `adw-about-dialog.ui` declares it (`content-width` 360, no content-height —\n // libadwaita takes the height from the content). The whole dialog rendered\n // invisible, with a header bar inside it genuinely measuring 47px.\n //\n // `flex: 1 1 auto` keeps the fill: given a height the page still grows into\n // it; without one it reports its content.\n .adw-navigation-page {\n box-sizing: border-box;\n position: relative;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n overflow: auto;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n &[hidden] {\n display: none;\n }\n\n &.visible-page {\n display: flex;\n }\n\n // Let a page whose direct child fills (a toolbar-view / status-page)\n // stretch to the full height.\n > * {\n flex: 1 1 auto;\n min-height: 0;\n }\n }\n\n // The injected automatic back button — flat, sits at the start of the visible\n // page's header bar (mirrors AdwHeaderBar's grown-in back button).\n .adw-navigation-back-button {\n flex-shrink: 0;\n }\n\n // Slide transition for the visible page when transitions are animated. The\n // entering page fades up from a slight horizontal offset (LTR push), matching\n // libadwaita's spring-driven slide closely enough for the web target.\n &.animated .adw-navigation-page.visible-page {\n animation: adw-navigation-page-in 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n }\n}\n\n@keyframes adw-navigation-page-in {\n from {\n opacity: 0;\n transform: translateX(12px);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","// _bottom_sheet.scss — adw-bottom-sheet styling (a content area with a sheet\n// that slides up from the bottom edge over the content, with an overlaid drag\n// handle). Mirrors libadwaita's AdwBottomSheet CSS node tree: a persistent\n// content layer, a dimming layer that fades in over it while open (modal), and\n// the sheet itself anchored to the bottom edge with rounded top corners + the\n// pill-shaped drag handle.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_bottom-sheet.scss\n// (dimming / sheet box-shadow / drag-handle pill / dialog top radius)\n// Reference: refs/libadwaita/src/adw-bottom-sheet.c (open / modal / can-close)\n// Copyright (c) 2023-2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-bottom-sheet {\n display: block;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n\n // --- Persistent content layer ---\n .adw-bottom-sheet-content {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n }\n\n // --- Dimming layer (modal scrim over the content) ---\n // libadwaita: > dimming { background: shade-color × 2 }. Non-interactive +\n // transparent when the sheet is closed.\n .adw-bottom-sheet-dimming {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n background-color: rgba(0, 0, 6, 0.32);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition:\n opacity 200ms ease,\n visibility 0s linear 200ms;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transition:\n opacity 200ms ease,\n visibility 0s;\n }\n }\n\n // --- The slide-up sheet ---\n // Anchored to the bottom edge, full-width, rounded top corners (dialog\n // radius), slid off-screen when closed. The spring-driven AdwBottomSheet uses\n // a translate; the web port uses an eased transform for the same effect.\n .adw-bottom-sheet-sheet {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n max-height: 100%;\n overflow: auto;\n background-color: var(--view-bg-color);\n color: var(--view-fg-color);\n border-top-left-radius: var(--window-radius);\n border-top-right-radius: var(--window-radius);\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n transform: translateY(100%);\n transition:\n transform 250ms ease,\n box-shadow 250ms ease;\n will-change: transform;\n }\n\n // --- Drag handle (overlaid pill at the top of the sheet) ---\n // libadwaita: > drag-handle { min-width 54px; min-height 6px; margin 15px;\n // border-radius 99px; background currentColor @ 25% }.\n // It is built with can_focus = FALSE and can_target = FALSE\n // (adw-bottom-sheet.c:1197-1198) — a decorative pill, not a button;\n // `pointer-events: none` is can_target in CSS. The `cursor: pointer` + focus\n // ring that used to sit here belonged to a close button this widget never had.\n .adw-bottom-sheet-drag-handle {\n flex-shrink: 0;\n box-sizing: border-box;\n width: 54px;\n min-height: 6px;\n height: 6px;\n margin: 15px auto;\n border-radius: 99px;\n background-color: color-mix(in srgb, currentColor 25%, transparent);\n pointer-events: none;\n }\n\n .adw-bottom-sheet-sheet-body {\n box-sizing: border-box;\n }\n\n // --- Open state ---\n &.open .adw-bottom-sheet-sheet {\n transform: translateY(0);\n }\n\n // A non-modal sheet must not block the content beneath it.\n &:not(.modal) .adw-bottom-sheet-dimming {\n display: none;\n }\n}\n","// _sidebar.scss — adw-sidebar styling (a selectable navigation sidebar built\n// from titled sections of icon + title + subtitle items). In sidebar mode it\n// renders as the flat AdwSidebar navigation list (`.navigation-sidebar`); in\n// page mode it renders as boxed lists with a trailing chevron on each row (the\n// AdwPreferencesPage look the native widget switches to when collapsed).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_sidebars.scss (.navigation-sidebar, sidebar)\n// Reference: refs/libadwaita/src/adw-sidebar.c (row/header/section structure)\n// Copyright (c) 2025 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-sidebar {\n display: block;\n box-sizing: border-box;\n overflow-y: auto;\n background-color: var(--sidebar-bg-color, var(--window-bg-color));\n color: var(--sidebar-fg-color, var(--window-fg-color));\n\n .adw-sidebar-list {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n // libadwaita's menu margins around the navigation list.\n padding: var(--spacing-xs) 0;\n }\n\n .adw-sidebar-section {\n display: flex;\n flex-direction: column;\n }\n\n // --- Section headers (heading or separator) ---\n .adw-sidebar-section-header {\n &[hidden] {\n display: none;\n }\n\n // Untitled section → a horizontal separator before its rows (the way the\n // AdwSidebar header stack shows its \"separator\" child).\n &.separator {\n height: 1px;\n margin: var(--spacing-xs) var(--spacing-s);\n background-color: var(--separator-color, var(--card-shade-color));\n }\n\n &.has-title {\n padding: var(--spacing-s) calc(var(--spacing-s) + 6px) var(--spacing-xs);\n\n // The first header sits flush with the top (mirrors `.header.first`).\n &.first {\n padding-top: 0;\n }\n }\n }\n\n .adw-sidebar-section-heading {\n font-size: var(--font-size-small);\n font-weight: 700;\n opacity: var(--dim-opacity);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // --- A single item row ---\n //\n // NO `width: 100%`. The list is a column flex container, so a row already\n // stretches to it — and stretching SUBTRACTS the row's own margins, which is\n // what puts the same 6px of air on both sides. `width: 100%` resolves against\n // the containing block INSTEAD, which does not know about the margins, so\n // every row came out 12px too wide: inset 6px on the left, hanging 6px past\n // the right edge with its rounded corners cut off by the pane. Visible on any\n // selected or hovered row, because only a filled row shows where it ends.\n .adw-sidebar-item {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n min-height: 36px;\n // The native row has a context menu, so padding lives on the inner box and\n // the row itself carries the menu margin + radius.\n margin: 0 var(--spacing-xs) 2px;\n padding: 3px 14px;\n border: none;\n border-radius: var(--button-radius, 6px);\n background-color: transparent;\n color: inherit;\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n text-align: start;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n transition:\n background-color 150ms ease-in-out,\n color 150ms ease-in-out;\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color, var(--button-hover-color));\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: -2px;\n }\n\n // Selected row — a neutral filled highlight; libadwaita's AdwSidebar\n // selection is a subtle fill with the normal foreground, not accent.\n &.selected {\n background-color: var(--button-active-color);\n color: var(--window-fg-color);\n\n &:hover,\n &:active {\n background-color: var(--button-active-color);\n }\n }\n }\n\n .adw-sidebar-item-icon {\n flex-shrink: 0;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-sidebar-item-text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .adw-sidebar-item-title {\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &[hidden] {\n display: none;\n }\n }\n\n .adw-sidebar-item-subtitle {\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &[hidden] {\n display: none;\n }\n }\n\n // The trailing chevron is only drawn in page (boxed-list) mode.\n .adw-sidebar-item-arrow {\n flex-shrink: 0;\n opacity: var(--dim-opacity);\n display: none;\n }\n\n // --- Page mode (boxed lists) ---\n // Sections become bordered, rounded cards (the AdwPreferencesGroup look) and\n // each row gains its trailing chevron; selection no longer fills the row with\n // the accent color, matching how the native widget drops the list selection\n // in page mode.\n &.page {\n .adw-sidebar-list {\n padding: var(--spacing-m);\n gap: var(--spacing-xs);\n }\n\n .adw-sidebar-section {\n border: 1px solid var(--card-shade-color);\n border-radius: var(--card-radius, 12px);\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n overflow: hidden;\n }\n\n .adw-sidebar-section-header.has-title {\n padding: var(--spacing-m) var(--spacing-xs) var(--spacing-xs);\n\n &.first {\n padding-top: var(--spacing-m);\n }\n }\n\n .adw-sidebar-item {\n margin: 0;\n padding: var(--spacing-s) var(--spacing-m);\n border-radius: 0;\n border-bottom: 1px solid var(--card-shade-color);\n\n &:last-child {\n border-bottom: none;\n }\n\n &.selected {\n background-color: transparent;\n color: var(--card-fg-color);\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n }\n }\n\n .adw-sidebar-item-arrow {\n display: inline-block;\n }\n }\n}\n","// _about_dialog.scss — adw-about-dialog styling (a modal AdwDialog floating\n// sheet hosting the About navigation view: a full-cover scrim + a centred,\n// rounded, scrollable sheet box). Mirrors libadwaita's AdwDialog floating-sheet\n// node tree (dimming + rounded sheet with the outline + layered shadow) and the\n// AdwAboutDialog main page layout (large icon, title-1 name, dimmed developer\n// line, the version pill, then the navigation rows).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss\n// (floating-sheet > dimming / > sheet radius + box-shadow + outline)\n// Reference: refs/libadwaita/src/adw-about-dialog.ui (page tree, content-width 360)\n// Reference: refs/adwaita-web/adwaita-web/scss/_about_dialog.scss (web layout)\n// Copyright (c) 2022-2024 GNOME Foundation Inc. / Purism SPC (libadwaita). LGPLv2.1+.\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-about-dialog {\n // The host is inert until presented; `.open` reveals the scrim + sheet.\n display: none;\n\n &.open {\n display: block;\n }\n\n // --- Full-cover modal scrim ---\n // libadwaita: floating-sheet > dimming { background shade-color × 2 }.\n .adw-about-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background-color: rgba(0, 0, 6, 0.32);\n animation: adw-about-dialog-scrim-in 200ms ease;\n }\n\n // --- Centred floating sheet ---\n // libadwaita: floating-sheet > sheet { dialog radius; layered shadow; 1px\n // outline -1px offset }. content-width 360 → a comfortable ~360px sheet.\n .adw-about-dialog-sheet {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n width: 360px;\n max-width: calc(100vw - 48px);\n max-height: calc(100vh - 48px);\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n animation: adw-about-dialog-sheet-in 200ms cubic-bezier(0, 0, 0.2, 1);\n\n &:focus {\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n }\n }\n\n // The navigation view fills the sheet; each page is a column.\n adw-navigation-view,\n .adw-navigation-view-pages,\n .adw-navigation-page {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n // --- Toolbar view (flat header bar over the window background + scroller) ---\n .adw-about-dialog-toolbar-view {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n // The dialog header bar is flat: transparent over the window background, no\n // bottom separator (libadwaita: window.about headerbar.titlebar { flat }).\n adw-header-bar {\n background-color: transparent;\n box-shadow: none;\n min-height: 47px;\n }\n\n // The close button — a flat circular button drawing a \"×\" glyph (no\n // window-close symbolic icon ships in @gjsify/adwaita-icons).\n .adw-about-dialog-close {\n width: 34px;\n height: 34px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n line-height: 1;\n\n &::before {\n content: '\\00d7'; // ×\n }\n }\n\n // --- Scrolling content area ---\n .adw-about-dialog-scroll {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .adw-about-dialog-clamp {\n width: 100%;\n max-width: 360px;\n margin-inline: auto;\n box-sizing: border-box;\n }\n\n .adw-about-dialog-page-body {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 0 var(--spacing-m) var(--spacing-l);\n }\n\n // --- Main page header title: hidden until the content scrolls ---\n // Mirrors AdwAboutDialog's update_headerbar_cb (show title once scrolled > 0).\n .main-page {\n adw-header-bar .adw-header-bar-title {\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n &.scrolled adw-header-bar .adw-header-bar-title {\n opacity: 1;\n }\n }\n\n // --- App icon (the large recessed glyph) ---\n .adw-about-dialog-icon {\n align-self: center;\n width: 96px;\n height: 96px;\n margin-top: var(--spacing-s);\n margin-bottom: var(--spacing-m);\n // Mask-driven adw-icon scaled up to the about-dialog app-icon size.\n -webkit-mask-size: contain;\n mask-size: contain;\n background-color: currentColor;\n }\n\n // --- App name (title-1) ---\n .adw-about-dialog-name {\n align-self: center;\n text-align: center;\n font-size: 18pt;\n font-weight: 800;\n line-height: 1.2;\n margin-bottom: var(--spacing-xs);\n }\n\n // --- Developer / vendor line ---\n .adw-about-dialog-developer {\n align-self: center;\n text-align: center;\n font-size: var(--font-size-base);\n opacity: var(--dim-opacity);\n margin-bottom: var(--spacing-m);\n }\n\n // --- Version pill ---\n // libadwaita: .app-version { small accent chip }.\n .adw-about-dialog-version {\n align-self: center;\n padding: 2px 12px;\n margin-bottom: var(--spacing-l);\n border-radius: 99px;\n font-size: var(--font-size-small);\n line-height: 1.4;\n background-color: color-mix(in srgb, var(--accent-bg-color) 14%, transparent);\n color: var(--accent-color);\n }\n\n // --- Row groups (Details / Credits / Legal navigation, link rows) ---\n .adw-about-dialog-rows {\n width: 100%;\n margin-top: var(--spacing-m);\n\n & + .adw-about-dialog-rows {\n margin-top: var(--spacing-l);\n }\n }\n\n // The trailing chevron / link affordance on a navigation or link row.\n .adw-about-dialog-chevron {\n width: 16px;\n height: 16px;\n opacity: var(--dim-opacity);\n }\n\n // --- Subpage content (Details / Credits / Legal) ---\n .adw-about-dialog-comments {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-base);\n line-height: 1.5;\n text-align: start;\n white-space: pre-wrap;\n }\n\n .adw-about-dialog-copyright {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n text-align: center;\n }\n\n .adw-about-dialog-license {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-small);\n opacity: var(--dim-opacity);\n text-align: center;\n\n a {\n color: var(--accent-color);\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n}\n\n@keyframes adw-about-dialog-scrim-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-about-dialog-sheet-in {\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n","// _alert_dialog.scss — adw-alert-dialog: a modal scrim + centred dialog box with\n// a bold heading, body text and a row/column of response buttons.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating-sheet,\n// AdwDialog sheet shadow + radius)\n// Reference: refs/adwaita-web/adwaita-web/scss/_dialog.scss (alert layout)\n// Reference: refs/libadwaita/src/adw-alert-dialog.c (response button layout)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// Host: lay the scrim + box out as a full-cover overlay only while open.\nadw-alert-dialog {\n display: none;\n\n &.open {\n display: block;\n }\n}\n\n// The scrim — a fixed full-cover dimming layer behind the dialog box.\n.adw-alert-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1050;\n background-color: rgba(0, 0, 6, 0.32);\n // Centre the dialog box (the box is the scrim's flex child).\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-l);\n // Mirror the AdwDialog present transition (a quick fade + scale).\n animation: adw-alert-dialog-fade-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n}\n\n// The dialog box — the AdwDialog \"sheet\": rounded window-colored surface with a\n// soft shadow + hairline outline, centred above the scrim.\n.adw-alert-dialog-box {\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1051;\n transform: translate(-50%, -50%);\n\n display: flex;\n flex-direction: column;\n\n box-sizing: border-box;\n width: 100%;\n max-width: 300px;\n max-height: calc(100vh - 2 * var(--spacing-xl));\n overflow: hidden;\n\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 14px 2px rgba(0, 0, 6, 0.03),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n\n font-family: var(--font-family);\n\n animation: adw-alert-dialog-pop-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n}\n\n// Wider layout when responses are laid out horizontally (prefer-wide-layout).\n.adw-alert-dialog-box:has(.adw-alert-dialog-responses.horizontal) {\n max-width: 360px;\n}\n\n// The scrollable message area: heading + body + optional extra child.\n.adw-alert-dialog-message {\n display: flex;\n flex-direction: column;\n padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-l);\n overflow-y: auto;\n}\n\n.adw-alert-dialog-heading {\n margin: 0;\n // Matches the GTK .title-2 typography style (bold heading).\n font-size: 15pt;\n font-weight: 800;\n line-height: 1.3;\n text-align: center;\n}\n\n.adw-alert-dialog-body {\n margin: var(--spacing-s) 0 0;\n font-size: var(--font-size-base);\n line-height: 1.4;\n text-align: center;\n}\n\n// Extra child slot, displayed below the body.\n.adw-alert-dialog-child {\n margin-top: var(--spacing-m);\n\n &:empty {\n display: none;\n }\n}\n\n// Response button area. Vertical (stacked) by default; horizontal when the\n// dialog opts into the wide layout.\n.adw-alert-dialog-responses {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s);\n padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);\n\n &.horizontal {\n flex-direction: row;\n justify-content: stretch;\n\n .adw-alert-dialog-response {\n flex: 1 1 0;\n }\n }\n}\n\n// The response buttons — full-width pills within the stacked layout. They reuse\n// the .adw-button skin (incl. .suggested-action / .destructive-action), so only\n// the full width needs adding here. The default response is NOT accent-tinted —\n// libadwaita only colours suggested/destructive responses; the default one is\n// just the Enter-activated button and keeps the neutral button style.\n.adw-alert-dialog-response.adw-button {\n width: 100%;\n justify-content: center;\n}\n\n@keyframes adw-alert-dialog-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-alert-dialog-pop-in {\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n","// _preferences_dialog.scss — adw-preferences-dialog styling (scrim + dialog box).\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating-sheet\n// scrim/dimming + sheet radius + box-shadow + outline)\n// Reference: refs/libadwaita/src/adw-preferences-dialog.ui (flat header + title)\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\nadw-preferences-dialog {\n // Hidden until presented (the `open` class is toggled by the component). The\n // element itself contributes nothing to layout while closed.\n display: none;\n\n &.open {\n display: block;\n }\n\n // Full-cover scrim — a fixed dimming layer behind the dialog box. Adwaita\n // dims with `--shade-color` at double alpha (see _dialogs.scss `floating-sheet\n // > dimming`); --shade-color isn't in the adwaita-web token subset, so use the\n // equivalent neutral wash.\n .adw-preferences-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1000;\n background-color: rgba(0, 0, 6, 0.32);\n }\n\n // The centred floating dialog box. Mirrors `floating-sheet > sheet`: the\n // dialog radius (= --window-radius in Adwaita), the layered drop shadow and a\n // 1px window outline.\n .adw-preferences-dialog-box {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n width: min(var(--adw-dialog-content-width, 640px), calc(100vw - 48px));\n max-height: calc(100vh - 48px);\n overflow: hidden;\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 14px 2px rgba(0, 0, 6, 0.03);\n }\n\n // Flat header bar — transparent over the window background (Adw's preferences\n // dialog header uses a flat AdwHeaderBar), title centred against the trailing\n // close button.\n .adw-preferences-dialog-header {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n flex-shrink: 0;\n }\n\n // Equal-width sides keep the title optically centred (strict centering).\n .adw-preferences-dialog-header-side {\n display: flex;\n align-items: center;\n flex: 1 1 0;\n min-width: 0;\n }\n\n .adw-preferences-dialog-header-side--end {\n justify-content: flex-end;\n }\n\n .adw-preferences-dialog-title {\n flex: 0 0 auto;\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 6px;\n }\n\n // Round flat close button drawing a CSS \"×\" glyph (no symbolic close icon\n // ships in @gjsify/adwaita-icons — same approach as <adw-tab-view>).\n .adw-preferences-dialog-close {\n appearance: none;\n border: none;\n margin: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 50%;\n background-color: transparent;\n color: var(--window-fg-color);\n cursor: pointer;\n position: relative;\n transition: background-color 0.1s ease;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &.locked {\n opacity: var(--dim-opacity);\n cursor: default;\n }\n }\n\n // Scrolled body holding the stacked pages. Adwaita preferences pages sit on\n // the window background (the boxed-list groups carry their own card surface).\n .adw-preferences-dialog-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n }\n\n // Clamped column of preferences groups — Adw.PreferencesPage clamps content to\n // a comfortable reading width and stacks groups with generous spacing.\n .adw-preferences-dialog-pages {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xl);\n max-width: 600px;\n margin: 0 auto;\n padding: var(--spacing-xl) var(--spacing-m);\n\n // The dialog keeps the <adw-preferences-page> ELEMENTS rather than hoisting\n // their children out — the page's title / name / icon-name are what a\n // search-result subtitle and a view switcher read. The page therefore has\n // to be layout-transparent so its groups stay flex items of this column;\n // a custom element's default `display: inline` would collapse it.\n > adw-preferences-page {\n display: contents;\n\n // `display: contents` above beats the UA `[hidden] { display: none }`, so\n // a page hidden through the DOM `hidden` property would keep rendering\n // its groups while the search (which reads the same flag) had already\n // dropped it from the corpus.\n &[hidden] {\n display: none;\n }\n }\n }\n}\n","// _dialog.scss — adw-dialog: a generic adaptive dialog. A full-cover scrim with\n// a floating window-coloured \"sheet\" centred on wide viewports, re-anchored as a\n// bottom sheet (full-width, rounded top corners) on narrow ones. Mirrors the\n// AdwDialog floating-sheet + bottom-sheet presentations.\n// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss (floating sheet)\n// Reference: refs/libadwaita/src/stylesheet/widgets/_bottom-sheet.scss (bottom radius)\n// Copyright (c) 2023-2024 GNOME Foundation Inc. (libadwaita). LGPLv2.1+.\n// Modifications: Implemented for @gjsify/adwaita-web Web Components.\n\n// Bottom-sheet layout — shared by the explicit mode and the auto/narrow query.\n@mixin adw-dialog-bottom-sheet {\n .adw-dialog-scrim {\n align-items: flex-end;\n justify-content: stretch;\n padding: 0;\n }\n\n .adw-dialog-box {\n width: 100%;\n max-width: none;\n // Rounded only along the top edge — it hugs the bottom viewport edge.\n border-top-left-radius: var(--window-radius);\n border-top-right-radius: var(--window-radius);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n animation: adw-dialog-slide-up 0.25s cubic-bezier(0, 0, 0.2, 1);\n }\n}\n\n// Host: contributes nothing to layout while closed; the `open` class reveals it.\nadw-dialog {\n display: none;\n\n &.open {\n display: block;\n }\n\n // The full-cover scrim — a flex container centring the box; a dimming wash\n // behind it. Clicking the scrim (outside the box) attempts to dismiss.\n .adw-dialog-scrim {\n position: fixed;\n inset: 0;\n z-index: 1050;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-l);\n background-color: var(--dialog-scrim-color, rgba(0, 0, 6, 0.32));\n animation: adw-dialog-fade-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n }\n\n // The dialog box (\"sheet\"): a rounded window-coloured surface with a soft\n // layered shadow + hairline outline. Sized by the content-width/height props.\n .adw-dialog-box {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: min(var(--adw-dialog-content-width, 360px), calc(100vw - 2 * var(--spacing-l)));\n max-height: min(var(--adw-dialog-content-height, 100vh), calc(100vh - 2 * var(--spacing-l)));\n overflow: hidden;\n\n background-color: var(--window-bg-color);\n color: var(--window-fg-color);\n border-radius: var(--window-radius);\n outline: 1px solid var(--separator-color);\n outline-offset: -1px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.05),\n 0 0 5px 2px rgba(0, 0, 6, 0.1),\n 0 0 14px 2px rgba(0, 0, 6, 0.03);\n\n font-family: var(--font-family);\n animation: adw-dialog-pop-in 0.2s cubic-bezier(0, 0, 0.2, 1);\n\n &:focus {\n outline: 1px solid var(--separator-color);\n }\n }\n\n // Flat header bar — transparent over the window background, title strictly\n // centred against the trailing close button (the AdwHeaderBar idiom).\n .adw-dialog-header {\n display: flex;\n align-items: center;\n min-height: 47px;\n padding: 0 6px;\n flex-shrink: 0;\n }\n\n .adw-dialog-header-side {\n display: flex;\n align-items: center;\n flex: 1 1 0;\n min-width: 0;\n }\n\n .adw-dialog-header-side--end {\n justify-content: flex-end;\n }\n\n .adw-dialog-title {\n flex: 0 0 auto;\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 6px;\n }\n\n // Round flat close button drawing a CSS \"×\" glyph (no window-close symbolic\n // ships in @gjsify/adwaita-icons — same approach as <adw-preferences-dialog>).\n .adw-dialog-close {\n appearance: none;\n border: none;\n margin: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 50%;\n background-color: transparent;\n color: var(--window-fg-color);\n cursor: pointer;\n position: relative;\n flex: none;\n transition: background-color 0.1s ease;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 1.5px;\n background-color: currentColor;\n border-radius: 1px;\n }\n\n &::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n &:hover {\n background-color: var(--button-hover-color);\n }\n\n &:active {\n background-color: var(--button-active-color);\n }\n\n &:focus-visible {\n outline: 2px solid var(--accent-color);\n outline-offset: 1px;\n }\n\n &.locked {\n opacity: var(--dim-opacity);\n cursor: default;\n }\n }\n\n // Content area — the author's markup; scrolls when it exceeds the box height.\n .adw-dialog-content {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);\n }\n\n // A header-less dialog pads the content on all sides.\n .adw-dialog-header[hidden] + .adw-dialog-content {\n padding-top: var(--spacing-l);\n }\n\n // --- Explicit bottom-sheet presentation ---\n &[data-presentation='bottom-sheet'] {\n @include adw-dialog-bottom-sheet;\n }\n}\n\n// --- Adaptive (auto) presentation: bottom sheet on narrow viewports ---\n@media (max-width: 550px) {\n adw-dialog[data-presentation='auto'] {\n @include adw-dialog-bottom-sheet;\n }\n}\n\n@keyframes adw-dialog-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes adw-dialog-pop-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes adw-dialog-slide-up {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n","// adwaita-skin.scss — Main entry point for @gjsify/adwaita-web.\n// Mirrors refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss organization.\n// Reference: refs/adwaita-web/adwaita-web/scss/adwaita-skin.scss\n// Reference: refs/libadwaita/src/stylesheet/widgets/\n// Copyright (c) 2025 csm (adwaita-web). MIT License.\n// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.\n// Modifications: Adapted for @gjsify/adwaita-web Web Components.\n\n@use 'icons.generated';\n@use 'variables';\n@use 'theme';\n@use 'root';\n// Style-isolation boundary — emitted before the components so their own rules\n// override this typographic/box-model floor (see _reset.scss).\n@use 'reset';\n// The ONE symbolic-icon box, behind <adw-icon>. Emitted before every widget that\n// draws one, so a context that sizes its own icons (the about dialog's 96px, the\n// split button's 14px arrows, the view switcher's 16px) still wins on ordinary\n// specificity.\n@use 'icon';\n// libadwaita's typography + semantic-colour UTILITY CLASSES (`.dimmed`,\n// `.numeric`, `.monospace`, `.title-1`…). Classes only — there is deliberately\n// no <adw-label>, see _labels.scss. Emitted BEFORE every widget so a widget's\n// own rule wins on ordinary specificity, and because two partials @extend from\n// it (`_progress_bar.scss`'s text node, `_data_grid.scss`'s cells) exactly as\n// libadwaita's own `_progress-bar.scss` does.\n@use 'labels';\n@use 'window';\n@use 'headerbar';\n@use 'window_title';\n@use 'button';\n@use 'button_content';\n// The ONE popover surface. Emitted BEFORE the widgets that host one, so a\n// consumer's (or a widget's) own higher-specificity rule still wins over it.\n@use 'popover';\n@use 'split_button';\n@use 'menu_button';\n@use 'drop_down';\n@use 'toggle_group';\n// The ONE toggle, behind <adw-switch>. Emitted before `switch_row` and\n// `expander_row`, the two widgets that host one — and which each carried their\n// own copy of it until it was lifted out of `adw-switch-row {}`.\n@use 'switch';\n@use 'entry';\n// The two form-control primitives, in ONE partial because upstream merges them\n// (there is no `_radio.scss` in libadwaita) — see _checks.scss.\n@use 'checks';\n@use 'progress_bar';\n@use 'preferences';\n@use 'card';\n@use 'data_grid';\n@use 'clamp';\n@use 'spinner';\n@use 'avatar';\n@use 'banner';\n@use 'status_page';\n@use 'row';\n@use 'action_row';\n@use 'entry_row';\n@use 'switch_row';\n@use 'combo_row';\n@use 'spin_row';\n@use 'button_row';\n@use 'expander_row';\n@use 'password_entry_row';\n@use 'toast';\n@use 'toolbar_view';\n@use 'wrap_box';\n@use 'panes';\n@use 'overlay_split_view';\n@use 'navigation_split_view';\n@use 'carousel';\n@use 'tab_view';\n@use 'view_switcher';\n@use 'inline_view_switcher';\n@use 'view_stack';\n@use 'view_switcher_bar';\n@use 'navigation_view';\n@use 'bottom_sheet';\n@use 'sidebar';\n@use 'about_dialog';\n@use 'alert_dialog';\n@use 'preferences_dialog';\n@use 'dialog';\n\n// Ensure the `hidden` attribute always wins: components that toggle visibility\n// via `element.hidden = true` set the HTML attribute, but a custom `display`\n// from a layout class (e.g. `.adw-switch { display: inline-flex }`) has equal\n// specificity and would otherwise override the UA `[hidden] { display: none }`,\n// leaving the element laid out (and stealing width from its siblings).\n[hidden] {\n display: none !important;\n}\n"]}
|