They only closed via their own trigger button or a menu item -
clicking outside, pressing Escape, or opening the other dropdown
while one was open left it stuck on screen (confirmed opening both
stacked on top of each other). Add a shared invisible backdrop
(mirroring main.gd's drawer-backdrop pattern) that closes whichever
dropdown is open on outside click or Escape, and have opening one
close the other first.
Import and export were stubbed with status-text placeholders; wire them
to the existing backend endpoints with a real file picker (web JS
bridge or native FileDialog) and browser/desktop download, plus an
import preview with create/update/skip/error counts before commit.
Also fix the library and study screens' theme-refresh handlers, which
were no-op stubs so cards never restyled on a theme toggle, and add
responsive layout handling for narrow viewports.
Adds a full flashcards system: FSRS-based scheduling, cloze/basic
card types, CSV import/export, media storage, and study UI, wired
into navigation and the dashboard alongside existing question flows.