diff --git a/api/payload.go b/api/payload.go index becbb477..0a2b57fc 100644 --- a/api/payload.go +++ b/api/payload.go @@ -109,6 +109,7 @@ type userModification struct { Language *string `json:"language"` Timezone *string `json:"timezone"` EntryDirection *string `json:"entry_sorting_direction"` + EntriesPerPage *int `json:"entries_per_page"` } func (u *userModification) Update(user *model.User) { @@ -139,6 +140,10 @@ func (u *userModification) Update(user *model.User) { if u.EntryDirection != nil { user.EntryDirection = *u.EntryDirection } + + if u.EntriesPerPage != nil { + user.EntriesPerPage = *u.EntriesPerPage + } } func decodeUserModificationPayload(r io.ReadCloser) (*userModification, error) { diff --git a/client/core.go b/client/core.go index 5f5bbdf6..23bddcdf 100644 --- a/client/core.go +++ b/client/core.go @@ -26,6 +26,7 @@ type User struct { Language string `json:"language"` Timezone string `json:"timezone"` EntryDirection string `json:"entry_sorting_direction"` + EntriesPerPage int `json:"entries_per_page"` LastLoginAt *time.Time `json:"last_login_at"` Extra map[string]string `json:"extra"` } @@ -43,6 +44,7 @@ type UserModification struct { Language *string `json:"language"` Timezone *string `json:"timezone"` EntryDirection *string `json:"entry_sorting_direction"` + EntriesPerPage *int `json:"entries_per_page"` } // Users represents a list of users. diff --git a/database/migration.go b/database/migration.go index 562db9af..0aadfa4a 100644 --- a/database/migration.go +++ b/database/migration.go @@ -12,7 +12,7 @@ import ( "miniflux.app/logger" ) -const schemaVersion = 31 +const schemaVersion = 32 // Migrate executes database migrations. func Migrate(db *sql.DB) { diff --git a/database/sql.go b/database/sql.go index 52b06f96..5efb21cd 100644 --- a/database/sql.go +++ b/database/sql.go @@ -183,6 +183,8 @@ create unique index entries_share_code_idx on entries using btree(share_code) wh create index entries_user_feed_idx on entries (user_id, feed_id); `, "schema_version_31": `alter table feeds add column ignore_http_cache bool default false;`, + "schema_version_32": `alter table users add column entries_per_page int default 100; +`, "schema_version_4": `create type entry_sorting_direction as enum('asc', 'desc'); alter table users add column entry_direction entry_sorting_direction default 'asc'; `, @@ -237,6 +239,7 @@ var SqlMapChecksums = map[string]string{ "schema_version_3": "a54745dbc1c51c000f74d4e5068f1e2f43e83309f023415b1749a47d5c1e0f12", "schema_version_30": "3ec48a9b2e7a0fc32c85f31652f723565c34213f5f2d7e5e5076aad8f0b40d23", "schema_version_31": "9290ef295731b03ddfe32dcaded0be70d41b63572420ad379cf2874a9b54581c", + "schema_version_32": "5b4de8dd2d7e3c6ae4150e0e3931df2ee989f2c667145bd67294e5a5f3fae456", "schema_version_4": "216ea3a7d3e1704e40c797b5dc47456517c27dbb6ca98bf88812f4f63d74b5d9", "schema_version_5": "46397e2f5f2c82116786127e9f6a403e975b14d2ca7b652a48cd1ba843e6a27c", "schema_version_6": "9d05b4fb223f0e60efc716add5048b0ca9c37511cf2041721e20505d6d798ce4", diff --git a/database/sql/schema_version_32.sql b/database/sql/schema_version_32.sql new file mode 100644 index 00000000..3ab2ec52 --- /dev/null +++ b/database/sql/schema_version_32.sql @@ -0,0 +1 @@ +alter table users add column entries_per_page int default 100; diff --git a/locale/translations.go b/locale/translations.go index 4f5e74e6..02e5d3ae 100644 --- a/locale/translations.go +++ b/locale/translations.go @@ -234,6 +234,7 @@ var translations = map[string]string{ "error.different_passwords": "Passwörter stimmen nicht überein.", "error.password_min_length": "Wenigstens 6 Zeichen müssen genutzt werden.", "error.settings_mandatory_fields": "Die Felder für Benutzername, Thema, Sprache und Zeitzone sind obligatorisch.", + "error.entries_per_page_invalid": "Die Anzahl der Einträge pro Seite ist ungültig.", "error.feed_mandatory_fields": "Die URL und die Kategorie sind obligatorisch.", "error.user_mandatory_fields": "Der Benutzername ist obligatorisch.", "error.api_key_already_exists": "Dieser API-Schlüssel ist bereits vorhanden.", @@ -259,6 +260,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Zeitzone", "form.prefs.label.theme": "Thema", "form.prefs.label.entry_sorting": "Sortierung der Artikel", + "form.prefs.label.entries_per_page": "Einträge pro Seite", "form.prefs.select.older_first": "Älteste Artikel zuerst", "form.prefs.select.recent_first": "Neueste Artikel zuerst", "form.prefs.label.keyboard_shortcuts": "Tastaturkürzel aktivieren", @@ -572,6 +574,7 @@ var translations = map[string]string{ "error.different_passwords": "Passwords are not the same.", "error.password_min_length": "The password must have at least 6 characters.", "error.settings_mandatory_fields": "The username, theme, language and timezone fields are mandatory.", + "error.entries_per_page_invalid": "The number of entries per page is not valid.", "error.feed_mandatory_fields": "The URL and the category are mandatory.", "error.user_mandatory_fields": "The username is mandatory.", "error.api_key_already_exists": "This API Key already exists.", @@ -597,6 +600,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Timezone", "form.prefs.label.theme": "Theme", "form.prefs.label.entry_sorting": "Entry Sorting", + "form.prefs.label.entries_per_page": "Entries per page", "form.prefs.select.older_first": "Older entries first", "form.prefs.select.recent_first": "Recent entries first", "form.prefs.label.keyboard_shortcuts": "Enable keyboard shortcuts", @@ -890,6 +894,7 @@ var translations = map[string]string{ "error.different_passwords": "Las contraseñas no son las mismas.", "error.password_min_length": "La contraseña debería tener al menos 6 caracteres.", "error.settings_mandatory_fields": "Los campos de nombre de usuario, tema, idioma y zona horaria son obligatorios.", + "error.entries_per_page_invalid": "El número de entradas por página no es válido.", "error.feed_mandatory_fields": "Los campos de URL y categoría son obligatorios.", "error.user_mandatory_fields": "El nombre de usuario es obligatorio.", "error.api_key_already_exists": "Esta clave API ya existe.", @@ -915,6 +920,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Zona horaria", "form.prefs.label.theme": "Tema", "form.prefs.label.entry_sorting": "Clasificación de entradas", + "form.prefs.label.entries_per_page": "Entradas por página", "form.prefs.select.older_first": "Entradas más viejas primero", "form.prefs.select.recent_first": "Entradas recientes primero", "form.prefs.label.keyboard_shortcuts": "Habilitar atajos de teclado", @@ -1208,6 +1214,7 @@ var translations = map[string]string{ "error.different_passwords": "Les mots de passe ne sont pas les mêmes.", "error.password_min_length": "Vous devez utiliser au moins 6 caractères pour le mot de passe.", "error.settings_mandatory_fields": "Le nom d'utilisateur, le thème, la langue et le fuseau horaire sont obligatoire.", + "error.entries_per_page_invalid": "Le nombre d'entrées par page n'est pas valide.", "error.feed_mandatory_fields": "L'URL et la catégorie sont obligatoire.", "error.user_mandatory_fields": "Le nom d'utilisateur est obligatoire.", "error.api_key_already_exists": "Cette clé d'API existe déjà.", @@ -1233,6 +1240,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Fuseau horaire", "form.prefs.label.theme": "Thème", "form.prefs.label.entry_sorting": "Ordre des éléments", + "form.prefs.label.entries_per_page": "Entrées par page", "form.prefs.select.older_first": "Ancien éléments en premier", "form.prefs.select.recent_first": "Éléments récents en premier", "form.prefs.label.keyboard_shortcuts": "Activer les raccourcis clavier", @@ -1546,6 +1554,7 @@ var translations = map[string]string{ "error.different_passwords": "Le password non coincidono.", "error.password_min_length": "La password deve contenere almeno 6 caratteri.", "error.settings_mandatory_fields": "Il nome utente, il tema, la lingua ed il fuso orario sono campi obbligatori.", + "error.entries_per_page_invalid": "Il numero di articoli per pagina non è valido.", "error.feed_mandatory_fields": "L'URL e la categoria sono obbligatori.", "error.user_mandatory_fields": "Il nome utente è obbligatorio.", "error.api_key_already_exists": "Questa chiave API esiste già.", @@ -1571,6 +1580,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Fuso orario", "form.prefs.label.theme": "Tema", "form.prefs.label.entry_sorting": "Ordinamento articoli", + "form.prefs.label.entries_per_page": "Articoli per pagina", "form.prefs.select.older_first": "Prima i più vecchi", "form.prefs.select.recent_first": "Prima i più recenti", "form.prefs.label.keyboard_shortcuts": "Abilita le scorciatoie da tastiera", @@ -1864,6 +1874,7 @@ var translations = map[string]string{ "error.different_passwords": "パスワードが一致しません。", "error.password_min_length": "パスワードは6文字以上である必要があります。", "error.settings_mandatory_fields": "ユーザー名、テーマ、言語、タイムゾーンの全てが必要です。", + "error.entries_per_page_invalid": "ページあたりのエントリ数が無効です。", "error.feed_mandatory_fields": "URL と カテゴリが必要です。", "error.user_mandatory_fields": "ユーザー名が必要です。", "error.api_key_already_exists": "このAPIキーは既に存在します。", @@ -1889,6 +1900,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "タイムゾーン", "form.prefs.label.theme": "テーマ", "form.prefs.label.entry_sorting": "記事の並べ替え", + "form.prefs.label.entries_per_page": "ページあたりのエントリ", "form.prefs.select.older_first": "古い記事を最初に", "form.prefs.select.recent_first": "新しい記事を最初に", "form.prefs.label.keyboard_shortcuts": "キーボード・ショートカットを有効にする", @@ -2182,6 +2194,7 @@ var translations = map[string]string{ "error.different_passwords": "Wachtwoorden zijn niet hetzelfde.", "error.password_min_length": "Je moet minstens 6 tekens gebruiken.", "error.settings_mandatory_fields": "Gebruikersnaam, skin, taal en tijdzone zijn verplicht.", + "error.entries_per_page_invalid": "Het aantal inzendingen per pagina is niet geldig.", "error.feed_mandatory_fields": "The URL en de categorie zijn verplicht.", "error.user_mandatory_fields": "Gebruikersnaam is verplicht", "error.api_key_already_exists": "This API Key already exists.", @@ -2207,6 +2220,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Tijdzone", "form.prefs.label.theme": "Skin", "form.prefs.label.entry_sorting": "Volgorde van items", + "form.prefs.label.entries_per_page": "Inzendingen per pagina", "form.prefs.select.older_first": "Oudere items eerst", "form.prefs.select.recent_first": "Recente items eerst", "form.prefs.label.keyboard_shortcuts": "Schakel sneltoetsen in", @@ -2520,6 +2534,7 @@ var translations = map[string]string{ "error.different_passwords": "Hasła nie są identyczne.", "error.password_min_length": "Musisz użyć co najmniej 6 znaków.", "error.settings_mandatory_fields": "Pola nazwy użytkownika, tematu, języka i strefy czasowej są obowiązkowe.", + "error.entries_per_page_invalid": "Liczba wpisów na stronę jest nieprawidłowa.", "error.feed_mandatory_fields": "URL i kategoria są obowiązkowe.", "error.user_mandatory_fields": "Nazwa użytkownika jest obowiązkowa.", "error.api_key_already_exists": "Deze API-sleutel bestaat al.", @@ -2545,6 +2560,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Strefa czasowa", "form.prefs.label.theme": "Wygląd", "form.prefs.label.entry_sorting": "Sortowanie artykułów", + "form.prefs.label.entries_per_page": "Wpisy na stronie", "form.prefs.select.older_first": "Najstarsze wpisy jako pierwsze", "form.prefs.label.keyboard_shortcuts": "Włącz skróty klawiaturowe", "form.prefs.select.recent_first": "Najnowsze wpisy jako pierwsze", @@ -2864,6 +2880,7 @@ var translations = map[string]string{ "error.different_passwords": "Пароли не совпадают.", "error.password_min_length": "Вы должны использовать минимум 6 символов.", "error.settings_mandatory_fields": "Имя пользователя, тема, язык и часовой пояс обязательны.", + "error.entries_per_page_invalid": "Количество записей на странице недействительно.", "error.feed_mandatory_fields": "URL и категория обязательны.", "error.user_mandatory_fields": "Имя пользователя обязательно.", "error.api_key_already_exists": "Этот ключ API уже существует.", @@ -2889,6 +2906,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "Часовой пояс", "form.prefs.label.theme": "Тема", "form.prefs.label.entry_sorting": "Сортировка записей", + "form.prefs.label.entries_per_page": "Записи на странице", "form.prefs.select.older_first": "Сначала старые записи", "form.prefs.select.recent_first": "Сначала последние записи", "form.prefs.label.keyboard_shortcuts": "Включить сочетания клавиш", @@ -3186,6 +3204,7 @@ var translations = map[string]string{ "error.different_passwords": "两次输入的密码不同", "error.password_min_length": "请至少使用6个字符", "error.settings_mandatory_fields": "必须填写用户名、主题、语言以及时区", + "error.entries_per_page_invalid": "每页的条目数无效。", "error.feed_mandatory_fields": "必须填写 URL 和分类", "error.user_mandatory_fields": "必须填写用户名", "error.api_key_already_exists": "此API密钥已存在。", @@ -3211,6 +3230,7 @@ var translations = map[string]string{ "form.prefs.label.timezone": "时区", "form.prefs.label.theme": "主题", "form.prefs.label.entry_sorting": "内容排序", + "form.prefs.label.entries_per_page": "每页条目", "form.prefs.select.older_first": "旧->新", "form.prefs.select.recent_first": "新->旧", "form.prefs.label.keyboard_shortcuts": "启用键盘快捷键", @@ -3289,14 +3309,14 @@ var translations = map[string]string{ } var translationsChecksums = map[string]string{ - "de_DE": "ddb063682852c86361af350be616d3bd328373ecb927804824008d016aa7c67c", - "en_US": "350b835f759212abd2110322394aa00b666fbf27d752532a7700fb52d5af3f02", - "es_ES": "26efc79faaf35efe5a33528cedc2522496987d290c9e86d8fff3a9bcbed3e441", - "fr_FR": "e8736791d5373b955cacce215b3ae67d56280bfa5d4596899e4e5e37ff962afd", - "it_IT": "8ec2311e00c45b4d2b939ad0280fe49277f5c851a4cd521f42be1a88baef4c34", - "ja_JP": "237f49939be015b509d4b3a02890691c3766df8878109114493624cfd13c0cad", - "nl_NL": "c70e1eaa3c2e8c0130522189c3932b52ee6e9ff91c91b0090eb9178f2f23c588", - "pl_PL": "1d5e05789a3150a8f1ddbe57616d509d1d33c61b60200c563a5e23571671209e", - "ru_RU": "b0408b7a150bd79e411376ced3acb706a12e6b28e564a6abfedbdebc2d552915", - "zh_CN": "7732905e498d087c9a11ecc3eae8736e758c6b053da13de64fd6599ca40d8ee6", + "de_DE": "e986a40b1748968725ddede18ae6451e4d1ae270b9c4c033daa81ee50b1d306e", + "en_US": "b27169fc7767e51e6f7610ff1844708e8111e527c7931e3f888864a66826e293", + "es_ES": "20a713468ca6ce00e899a80354912e927ded61cf8a79ad9d976c78f515e242dd", + "fr_FR": "251eb14fe8521bde772d293fa748307ecd4cae4b0597da03aad39e745a382f11", + "it_IT": "8ab664ec8d826aa3702a4f5294c3a3e87193437e64b0ef4990a3a9609b782786", + "ja_JP": "7dc146dc5815a8d6dbae2f7f467deea598a85099bbee63e92bf3862d445519af", + "nl_NL": "fd106f08b2f8902712a68716a0e33b063bdce32a8440f7a2b296b4f822088403", + "pl_PL": "85de665d29e873f6099ef5ea40efe569a05ec3cbf08e4ca7741778bf3d5c8593", + "ru_RU": "6e765e44e250469fe1c5666f8ff24e5e07e6b04098c1325c2663a1f722e0bfe9", + "zh_CN": "0dc8c5b86a03f0ce58f6d2633ab3011d9bc8004af18f922944a65d151e54beda", } diff --git a/locale/translations/de_DE.json b/locale/translations/de_DE.json index d259d606..ecf26c0d 100644 --- a/locale/translations/de_DE.json +++ b/locale/translations/de_DE.json @@ -229,6 +229,7 @@ "error.different_passwords": "Passwörter stimmen nicht überein.", "error.password_min_length": "Wenigstens 6 Zeichen müssen genutzt werden.", "error.settings_mandatory_fields": "Die Felder für Benutzername, Thema, Sprache und Zeitzone sind obligatorisch.", + "error.entries_per_page_invalid": "Die Anzahl der Einträge pro Seite ist ungültig.", "error.feed_mandatory_fields": "Die URL und die Kategorie sind obligatorisch.", "error.user_mandatory_fields": "Der Benutzername ist obligatorisch.", "error.api_key_already_exists": "Dieser API-Schlüssel ist bereits vorhanden.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Zeitzone", "form.prefs.label.theme": "Thema", "form.prefs.label.entry_sorting": "Sortierung der Artikel", + "form.prefs.label.entries_per_page": "Einträge pro Seite", "form.prefs.select.older_first": "Älteste Artikel zuerst", "form.prefs.select.recent_first": "Neueste Artikel zuerst", "form.prefs.label.keyboard_shortcuts": "Tastaturkürzel aktivieren", diff --git a/locale/translations/en_US.json b/locale/translations/en_US.json index 928d42b0..19a0f365 100644 --- a/locale/translations/en_US.json +++ b/locale/translations/en_US.json @@ -229,6 +229,7 @@ "error.different_passwords": "Passwords are not the same.", "error.password_min_length": "The password must have at least 6 characters.", "error.settings_mandatory_fields": "The username, theme, language and timezone fields are mandatory.", + "error.entries_per_page_invalid": "The number of entries per page is not valid.", "error.feed_mandatory_fields": "The URL and the category are mandatory.", "error.user_mandatory_fields": "The username is mandatory.", "error.api_key_already_exists": "This API Key already exists.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Timezone", "form.prefs.label.theme": "Theme", "form.prefs.label.entry_sorting": "Entry Sorting", + "form.prefs.label.entries_per_page": "Entries per page", "form.prefs.select.older_first": "Older entries first", "form.prefs.select.recent_first": "Recent entries first", "form.prefs.label.keyboard_shortcuts": "Enable keyboard shortcuts", diff --git a/locale/translations/es_ES.json b/locale/translations/es_ES.json index 1b4a0732..b0a89bc4 100644 --- a/locale/translations/es_ES.json +++ b/locale/translations/es_ES.json @@ -229,6 +229,7 @@ "error.different_passwords": "Las contraseñas no son las mismas.", "error.password_min_length": "La contraseña debería tener al menos 6 caracteres.", "error.settings_mandatory_fields": "Los campos de nombre de usuario, tema, idioma y zona horaria son obligatorios.", + "error.entries_per_page_invalid": "El número de entradas por página no es válido.", "error.feed_mandatory_fields": "Los campos de URL y categoría son obligatorios.", "error.user_mandatory_fields": "El nombre de usuario es obligatorio.", "error.api_key_already_exists": "Esta clave API ya existe.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Zona horaria", "form.prefs.label.theme": "Tema", "form.prefs.label.entry_sorting": "Clasificación de entradas", + "form.prefs.label.entries_per_page": "Entradas por página", "form.prefs.select.older_first": "Entradas más viejas primero", "form.prefs.select.recent_first": "Entradas recientes primero", "form.prefs.label.keyboard_shortcuts": "Habilitar atajos de teclado", diff --git a/locale/translations/fr_FR.json b/locale/translations/fr_FR.json index 76a2b2a3..2f728274 100644 --- a/locale/translations/fr_FR.json +++ b/locale/translations/fr_FR.json @@ -229,6 +229,7 @@ "error.different_passwords": "Les mots de passe ne sont pas les mêmes.", "error.password_min_length": "Vous devez utiliser au moins 6 caractères pour le mot de passe.", "error.settings_mandatory_fields": "Le nom d'utilisateur, le thème, la langue et le fuseau horaire sont obligatoire.", + "error.entries_per_page_invalid": "Le nombre d'entrées par page n'est pas valide.", "error.feed_mandatory_fields": "L'URL et la catégorie sont obligatoire.", "error.user_mandatory_fields": "Le nom d'utilisateur est obligatoire.", "error.api_key_already_exists": "Cette clé d'API existe déjà.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Fuseau horaire", "form.prefs.label.theme": "Thème", "form.prefs.label.entry_sorting": "Ordre des éléments", + "form.prefs.label.entries_per_page": "Entrées par page", "form.prefs.select.older_first": "Ancien éléments en premier", "form.prefs.select.recent_first": "Éléments récents en premier", "form.prefs.label.keyboard_shortcuts": "Activer les raccourcis clavier", diff --git a/locale/translations/it_IT.json b/locale/translations/it_IT.json index 100dd647..30322870 100644 --- a/locale/translations/it_IT.json +++ b/locale/translations/it_IT.json @@ -229,6 +229,7 @@ "error.different_passwords": "Le password non coincidono.", "error.password_min_length": "La password deve contenere almeno 6 caratteri.", "error.settings_mandatory_fields": "Il nome utente, il tema, la lingua ed il fuso orario sono campi obbligatori.", + "error.entries_per_page_invalid": "Il numero di articoli per pagina non è valido.", "error.feed_mandatory_fields": "L'URL e la categoria sono obbligatori.", "error.user_mandatory_fields": "Il nome utente è obbligatorio.", "error.api_key_already_exists": "Questa chiave API esiste già.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Fuso orario", "form.prefs.label.theme": "Tema", "form.prefs.label.entry_sorting": "Ordinamento articoli", + "form.prefs.label.entries_per_page": "Articoli per pagina", "form.prefs.select.older_first": "Prima i più vecchi", "form.prefs.select.recent_first": "Prima i più recenti", "form.prefs.label.keyboard_shortcuts": "Abilita le scorciatoie da tastiera", diff --git a/locale/translations/ja_JP.json b/locale/translations/ja_JP.json index 000ed240..5a1d6cb1 100644 --- a/locale/translations/ja_JP.json +++ b/locale/translations/ja_JP.json @@ -229,6 +229,7 @@ "error.different_passwords": "パスワードが一致しません。", "error.password_min_length": "パスワードは6文字以上である必要があります。", "error.settings_mandatory_fields": "ユーザー名、テーマ、言語、タイムゾーンの全てが必要です。", + "error.entries_per_page_invalid": "ページあたりのエントリ数が無効です。", "error.feed_mandatory_fields": "URL と カテゴリが必要です。", "error.user_mandatory_fields": "ユーザー名が必要です。", "error.api_key_already_exists": "このAPIキーは既に存在します。", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "タイムゾーン", "form.prefs.label.theme": "テーマ", "form.prefs.label.entry_sorting": "記事の並べ替え", + "form.prefs.label.entries_per_page": "ページあたりのエントリ", "form.prefs.select.older_first": "古い記事を最初に", "form.prefs.select.recent_first": "新しい記事を最初に", "form.prefs.label.keyboard_shortcuts": "キーボード・ショートカットを有効にする", diff --git a/locale/translations/nl_NL.json b/locale/translations/nl_NL.json index 6487cd4f..113d6bd7 100644 --- a/locale/translations/nl_NL.json +++ b/locale/translations/nl_NL.json @@ -229,6 +229,7 @@ "error.different_passwords": "Wachtwoorden zijn niet hetzelfde.", "error.password_min_length": "Je moet minstens 6 tekens gebruiken.", "error.settings_mandatory_fields": "Gebruikersnaam, skin, taal en tijdzone zijn verplicht.", + "error.entries_per_page_invalid": "Het aantal inzendingen per pagina is niet geldig.", "error.feed_mandatory_fields": "The URL en de categorie zijn verplicht.", "error.user_mandatory_fields": "Gebruikersnaam is verplicht", "error.api_key_already_exists": "This API Key already exists.", @@ -254,6 +255,7 @@ "form.prefs.label.timezone": "Tijdzone", "form.prefs.label.theme": "Skin", "form.prefs.label.entry_sorting": "Volgorde van items", + "form.prefs.label.entries_per_page": "Inzendingen per pagina", "form.prefs.select.older_first": "Oudere items eerst", "form.prefs.select.recent_first": "Recente items eerst", "form.prefs.label.keyboard_shortcuts": "Schakel sneltoetsen in", diff --git a/locale/translations/pl_PL.json b/locale/translations/pl_PL.json index d5eae0c7..db0d8424 100644 --- a/locale/translations/pl_PL.json +++ b/locale/translations/pl_PL.json @@ -231,6 +231,7 @@ "error.different_passwords": "Hasła nie są identyczne.", "error.password_min_length": "Musisz użyć co najmniej 6 znaków.", "error.settings_mandatory_fields": "Pola nazwy użytkownika, tematu, języka i strefy czasowej są obowiązkowe.", + "error.entries_per_page_invalid": "Liczba wpisów na stronę jest nieprawidłowa.", "error.feed_mandatory_fields": "URL i kategoria są obowiązkowe.", "error.user_mandatory_fields": "Nazwa użytkownika jest obowiązkowa.", "error.api_key_already_exists": "Deze API-sleutel bestaat al.", @@ -256,6 +257,7 @@ "form.prefs.label.timezone": "Strefa czasowa", "form.prefs.label.theme": "Wygląd", "form.prefs.label.entry_sorting": "Sortowanie artykułów", + "form.prefs.label.entries_per_page": "Wpisy na stronie", "form.prefs.select.older_first": "Najstarsze wpisy jako pierwsze", "form.prefs.label.keyboard_shortcuts": "Włącz skróty klawiaturowe", "form.prefs.select.recent_first": "Najnowsze wpisy jako pierwsze", diff --git a/locale/translations/ru_RU.json b/locale/translations/ru_RU.json index b0c88c41..db658fa1 100644 --- a/locale/translations/ru_RU.json +++ b/locale/translations/ru_RU.json @@ -231,6 +231,7 @@ "error.different_passwords": "Пароли не совпадают.", "error.password_min_length": "Вы должны использовать минимум 6 символов.", "error.settings_mandatory_fields": "Имя пользователя, тема, язык и часовой пояс обязательны.", + "error.entries_per_page_invalid": "Количество записей на странице недействительно.", "error.feed_mandatory_fields": "URL и категория обязательны.", "error.user_mandatory_fields": "Имя пользователя обязательно.", "error.api_key_already_exists": "Этот ключ API уже существует.", @@ -256,6 +257,7 @@ "form.prefs.label.timezone": "Часовой пояс", "form.prefs.label.theme": "Тема", "form.prefs.label.entry_sorting": "Сортировка записей", + "form.prefs.label.entries_per_page": "Записи на странице", "form.prefs.select.older_first": "Сначала старые записи", "form.prefs.select.recent_first": "Сначала последние записи", "form.prefs.label.keyboard_shortcuts": "Включить сочетания клавиш", diff --git a/locale/translations/zh_CN.json b/locale/translations/zh_CN.json index 0a09e90c..2b0cf222 100644 --- a/locale/translations/zh_CN.json +++ b/locale/translations/zh_CN.json @@ -227,6 +227,7 @@ "error.different_passwords": "两次输入的密码不同", "error.password_min_length": "请至少使用6个字符", "error.settings_mandatory_fields": "必须填写用户名、主题、语言以及时区", + "error.entries_per_page_invalid": "每页的条目数无效。", "error.feed_mandatory_fields": "必须填写 URL 和分类", "error.user_mandatory_fields": "必须填写用户名", "error.api_key_already_exists": "此API密钥已存在。", @@ -252,6 +253,7 @@ "form.prefs.label.timezone": "时区", "form.prefs.label.theme": "主题", "form.prefs.label.entry_sorting": "内容排序", + "form.prefs.label.entries_per_page": "每页条目", "form.prefs.select.older_first": "旧->新", "form.prefs.select.recent_first": "新->旧", "form.prefs.label.keyboard_shortcuts": "启用键盘快捷键", diff --git a/model/user.go b/model/user.go index fd19d9fe..2a0d4773 100644 --- a/model/user.go +++ b/model/user.go @@ -21,6 +21,7 @@ type User struct { Language string `json:"language"` Timezone string `json:"timezone"` EntryDirection string `json:"entry_sorting_direction"` + EntriesPerPage int `json:"entries_per_page"` KeyboardShortcuts bool `json:"keyboard_shortcuts"` LastLoginAt *time.Time `json:"last_login_at,omitempty"` Extra map[string]string `json:"extra"` diff --git a/storage/user.go b/storage/user.go index 53f0a8ce..9001443b 100644 --- a/storage/user.go +++ b/storage/user.go @@ -64,7 +64,7 @@ func (s *Storage) CreateUser(user *model.User) (err error) { VALUES (LOWER($1), $2, $3, $4) RETURNING - id, username, is_admin, language, theme, timezone, entry_direction, keyboard_shortcuts + id, username, is_admin, language, theme, timezone, entry_direction, entries_per_page, keyboard_shortcuts ` err = s.db.QueryRow(query, user.Username, password, user.IsAdmin, extra).Scan( @@ -75,6 +75,7 @@ func (s *Storage) CreateUser(user *model.User) (err error) { &user.Theme, &user.Timezone, &user.EntryDirection, + &user.EntriesPerPage, &user.KeyboardShortcuts, ) if err != nil { @@ -123,9 +124,10 @@ func (s *Storage) UpdateUser(user *model.User) error { language=$5, timezone=$6, entry_direction=$7, - keyboard_shortcuts=$8 + entries_per_page=$8, + keyboard_shortcuts=$9 WHERE - id=$9 + id=$10 ` _, err = s.db.Exec( @@ -137,6 +139,7 @@ func (s *Storage) UpdateUser(user *model.User) error { user.Language, user.Timezone, user.EntryDirection, + user.EntriesPerPage, user.KeyboardShortcuts, user.ID, ) @@ -152,9 +155,10 @@ func (s *Storage) UpdateUser(user *model.User) error { language=$4, timezone=$5, entry_direction=$6, - keyboard_shortcuts=$7 + entries_per_page=$7, + keyboard_shortcuts=$8 WHERE - id=$8 + id=$9 ` _, err := s.db.Exec( @@ -165,6 +169,7 @@ func (s *Storage) UpdateUser(user *model.User) error { user.Language, user.Timezone, user.EntryDirection, + user.EntriesPerPage, user.KeyboardShortcuts, user.ID, ) @@ -202,6 +207,7 @@ func (s *Storage) UserByID(userID int64) (*model.User, error) { language, timezone, entry_direction, + entries_per_page, keyboard_shortcuts, last_login_at, extra @@ -224,6 +230,7 @@ func (s *Storage) UserByUsername(username string) (*model.User, error) { language, timezone, entry_direction, + entries_per_page, keyboard_shortcuts, last_login_at, extra @@ -246,6 +253,7 @@ func (s *Storage) UserByExtraField(field, value string) (*model.User, error) { language, timezone, entry_direction, + entries_per_page, keyboard_shortcuts, last_login_at, extra @@ -268,6 +276,7 @@ func (s *Storage) UserByAPIKey(token string) (*model.User, error) { u.language, u.timezone, u.entry_direction, + u.entries_per_page, u.keyboard_shortcuts, u.last_login_at, u.extra @@ -293,6 +302,7 @@ func (s *Storage) fetchUser(query string, args ...interface{}) (*model.User, err &user.Language, &user.Timezone, &user.EntryDirection, + &user.EntriesPerPage, &user.KeyboardShortcuts, &user.LastLoginAt, &extra, @@ -348,6 +358,7 @@ func (s *Storage) Users() (model.Users, error) { language, timezone, entry_direction, + entries_per_page, keyboard_shortcuts, last_login_at, extra @@ -373,6 +384,7 @@ func (s *Storage) Users() (model.Users, error) { &user.Language, &user.Timezone, &user.EntryDirection, + &user.EntriesPerPage, &user.KeyboardShortcuts, &user.LastLoginAt, &extra, diff --git a/template/html/settings.html b/template/html/settings.html index 11ef033c..7a2d8e8f 100644 --- a/template/html/settings.html +++ b/template/html/settings.html @@ -49,6 +49,9 @@ <option value="desc" {{ if eq "desc" $.form.EntryDirection }}selected="selected"{{ end }}>{{ t "form.prefs.select.recent_first" }}</option> </select> + <label for="form-entries-per-page">{{ t "form.prefs.label.entries_per_page" }}</label> + <input type="number" name="entries_per_page" id="form-entries-per-page" value="{{ .form.EntriesPerPage }}" min="1"> + <label><input type="checkbox" name="keyboard_shortcuts" value="1" {{ if .form.KeyboardShortcuts }}checked{{ end }}> {{ t "form.prefs.label.keyboard_shortcuts" }}</label> <label>{{t "form.prefs.label.custom_css" }}</label><textarea name="custom_css" cols="40" rows="5">{{ .form.CustomCSS }}</textarea> diff --git a/template/views.go b/template/views.go index e777164d..8f878858 100644 --- a/template/views.go +++ b/template/views.go @@ -1320,6 +1320,9 @@ var templateViewsMap = map[string]string{ <option value="desc" {{ if eq "desc" $.form.EntryDirection }}selected="selected"{{ end }}>{{ t "form.prefs.select.recent_first" }}</option> </select> + <label for="form-entries-per-page">{{ t "form.prefs.label.entries_per_page" }}</label> + <input type="number" name="entries_per_page" id="form-entries-per-page" value="{{ .form.EntriesPerPage }}" min="1"> + <label><input type="checkbox" name="keyboard_shortcuts" value="1" {{ if .form.KeyboardShortcuts }}checked{{ end }}> {{ t "form.prefs.label.keyboard_shortcuts" }}</label> <label>{{t "form.prefs.label.custom_css" }}</label><textarea name="custom_css" cols="40" rows="5">{{ .form.CustomCSS }}</textarea> @@ -1565,7 +1568,7 @@ var templateViewsMapChecksums = map[string]string{ "login": "79ff2ca488c0a19b37c8fa227a21f73e94472eb357a51a077197c852f7713f11", "search_entries": "c0786ddc6b17e865007b975eefb97417935cbc601f5917cca1ee0d3f584594bc", "sessions": "5d5c677bddbd027e0b0c9f7a0dd95b66d9d95b4e130959f31fb955b926c2201c", - "settings": "3ab566c3220c62edc3edc51f2e93c1101b728e9f62f52f23de6bc6322d86aeb6", + "settings": "3d6dd0d7fa0ca48cfd9a5edb43c055af8b816eb4460f16b71ae22db40ed9b754", "shared_entries": "1494d81e46f6af534a73cf6a91f8dfda1932a477bb3a70143513896ac0f0220b", "unread_entries": "e0080d0cf3583cda51d865422960137c8556c432853657086e43daf6bd5b73be", "users": "d7ff52efc582bbad10504f4a04fa3adcc12d15890e45dff51cac281e0c446e45", diff --git a/tests/user_test.go b/tests/user_test.go index 61281066..d2ff3477 100644 --- a/tests/user_test.go +++ b/tests/user_test.go @@ -78,6 +78,10 @@ func TestGetUsers(t *testing.T) { if !users[0].IsAdmin { t.Fatalf(`Invalid role, got "%v"`, users[0].IsAdmin) } + + if users[0].EntriesPerPage != 100 { + t.Fatalf(`Invalid entries per page, got "%v"`, users[0].EntriesPerPage) + } } func TestCreateStandardUser(t *testing.T) { @@ -119,6 +123,10 @@ func TestCreateStandardUser(t *testing.T) { if user.LastLoginAt != nil { t.Fatalf(`Invalid last login date, got "%v"`, user.LastLoginAt) } + + if user.EntriesPerPage != 100 { + t.Fatalf(`Invalid entries per page, got "%v"`, user.EntriesPerPage) + } } func TestRemoveUser(t *testing.T) { @@ -183,6 +191,10 @@ func TestGetUserByID(t *testing.T) { if user.LastLoginAt != nil { t.Fatalf(`Invalid last login date, got "%v"`, user.LastLoginAt) } + + if user.EntriesPerPage != 100 { + t.Fatalf(`Invalid entries per page, got "%v"`, user.EntriesPerPage) + } } func TestGetUserByUsername(t *testing.T) { @@ -234,6 +246,10 @@ func TestGetUserByUsername(t *testing.T) { if user.LastLoginAt != nil { t.Fatalf(`Invalid last login date, got "%v"`, user.LastLoginAt) } + + if user.EntriesPerPage != 100 { + t.Fatalf(`Invalid entries per page, got "%v"`, user.EntriesPerPage) + } } func TestUpdateUserTheme(t *testing.T) { diff --git a/ui/bookmark_entries.go b/ui/bookmark_entries.go index f2c36b29..5bf107ea 100644 --- a/ui/bookmark_entries.go +++ b/ui/bookmark_entries.go @@ -29,7 +29,7 @@ func (h *handler) showStarredPage(w http.ResponseWriter, r *http.Request) { builder.WithOrder(model.DefaultSortingOrder) builder.WithDirection(user.EntryDirection) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -48,7 +48,7 @@ func (h *handler) showStarredPage(w http.ResponseWriter, r *http.Request) { view.Set("total", count) view.Set("entries", entries) - view.Set("pagination", getPagination(route.Path(h.router, "starred"), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "starred"), count, offset, user.EntriesPerPage)) view.Set("menu", "starred") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/category_entries.go b/ui/category_entries.go index 998f207b..09a6fd16 100644 --- a/ui/category_entries.go +++ b/ui/category_entries.go @@ -41,7 +41,7 @@ func (h *handler) showCategoryEntriesPage(w http.ResponseWriter, r *http.Request builder.WithDirection(user.EntryDirection) builder.WithStatus(model.EntryStatusUnread) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -60,7 +60,7 @@ func (h *handler) showCategoryEntriesPage(w http.ResponseWriter, r *http.Request view.Set("category", category) view.Set("total", count) view.Set("entries", entries) - view.Set("pagination", getPagination(route.Path(h.router, "categoryEntries", "categoryID", category.ID), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "categoryEntries", "categoryID", category.ID), count, offset, user.EntriesPerPage)) view.Set("menu", "categories") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/category_entries_all.go b/ui/category_entries_all.go index 3ae98e9e..ab2f725b 100644 --- a/ui/category_entries_all.go +++ b/ui/category_entries_all.go @@ -41,7 +41,7 @@ func (h *handler) showCategoryEntriesAllPage(w http.ResponseWriter, r *http.Requ builder.WithDirection(user.EntryDirection) builder.WithoutStatus(model.EntryStatusRemoved) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -60,7 +60,7 @@ func (h *handler) showCategoryEntriesAllPage(w http.ResponseWriter, r *http.Requ view.Set("category", category) view.Set("total", count) view.Set("entries", entries) - view.Set("pagination", getPagination(route.Path(h.router, "categoryEntriesAll", "categoryID", category.ID), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "categoryEntriesAll", "categoryID", category.ID), count, offset, user.EntriesPerPage)) view.Set("menu", "categories") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/feed_entries.go b/ui/feed_entries.go index 4191ed7a..30aafa4d 100644 --- a/ui/feed_entries.go +++ b/ui/feed_entries.go @@ -41,7 +41,7 @@ func (h *handler) showFeedEntriesPage(w http.ResponseWriter, r *http.Request) { builder.WithOrder(model.DefaultSortingOrder) builder.WithDirection(user.EntryDirection) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -60,7 +60,7 @@ func (h *handler) showFeedEntriesPage(w http.ResponseWriter, r *http.Request) { view.Set("feed", feed) view.Set("entries", entries) view.Set("total", count) - view.Set("pagination", getPagination(route.Path(h.router, "feedEntries", "feedID", feed.ID), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "feedEntries", "feedID", feed.ID), count, offset, user.EntriesPerPage)) view.Set("menu", "feeds") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/feed_entries_all.go b/ui/feed_entries_all.go index f5bbab26..1ce3abec 100644 --- a/ui/feed_entries_all.go +++ b/ui/feed_entries_all.go @@ -41,7 +41,7 @@ func (h *handler) showFeedEntriesAllPage(w http.ResponseWriter, r *http.Request) builder.WithOrder(model.DefaultSortingOrder) builder.WithDirection(user.EntryDirection) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -60,7 +60,7 @@ func (h *handler) showFeedEntriesAllPage(w http.ResponseWriter, r *http.Request) view.Set("feed", feed) view.Set("entries", entries) view.Set("total", count) - view.Set("pagination", getPagination(route.Path(h.router, "feedEntriesAll", "feedID", feed.ID), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "feedEntriesAll", "feedID", feed.ID), count, offset, user.EntriesPerPage)) view.Set("menu", "feeds") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/form/settings.go b/ui/form/settings.go index 40a06ff7..ef76416e 100644 --- a/ui/form/settings.go +++ b/ui/form/settings.go @@ -6,6 +6,7 @@ package form // import "miniflux.app/ui/form" import ( "net/http" + "strconv" "miniflux.app/errors" "miniflux.app/model" @@ -20,6 +21,7 @@ type SettingsForm struct { Language string Timezone string EntryDirection string + EntriesPerPage int KeyboardShortcuts bool CustomCSS string } @@ -31,6 +33,7 @@ func (s *SettingsForm) Merge(user *model.User) *model.User { user.Language = s.Language user.Timezone = s.Timezone user.EntryDirection = s.EntryDirection + user.EntriesPerPage = s.EntriesPerPage user.KeyboardShortcuts = s.KeyboardShortcuts user.Extra["custom_css"] = s.CustomCSS @@ -47,6 +50,10 @@ func (s *SettingsForm) Validate() error { return errors.NewLocalizedError("error.settings_mandatory_fields") } + if s.EntriesPerPage < 1 { + return errors.NewLocalizedError("error.entries_per_page_invalid") + } + if s.Confirmation == "" { // Firefox insists on auto-completing the password field. // If the confirmation field is blank, the user probably @@ -67,6 +74,10 @@ func (s *SettingsForm) Validate() error { // NewSettingsForm returns a new SettingsForm. func NewSettingsForm(r *http.Request) *SettingsForm { + entriesPerPage, err := strconv.ParseInt(r.FormValue("entries_per_page"), 10, 64) + if err != nil { + entriesPerPage = 0 + } return &SettingsForm{ Username: r.FormValue("username"), Password: r.FormValue("password"), @@ -75,6 +86,7 @@ func NewSettingsForm(r *http.Request) *SettingsForm { Language: r.FormValue("language"), Timezone: r.FormValue("timezone"), EntryDirection: r.FormValue("entry_direction"), + EntriesPerPage: int(entriesPerPage), KeyboardShortcuts: r.FormValue("keyboard_shortcuts") == "1", CustomCSS: r.FormValue("custom_css"), } diff --git a/ui/form/settings_test.go b/ui/form/settings_test.go index 245ce76c..04548693 100644 --- a/ui/form/settings_test.go +++ b/ui/form/settings_test.go @@ -13,6 +13,7 @@ func TestValid(t *testing.T) { Language: "en_US", Timezone: "UTC", EntryDirection: "asc", + EntriesPerPage: 50, } err := settings.Validate() @@ -30,6 +31,7 @@ func TestConfirmationEmpty(t *testing.T) { Language: "en_US", Timezone: "UTC", EntryDirection: "asc", + EntriesPerPage: 50, } err := settings.Validate() @@ -51,6 +53,25 @@ func TestConfirmationIncorrect(t *testing.T) { Language: "en_US", Timezone: "UTC", EntryDirection: "asc", + EntriesPerPage: 50, + } + + err := settings.Validate() + if err == nil { + t.Error("Validate should return an error") + } +} + +func TestEntriesPerPageNotValid(t *testing.T) { + settings := &SettingsForm{ + Username: "user", + Password: "hunter2", + Confirmation: "hunter2", + Theme: "default", + Language: "en_US", + Timezone: "UTC", + EntryDirection: "asc", + EntriesPerPage: 0, } err := settings.Validate() diff --git a/ui/history_entries.go b/ui/history_entries.go index 892febfa..7bee3946 100644 --- a/ui/history_entries.go +++ b/ui/history_entries.go @@ -28,7 +28,7 @@ func (h *handler) showHistoryPage(w http.ResponseWriter, r *http.Request) { builder.WithOrder("changed_at") builder.WithDirection("desc") builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -46,7 +46,7 @@ func (h *handler) showHistoryPage(w http.ResponseWriter, r *http.Request) { view := view.New(h.tpl, r, sess) view.Set("entries", entries) view.Set("total", count) - view.Set("pagination", getPagination(route.Path(h.router, "history"), count, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "history"), count, offset, user.EntriesPerPage)) view.Set("menu", "history") view.Set("user", user) view.Set("countUnread", h.store.CountUnreadEntries(user.ID)) diff --git a/ui/pagination.go b/ui/pagination.go index 7534431f..46e0a397 100644 --- a/ui/pagination.go +++ b/ui/pagination.go @@ -4,10 +4,6 @@ package ui // import "miniflux.app/ui" -const ( - nbItemsPerPage = 100 -) - type pagination struct { Route string Total int @@ -20,7 +16,7 @@ type pagination struct { SearchQuery string } -func getPagination(route string, total, offset int) pagination { +func getPagination(route string, total, offset, nbItemsPerPage int) pagination { nextOffset := 0 prevOffset := 0 showNext := (total - offset) > nbItemsPerPage diff --git a/ui/search_entries.go b/ui/search_entries.go index 88a60f5b..054d7808 100644 --- a/ui/search_entries.go +++ b/ui/search_entries.go @@ -28,7 +28,7 @@ func (h *handler) showSearchEntriesPage(w http.ResponseWriter, r *http.Request) builder.WithSearchQuery(searchQuery) builder.WithoutStatus(model.EntryStatusRemoved) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { @@ -44,7 +44,7 @@ func (h *handler) showSearchEntriesPage(w http.ResponseWriter, r *http.Request) sess := session.New(h.store, request.SessionID(r)) view := view.New(h.tpl, r, sess) - pagination := getPagination(route.Path(h.router, "searchEntries"), count, offset) + pagination := getPagination(route.Path(h.router, "searchEntries"), count, offset, user.EntriesPerPage) pagination.SearchQuery = searchQuery view.Set("searchQuery", searchQuery) diff --git a/ui/settings_show.go b/ui/settings_show.go index 8e0a51b2..ceea10c2 100644 --- a/ui/settings_show.go +++ b/ui/settings_show.go @@ -32,6 +32,7 @@ func (h *handler) showSettingsPage(w http.ResponseWriter, r *http.Request) { Language: user.Language, Timezone: user.Timezone, EntryDirection: user.EntryDirection, + EntriesPerPage: user.EntriesPerPage, KeyboardShortcuts: user.KeyboardShortcuts, CustomCSS: user.Extra["custom_css"], } diff --git a/ui/static/css.go b/ui/static/css.go index 510cdd09..0f64f51e 100644 --- a/ui/static/css.go +++ b/ui/static/css.go @@ -3,19 +3,19 @@ package static // import "miniflux.app/ui/static" var Stylesheets = map[string]string{ - "dark_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-color: #aaa;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, - "dark_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-color: #aaa;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, - "light_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-color: #333;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, - "light_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-color: #333;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, - "system_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}@media(prefers-color-scheme:dark){:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, - "system_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}@media(prefers-color-scheme:dark){:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "dark_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-color: #aaa;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "dark_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-color: #aaa;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "light_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-color: #333;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "light_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-color: #333;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "system_sans_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}@media(prefers-color-scheme:dark){:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}}:root{--entry-content-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, + "system_serif": `:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #333;--body-background: #fff;--hr-border-color: #ccc;--title-color: #333;--link-color: #3366CC;--link-focus-color: red;--link-hover-color: #333;--header-list-border-color: #ddd;--header-link-color: #444;--header-link-focus-color: #888;--header-link-hover-color: #888;--header-active-link-color: #444;--page-header-title-border-color: #333;--logo-color: #000;--logo-hover-color-span: #000;--table-border-color: #ddd;--table-th-background: #fcfcfc;--table-th-color: #333;--table-tr-hover-background-color: #f9f9f9;--table-tr-hover-color: #333;--button-primary-border-color: #3079ed;--button-primary-background: #4d90fe;--button-primary-color: #fff;--button-primary-focus-border-color: #2f5bb7;--button-primary-focus-background: #357ae8;--input-border: 1px solid #ccc;--input-background: #fff;--input-color: #333;--input-focus-color: #000;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #c09853;--alert-background-color: #fcf8e3;--alert-border-color: #fbeed5;--alert-success-color: #468847;--alert-success-background-color: #dff0d8;--alert-success-border-color: #d6e9c6;--alert-error-color: #b94a48;--alert-error-background-color: #f2dede;--alert-error-border-color: #eed3d7;--alert-info-color: #3a87ad;--alert-info-background-color: #d9edf7;--alert-info-border-color: #bce8f1;--panel-background: #fcfcfc;--panel-border-color: #ddd;--panel-color: #333;--modal-background: #f0f0f0;--modal-color: #333;--modal-box-shadow: 2px 0 5px 0 #ccc;--pagination-link-color: #333;--pagination-border-color: #ddd;--category-color: #333;--category-background-color: #fffcd7;--category-border-color: #d5d458;--category-link-color: #000;--category-link-hover-color: #000;--item-border-color: #ddd;--item-padding: 5px;--item-title-link-font-weight: 600;--item-status-read-title-link-color: #777;--item-status-read-title-focus-color: #777;--item-meta-focus-color: #777;--item-meta-li-color: #aaa;--current-item-border-width: 3px;--current-item-border-color: #bce;--current-item-box-shadow: none;--entry-header-border-color: #ddd;--entry-header-title-link-color: #333;--entry-content-color: #555;--entry-content-code-color: #333;--entry-content-code-background: #f0f0f0;--entry-content-code-border-color: #ddd;--entry-content-quote-color: #666;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #333;--feed-parsing-error-background-color: #fcf8e3;--keyboard-shortcuts-li-color: #333;--counter-color: #666}@media(prefers-color-scheme:dark){:root{--font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--body-color: #efefef;--body-background: #222;--hr-border-color: #555;--title-color: #aaa;--link-color: #aaa;--link-focus-color: #ddd;--link-hover-color: #ddd;--header-list-border-color: #333;--header-link-color: #ddd;--header-link-focus-color: rgba(82, 168, 236, 0.85);--header-link-hover-color: rgba(82, 168, 236, 0.85);--header-active-link-color: #9b9494;--page-header-title-border-color: #333;--logo-color: #bbb;--logo-hover-color-span: #bbb;--table-border-color: #555;--table-th-background: #333;--table-th-color: #aaa;--table-tr-hover-background-color: #333;--table-tr-hover-color: #aaa;--button-primary-border-color: #444;--button-primary-background: #333;--button-primary-color: #efefef;--button-primary-focus-border-color: #888;--button-primary-focus-background: #555;--input-border: 1px solid #555;--input-background: #333;--input-color: #ccc;--input-focus-color: #efefef;--input-focus-border-color: rgba(82, 168, 236, 0.8);--input-focus-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--alert-color: #efefef;--alert-background-color: #333;--alert-border-color: #444;--alert-success-color: #efefef;--alert-success-background-color: #333;--alert-success-border-color: #444;--alert-error-color: #efefef;--alert-error-background-color: #333;--alert-error-border-color: #444;--alert-info-color: #efefef;--alert-info-background-color: #333;--alert-info-border-color: #444;--panel-background: #333;--panel-border-color: #555;--panel-color: #9b9b9b;--modal-background: #333;--modal-color: #efefef;--modal-box-shadow: 0 0 10px rgba(82, 168, 236, 0.6);--pagination-link-color: #aaa;--pagination-border-color: #333;--category-color: #efefef;--category-background-color: #333;--category-border-color: #444;--category-link-color: #999;--category-link-hover-color: #aaa;--item-border-color: #666;--item-padding: 4px;--item-title-link-font-weight: 400;--item-status-read-title-link-color: #666;--item-status-read-title-focus-color: rgba(82, 168, 236, 0.6);--item-meta-focus-color: #aaa;--item-meta-li-color: #ddd;--current-item-border-width: 2px;--current-item-border-color: rgba(82, 168, 236, 0.8);--current-item-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);--entry-header-border-color: #333;--entry-header-title-link-color: #bbb;--entry-content-color: #999;--entry-content-code-color: #fff;--entry-content-code-background: #555;--entry-content-code-border-color: #888;--entry-content-quote-color: #777;--entry-content-quote-font-family: Georgia, 'Times New Roman', Times, serif;--entry-enclosure-border-color: #333;--parsing-error-color: #eee;--feed-parsing-error-background-color: #343434;--keyboard-shortcuts-li-color: #9b9b9b;--counter-color: #bbb}}:root{--entry-content-font-family: Georgia, 'Times New Roman', Times, serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:var(--font-family);text-rendering:optimizeLegibility;color:var(--body-color);background:var(--body-background)}hr{border:0;height:0;border-top:1px dotted var(--hr-border-color);padding-bottom:10px}h1,h2,h3{color:var(--title-color)}main{padding-left:5px;padding-right:5px;margin-bottom:30px}a{color:var(--link-color)}a:focus{outline:0;color:var(--link-focus-color);text-decoration:none;outline:1px dotted #aaa}a:hover{color:var(--link-hover-color);text-decoration:none}.header{margin-top:10px;margin-bottom:20px}.header nav ul{display:none}.header li{cursor:pointer;padding-left:10px;line-height:2.1em;font-size:1.2em;border-bottom:1px dotted var(--header-list-border-color)}.header li:hover a{color:#888}.header a{font-size:.9em;color:var(--header-link-color);text-decoration:none;border:none;font-weight:400}.header .active a{color:var(--header-active-link-color);font-weight:500}.header a:hover{color:var(--header-link-hover-color)}.header a:focus{color:var(--header-link-focus-color)}.page-header{margin-bottom:25px}.page-footer{margin-bottom:10px}.page-header h1{font-weight:500;border-bottom:1px dotted var(--page-header-title-border-color)}.page-header h1 a{text-decoration:none;color:var(--page-header-title-color)}.page-header h1 a:hover,.page-header h1 a:focus{color:#666}.page-header ul,.page-footer ul{margin-left:25px}.page-header li,.page-footer li{list-style-type:circle;line-height:1.8em}.logo{cursor:pointer;text-align:center}.logo a{color:var(--logo-color);letter-spacing:1px}.logo a:hover{color:#396}.logo a span{color:#396}.logo a:hover span{color:var(--logo-hover-color-span)}.search{text-align:center;display:none}.search-toggle-switch{display:none}#prompt-home-screen{display:none;position:fixed;bottom:0;right:0;width:100%;text-align:center;background:#000;opacity:85%}#btn-add-to-home-screen{text-decoration:none;line-height:30px;color:#fff}#btn-add-to-home-screen:hover{color:red}.toast-wrap{visibility:hidden;opacity:0;position:fixed;left:0;bottom:10%;color:#fff;width:100%;text-align:center}.toast-msg{background-color:rgba(0,0,0,.7);padding:2px 5px;border-radius:5px}.toastAnimate{animation:toastKeyFrames 2s}@keyframes toastKeyFrames{0%{visibility:hidden;opacity:0}25%{visibility:visible;opacity:1;z-index:9999}50%{visibility:visible;opacity:1;z-index:9999}75%{visibility:visible;opacity:1;z-index:9999}100%{visibility:hidden;opacity:0;z-index:0}}@media(min-width:600px){body{margin:auto;max-width:750px}.header{margin-bottom:0}.logo{text-align:left;float:left;margin-right:15px;margin-left:5px}.header nav ul{display:block}.header li{display:inline;padding:0;padding-right:15px;line-height:normal;border:none;font-size:1em}.page-header ul,.page-footer ul{margin-left:0}.page-header li,.page-footer li{display:inline;padding-right:15px}.search{text-align:right;display:block;margin-top:10px;margin-right:5px}.search-toggle-switch{display:block}.search-form{display:none}.search-toggle-switch.has-search-query{display:none}.search-form.has-search-query{display:block}}table{width:100%;border-collapse:collapse}table,th,td{border:1px solid var(--table-border-color)}th,td{padding:5px;text-align:left}td{vertical-align:top}th{background:var(--table-th-background);color:var(--table-th-color);font-weight:400}tr:hover{color:var(--table-tr-hover-color);background-color:var(--table-tr-hover-background-color)}.column-40{width:40%}.column-25{width:25%}.column-20{width:20%}fieldset{border:1px solid #ddd;padding:8px}legend{font-weight:500;padding-left:3px;padding-right:3px}label{cursor:pointer;display:block}.radio-group{line-height:1.9em}div.radio-group label{display:inline-block}select{margin-bottom:15px}input[type=search],input[type=url],input[type=password],input[type=text],input[type=number]{color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;line-height:20px;width:250px;font-size:99%;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}input[type=search]:focus,input[type=url]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}#form-entries-per-page{max-width:80px}input[type=checkbox]{margin-bottom:15px}textarea{width:350px;color:var(--input-color);background:var(--input-background);border:var(--input-border);padding:3px;margin-bottom:10px;margin-top:5px;-webkit-appearance:none}textarea:focus{color:var(--input-focus-color);border-color:var(--input-focus-border-color);outline:0;box-shadow:var(--input-focus-box-shadow)}::-moz-placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:#ddd;padding-top:2px}.form-help{font-size:.9em;color:brown;margin-bottom:15px}.form-section{border-left:2px dotted #ddd;padding-left:20px;margin-left:10px}details>summary{outline:none;cursor:pointer}.details-content{margin-top:15px}a.button{text-decoration:none}.button{display:inline-block;-webkit-appearance:none;-moz-appearance:none;font-size:1.1em;cursor:pointer;padding:3px 10px;border:1px solid;border-radius:unset}.button-primary{border-color:var(--button-primary-border-color);background:var(--button-primary-background);color:var(--button-primary-color)}.button-primary:hover,.button-primary:focus{border-color:var(--button-primary-focus-border-color);background:var(--button-primary-focus-background)}.button-danger{border-color:#b0281a;background:#d14836;color:#fff}.button-danger:hover,.button-danger:focus{color:#fff;background:#c53727}.button:disabled{color:#ccc;background:#f7f7f7;border-color:#ccc}.buttons{margin-top:10px;margin-bottom:20px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:var(--alert-color);background-color:var(--alert-background-color);border:1px solid var(--alert-border-color);border-radius:4px;overflow:auto}.alert h3{margin-top:0;margin-bottom:15px}.alert-success{color:var(--alert-success-color);background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color)}.alert-error{color:var(--alert-error-color);background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color)}.alert-error h3,.alert-error a{color:var(--alert-error-color)}.alert-info{color:var(--alert-info-color);background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color)}.panel{color:var(--panel-color);background-color:var(--panel-background);border:1px solid var(--panel-border-color);border-radius:5px;padding:10px;margin-bottom:15px}.panel h3{font-weight:500;margin-top:0;margin-bottom:20px}.panel ul{margin-left:30px}#modal-left{position:fixed;top:0;left:0;bottom:0;width:380px;overflow:auto;color:var(--modal-color);background:var(--modal-background);box-shadow:var(--modal-box-shadow);padding:5px;padding-top:30px}#modal-left h3{font-weight:400;margin:0}.btn-close-modal{position:absolute;top:0;right:0;font-size:1.7em;color:#ccc;padding:0 .2em;margin:10px;text-decoration:none}.btn-close-modal:hover{color:#999}.keyboard-shortcuts li{margin-left:25px;list-style-type:square;color:var(--keyboard-shortcuts-li-color);font-size:.95em;line-height:1.45em}.keyboard-shortcuts p{line-height:1.9em}.login-form{margin:50px auto 0;max-width:280px}.unread-counter-wrapper,.error-feeds-counter-wrapper{font-size:.9em;font-weight:300;color:var(--counter-color)}.category{font-size:.75em;background-color:var(--category-background-color);border:1px solid var(--category-border-color);border-radius:5px;margin-left:.25em;padding:1px .4em;white-space:nowrap;color:var(--category-color)}.category a{color:var(--category-link-color);text-decoration:none}.category a:hover,.category a:focus{color:var(--category-link-hover-color)}.pagination{font-size:1.1em;display:flex;align-items:center;padding-top:8px}.pagination-bottom{border-top:1px dotted var(--pagination-border-color);margin-bottom:15px;margin-top:50px}.pagination>div{flex:1}.pagination-next{text-align:right}.pagination-prev:before{content:"« "}.pagination-next:after{content:" »"}.pagination a{color:var(--pagination-color)}.pagination a:hover,.pagination a:focus{text-decoration:none}.item{border:1px dotted var(--item-border-color);margin-bottom:20px;padding:var(--item-padding);overflow:hidden}.item.current-item{border:var(--current-item-border-width)solid var(--current-item-border-color);padding:3px;box-shadow:var(--current-item-box-shadow)}.item-title a{text-decoration:none;font-weight:var(--item-title-link-font-weight)}.item-status-read .item-title a{color:var(--item-status-read-title-link-color)}.item-meta{display:flex;flex-flow:row wrap;justify-content:space-between;color:var(--item-meta-focus-color);font-size:.8em}.item-meta a{color:#777;text-decoration:none}.item-meta a:hover,.item-meta a:focus{color:#333}.item-meta ul{margin-top:5px}.item-meta li{display:inline}.item-meta-info li:after{content:"|";color:var(--item-meta-li-color)}.item-meta-info li:last-child:after{content:""}.item-meta-icons li{margin-right:5px}.item-meta-icons li:last-child{margin-right:0}.items{overflow-x:hidden}.hide-read-items .item-status-read:not(.current-item){display:none}article.feed-parsing-error{background-color:var(--feed-parsing-error-background-color);border-color:#aaa}.parsing-error{font-size:.85em;margin-top:2px;color:var(--parsing-error-color)}.parsing-error-count{cursor:pointer}.icon,.icon-label{vertical-align:middle;display:inline-block}.icon{width:16px;height:16px}.entry header{padding-bottom:5px;border-bottom:1px dotted var(--entry-header-border-color)}.entry header h1{font-size:2em;line-height:1.25em;margin:5px 0 30px}.entry header h1 a{text-decoration:none;color:var(--entry-header-title-link-color)}.entry header h1 a:hover,.entry header h1 a:focus{color:#666}.entry-actions{margin-bottom:20px}.entry-actions a{text-decoration:none}.entry-actions li{display:inline-block;margin-right:15px}.entry-meta{font-size:.95em;margin:0 0 20px;color:#666;overflow-wrap:break-word}.entry-website img{vertical-align:top}.entry-website a{color:#666;vertical-align:top;text-decoration:none}.entry-website a:hover,.entry-website a:focus{text-decoration:underline}.entry-date{font-size:.65em;font-style:italic;color:#555}.entry-content{padding-top:15px;font-size:1.2em;font-weight:300;font-family:var(--entry-content-font-family);color:var(--entry-content-color);line-height:1.4em;overflow-wrap:break-word}.entry-content h1,h2,h3,h4,h5,h6{margin-top:15px;margin-bottom:10px}.entry-content iframe,.entry-content video,.entry-content img{max-width:100%}.entry-content figure{margin-top:15px;margin-bottom:15px}.entry-content figure img{border:1px solid #000}.entry-content figcaption{font-size:.75em;text-transform:uppercase;color:#777}.entry-content p{margin-top:10px;margin-bottom:15px}.entry-content a{overflow-wrap:break-word}.entry-content a:visited{color:purple}.entry-content dt{font-weight:500;margin-top:15px;color:#555}.entry-content dd{margin-left:15px;margin-top:5px;padding-left:20px;border-left:3px solid #ddd;color:#777;font-weight:300;line-height:1.4em}.entry-content blockquote{border-left:4px solid #ddd;padding-left:25px;margin-left:20px;margin-top:20px;margin-bottom:20px;line-height:1.4em;font-family:var(--entry-content-quote-font-family)}.entry-content q{color:var(--entry-content-quote-color);font-family:var(--entry-content-quote-font-family);font-style:italic}.entry-content q:before{content:"“"}.entry-content q:after{content:"”"}.entry-content pre{padding:5px;overflow:auto;overflow-wrap:initial;border-width:1px;border-style:solid}.entry-content pre,.entry-content code{color:var(--entry-content-code-color);background:var(--entry-content-code-background);border-color:var(--entry-content-code-border-color)}.entry-content table{max-width:100%}.entry-content ul,.entry-content ol{margin-left:30px;margin-top:15px;margin-bottom:15px}.entry-content li ul,.entry-content li ol{margin-top:0;margin-bottom:0}.entry-content ul{list-style-type:square}.entry-content strong{font-weight:600}details.entry-enclosures{margin-top:25px}.entry-enclosures summary{font-weight:500;font-size:1.2em}.entry-enclosure{border:1px dotted var(--entry-enclosure-border-color);padding:5px;margin-top:10px;max-width:100%}.entry-enclosure-download{font-size:.85em;overflow-wrap:break-word}.enclosure-video video,.enclosure-image img{max-width:100%}.confirm{font-weight:500;color:#ed2d04}.confirm a{color:#ed2d04}.loading{font-style:italic}.bookmarklet{border:1px dashed #ccc;border-radius:5px;padding:15px;margin:15px;text-align:center}.bookmarklet a{font-weight:600;text-decoration:none;font-size:1.2em}`, } var StylesheetsChecksums = map[string]string{ - "dark_sans_serif": "2dfc7d1452a607363518d546efc3e4765845a724f4a0093b39aeed4078bdb467", - "dark_serif": "8e620e9e72f40a0bf4cb1c4cab35c7e045108da669b49c570667c3361027afa1", - "light_sans_serif": "9f397acace3cf085c93eeeee583f313b9be4366a4b737488ed2996d5f6ec20b6", - "light_serif": "033da09614f0153e5625def651edc5fd26a093c9c3d8b201482cd068cb86bf2e", - "system_sans_serif": "42f70032058bbd11c6b2db16b2bf30f54840f5f6f17e83b342f68b55e72de381", - "system_serif": "dcd673f091cad387a54ef87cd1766d71ee9b2796ff53e9a79fac7f1584cdf0ef", + "dark_sans_serif": "2d345c8dd3c51b441628e4afa8ab798483b5370de3640ef642c5e1535630afe6", + "dark_serif": "73a1103004368c35a98843c3a36e3d1ee23de3b1431cf1bf7ecdd6ac5f9a7119", + "light_sans_serif": "7e8469cb2d60ccee9a2740563bfc196d6a8b99c8abe4e3ca03b42448a72612e2", + "light_serif": "47b59e37f422a5ad95e50017958cb735d1b0a30bd7983f04fc98f86176fa506c", + "system_sans_serif": "0304ccc714ea4f40ba3e2f7fe0ee7f0002bbcd202c59fde894e328dab0aceb70", + "system_serif": "5918dc1d3d3e7c845af3d95fab2b536c67c8d367ffc47312fc3a099d0663e405", } diff --git a/ui/static/css/common.css b/ui/static/css/common.css index 6aef27f2..030a13c9 100644 --- a/ui/static/css/common.css +++ b/ui/static/css/common.css @@ -353,7 +353,8 @@ select { input[type="search"], input[type="url"], input[type="password"], -input[type="text"] { +input[type="text"], +input[type="number"] { color: var(--input-color); background: var(--input-background); border: var(--input-border); @@ -369,13 +370,18 @@ input[type="text"] { input[type="search"]:focus, input[type="url"]:focus, input[type="password"]:focus, -input[type="text"]:focus { +input[type="text"]:focus, +input[type="number"]:focus { color: var(--input-focus-color); border-color: var(--input-focus-border-color); outline: 0; box-shadow: var(--input-focus-box-shadow); } +#form-entries-per-page { + max-width: 80px; +} + input[type="checkbox"] { margin-bottom: 15px; } diff --git a/ui/unread_entries.go b/ui/unread_entries.go index c49fc30b..e01c941f 100644 --- a/ui/unread_entries.go +++ b/ui/unread_entries.go @@ -43,7 +43,7 @@ func (h *handler) showUnreadPage(w http.ResponseWriter, r *http.Request) { builder.WithOrder(model.DefaultSortingOrder) builder.WithDirection(user.EntryDirection) builder.WithOffset(offset) - builder.WithLimit(nbItemsPerPage) + builder.WithLimit(user.EntriesPerPage) entries, err := builder.GetEntries() if err != nil { html.ServerError(w, r, err) @@ -51,7 +51,7 @@ func (h *handler) showUnreadPage(w http.ResponseWriter, r *http.Request) { } view.Set("entries", entries) - view.Set("pagination", getPagination(route.Path(h.router, "unread"), countUnread, offset)) + view.Set("pagination", getPagination(route.Path(h.router, "unread"), countUnread, offset, user.EntriesPerPage)) view.Set("menu", "unread") view.Set("user", user) view.Set("countUnread", countUnread)