read.markets/app/routers
Giorgio Gilestro 355593c4f7 css: split cassandra.css into per-section files
Splits the 2571-line cassandra.css into ten focused stylesheets:
tokens (palette + fonts), layout (chrome), panels, dashboard,
portfolio, log-chat, auth, settings, news, public. base.html and
public_base.html load only what they need; auth pages (login,
verify, unsubscribe confirm) load tokens + layout + auth.

Brand drift-detection test repointed at tokens.css (where the
palette now lives). 291 tests still pass.
2026-05-28 12:31:29 +02:00
..
__init__.py initial commit — cassandra v0.1 2026-05-15 21:56:10 +01:00
api.py Revert "i18n: add diagnostic logging to localizer + lang-toggle click path" 2026-05-27 23:55:59 +02:00
auth.py ui: collapsible settings sections + welcome-email + larger auth inputs 2026-05-26 22:32:59 +02:00
chat.py routers: extract chat + ops from api.py 2026-05-27 21:43:17 +02:00
email.py css: split cassandra.css into per-section files 2026-05-28 12:31:29 +02:00
ops.py routers: extract chat + ops from api.py 2026-05-27 21:43:17 +02:00
pages.py log: remove dead _resolve_log_content helper from pages.py 2026-05-27 20:39:28 +02:00
polar_webhook.py stripe: per-cadence cooling-off + manage-subscription button 2026-05-26 20:06:19 +02:00
public.py stripe: wire checkout, customer portal, and webhook for read.markets 2026-05-26 18:45:13 +02:00
stripe_billing.py referrals: close D.3 — both parties get 45 days credit on conversion 2026-05-26 23:05:29 +02:00
sync.py sync: detect orphaned blobs (pepper rotation) + fix AESGCM arg order 2026-05-25 12:49:11 +02:00
ticker_validate.py ticker-validate: add /api/ticker/historical with weekend-walkback 2026-05-27 14:45:52 +02:00
universe.py cleanup: drop stale tombstones and dead config fields 2026-05-27 19:25:33 +02:00