*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:#0a0a1a;color:#fff;-webkit-font-smoothing:antialiased;transition:background .4s,color .4s}
body.light{background:#f0f0f5;color:#1a1a2e}
body.light .banner{background:linear-gradient(165deg,rgba(109,40,217,.08) 0%,rgba(240,240,245,.95) 50%,rgba(109,40,217,.06) 100%);border-color:rgba(109,40,217,.15)}
body.light .banner .banner-title{background:linear-gradient(135deg,#1a1a2e,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
body.light .schedule-time{background:rgba(109,40,217,.1);border-color:rgba(109,40,217,.2)}
body.light .schedule-time span{color:#1a1a2e}
body.light .schedule-label{color:#1a1a2e}
body.light .address-text{color:#475569}
body.light .address-highlight{color:#7c3aed}
body.light .verse-card{background:rgba(255,255,255,.9);border-color:rgba(109,40,217,.15)}
body.light .verse-text{color:#334155}
body.light .song-title{color:#1a1a2e}
body.light .artist-name{color:#64748b}
body.light .live-badge{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.2)}
body.light .prayer-btn{background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff}
body.light .ctrl-btn{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1);color:#64748b}
body.light .disc{background:radial-gradient(circle,#e2e8f0 0%,#cbd5e1 60%,#94a3b8 100%)}
body.light .top-bar{color:#1a1a2e}
body.light .theme-btn{background:rgba(0,0,0,.05);color:#64748b}

#particles{position:fixed;inset:0;z-index:0;pointer-events:none}

.app{position:relative;width:100%;height:100vh;max-width:480px;margin:0 auto;overflow:hidden}

.bg-logo{position:absolute;inset:0;background:url('logo.png') center center / cover no-repeat;z-index:0;filter:blur(1px) brightness(.9);transform:scale(1.05);transition:filter .4s}

.overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,26,.15) 0%,rgba(10,10,26,.45) 25%,rgba(10,10,26,.8) 55%,rgba(10,10,26,.95) 100%);z-index:1;transition:background .4s}
body.light .overlay{background:linear-gradient(180deg,rgba(240,240,245,.1) 0%,rgba(240,240,245,.4) 25%,rgba(240,240,245,.7) 55%,rgba(240,240,245,.92) 100%)}

.grain{position:absolute;inset:0;z-index:2;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}

.content-wrapper{position:relative;z-index:3;width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;padding:12px 16px 16px;gap:12px;overflow-y:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.content-wrapper::-webkit-scrollbar{width:0}

/* TOAST */
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);z-index:999;display:flex;align-items:center;gap:8px;background:rgba(34,197,94,.9);color:#fff;padding:10px 20px;border-radius:100px;font-size:13px;font-weight:600;backdrop-filter:blur(12px);transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px rgba(34,197,94,.3)}
.toast.show{transform:translateX(-50%) translateY(0)}

/* TOP BAR */
.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:4px 0}
.theme-btn{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s;-webkit-tap-highlight-color:transparent}
.theme-btn:active{transform:scale(.9)}
.app-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;letter-spacing:.5px;color:#e2e8f0}
body.light .app-title{color:#1a1a2e}

/* BANNER */
.banner{width:100%;background:linear-gradient(165deg,rgba(109,40,217,.18) 0%,rgba(30,15,60,.85) 50%,rgba(109,40,217,.12) 100%);border:1px solid rgba(168,85,247,.2);border-radius:20px;padding:18px 16px 14px;position:relative;overflow:hidden;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-shrink:0}
.banner::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(168,85,247,.5),transparent)}
.banner-glow{position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:200px;height:80px;background:radial-gradient(ellipse,rgba(124,58,237,.2) 0%,transparent 70%);pointer-events:none}
.banner-header{display:flex;align-items:center;gap:8px;margin-bottom:14px;justify-content:center}
.banner-icon{width:30px;height:30px;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 12px rgba(124,58,237,.4)}
.banner-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:linear-gradient(135deg,#e2e8f0,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.schedule-grid{display:flex;align-items:center;gap:10px}
.schedule-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px}
.schedule-time{display:flex;align-items:center;gap:5px;background:rgba(124,58,237,.2);padding:5px 12px;border-radius:100px;border:1px solid rgba(124,58,237,.25)}
.schedule-time svg{color:#a78bfa}
.schedule-time span{font-size:15px;font-weight:800;color:#e2e8f0;letter-spacing:.5px}
.schedule-info{display:flex;flex-direction:column;align-items:center;gap:1px}
.schedule-label{font-size:11px;font-weight:600;color:#e2e8f0}
.schedule-sub{font-size:9px;font-weight:400;color:#94a3b8;text-transform:uppercase;letter-spacing:1px}
.schedule-divider{width:1px;height:45px;background:linear-gradient(180deg,transparent,rgba(168,85,247,.3),transparent)}
.address-section{margin-top:12px;text-align:center}
.address-divider{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(168,85,247,.25),transparent)}
.address-divider svg{color:#a78bfa;opacity:.7}
.address-text{font-size:10px;color:#94a3b8;line-height:1.7;font-weight:400}
.address-highlight{color:#c4b5fd;font-weight:600}

/* VERSÍCULO */
.verse-card{width:100%;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px 14px;backdrop-filter:blur(12px);flex-shrink:0;transition:all .3s}
.verse-icon{width:32px;height:32px;min-width:32px;background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(168,85,247,.1));border-radius:10px;display:flex;align-items:center;justify-content:center;color:#a78bfa}
.verse-text{font-size:11px;color:#cbd5e1;line-height:1.6;flex:1;font-style:italic;font-weight:300}
.verse-share{width:32px;height:32px;min-width:32px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s;-webkit-tap-highlight-color:transparent}
.verse-share:active{transform:scale(.9);background:rgba(34,197,94,.15);color:#22c55e;border-color:rgba(34,197,94,.3)}

/* PLAYER */
.player{width:100%;padding:0 4px;display:flex;flex-direction:column;align-items:center;gap:14px;flex-shrink:0}

/* EQUALIZER */
.equalizer{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:32px;opacity:0;transition:opacity .5s}
.equalizer.active{opacity:1}
.eq-bar{width:3px;background:linear-gradient(180deg,#a855f7,#7c3aed);border-radius:3px;height:4px;transition:height .12s ease}

/* DISCO */
.disc-container{position:relative;display:flex;align-items:center;justify-content:center}
.disc-shadow{position:absolute;bottom:-6px;width:130px;height:14px;background:radial-gradient(ellipse,rgba(0,0,0,.5) 0%,transparent 70%);border-radius:50%}
.disc{width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,#1a1a2e 0%,#0d0d1a 60%,#000 100%);position:relative;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px rgba(255,255,255,.06),0 8px 40px rgba(0,0,0,.6),inset 0 0 60px rgba(0,0,0,.3);transition:transform .4s cubic-bezier(.4,0,.2,1)}
.disc.spinning{animation:disc-spin 4s linear infinite}
.disc-inner{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6d28d9,#a855f7);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.9);box-shadow:0 0 20px rgba(109,40,217,.4);position:relative;z-index:2}
.disc-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.04)}
.disc-ring.r1{width:80px;height:80px}
.disc-ring.r2{width:105px;height:105px}
.disc-ring.r3{width:128px;height:128px;border-color:rgba(255,255,255,.06)}

/* INFO */
.info{text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px}
.live-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(239,68,68,.12);color:#f87171;padding:4px 12px;border-radius:100px;font-size:9px;font-weight:700;letter-spacing:2px;border:1px solid rgba(239,68,68,.2);backdrop-filter:blur(8px)}
.live-badge.paused{background:rgba(255,255,255,.06);color:#64748b;border-color:rgba(255,255,255,.08)}
.live-badge.paused .live-dot{background:#64748b;animation:none}
.live-dot{width:5px;height:5px;background:#ef4444;border-radius:50%;animation:live-pulse 1.5s ease-in-out infinite}
.song-title{font-size:18px;font-weight:700;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.artist-name{font-size:11px;color:#94a3b8;font-weight:400;letter-spacing:.3px}

.progress-bar-container{width:100%;padding:0 4px}
.progress-bar{width:100%;height:3px;background:rgba(255,255,255,.08);border-radius:100px;overflow:hidden;position:relative}
.progress-glow{width:40%;height:100%;background:linear-gradient(90deg,#7c3aed,#a855f7);border-radius:100px;animation:progress-flow 3s ease-in-out infinite}

.controls{display:flex;align-items:center;justify-content:center;gap:22px}
.ctrl-btn{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(12px)}
.ctrl-btn:active{transform:scale(.9);background:rgba(255,255,255,.12);color:#e2e8f0}

.play-btn{width:72px;height:72px;border-radius:50%;border:none;background:none;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;-webkit-tap-highlight-color:transparent;transition:transform .25s cubic-bezier(.4,0,.2,1)}
.play-btn:active{transform:scale(.9)}
.play-ring{position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(168,85,247,.25);animation:ring-pulse 3s ease-in-out infinite}
.play-bg{position:absolute;inset:0;background:linear-gradient(135deg,#7c3aed 0%,#9333ea 50%,#a855f7 100%);border-radius:50%;box-shadow:0 4px 20px rgba(124,58,237,.4),0 8px 40px rgba(124,58,237,.2),inset 0 1px 0 rgba(255,255,255,.15)}
.play-btn svg{position:relative;z-index:1}

.volume-panel{display:flex;align-items:center;gap:10px;padding:0 8px;opacity:0;max-height:0;overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1);color:#64748b;width:100%}
.volume-panel.visible{opacity:1;max-height:50px}
.vol-range{flex:1;-webkit-appearance:none;appearance:none;height:3px;background:rgba(255,255,255,.1);border-radius:100px;outline:none}
.vol-range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#a78bfa;cursor:pointer;box-shadow:0 0 10px rgba(124,58,237,.5)}
.vol-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#a78bfa;cursor:pointer;border:none}

/* PRAYER BTN */
.prayer-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:none;border-radius:16px;background:linear-gradient(135deg,rgba(124,58,237,.15),rgba(168,85,247,.1));border:1px solid rgba(124,58,237,.2);color:#c4b5fd;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .25s;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(12px);flex-shrink:0}
.prayer-btn:active{transform:scale(.97);background:linear-gradient(135deg,rgba(124,58,237,.25),rgba(168,85,247,.2))}

/* MODAL */
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal{width:100%;max-width:400px;background:linear-gradient(165deg,#1e0f3c,#150a2a);border:1px solid rgba(168,85,247,.2);border-radius:24px;padding:28px 24px;transform:translateY(20px) scale(.95);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.modal-overlay.active .modal{transform:translateY(0) scale(1)}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.modal-header h3{font-size:18px;font-weight:700;background:linear-gradient(135deg,#fff,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.modal-close{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}
.modal-close:active{transform:scale(.9)}
.modal-input{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 16px;color:#fff;font-size:14px;font-family:inherit;resize:none;outline:none;transition:border-color .2s}
.modal-input::placeholder{color:#64748b}
.modal-input:focus{border-color:rgba(168,85,247,.4)}
.name-input{margin-top:10px;height:48px}
.modal-send{width:100%;margin-top:16px;padding:14px;border:none;border-radius:14px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .25s;box-shadow:0 4px 16px rgba(34,197,94,.3)}
.modal-send:active{transform:scale(.97)}

/* FULLSCREEN */
.fullscreen-player{position:fixed;inset:0;z-index:200;max-width:480px;margin:0 auto;transform:translateY(100%);transition:transform .45s cubic-bezier(.4,0,.2,1);overflow-y:auto;-webkit-overflow-scrolling:touch}
.fullscreen-player.active{transform:translateY(0)}
.fs-bg{position:absolute;inset:0;background:url('logo.png') center center / cover no-repeat;filter:blur(30px) brightness(.6);transform:scale(1.3)}
.fs-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,26,.5) 0%,rgba(10,10,26,.85) 50%,rgba(10,10,26,.98) 100%)}
.fs-content{position:relative;z-index:1;width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px 24px 40px;gap:24px}
.fs-close{align-self:flex-start;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}
.fs-close:active{transform:scale(.9)}

/* FS EQUALIZER */
.fs-visualizer{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:60px;width:100%}
.fs-bar{width:4px;background:linear-gradient(180deg,#a855f7,#7c3aed);border-radius:3px;height:4px;transition:height .12s ease}

/* FS DISC */
.fs-disc-container{position:relative}
.fs-disc{width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#1a1a2e 0%,#0d0d1a 60%,#000 100%);position:relative;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px rgba(255,255,255,.06),0 12px 60px rgba(0,0,0,.6),inset 0 0 80px rgba(0,0,0,.3)}
.fs-disc.spinning{animation:disc-spin 4s linear infinite}
.fs-disc-inner{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#6d28d9,#a855f7);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.9);box-shadow:0 0 30px rgba(109,40,217,.5);position:relative;z-index:2}
.fs-disc-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.04)}
.fs-disc-ring.r1{width:120px;height:120px}
.fs-disc-ring.r2{width:160px;height:160px}
.fs-disc-ring.r3{width:200px;height:200px;border-color:rgba(255,255,255,.06)}

.fs-info{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.fs-title{font-size:24px;font-weight:800;letter-spacing:-.3px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.fs-artist{font-size:14px;color:#94a3b8;font-weight:400}

.fs-controls{display:flex;align-items:center;justify-content:center;gap:28px}
.fs-ctrl{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s;-webkit-tap-highlight-color:transparent}
.fs-ctrl:active{transform:scale(.9)}
.fs-play{width:80px;height:80px;border-radius:50%;border:none;background:none;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;-webkit-tap-highlight-color:transparent;transition:transform .25s}
.fs-play:active{transform:scale(.9)}
.fs-play-bg{position:absolute;inset:0;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:50%;box-shadow:0 4px 24px rgba(124,58,237,.5),0 8px 48px rgba(124,58,237,.25)}
.fs-play svg{position:relative;z-index:1}

.fs-volume{display:flex;align-items:center;gap:10px;width:100%;max-width:300px;color:#64748b;opacity:0;max-height:0;overflow:hidden;transition:all .35s}
.fs-volume.visible{opacity:1;max-height:50px}

.fs-history{width:100%;max-width:340px;margin-top:auto}
.fs-history-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:1.5px;display:block;margin-bottom:10px}
.fs-history-list{display:flex;flex-direction:column;gap:6px;max-height:120px;overflow-y:auto}
.fs-history-list::-webkit-scrollbar{width:0}
.fs-history-item{font-size:12px;color:#94a3b8;padding:8px 12px;background:rgba(255,255,255,.04);border-radius:10px;border:1px solid rgba(255,255,255,.05);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ANIMATIONS */
@keyframes disc-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes live-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
@keyframes ring-pulse{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.06)}}
@keyframes progress-flow{0%{transform:translateX(-100%)}50%{transform:translateX(150%)}100%{transform:translateX(350%)}}
