:root{
  --canvas:#0f1217;
  --panel:#1c1f26;
  --panel-border:#2a2e37;
  --accent:#fe9b46;
  --accent-hover:#ffb066;
  --text-primary:#f4f1ec;
  --text-secondary:#a8a4a0;
  --glass-bg:rgba(255,255,255,.045);
  --glass-bg-strong:rgba(255,255,255,.08);
  --glass-border:rgba(255,255,255,.14);
  --glass-blur:blur(22px) saturate(140%);
}
*{box-sizing:border-box}
body.admin-body{
  margin:0;min-height:100vh;background:var(--canvas);color:var(--text-primary);
  font-family:system-ui,-apple-system,'Segoe UI',sans-serif;
  padding:2.5rem 1.5rem 4rem;
}
body.admin-center{display:flex;align-items:center;justify-content:center;padding:1.5rem}

.admin-kicker{
  text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--accent);
  margin:0 0 .3em;font-weight:600;
}
.admin-header{
  max-width:900px;margin:0 auto 1.6rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.admin-header h1{margin:0;font-size:1.7rem}
.admin-nav{display:flex;gap:1.2rem;font-size:.9rem}
.admin-nav a{color:var(--text-secondary);text-decoration:none}
.admin-nav a:hover{color:var(--text-primary)}

.admin-card{
  max-width:900px;margin:0 auto 1.4rem;background:var(--panel);border:1px solid var(--panel-border);
  border-radius:16px;padding:1.6rem 1.8rem;
}
.admin-card h2{margin:0 0 .3em;font-size:1.15rem}
.admin-hint{color:var(--text-secondary);font-size:.88rem;margin:.2em 0 1em}

.admin-login-card{width:100%;max-width:360px;text-align:left}
.admin-login-card h1{margin:.1em 0 1em;font-size:1.4rem}
.admin-back-link{display:block;margin-top:1.2rem;text-align:center;color:var(--text-secondary);text-decoration:none;font-size:.86rem}
.admin-back-link:hover{color:var(--text-primary)}

.admin-form{display:flex;flex-direction:column;gap:.2rem}
.admin-label{font-size:.8rem;color:var(--text-secondary);margin:.9em 0 .35em}
.admin-input{
  width:100%;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;
  color:var(--text-primary);padding:.65rem .8rem;font-size:.95rem;font-family:inherit;
}
.admin-input:focus{outline:2px solid var(--accent);outline-offset:1px}
textarea.admin-input{resize:vertical}

.admin-btn{
  margin-top:1.4rem;background:var(--accent);color:#1a1206;border:none;border-radius:100px;
  padding:.7rem 1.4rem;font-weight:600;font-size:.92rem;cursor:pointer;transition:background .2s;
}
.admin-btn:hover{background:var(--accent-hover)}
.admin-btn-danger{
  margin-top:.7rem;background:transparent;border:1px solid rgba(255,90,90,.5);color:#ff8a8a;
  padding:.4rem 1rem;font-size:.82rem;
}
.admin-btn-danger:hover{background:rgba(255,90,90,.12)}

.admin-error{color:#ff8a8a;font-size:.88rem;margin:0 0 1em}
.admin-flash{max-width:900px;margin:0 auto 1rem;padding:.7rem 1rem;border-radius:10px;font-size:.9rem}
.admin-flash-ok{background:rgba(120,220,150,.12);border:1px solid rgba(120,220,150,.35);color:#a8e8bc}
.admin-flash-error{background:rgba(255,90,90,.12);border:1px solid rgba(255,90,90,.35);color:#ff8a8a}

.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.admin-tile{
  background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;
  padding:.6rem;text-align:center;
}
.admin-tile img,.admin-tile video{
  width:100%;height:100px;object-fit:cover;border-radius:8px;display:block;background:#000;
}
.admin-tile-title{
  font-size:.8rem;margin:.5em 0 0;color:var(--text-primary);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.admin-tile-meta{font-size:.72rem;color:var(--text-secondary);margin:.2em 0 0}
.admin-tile-initials{
  width:100%;height:100px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:var(--panel);color:var(--accent);font-weight:700;font-size:1.6rem;
}

/* dashboard shell */
body.admin-shell-body{padding:0}
.admin-shell{display:flex;min-height:100vh;align-items:stretch}

.admin-sidebar{
  width:250px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--panel-border);
  display:flex;flex-direction:column;padding:1.6rem 1.1rem;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.admin-brand{padding:0 .5rem;margin-bottom:1.6rem}
.admin-brand h1{margin:0;font-size:1.15rem}

.admin-side-nav{display:flex;flex-direction:column;gap:.15rem;flex:1}
.admin-side-link{
  display:flex;align-items:center;gap:.7rem;padding:.6rem .5rem;border-radius:10px;
  color:var(--text-secondary);text-decoration:none;font-size:.88rem;transition:background .15s,color .15s;
}
.admin-side-link svg{flex-shrink:0;opacity:.85}
.admin-side-link span:not(.admin-side-count){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-side-link:hover{background:var(--glass-bg);color:var(--text-primary)}
.admin-side-link.is-active{background:var(--glass-bg-strong);color:var(--text-primary)}
.admin-side-link.is-active svg{opacity:1;color:var(--accent)}
.admin-side-count{
  font-family:var(--font-mono,monospace);font-size:.72rem;color:var(--text-secondary);
  background:var(--glass-bg);border-radius:100px;padding:.05rem .5rem;min-width:1.6em;text-align:center;
}

.admin-side-foot{
  display:flex;flex-direction:column;gap:.6rem;padding-top:1rem;margin-top:1rem;
  border-top:1px solid var(--panel-border);font-size:.84rem;
}
.admin-side-foot a{color:var(--text-secondary);text-decoration:none}
.admin-side-foot a:hover{color:var(--text-primary)}

.admin-main{flex:1;min-width:0;padding:2.2rem clamp(1.2rem,4vw,3rem) 4rem}
.admin-main .admin-flash{max-width:none;margin:0 0 1.4rem}

.admin-panel{display:none}
.admin-panel.is-active{display:block;animation:admin-fade-in .25s ease}
@keyframes admin-fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.admin-panel h2{margin:0 0 .2em;font-size:1.5rem}
.admin-subhead{font-size:1rem;margin:2rem 0 1rem;color:var(--text-primary)}

.admin-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1.4rem}
.admin-stat{
  background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;
  padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.3rem;
}
.admin-stat-num{font-size:1.9rem;font-weight:700}
.admin-stat-label{font-size:.82rem;color:var(--text-secondary)}

.admin-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem}
.admin-cat-card{
  display:flex;flex-direction:column;gap:.5rem;background:var(--panel);border:1px solid var(--panel-border);
  border-radius:14px;padding:1.1rem 1.2rem;text-decoration:none;color:var(--text-primary);transition:border-color .15s;
}
.admin-cat-card:hover{border-color:var(--glass-border)}
.admin-cat-card svg{color:var(--accent)}
.admin-cat-card-label{font-weight:600;font-size:.92rem}
.admin-cat-card-status{font-size:.76rem;color:var(--text-secondary)}
.admin-cat-card-status.is-live{color:#a8e8bc}

.admin-recent-list{display:flex;flex-direction:column;gap:.6rem}
.admin-recent-row{
  display:flex;align-items:center;gap:.9rem;background:var(--panel);border:1px solid var(--panel-border);
  border-radius:12px;padding:.6rem .9rem;
}
.admin-recent-thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;background:#000;flex-shrink:0}
.admin-recent-title{margin:0;font-size:.88rem;font-weight:600}
.admin-recent-meta{margin:.15em 0 0;font-size:.76rem;color:var(--text-secondary)}

.admin-upload-form{
  background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;
  padding:1.3rem 1.4rem;margin-top:1.4rem;max-width:480px;
}

@media (max-width:860px){
  .admin-shell{flex-direction:column}
  .admin-sidebar{width:100%;height:auto;position:relative;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.4rem}
  .admin-brand{margin-bottom:0;margin-right:auto}
  .admin-side-nav{flex-direction:row;flex-wrap:wrap;flex:none;width:100%;order:3}
  .admin-side-foot{flex-direction:row;border-top:none;padding-top:0;margin-top:0;order:2;margin-left:auto}
  .admin-main{padding:1.6rem 1.1rem 3rem}
}