.QiblaCompass-module__zkMTlq__container{background:var(--card-bg);box-shadow:0 4px 20px var(--shadow);border-radius:16px;margin-bottom:2rem;padding:2rem;transition:all .3s}.QiblaCompass-module__zkMTlq__header{text-align:center;margin-bottom:2rem}.QiblaCompass-module__zkMTlq__title{color:var(--text);justify-content:center;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.5rem;font-weight:700;display:flex}.QiblaCompass-module__zkMTlq__titleIcon{font-size:1.75rem}.QiblaCompass-module__zkMTlq__location{color:var(--text-secondary);margin:0;font-size:.875rem}.QiblaCompass-module__zkMTlq__warning{border:1px solid var(--accent);color:var(--text);background:#d4af371a;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.QiblaCompass-module__zkMTlq__error{text-align:center;color:var(--error);padding:2rem}.QiblaCompass-module__zkMTlq__errorIcon{margin-bottom:1rem;font-size:3rem;display:block}.QiblaCompass-module__zkMTlq__hint{color:var(--text-secondary);margin-top:.5rem;font-size:.875rem}.QiblaCompass-module__zkMTlq__permissionButton{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-bottom:1rem;padding:1rem;font-size:1rem;font-weight:600;transition:background .3s}.QiblaCompass-module__zkMTlq__permissionButton:hover{background:var(--primary-dark)}.QiblaCompass-module__zkMTlq__compassContainer{justify-content:center;align-items:center;margin:2rem 0;display:flex}.QiblaCompass-module__zkMTlq__compass{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);width:280px;height:280px;box-shadow:0 0 0 8px var(--primary-glow), 0 0 0 16px var(--primary-glow-outer), 0 10px 30px #0003;border-radius:50%;position:relative}.QiblaCompass-module__zkMTlq__compassRose{width:100%;height:100%;transition:transform 80ms linear;position:absolute;top:0;left:0}.QiblaCompass-module__zkMTlq__cardinalN,.QiblaCompass-module__zkMTlq__cardinalE,.QiblaCompass-module__zkMTlq__cardinalS,.QiblaCompass-module__zkMTlq__cardinalW{color:#fff;text-shadow:0 2px 4px #0000004d;font-size:1.25rem;font-weight:700;position:absolute}.QiblaCompass-module__zkMTlq__cardinalN{color:var(--accent);font-size:1.5rem;top:15px;left:50%;transform:translate(-50%)}.QiblaCompass-module__zkMTlq__cardinalE{top:50%;right:15px;transform:translateY(-50%)}.QiblaCompass-module__zkMTlq__cardinalS{bottom:15px;left:50%;transform:translate(-50%)}.QiblaCompass-module__zkMTlq__cardinalW{top:50%;left:15px;transform:translateY(-50%)}.QiblaCompass-module__zkMTlq__majorTick,.QiblaCompass-module__zkMTlq__minorTick{transform-origin:50% 135px;background:#ffffff80;width:2px;height:15px;position:absolute;top:5px;left:50%}.QiblaCompass-module__zkMTlq__majorTick{background:#fffc;width:3px;height:20px}.QiblaCompass-module__zkMTlq__arrowContainer{width:100%;height:100%;transition:transform 80ms linear;position:absolute;top:0;left:0}.QiblaCompass-module__zkMTlq__arrow{flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.QiblaCompass-module__zkMTlq__arrowHead{filter:drop-shadow(0 4px 8px #0000004d);font-size:2.5rem;animation:2s ease-in-out infinite QiblaCompass-module__zkMTlq__float}@keyframes QiblaCompass-module__zkMTlq__float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.QiblaCompass-module__zkMTlq__arrowLine{background:linear-gradient(#ffffffe6,#fff3);border-radius:2px;width:4px;height:80px;box-shadow:0 2px 8px #0000004d}.QiblaCompass-module__zkMTlq__centerDot{background:#fff;border:2px solid #0003;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.QiblaCompass-module__zkMTlq__info{grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0;display:grid}.QiblaCompass-module__zkMTlq__infoItem{background:var(--hover-bg);text-align:center;border-radius:8px;padding:1rem;transition:background-color .3s}.QiblaCompass-module__zkMTlq__infoLabel{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.75rem;display:block}.QiblaCompass-module__zkMTlq__infoValue{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;display:block}.QiblaCompass-module__zkMTlq__instructions{background:var(--hover-bg);border:1px solid var(--border);border-radius:8px;margin-top:1.5rem;padding:1rem}.QiblaCompass-module__zkMTlq__instructions p{color:var(--text);margin:0;font-size:.875rem;line-height:1.5}@media (max-width:768px){.QiblaCompass-module__zkMTlq__container{padding:1.5rem}.QiblaCompass-module__zkMTlq__compass{width:240px;height:240px}.QiblaCompass-module__zkMTlq__majorTick,.QiblaCompass-module__zkMTlq__minorTick{transform-origin:50% 115px}.QiblaCompass-module__zkMTlq__arrowHead{font-size:2rem}.QiblaCompass-module__zkMTlq__arrowLine{height:60px}}@media (max-width:480px){.QiblaCompass-module__zkMTlq__compass{width:200px;height:200px}.QiblaCompass-module__zkMTlq__majorTick,.QiblaCompass-module__zkMTlq__minorTick{transform-origin:50% 95px}.QiblaCompass-module__zkMTlq__info{grid-template-columns:1fr;gap:.75rem}}.QiblaCompass-module__zkMTlq__compass.QiblaCompass-module__zkMTlq__aligned{background:linear-gradient(135deg,#10b981 0%,#059669 100%);box-shadow:0 0 0 8px #10b98140,0 0 0 16px #10b9811f,0 10px 30px #10b98159}.QiblaCompass-module__zkMTlq__compass.QiblaCompass-module__zkMTlq__aligned .QiblaCompass-module__zkMTlq__arrowHead{filter:drop-shadow(0 0 8px #fffc);animation:1s ease-in-out infinite alternate QiblaCompass-module__zkMTlq__pulseAligned;transform:scale(1.2)}@keyframes QiblaCompass-module__zkMTlq__pulseAligned{0%{transform:scale(1.1)}to{transform:scale(1.3)}}.QiblaCompass-module__zkMTlq__alignmentAlert{border:1px solid var(--success);color:var(--success);text-align:center;background:#10b9811f;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.75rem 1rem;font-size:1rem;font-weight:700;animation:.3s ease-out QiblaCompass-module__zkMTlq__fadeIn;display:flex}@keyframes QiblaCompass-module__zkMTlq__fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
