Index: src/views/pages/auth-login.ejs
===================================================================
--- src/views/pages/auth-login.ejs	(revision 923235ee7a5656aa6ab0462142ad54aa41a2e964)
+++ src/views/pages/auth-login.ejs	(revision 5f483e38e1f3f8ccca8ba962aaacb14f4d06f7a3)
@@ -1,7 +1,5 @@
 <%
-  // adminLogin = the hidden admin login page (/auth/admin): shows the
-  // username/password form. The public /auth/login shows visitors
-  // ONLY Google login (listeners/fans). This keeps the admin login
-  // off the page where visitors are directed.
+  // The login page shows the admin username/password form. (Public listener
+  // login via Google was removed — interaction now runs via the fediverse.)
   var _admin = (typeof adminLogin !== 'undefined' && adminLogin);
 %>
@@ -9,25 +7,5 @@
   <h1><%= _admin ? t('auth.admin_login_title') : t('nav.login') %></h1>
   <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
-  <%
-    var GMAP = {
-      admin: { icon: '🔐', title: t('glog.admin_title'),
-        body: t('glog.admin_body'),
-        list: [t('glog.admin_li1'), t('glog.admin_li2'), t('glog.admin_li3')] },
-      session: { icon: '⏱️', title: t('glog.session_title'), body: t('glog.session_body') },
-      email: { icon: '✉️', title: t('glog.email_title'), body: t('glog.email_body') },
-      linked: { icon: '🔗', title: t('glog.linked_title'), body: t('glog.linked_body') },
-      unavailable: { icon: '🚫', title: t('glog.unavailable_title'), body: t('glog.unavailable_body') },
-      failed: { icon: '⚠️', title: t('glog.failed_title'), body: t('glog.failed_body') },
-    };
-    var _g = (typeof gerr !== 'undefined' && gerr && GMAP[gerr]) ? GMAP[gerr] : null;
-  %>
-  <% if (_g) { %>
-    <div class="auth-notice">
-      <div class="auth-notice-icon"><%= _g.icon %></div>
-      <h2 class="auth-notice-title"><%= _g.title %></h2>
-      <p><%= _g.body %></p>
-      <% if (_g.list) { %><ul class="auth-notice-list"><% _g.list.forEach(function(li){ %><li><%- li %></li><% }); %></ul><% } %>
-    </div>
-  <% } else if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
+  <% if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
 
   <% if (_admin) { %>
@@ -51,26 +29,2 @@
 </div>
 
-<style>
-  .auth-notice { border: 1px solid rgba(128,128,128,.28); border-radius: 14px; padding: 18px 20px; margin-bottom: 18px; background: rgba(128,128,128,.06); }
-  .auth-notice-icon { font-size: 26px; }
-  .auth-notice-title { font-size: 17px; margin: 4px 0 8px; }
-  .auth-notice p { margin: 0 0 10px; line-height: 1.55; opacity: .9; }
-  .auth-notice-list { margin: 0; padding-left: 18px; line-height: 1.6; }
-  .auth-notice-list li { margin: 4px 0; }
-  .auth-sub { color: var(--ink-muted); margin: 0 0 1rem; text-align: center; }
-  /* Google button is white → keep text dark at all times, including hover (the global
-     a.btn:hover rule would otherwise make it near-white on white = unreadable). */
-  a.btn-google, a.btn-google:hover { color: #1f1f1f; }
-  .auth-admin-box {
-    display: flex; align-items: center; gap: .75rem;
-    margin-top: 1.25rem; padding: .8rem 1rem;
-    border: 1px solid var(--rule); border-radius: 12px;
-    background: var(--paper-2); color: var(--ink); text-decoration: none;
-    transition: border-color 120ms, background 120ms;
-  }
-  .auth-admin-box:hover { border-color: var(--accent); background: var(--paper); }
-  .auth-admin-box-icon { font-size: 1.3rem; }
-  .auth-admin-box-text { display: flex; flex-direction: column; line-height: 1.3; flex: 1; }
-  .auth-admin-box-text small { color: var(--ink-muted); font-size: .8rem; }
-  .auth-admin-box-arrow { color: var(--ink-muted); font-size: 1.1rem; }
-</style>
Index: src/views/pages/notifications.ejs
===================================================================
--- src/views/pages/notifications.ejs	(revision 923235ee7a5656aa6ab0462142ad54aa41a2e964)
+++ 	(revision )
@@ -1,36 +1,0 @@
-<div class="container notif-page">
-  <h1><%= t('notif.title') %></h1>
-
-  <% if (!items || !items.length) { %>
-    <p class="notif-empty"><%= t('notif.empty') %></p>
-  <% } else { %>
-    <ul class="notif-list">
-      <% items.forEach(function(n){
-           var key = n.type === 'reply' ? 'notif.reply' : (n.type === 'comment' ? 'notif.comment' : 'notif.like');
-           var actor = n.actor_name || t('notif.someone');
-      %>
-        <li class="notif-item<%= n.read ? '' : ' is-unread' %>">
-          <a class="notif-link" href="<%= n.url || '#' %>">
-            <span class="notif-text"><%= t(key, { actor: actor }) %></span>
-            <% if (n.post_title) { %><span class="notif-post">&ldquo;<%= n.post_title %>&rdquo;</span><% } %>
-            <span class="notif-time"><%= formatDateTime(n.created_at) %></span>
-          </a>
-        </li>
-      <% }); %>
-    </ul>
-  <% } %>
-</div>
-
-<style>
-.notif-page { max-width: 640px; margin: 2.5rem auto; padding: 0 1rem; }
-.notif-page h1 { font-family: var(--font-display, serif); font-size: 1.8rem; margin: 0 0 1.25rem; }
-.notif-empty { color: var(--ink-muted, var(--ink-soft)); }
-.notif-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
-.notif-item { border: 1px solid var(--rule); border-radius: 10px; background: var(--paper-2); }
-.notif-item.is-unread { border-color: var(--accent); }
-.notif-link { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.7rem 0.9rem; color: var(--ink); text-decoration: none; }
-.notif-link:hover { background: var(--paper); }
-.notif-text { font-size: 0.95rem; }
-.notif-post { color: var(--ink-soft, var(--ink-muted)); font-size: 0.9rem; }
-.notif-time { color: var(--ink-soft, var(--ink-muted)); font-size: 0.78rem; }
-</style>
