:root{--bg:#07111f;--panel:#111c2f;--panel2:#1a2940;--text:#f8fafc;--muted:#aebacd;--blue:#38bdf8;--green:#34d399;--stroke:rgba(255,255,255,.13)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 10% 0,rgba(56,189,248,.16),transparent 32%),linear-gradient(145deg,#020617,#0f172a);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}body{padding-bottom:env(safe-area-inset-bottom)}button,input{font:inherit}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px clamp(14px,3vw,30px);background:rgba(2,6,23,.78);backdrop-filter:blur(16px);border-bottom:1px solid var(--stroke)}.sub{display:block;color:var(--muted);font-size:12px;margin-top:2px}.user{font-size:13px;color:var(--muted)}main{width:min(1180px,100%);margin:auto;padding:clamp(12px,3vw,28px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px}.player-card,.search-card,.queue-card{border:1px solid var(--stroke);border-radius:24px;background:linear-gradient(135deg,rgba(17,28,47,.95),rgba(26,41,64,.84));box-shadow:0 20px 55px rgba(0,0,0,.25);padding:18px}.player-card,.search-card{grid-column:1}.queue-card{grid-column:2;grid-row:1/3}.now{display:flex;align-items:center;gap:14px}.disc{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--blue),#a78bfa);display:grid;place-items:center;font-size:32px;color:#020617;font-weight:900}.meta{min-width:0}.meta small{color:var(--blue);font-weight:800}.meta h1{font-size:clamp(20px,3vw,30px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:5px 0}.seek{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin:18px 0;color:var(--muted);font-variant-numeric:tabular-nums}.seek input{width:100%}.controls{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.controls button,.tabs button,.search-row button,.queue-head button,.action{border:1px solid var(--stroke);background:rgba(255,255,255,.07);color:var(--text);border-radius:15px;padding:11px;cursor:pointer}.controls button{font-size:20px}.controls button span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.controls button:active,.action:active{transform:scale(.98)}.tabs{display:flex;gap:8px;margin-bottom:12px}.tab.active{background:var(--blue);color:#020617;font-weight:800}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px}.search-row input{min-width:0;border:1px solid var(--stroke);border-radius:15px;background:rgba(255,255,255,.06);color:var(--text);padding:12px}.status{color:var(--muted);font-size:13px;margin:12px 0}.result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border-top:1px solid var(--stroke);padding:12px 0}.result-title{font-weight:750}.result-meta{font-size:12px;color:var(--muted);margin-top:3px}.actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.action{padding:8px 10px;font-size:12px}.action.download{border-color:rgba(52,211,153,.55);color:#a7f3d0}.queue-head{display:flex;justify-content:space-between;align-items:center}.queue-head h2{font-size:18px}.queue-head span{color:var(--blue)}.queue-item{border:1px solid var(--stroke);border-radius:15px;padding:11px;margin-top:8px;cursor:pointer}.queue-item.current{border-color:var(--green);background:rgba(52,211,153,.15)}.queue-item small{display:block;color:var(--muted);margin-top:4px}.empty{color:var(--muted);padding:18px 0;text-align:center}@media(max-width:820px){main{display:block}.player-card,.search-card,.queue-card{margin-bottom:14px}.controls{grid-template-columns:repeat(3,1fr)}.result{grid-template-columns:1fr}.actions{justify-content:flex-start}}@media(max-width:480px){.topbar{padding:12px}.user{max-width:42vw;overflow:hidden;text-overflow:ellipsis}.player-card,.search-card,.queue-card{border-radius:18px;padding:14px}.disc{width:54px;height:54px}.search-row{grid-template-columns:1fr}.actions{display:grid;grid-template-columns:repeat(3,1fr)}.action{padding:9px 4px}}

/* Navigation dans les dossiers de la médiathèque */
.browse-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:8px}
.browse-head .actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:700px){
  .browse-head{
    align-items:stretch;
    flex-direction:column;
  }

  .search-row{
    display:grid;
    grid-template-columns:1fr 1fr !important;
    gap:8px;
  }

  .search-row input{
    grid-column:1 / -1;
    width:100%;
    min-width:0;
  }

  .search-row button{
    width:100%;
    min-width:0;
    white-space:normal;
  }
}

@media(max-width:480px){
  .search-row{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .search-row input,
  .search-row button{
    width:100%;
  }
}


/* Connexion PHP et déconnexion */
.logout-btn{display:inline-flex;margin-left:10px;padding:7px 11px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:inherit;text-decoration:none;font-size:12px;font-weight:800;background:rgba(255,255,255,.07)}
.logout-btn:hover{background:rgba(255,255,255,.14)}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:20px;box-sizing:border-box}
.login-wrap{width:min(430px,100%)}
.login-card{padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:26px;background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(30,41,59,.9));box-shadow:0 28px 80px rgba(0,0,0,.42)}
.login-logo{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;font-size:34px;font-weight:900;background:linear-gradient(135deg,#38bdf8,#a78bfa);color:#020617}
.login-card h1{margin:18px 0 6px}.login-card p{margin:0 0 20px;color:#aebacd}.login-card label{display:grid;gap:7px;margin:14px 0;font-weight:800}.login-card input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:13px 14px;background:rgba(255,255,255,.07);color:#fff;font:inherit}.login-card button{width:100%;margin-top:8px;border:0;border-radius:14px;padding:14px;background:#38bdf8;color:#03111d;font:inherit;font-weight:950;cursor:pointer}.login-error{padding:11px 13px;border:1px solid rgba(251,113,133,.45);border-radius:13px;background:rgba(251,113,133,.12);color:#fecdd3}
@media(max-width:600px){.topbar .user{display:flex;align-items:center;gap:5px}.logout-btn{margin-left:3px;padding:6px 8px}}


/* Correctif mise en page de la page de connexion */
body.login-page{
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow:auto;
}
body.login-page main.login-wrap{
  display:block;
  width:min(430px,100%);
  max-width:430px;
  margin:0 auto;
  padding:0;
  grid-template-columns:none;
}
body.login-page .login-card{
  display:block;
  width:100%;
}
body.login-page .login-card label,
body.login-page .login-card input,
body.login-page .login-card button{
  width:100%;
}
@media(max-width:480px){
  body.login-page{padding:14px;}
  body.login-page .login-card{padding:22px 18px;border-radius:22px;}
}
/* ===== Anti-débordement mobile ===== */

html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    overscroll-behavior-x:none;
}

main{
    width:100%;
    max-width:1180px;
    overflow-x:hidden;
}

.player-card,
.search-card,
.queue-card{
    max-width:100%;
    overflow:hidden;
}

.result,
.queue-item,
.now,
.meta{
    min-width:0;
}

.result-title,
.meta h1{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.actions{
    max-width:100%;
}

button,
input{
    max-width:100%;
}

img{
    max-width:100%;
    height:auto;
}
*{
    -webkit-tap-highlight-color:transparent;
}

body{
    touch-action:pan-y;
}
