/* Login-only journal card. No backdrop; only the visible card receives input. */
#ganzhi-journal-float {
    --gzj-safe-left: env(safe-area-inset-left, 0px);
    --gzj-safe-right: env(safe-area-inset-right, 0px);
    --gzj-safe-top: env(safe-area-inset-top, 0px);
    --gzj-safe-bottom: env(safe-area-inset-bottom, 0px);
    position: fixed; left: 16px; top: 160px; z-index: 700;
    width: 184px; padding: 0; margin: 0; border: 0;
    font-family: "Microsoft YaHei UI", "Microsoft YaHei", -apple-system, sans-serif;
    font-size: 12px; line-height: 1.4; text-align: left; color: #15463e;
}
#ganzhi-journal-float, #ganzhi-journal-float * { box-sizing: border-box; }
#ganzhi-journal-float .gzj-card {
    width: 100%; overflow: hidden; border: 1px solid #c7d8d2; border-radius: 12px;
    background: #fff; box-shadow: 0 8px 26px rgba(9,54,47,.16);
    animation: gzj-drift 8s ease-in-out infinite alternate;
}
#ganzhi-journal-float .gzj-bar { display: flex; align-items: center; background: #f4f8f5; }
#ganzhi-journal-float button {
    appearance: none; -webkit-appearance: none; display: flex; align-items: center;
    justify-content: center; flex: 0 0 44px; width: 44px; height: 44px;
    padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent;
    color: #396057; font: inherit; line-height: 1; cursor: pointer;
}
#ganzhi-journal-float button:hover { color: #104c3f; background: #e1ece6; }
#ganzhi-journal-float button:focus-visible, #ganzhi-journal-float a:focus-visible {
    outline: 2px solid #12654e; outline-offset: -3px;
}
#ganzhi-journal-float .gzj-drag {
    flex: 1 1 auto; width: auto; gap: 5px; font-size: 12px; font-weight: 600;
    cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none;
}
#ganzhi-journal-float[data-dragging="true"] .gzj-drag { cursor: grabbing; }
#ganzhi-journal-float .gzj-grip { font-size: 17px; font-weight: 400; }
#ganzhi-journal-float .gzj-pause { font-size: 14px; }
#ganzhi-journal-float .gzj-close { font-size: 24px; font-weight: 300; }
#ganzhi-journal-float .gzj-link { display: block; color: #165849; text-decoration: none; background: #fff; }
#ganzhi-journal-float .gzj-cover {
    display: block; width: 100%; height: auto; margin: 0; border: 0;
    aspect-ratio: 3 / 4; object-fit: contain; background: #073d36;
}
#ganzhi-journal-float .gzj-caption {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 36px; padding: 6px; font-size: 12px; font-weight: 600;
}
#ganzhi-journal-float .gzj-short-title { display: none; }
#ganzhi-journal-float[data-compact="true"] { width: 288px; }
#ganzhi-journal-float[data-compact="true"] .gzj-card { display: flex; align-items: center; min-height: 62px; }
#ganzhi-journal-float[data-compact="true"] .gzj-bar { display: contents; }
#ganzhi-journal-float[data-compact="true"] .gzj-drag { order: 0; flex: 0 0 44px; width: 44px; height: 60px; }
#ganzhi-journal-float[data-compact="true"] .gzj-drag-label,
#ganzhi-journal-float[data-compact="true"] .gzj-full-title { display: none; }
#ganzhi-journal-float[data-compact="true"] .gzj-pause { order: 2; }
#ganzhi-journal-float[data-compact="true"] .gzj-close { order: 3; }
#ganzhi-journal-float[data-compact="true"] .gzj-link { display: flex; align-items: center; flex: 1 1 auto; min-width: 0; order: 1; }
#ganzhi-journal-float[data-compact="true"] .gzj-cover { width: 33px; height: 44px; flex: 0 0 33px; }
#ganzhi-journal-float[data-compact="true"] .gzj-caption { padding: 4px 5px; font-size: 11px; gap: 2px; }
#ganzhi-journal-float[data-compact="true"] .gzj-short-title { display: inline; }
#ganzhi-journal-float[data-still="true"] .gzj-card,
#ganzhi-journal-float:hover .gzj-card,
#ganzhi-journal-float:focus-within .gzj-card { animation-play-state: paused; }
@keyframes gzj-drift { from { transform: translateY(-6px); } to { transform: translateY(6px); } }
@media (max-width: 600px) {
    #ganzhi-journal-float { width: 148px; }
    #ganzhi-journal-float .gzj-drag-label { font-size: 11px; }
    #ganzhi-journal-float .gzj-grip { display: none; }
    #ganzhi-journal-float[data-compact="true"] .gzj-grip { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
    #ganzhi-journal-float .gzj-card { animation: none; }
}
