.sync-btn{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:99px;background:#ffffff70;color:var(--muted);font:700 10px inherit;cursor:pointer;white-space:nowrap}.sync-btn i{width:8px;height:8px;border-radius:50%;background:#9aa29e}.sync-btn[data-state="synced"]{color:var(--green);border-color:#8eaa9e}.sync-btn[data-state="synced"] i{background:#4e9c6b;box-shadow:0 0 0 3px #4e9c6b20}.sync-btn[data-state="syncing"] i{background:#d4a72c;animation:pulse 1s infinite}.sync-btn[data-state="offline"] i,.sync-btn[data-state="error"] i{background:var(--red)}@keyframes pulse{50%{opacity:.35}}
.login-dialog{width:min(430px,calc(100vw - 30px));height:auto;padding:0;border-radius:18px}.login-dialog form{position:relative;padding:32px}.login-dialog h2{margin:8px 0;font:400 32px Georgia,"STSong",serif}.login-dialog form>p:not(.eyebrow):not(.login-error){color:var(--muted);font-size:13px;line-height:1.7}.login-dialog label{display:grid;gap:7px;margin:21px 0 8px;color:var(--green);font-size:11px;font-weight:800}.login-dialog input{width:100%;padding:14px;border:1px solid var(--line);border-radius:8px;background:white;font:20px/1.2 Consolas;letter-spacing:.12em}.login-dialog .primary,.login-dialog .secondary{width:100%;margin-top:10px}.dialog-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border:0;border-radius:50%;background:#edf0eb;color:var(--green);font-size:22px;cursor:pointer}.login-error{min-height:20px;margin:5px 0;color:var(--red);font-size:12px}.offline-toast{position:fixed;z-index:20;left:50%;bottom:18px;transform:translate(-50%,130%);padding:11px 16px;border-radius:99px;background:#202824;color:white;font-size:11px;box-shadow:0 10px 35px #0004;transition:.25s}.offline-toast.show{transform:translate(-50%,0)}@media(max-width:600px){.shell{padding-bottom:calc(50px + env(safe-area-inset-bottom))}header{height:auto;min-height:72px;padding:10px 0;gap:8px}.profile-controls{gap:5px}.profile-btn{padding:7px 9px}.sync-btn span{display:none}.sync-btn{padding:9px}.sync-btn i{width:10px;height:10px}.login-dialog form{padding:28px 22px}}
