/* ============================================================
   KEMETI CALENDAR v5.0 — modals.css
   Music Player + PWA Banner
   ============================================================ */

/* ============ MUSIC MODAL ============ */
.music-modal{
  position:fixed;inset:0;z-index:998;
  background:rgba(0,0,0,.88);
  display:none;align-items:center;justify-content:center;
  padding:20px;backdrop-filter:blur(8px);
}

.music-modal.on{display:flex}

.music-box{
  background:linear-gradient(180deg,rgba(28,28,40,.98),rgba(14,14,20,.99));
  border:2px solid var(--gold);border-radius:12px;
  padding:24px 20px;max-width:480px;width:100%;
  max-height:92vh;overflow-y:auto;position:relative;
  box-shadow:0 20px 80px rgba(0,0,0,.8),0 0 0 6px rgba(20,20,28,.95),0 0 0 7px var(--gold-deep);
}

body.light .music-box{
  background:linear-gradient(180deg,rgba(255,252,240,.98),rgba(240,232,210,.99));
}

.music-box .close-btn{
  position:absolute;top:12px;left:12px;
  background:transparent;border:none;color:var(--muted);
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border-radius:8px;z-index:2;
}

.music-box .close-btn svg{width:18px;height:18px}

.music-title{
  text-align:center;color:var(--gold);
  font-size:14px;font-weight:800;
  letter-spacing:3px;text-transform:uppercase;
  margin-bottom:18px;padding-bottom:12px;
  border-bottom:1px solid var(--line-soft);
}

/* ============ MUSIC NOW ============ */
.music-now{
  text-align:center;padding:18px 12px;
  background:linear-gradient(180deg,rgba(212,175,55,.08),transparent);
  border:1px solid var(--line-soft);border-radius:8px;margin-bottom:16px;
}

.music-now.hidden{display:none}

.music-now .disc{
  width:80px;height:80px;margin:0 auto 12px;border-radius:50%;
  background:radial-gradient(circle,#1a1a24 0%,#0a0a0f 60%,#2a2a35 100%);
  border:2px solid var(--gold-dark);
  display:flex;align-items:center;justify-content:center;
}

.music-now .disc svg{width:32px;height:32px;fill:var(--gold)}

.music-now .disc.spinning svg{animation:discSpin 3s linear infinite}

@keyframes discSpin{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}

.music-now .track-name{
  font-size:14px;color:var(--gold-bright);font-weight:800;margin-bottom:4px;
}

.music-now .track-sub{
  font-size:11px;color:var(--muted);font-weight:600;
}

/* ============ MUSIC YT WRAP ============ */
.music-yt-wrap{
  position:relative;width:100%;padding-bottom:56.25%;
  background:#000;border-radius:8px;overflow:hidden;
  margin-bottom:12px;border:1px solid var(--line-soft);
  box-shadow:0 4px 20px rgba(0,0,0,.4);display:none;
}

.music-yt-wrap.on{display:block}

.music-yt-wrap > div,
.music-yt-wrap iframe{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;border:0!important;
}

/* ============ MUSIC CONTROLS ============ */
.music-controls{
  display:flex;justify-content:center;align-items:center;
  gap:12px;margin-bottom:14px;
}

.music-controls button{
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);
  background:radial-gradient(circle at 30% 25%,rgba(80,70,40,.9),rgba(20,20,30,.95));
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
}

body.light .music-controls button{
  background:radial-gradient(circle at 30% 25%,rgba(240,230,200,.9),rgba(200,185,150,.95));
}

.music-controls button svg{width:20px;height:20px}

.music-controls button.main{
  width:60px;height:60px;
  background:radial-gradient(circle at 30% 25%,var(--gold-bright),var(--gold) 50%,var(--gold-dark));
  color:var(--on-gold);border-color:var(--gold-bright);
  box-shadow:0 0 30px rgba(212,175,55,.5);
}

.music-controls button.main svg{width:26px;height:26px}

.music-controls .mode{width:36px;height:36px;font-size:15px;opacity:.7}

.music-controls .mode.on{
  background:linear-gradient(180deg,var(--gold-bright),var(--gold-dark));
  color:var(--on-gold);opacity:1;
}

/* ============ MUSIC PROGRESS ============ */
.music-progress{
  height:6px;background:rgba(0,0,0,.4);
  border-radius:4px;overflow:hidden;
  margin-bottom:6px;cursor:pointer;
}

.music-progress .bar{
  height:100%;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-bright));
  border-radius:4px;width:0%;transition:width .2s linear;
}

.music-times{
  display:flex;justify-content:space-between;
  font-size:10px;color:var(--muted);font-weight:700;
  margin-bottom:14px;font-variant-numeric:tabular-nums;
}

/* ============ MUSIC VOLUME ============ */
.music-volume{
  display:flex;align-items:center;gap:10px;
  margin-bottom:16px;padding:8px 12px;
  background:rgba(0,0,0,.3);border-radius:6px;
  border:1px solid var(--line-soft);
}

.music-volume svg{width:16px;height:16px;fill:var(--gold)}

.music-volume input[type=range]{
  flex:1;-webkit-appearance:none;appearance:none;
  height:4px;background:rgba(212,175,55,.2);
  border-radius:4px;outline:none;
}

.music-volume input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:16px;height:16px;border-radius:50%;
  background:linear-gradient(180deg,var(--gold-bright),var(--gold-dark));
  border:1px solid var(--gold-bright);cursor:pointer;
}

/* ============ MUSIC TABS ============ */
.music-add-tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
  margin-bottom:12px;background:rgba(0,0,0,.3);
  padding:4px;border-radius:6px;
}

.music-tab{
  padding:9px 12px;border-radius:4px;border:none;
  background:transparent;color:var(--muted);
  font-size:12px;font-weight:700;
}

.music-tab.active{
  background:linear-gradient(180deg,var(--gold-bright),var(--gold) 50%,var(--gold-dark));
  color:var(--on-gold);
}

.music-tab-content{display:none}
.music-tab-content.active{display:block}

/* ============ MUSIC ADD FORM ============ */
.music-add-form{
  display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:8px;
}

.music-add-form input{
  padding:10px 12px;border:1px solid var(--line-soft);
  border-radius:6px;background:var(--card2);color:var(--text);
  font-size:12.5px;font-weight:600;
}

.music-add-form input:focus{outline:none;border-color:var(--gold)}

.music-add-form .btn{padding:10px 14px;font-size:11px}

.music-add-form .url-input{
  grid-column:1/-1;font-size:11px;direction:ltr;text-align:left;
}

.music-note{
  font-size:10.5px;color:var(--muted);line-height:1.6;
  padding:8px 12px;background:rgba(212,175,55,.06);
  border-radius:6px;border-right:2px solid var(--gold-dark);
  margin-bottom:12px;font-weight:600;
}

/* ============ MUSIC UPLOAD ZONE ============ */
.music-upload-zone{
  border:2px dashed var(--line-soft);border-radius:8px;
  padding:24px 16px;text-align:center;
  transition:all .25s;margin-bottom:8px;background:rgba(0,0,0,.15);
}

.music-upload-zone:hover,
.music-upload-zone.dragover{
  border-color:var(--gold);background:rgba(212,175,55,.06);
}

.music-upload-zone svg{
  width:38px;height:38px;fill:var(--gold);opacity:.7;
  margin:0 auto 10px;display:block;
}

.music-upload-zone .uz-title{
  font-size:14px;color:var(--gold);font-weight:800;margin-bottom:5px;
}

.music-upload-zone .uz-sub{
  font-size:10.5px;color:var(--muted);font-weight:600;line-height:1.6;
}

/* ============ MUSIC LIST ============ */
.music-list-title{
  font-size:10.5px;color:var(--gold);font-weight:800;
  letter-spacing:2px;text-transform:uppercase;
  margin-bottom:8px;padding-bottom:6px;
  border-bottom:1px solid var(--line-soft);
}

.music-list{
  display:flex;flex-direction:column;gap:6px;
  max-height:240px;overflow-y:auto;
}

.music-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:6px;
  background:linear-gradient(180deg,rgba(28,28,40,.8),rgba(14,14,20,.9));
  border:1px solid var(--line-soft);
  transition:all .2s;
}

.music-item:hover{border-color:var(--gold);transform:translateX(-3px)}

.music-item.on{
  border-color:var(--gold-bright);
  background:linear-gradient(180deg,rgba(212,175,55,.15),rgba(212,175,55,.03));
}

.music-item .play-icon{
  width:28px;height:28px;border-radius:50%;
  background:radial-gradient(circle at 30% 25%,rgba(212,175,55,.25),rgba(212,175,55,.08));
  border:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

.music-item.on .play-icon{
  background:radial-gradient(circle at 30% 25%,var(--gold-bright),var(--gold-dark));
}

.music-item .play-icon svg{width:12px;height:12px;fill:var(--gold)}
.music-item.on .play-icon svg{fill:var(--on-gold)}

.music-item .info{flex:1;min-width:0}

.music-item .info .n{
  font-size:12.5px;color:var(--text);font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.music-item.on .info .n{color:var(--gold-bright)}

.music-item .info .s{
  font-size:10px;color:var(--muted);font-weight:600;
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;
}

.music-item .source-tag{
  display:inline-block;font-size:9px;color:var(--gold);
  font-weight:800;padding:1px 6px;border-radius:4px;
  background:rgba(212,175,55,.18);
  border:1px solid rgba(212,175,55,.35);
}

.music-item .source-tag.yt{
  background:rgba(230,80,80,.15);border-color:rgba(230,80,80,.4);color:#e05a5a;
}

.music-item .source-tag.up{
  background:rgba(127,176,105,.15);border-color:rgba(127,176,105,.4);color:#7fb069;
}

.music-item .del-btn{
  width:26px;height:26px;border-radius:6px;border:none;
  background:transparent;color:var(--muted);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

.music-item .del-btn:hover{background:rgba(224,90,90,.15);color:#e05a5a}
.music-item .del-btn svg{width:14px;height:14px}

.music-empty{
  text-align:center;padding:20px;color:var(--muted);
  font-size:11.5px;line-height:1.7;
}

/* ============ MUSIC MINI ============ */
.music-mini{
  position:fixed;right:12px;left:12px;bottom:12px;z-index:900;
  display:none;align-items:center;gap:10px;
  padding:9px 11px;border:1px solid var(--line);
  border-radius:12px;background:rgba(14,14,20,.94);
  backdrop-filter:blur(12px);
  box-shadow:0 10px 35px rgba(0,0,0,.45);
}

.music-mini.on{display:flex}

body.light .music-mini{background:rgba(250,245,230,.96)}

.music-mini .mini-disc{
  width:38px;height:38px;border-radius:50%;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,var(--gold-bright),var(--gold-dark));
  color:var(--on-gold);
}

.music-mini .mini-info{min-width:0;flex:1}

.music-mini .mini-name{
  font-size:12px;font-weight:800;color:var(--gold-bright);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.music-mini .mini-sub{
  font-size:9.5px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.music-mini button{
  width:36px;height:36px;border-radius:50%;
  border:1px solid var(--line);background:var(--card2);
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
}

.music-mini button svg{width:17px;height:17px}

@media (min-width:768px){.music-mini{left:auto;width:390px}}

/* ============ PWA BANNER ============ */
.pwa-banner{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  background:linear-gradient(180deg,#1c1c26,#0f0f18);
  border:1px solid #d4af37;border-radius:10px;
  box-shadow:0 12px 40px rgba(0,0,0,.6),0 0 0 4px rgba(20,20,28,.95);
  direction:rtl;
}

.pwa-icon{
  width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 35% 30%,#f0d67a,#d4af37 45%,#8b6f23);
  border-radius:50%;color:#0a0a0f;font-size:22px;font-weight:900;
  font-family:'Noto Sans Egyptian Hieroglyphs',serif;
  box-shadow:0 0 16px rgba(212,175,55,.5);
}

.pwa-text{flex:1;min-width:0}
.pwa-title{color:#f0d67a;font-weight:800;font-size:13.5px;margin-bottom:2px}
.pwa-sub{color:#a89876;font-size:11px;line-height:1.5}

.pwa-install-btn{
  padding:9px 16px;
  background:linear-gradient(180deg,#f0d67a,#d4af37 50%,#8b6f23);
  color:#0a0a0f;border:none;border-radius:5px;
  font-size:12px;font-weight:800;white-space:nowrap;
}

.pwa-dismiss-btn{
  background:transparent;border:none;color:#a89876;
  font-size:18px;padding:4px 8px;line-height:1;
}

.pwa-dismiss-btn:hover{color:#f0d67a}