
.fab-container{pointer-events:auto;z-index:50;flex-direction:column;align-items:flex-end;gap:0;margin:0;padding:0;display:flex;position:fixed}.fab-mobile-guest{padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px);position:fixed;bottom:24px;right:24px}.fab-mobile-auth{padding-right:env(safe-area-inset-right,0px);position:fixed;bottom:100px;right:24px}.fab-button{cursor:pointer;z-index:51;border-radius:9999px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 12px #00000026}.fab-button:hover{transform:scale(1.05);box-shadow:0 8px 16px #0003}.fab-menu{pointer-events:none;flex-direction:column;align-items:flex-end;gap:12px;min-width:200px;margin-bottom:16px;display:flex;position:absolute;bottom:100%;right:0}.fab-menu>*{pointer-events:auto}.fab-label{background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));white-space:nowrap;opacity:0;pointer-events:none;border-radius:8px;padding:6px 12px;font-size:.875rem;font-weight:500;transition:opacity .2s;box-shadow:0 4px 12px #0000001a}.group:hover .fab-label{opacity:1}@media (min-width:1024px){.fab-container{float:right;margin-right:32px;position:sticky;inset:calc(100vh - 100px) auto 32px}.fab-button{width:56px;height:56px}.fab-mobile-auth,.fab-mobile-guest{bottom:auto;right:auto}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
.article-lock-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#fffffff2;border:1px solid #0000000d;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:400px;margin:20px 0;padding:40px 20px;display:flex;position:relative}.dark .article-lock-overlay{background-color:#0a0a0af2;border-color:#ffffff0d}.lock-card{text-align:center;background:#fff;border:1px solid #0000000d;border-radius:16px;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:480px;padding:40px;animation:.5s ease-out slideUpFade;display:flex;box-shadow:0 20px 40px -10px #0000001a}.dark .lock-card{background:#18181b;border:1px solid #ffffff14;box-shadow:0 20px 40px -10px #0000004d}.lock-icon-wrapper{background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:8px;display:flex}.dark .lock-icon-wrapper{background:#dc26261a}.lock-icon{color:#dc2626;width:48px;height:48px}.lock-title{color:#111827;margin:0;font-size:24px;font-weight:700;line-height:1.2}.dark .lock-title{color:#f9fafb}.lock-message{color:#6b7280;max-width:360px;margin:0;font-size:15px;line-height:1.6}.dark .lock-message{color:#9ca3af}.journal-info-preview{text-align:left;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:12px;width:100%;margin-top:8px;padding:12px;display:flex}.dark .journal-info-preview{background:#27272a;border-color:#3f3f46}.journal-cover-small{-o-object-fit:cover;object-fit:cover;border-radius:8px;flex-shrink:0;width:48px;height:48px}.journal-text{flex:1;min-width:0}.journal-title-sm{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;display:block;overflow:hidden}.dark .journal-title-sm{color:#f3f4f6}.journal-author-sm{color:#6b7280;font-size:12px}.dark .journal-author-sm{color:#9ca3af}.lock-actions{flex-direction:column;gap:12px;width:100%;margin-top:8px;display:flex}.btn-lock-primary{color:#fff;cursor:pointer;background:#111827;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-weight:600;transition:all .2s;display:flex}.btn-lock-primary:hover{background:#1f2937;transform:translateY(-1px)}.dark .btn-lock-primary{color:#111827;background:#f3f4f6}.dark .btn-lock-primary:hover{background:#e5e7eb}.btn-lock-secondary{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;width:100%;padding:10px 20px;font-weight:500;transition:all .2s}.btn-lock-secondary:hover{color:#111827;background:#f3f4f6}.dark .btn-lock-secondary{color:#9ca3af}.dark .btn-lock-secondary:hover{color:#f3f4f6;background:#27272a}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (min-width:640px){.lock-actions{flex-direction:row}}
