/* Generowanie tekstu przez model — dokładany wyłącznie, gdy konto ma uprawnienie „ai”. Selektory nazywają funkcję, więc arkusz nie może wchodzić do arkuszy ekranów, na których ta funkcja bywa wyłączona. */ /* Okno postępu przy generowaniu horoskopu */ /* z-index ponad Leaflet: jego kontrolki (.leaflet-top/.leaflet-bottom — zoom, atrybucja) siedzą na z-index:1000 i — bo .leaflet-container nie tworzy własnego kontekstu stackowania — trafiają wprost do korzenia. Przy z-index:50 mapa wychodziła NA WIERZCH modala. 1200 daje zapas nad 1000. */ .progress-overlay { position: fixed; inset: 0; background: rgba(8,9,20,.72); display: flex; align-items: center; justify-content: center; z-index: 1200; padding: 1rem; } .progress-overlay[hidden] { display: none; } .progress-box { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.1rem; width: min(38rem, 100%); box-shadow: 0 18px 48px rgba(0,0,0,.45); } .progress-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; } .progress-clock { margin-left: auto; font-family: ui-monospace, Menlo, monospace; color: var(--muted); font-size: .9rem; } .progress-spinner { width: 14px; height: 14px; border-radius: 50%; flex: none; border: 2px solid var(--line); border-top-color: var(--accent); animation: spin .8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .progress-spinner { animation: none; } } .progress-log { list-style: none; margin: 0 0 .6rem; padding: .6rem .7rem; background: #12132a; border: 1px solid var(--line); border-radius: 10px; max-height: 15rem; overflow-y: auto; font-family: ui-monospace, Menlo, monospace; font-size: .78rem; line-height: 1.6; } .progress-log li { color: var(--ink); white-space: pre-wrap; } .progress-log li.log-ok { color: #7fd18b; } .progress-log li.log-warn { color: #e0c060; } .progress-log li.log-err { color: #ef6b6b; }