In Theseus, Pithos now links the person's Theseus ID to their hosted account by itself, once, right after signing in to Silent Mode (or on the first look at an account already signed in): one consent prompt, then Pithos is listed under Settings › Theseus ID. On a Theseus without the add-on API it does nothing, so the add-on can ship before the Theseus release that carries it. The gateway serves /console on its own origin: sign in with the Theseus ID and see the account's state, sign-up, usage and Theseus ID, with a console session that cannot reach files. Three fixed files under a CSP that allows only this origin. The bundled copy in TheseusNavigator/bundled-addons/pithos is rebuilt from Pithos/ with no version bump; the release that ships it bumps the version.
25 lines
1.6 KiB
CSS
25 lines
1.6 KiB
CSS
:root {
|
|
color-scheme: light dark;
|
|
--bg: #f6f7f9; --card: #ffffff; --ink: #1a1f2b; --mut: #5c6577; --line: rgba(0, 0, 0, .12);
|
|
--accent: #1e8f6a; --accent-ink: #ffffff; --danger: #b32d2e;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root { --bg: #0f1621; --card: #1c222c; --ink: #e7eaf1; --mut: #8b98a9; --line: rgba(255, 255, 255, .12); --accent: #3ddc97; --accent-ink: #0b1f18; --danger: #f6768a; }
|
|
}
|
|
* { box-sizing: border-box; }
|
|
body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
|
|
main { max-width: 560px; margin: 48px auto; padding: 24px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
|
|
@media (max-width: 600px) { main { margin: 0; border-radius: 0; border-width: 0 0 1px; padding: 20px 16px; } }
|
|
h1 { font-size: 22px; margin: 0 0 8px; }
|
|
.lead, .note { color: var(--mut); }
|
|
.note { font-size: 13.5px; }
|
|
button { font: inherit; font-weight: 600; padding: 10px 16px; border-radius: 8px; border: 1px solid transparent; background: var(--accent); color: var(--accent-ink); cursor: pointer; }
|
|
button.secondary { background: transparent; color: var(--ink); border-color: var(--line); font-weight: 500; }
|
|
button:disabled { opacity: .6; cursor: default; }
|
|
button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
[hidden] { display: none !important; }
|
|
dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 16px 0 20px; }
|
|
dt { color: var(--mut); }
|
|
dd { margin: 0; overflow-wrap: anywhere; }
|
|
#status { min-height: 1.5em; font-size: 14px; }
|
|
#status.error { color: var(--danger); font-weight: 600; }
|