:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light dark;background:#f3f5f9;color:#111827}*{box-sizing:border-box}body{margin:0}main{max-width:700px;margin:auto;min-height:100vh;background:#fff;padding:env(safe-area-inset-top) 18px env(safe-area-inset-bottom)}header{display:flex;align-items:center;justify-content:space-between;padding:28px 0 16px}small{color:#64748b;font-size:11px;letter-spacing:.15em}h1{margin:4px 0;font-size:32px}button{cursor:pointer;border:0;border-radius:12px;padding:11px 15px;background:#e9eef8;color:#1e293b;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}#refresh{font-size:24px}nav{display:flex;gap:8px;overflow-x:auto;padding:8px 0 18px}nav button{white-space:nowrap}nav button.active{background:#1d4ed8;color:#fff}#status{font-size:13px;color:#64748b}article{padding:17px 2px;border-bottom:1px solid #e2e8f0}article h3{font-size:16px;margin:6px 0}article p{white-space:pre-wrap;overflow-wrap:anywhere;color:#475569;font-size:14px}article small{letter-spacing:0}time{font-size:12px;color:#64748b}.settings{border-top:1px solid #e2e8f0;margin-top:35px;padding:16px 0 30px}.settings h2{font-size:18px}.settings p{font-size:13px;color:#64748b}@media(prefers-color-scheme:dark){:root{background:#10141d;color:#f1f5f9}main{background:#171d28}button{background:#293548;color:#e2e8f0}article{border-color:#334155}article p,.settings p,#status{color:#a4b2c6}.settings{border-color:#334155}}
[hidden]{display:none!important}.login{display:grid;gap:12px;padding:20px;border-radius:16px;background:#eef3ff;margin-bottom:15px}.login h2{margin:0;font-size:20px}.login label{display:grid;gap:5px;font-size:14px}.login input{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:12px;font:inherit}.login button{background:#1d4ed8;color:white}#logout{margin-bottom:10px}@media(prefers-color-scheme:dark){.login{background:#243148}.login input{background:#151c28;color:white;border-color:#475569}}

.install-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#eaf1ff,#f9fbff)}.install-card{max-width:400px;width:100%;text-align:center;padding:32px 24px;border-radius:24px;background:#fff;box-shadow:0 16px 45px #1d4ed81a;color:#111827}.install-card img{border-radius:24px}.install-card h1{margin:20px 0 12px}.install-card p{line-height:1.5;color:#475569}.install-primary{display:block;width:100%;background:#1d4ed8;color:white;font-size:16px;margin:28px 0 12px;padding:16px}.install-card #browser-preview{background:transparent;color:#64748b}.install-card #install-hint{background:#eff6ff;padding:14px;border-radius:12px;text-align:left;font-size:14px;color:#1e3a8a}@media(prefers-color-scheme:dark){.install-screen{background:#101827}.install-card{background:#1b2638;color:#f8fafc}.install-card p{color:#cbd5e1}.install-card #install-hint{background:#253d62;color:#e0edff}}

.header-actions{display:flex;align-items:center;gap:10px}#app-menu{position:relative}#app-menu summary{list-style:none;cursor:pointer;border-radius:12px;padding:12px 15px;background:#e9eef8;font-size:20px;line-height:1.2}#app-menu summary::-webkit-details-marker{display:none}.menu-content{position:absolute;right:0;top:calc(100% + 8px);z-index:5;min-width:140px;padding:8px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 12px 28px #0002}.menu-content button{width:100%;text-align:left}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0 18px}.filter-row label{font-size:14px;font-weight:600}.filter-row select{max-width:70%;min-width:170px;border:1px solid #cbd5e1;border-radius:12px;padding:11px 36px 11px 13px;background:#f1f5f9;color:#111827;font:inherit;font-size:14px}#app-screen:has(.login:not([hidden])) .filter-row,#app-screen:has(.login:not([hidden])) #refresh,#app-screen:has(.login:not([hidden])) #feed{display:none}.login{margin-top:45px}.login h2{text-align:center;margin-bottom:8px}@media(prefers-color-scheme:dark){#app-menu summary{background:#293548;color:#e2e8f0}.menu-content{background:#1b2638;border-color:#334155}.filter-row select{background:#293548;color:#f8fafc;border-color:#475569}}

/* Login is a dedicated screen, not an empty event feed. Use an explicit state class for iOS Safari. */
#app-screen.is-login header,#app-screen.is-login .filter-row,#app-screen.is-login #feed{display:none!important}
#app-screen.is-login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-bottom:max(32px,env(safe-area-inset-bottom))}
#app-screen.is-login .login{margin:0;background:transparent;padding:0;border-radius:0;gap:16px}
#app-screen.is-login .login h2{font-size:30px;text-align:left;margin-bottom:12px}
#app-screen.is-login .login label{font-size:15px;gap:8px}
#app-screen.is-login .login input{font-size:16px;min-height:52px}
#app-screen.is-login .login button{min-height:52px;font-size:16px}
#app-screen.is-login #status{margin-top:18px}

.status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 12px}.status-row #status{margin:0;flex:1}.status-row #refresh{font-size:21px;line-height:1;padding:8px 12px;flex-shrink:0}#app-screen.is-login .status-row #refresh{display:none}
