/* ============================================================
   ADMIN PANEL — PlayStation Premium Theme (Light)
   Matches portfolio's light PS blue aesthetic
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* PS blues */
  --blue-dark:  #003BA0;
  --blue:       #1565C0;
  --blue-light: #2196F3;
  --cyan:       #00B4D8;
  --cyan-dim:   rgba(0,180,216,0.12);
  --cyan-glow:  rgba(0,180,216,0.28);

  /* Layout backgrounds */
  --sidebar-bg: #001040;       /* dark navy sidebar like the navbar */
  --topbar-bg:  rgba(0,16,64,0.92);
  --content-bg: #F2F7FF;       /* light section bg */
  --card-bg:    #FFFFFF;

  /* Text for light areas */
  --text-1: #0A1F3C;
  --text-2: #3A5A8A;
  --text-3: #7A9CC2;

  /* Borders for light areas */
  --border:        rgba(21,101,192,0.15);
  --border-bright: rgba(21,101,192,0.38);

  /* Status */
  --success: #22C55E;
  --danger:  #EF4444;
  --warning: #F59E0B;

  --font-head: 'Orbitron', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --ease: cubic-bezier(0.25,0.46,0.45,0.94);
  --sidebar-w: 260px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; }
body {
  background:var(--content-bg);
  color:var(--text-1);
  font-family:var(--font-body);
  min-height:100vh;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
ul { list-style:none; }
button { cursor:pointer; font-family:inherit; }

::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:var(--content-bg); }
::-webkit-scrollbar-thumb { background:var(--blue); border-radius:3px; }

/* ═══════════════════════════════════════════════════════════
   LOGIN SCREEN — matches hero dark PS gradient + waves
   ═══════════════════════════════════════════════════════════ */
#login-screen {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(270deg, #001040, #002070, #003BA0, #1565C0);
  background-size:400% 400%;
  animation:loginBgShift 16s ease infinite;
  position:relative; overflow:hidden;
}
@keyframes loginBgShift {
  0%,100% { background-position:0% 50%; }
  50%     { background-position:100% 50%; }
}

/* Wave layers on login bg */
#login-screen::before, #login-screen::after {
  content:''; position:absolute; bottom:0; left:0;
  width:200%; pointer-events:none;
}
#login-screen::before {
  height:220px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 220'%3E%3Cpath fill='white' fill-opacity='0.06' d='M0,110 C360,40 720,180 1080,110 C1260,75 1350,145 1440,110 L1440,220 L0,220 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:1440px 220px;
  animation:loginWave 14s linear infinite;
}
#login-screen::after {
  height:160px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160'%3E%3Cpath fill='%2300B4D8' fill-opacity='0.08' d='M0,60 C240,120 480,0 720,60 C960,120 1200,0 1440,60 L1440,160 L0,160 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:1440px 160px;
  animation:loginWave 22s linear infinite reverse;
}
@keyframes loginWave {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* Floating PS symbols on login */
.login-sym {
  position:absolute; font-size:clamp(14px,2vw,24px); font-weight:800;
  opacity:0.12; pointer-events:none; user-select:none;
  font-family:var(--font-head);
  animation:loginFloat var(--dur,10s) ease-in-out var(--delay,0s) infinite;
}
.login-sym.cross    { color:#4A90D9; }
.login-sym.circle   { color:#E05555; }
.login-sym.square   { color:#C86DD7; }
.login-sym.triangle { color:#5BC86D; }
@keyframes loginFloat {
  0%,100% { transform:translateY(0) rotate(var(--rot,0deg)); }
  50%     { transform:translateY(-18px) rotate(var(--rot,0deg)); }
}

.login-card {
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:16px; padding:50px 44px;
  width:100%; max-width:400px;
  backdrop-filter:blur(24px) saturate(1.4);
  box-shadow:0 20px 60px rgba(0,0,0,0.4), 0 0 40px rgba(0,180,216,0.1);
  text-align:center; position:relative; z-index:1;
}

.login-logo { margin-bottom:24px; display:flex; justify-content:center; }
.login-logo svg { width:70px; height:70px; filter:drop-shadow(0 0 20px rgba(0,180,216,0.45)); }

.login-title {
  font-family:var(--font-head); font-size:20px; font-weight:800;
  letter-spacing:3px; color:#FFFFFF; margin-bottom:6px;
}
.login-sub {
  font-family:var(--font-mono); font-size:11px;
  color:rgba(0,180,216,0.85); letter-spacing:2px; margin-bottom:32px;
}

.login-card .form-group { text-align:left; margin-bottom:20px; }
.login-card .form-label {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px;
  color:rgba(0,180,216,0.9); text-transform:uppercase;
  display:block; margin-bottom:8px;
}
.login-card input {
  width:100%; padding:12px 16px;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18);
  border-radius:8px; color:#FFFFFF; font-size:15px;
  transition:border-color 0.3s, box-shadow 0.3s; outline:none;
}
.login-card input:focus {
  border-color:rgba(0,180,216,0.6);
  box-shadow:0 0 16px rgba(0,180,216,0.2);
}
.login-card input::placeholder { color:rgba(255,255,255,0.35); }

.login-error {
  color:#FCA5A5; font-size:13px; margin-bottom:16px;
  display:none; font-family:var(--font-mono);
  background:rgba(239,68,68,0.1); padding:8px 12px; border-radius:6px;
  border:1px solid rgba(239,68,68,0.25);
}
.login-error.show { display:block; }

/* ═══════════════════════════════════════════════════════════
   ADMIN APP LAYOUT
   ═══════════════════════════════════════════════════════════ */
#admin-app { display:none; min-height:100vh; }
#admin-app.show { display:flex; }

/* ── Sidebar (dark navy, like portfolio navbar) ── */
.sidebar {
  width:var(--sidebar-w); flex-shrink:0;
  background:var(--sidebar-bg);
  border-right:1px solid rgba(255,255,255,0.06);
  display:flex; flex-direction:column;
  position:fixed; top:0; bottom:0; left:0; overflow-y:auto;
  z-index:100;
}
.sidebar-header {
  padding:24px 20px; border-bottom:1px solid rgba(255,255,255,0.06);
}
.sidebar-logo {
  display:flex; align-items:center; gap:10px;
  text-decoration:none; margin-bottom:4px;
}
.sidebar-logo svg { width:32px; height:32px; }
.sidebar-logo-text {
  font-family:var(--font-head); font-size:14px; font-weight:800;
  color:#FFFFFF; letter-spacing:2px;
}
.sidebar-sub {
  font-family:var(--font-mono); font-size:10px;
  color:rgba(0,180,216,0.7); letter-spacing:2px; margin-left:42px;
}

.sidebar-nav { flex:1; padding:16px 0; }
.sidebar-section {
  font-family:var(--font-mono); font-size:9px; letter-spacing:2px;
  color:rgba(255,255,255,0.25); text-transform:uppercase;
  padding:14px 20px 6px;
}
.sidebar-item {
  display:flex; align-items:center; gap:12px;
  padding:11px 20px; cursor:pointer;
  color:rgba(255,255,255,0.5); font-size:13px; font-weight:500;
  transition:all 0.2s; border-left:2px solid transparent;
}
.sidebar-item:hover { color:rgba(255,255,255,0.85); background:rgba(255,255,255,0.05); }
.sidebar-item.active {
  color:#FFFFFF; background:rgba(21,101,192,0.3);
  border-left-color:var(--cyan);
}
.sidebar-item-icon { font-size:16px; width:20px; text-align:center; flex-shrink:0; }

.sidebar-footer {
  padding:16px 20px; border-top:1px solid rgba(255,255,255,0.06);
  display:flex; flex-direction:column; gap:8px;
}
.sidebar-footer-btn {
  display:flex; align-items:center; gap:10px;
  padding:10px 14px; border-radius:8px;
  font-size:12px; font-weight:500; font-family:var(--font-mono);
  transition:all 0.2s; border:none; background:none;
  color:rgba(255,255,255,0.45); text-align:left; width:100%; letter-spacing:1px;
}
.sidebar-footer-btn:hover { background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.8); }
.sidebar-footer-btn.danger:hover { background:rgba(239,68,68,0.12); color:#FCA5A5; }
.sidebar-footer-btn .icon { font-size:15px; }

/* ── Main content ── */
.admin-main {
  margin-left:var(--sidebar-w); flex:1;
  display:flex; flex-direction:column; min-height:100vh;
}

/* Top bar */
.admin-topbar {
  background:var(--topbar-bg);
  border-bottom:1px solid rgba(255,255,255,0.06);
  padding:0 32px; height:64px;
  display:flex; align-items:center; justify-content:space-between;
  backdrop-filter:blur(10px);
  position:sticky; top:0; z-index:50;
}
.topbar-title {
  font-family:var(--font-head); font-size:16px; font-weight:800;
  color:#FFFFFF; letter-spacing:2px;
}
.topbar-right { display:flex; align-items:center; gap:12px; }
.topbar-badge {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px;
  color:rgba(0,180,216,0.9); background:rgba(0,180,216,0.1);
  border:1px solid rgba(0,180,216,0.3);
  padding:4px 12px; border-radius:12px;
}
.view-site-btn {
  display:flex; align-items:center; gap:6px;
  padding:8px 16px; border-radius:6px;
  background:transparent; border:1px solid rgba(255,255,255,0.2);
  color:rgba(255,255,255,0.75); font-family:var(--font-mono);
  font-size:11px; font-weight:600; letter-spacing:1.5px;
  transition:all 0.3s;
}
.view-site-btn:hover {
  background:rgba(0,180,216,0.15); border-color:rgba(0,180,216,0.5);
  color:#FFFFFF;
}

/* ── Panel content ── */
.admin-content { flex:1; padding:32px; background:var(--content-bg); }

.panel { display:none; }
.panel.active { display:block; }

.panel-header { margin-bottom:28px; }
.panel-title {
  font-family:var(--font-head); font-size:22px; font-weight:800;
  color:var(--text-1); letter-spacing:2px; margin-bottom:6px;
}
.panel-desc { font-size:14px; color:var(--text-2); line-height:1.6; }

/* Cards */
.admin-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:12px; padding:28px;
  box-shadow:0 2px 16px rgba(21,101,192,0.07);
  margin-bottom:20px;
}
.card-title {
  font-family:var(--font-mono); font-size:12px; font-weight:600;
  color:var(--blue); letter-spacing:2px; text-transform:uppercase;
  margin-bottom:20px; display:flex; align-items:center; gap:8px;
}

/* Forms */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid.cols-1 { grid-template-columns:1fr; }
.form-grid.cols-3 { grid-template-columns:1fr 1fr 1fr; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group.span-2 { grid-column:1/-1; }
.form-label {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px;
  color:var(--text-2); text-transform:uppercase;
}
.form-label .required { color:var(--danger); margin-left:3px; }

input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], input[type="url"], input[type="password"],
textarea, select {
  width:100%; padding:10px 14px;
  background:#FFFFFF; border:1px solid var(--border);
  border-radius:8px; color:var(--text-1); font-size:14px;
  font-family:var(--font-body);
  transition:border-color 0.3s, box-shadow 0.3s; outline:none;
}
input:focus, textarea:focus, select:focus {
  border-color:var(--border-bright);
  box-shadow:0 0 0 3px rgba(21,101,192,0.1);
}
input::placeholder, textarea::placeholder { color:var(--text-3); }
textarea { resize:vertical; min-height:100px; }
select { cursor:pointer; }
select option { background:#FFFFFF; color:var(--text-1); }

input[type="range"] {
  padding:0; height:5px; background:rgba(21,101,192,0.12);
  appearance:none; -webkit-appearance:none; border:none; border-radius:3px;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none; width:18px; height:18px; border-radius:50%;
  background:var(--blue); cursor:pointer; border:2px solid #FFFFFF;
  box-shadow:0 0 6px rgba(21,101,192,0.4);
}

/* Buttons */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; border-radius:8px; border:none;
  font-size:12px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; font-family:var(--font-mono);
  transition:all 0.3s; cursor:pointer;
}
.btn-primary {
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  color:#FFFFFF; box-shadow:0 4px 16px rgba(21,101,192,0.3);
}
.btn-primary:hover { box-shadow:0 6px 24px rgba(21,101,192,0.45); transform:translateY(-1px); }
.btn-outline {
  background:transparent; border:1px solid var(--border-bright);
  color:var(--blue);
}
.btn-outline:hover { background:rgba(21,101,192,0.07); }
.btn-danger { background:rgba(239,68,68,0.08); border:1px solid rgba(239,68,68,0.3); color:var(--danger); }
.btn-danger:hover { background:rgba(239,68,68,0.15); }
.btn-success { background:rgba(34,197,94,0.08); border:1px solid rgba(34,197,94,0.3); color:var(--success); }
.btn-sm { padding:7px 14px; font-size:10px; letter-spacing:1.5px; }
.btn-icon { padding:8px; min-width:36px; justify-content:center; }

.form-actions { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }

/* Image upload */
.img-upload-area {
  border:2px dashed var(--border); border-radius:10px; padding:28px;
  text-align:center; cursor:pointer; transition:all 0.3s;
  position:relative; background:#FAFCFF;
}
.img-upload-area:hover { border-color:var(--border-bright); background:rgba(21,101,192,0.04); }
.img-upload-area .upload-icon { font-size:32px; margin-bottom:10px; color:var(--text-3); }
.img-upload-area .upload-text { font-size:13px; color:var(--text-2); margin-bottom:4px; }
.img-upload-area .upload-hint { font-size:11px; color:var(--text-3); font-family:var(--font-mono); }
.img-upload-area input[type="file"] { display:none; }
.img-preview {
  width:100%; max-height:180px; object-fit:cover;
  border-radius:8px; margin-bottom:10px; border:1px solid var(--border);
}
.img-remove-btn {
  position:absolute; top:8px; right:8px;
  background:rgba(239,68,68,0.85); border:none; color:white;
  border-radius:50%; width:28px; height:28px; font-size:14px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background 0.2s;
}
.img-remove-btn:hover { background:var(--danger); }

/* Tags input */
.tags-input-wrap {
  display:flex; flex-wrap:wrap; gap:6px; align-items:center;
  padding:8px 12px; background:#FFFFFF;
  border:1px solid var(--border); border-radius:8px; min-height:44px;
}
.tags-input-wrap:focus-within { border-color:var(--border-bright); box-shadow:0 0 0 3px rgba(21,101,192,0.1); }
.tag-chip {
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(21,101,192,0.08); border:1px solid rgba(21,101,192,0.2);
  border-radius:4px; padding:3px 8px 3px 10px;
  font-size:12px; color:var(--blue); font-family:var(--font-mono);
}
.tag-chip button {
  background:none; border:none; color:var(--text-3);
  font-size:14px; line-height:1; padding:0; cursor:pointer;
}
.tag-chip button:hover { color:var(--danger); }
.tags-input-field {
  background:none; border:none; outline:none; color:var(--text-1);
  font-size:13px; min-width:80px; flex:1; box-shadow:none !important; padding:0;
}

/* List items */
.list-container { display:flex; flex-direction:column; gap:12px; }
.list-item {
  background:#FAFCFF; border:1px solid var(--border);
  border-radius:10px; padding:16px 20px;
  display:flex; align-items:flex-start; gap:14px;
  transition:border-color 0.3s, box-shadow 0.3s;
}
.list-item:hover { border-color:var(--border-bright); box-shadow:0 4px 16px rgba(21,101,192,0.08); }
.list-item-body { flex:1; min-width:0; }
.list-item-title { font-size:14px; font-weight:600; color:var(--text-1); margin-bottom:4px; }
.list-item-sub   { font-size:12px; color:var(--text-2); font-family:var(--font-mono); }
.list-item-actions { display:flex; gap:6px; flex-shrink:0; }
.drag-handle { color:var(--text-3); cursor:grab; font-size:18px; padding:2px 4px; user-select:none; }

.add-item-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:14px; border:2px dashed var(--border);
  border-radius:10px; color:var(--text-2);
  font-family:var(--font-mono); font-size:12px; letter-spacing:1.5px;
  background:none; width:100%; transition:all 0.3s; cursor:pointer;
}
.add-item-btn:hover { border-color:var(--blue); color:var(--blue); background:rgba(21,101,192,0.04); }

/* Modal */
.modal-overlay {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,16,64,0.6); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.3s; padding:20px;
}
.modal-overlay.open { opacity:1; visibility:visible; }
.modal {
  background:#FFFFFF; border:1px solid var(--border-bright);
  border-radius:14px; width:100%; max-width:640px;
  max-height:90vh; overflow-y:auto;
  transform:scale(0.95); transition:transform 0.3s;
  box-shadow:0 20px 60px rgba(0,0,0,0.2);
}
.modal-overlay.open .modal { transform:scale(1); }
.modal-header {
  padding:22px 26px; border-bottom:1px solid var(--border);
  display:flex; justify-content:space-between; align-items:center;
  position:sticky; top:0; background:#FFFFFF; z-index:1;
}
.modal-title { font-family:var(--font-head); font-size:14px; font-weight:700; color:var(--text-1); letter-spacing:2px; }
.modal-close {
  background:none; border:none; color:var(--text-3);
  font-size:22px; line-height:1; transition:color 0.2s, transform 0.2s;
}
.modal-close:hover { color:var(--blue); transform:rotate(90deg); }
.modal-body { padding:26px; }
.modal-footer {
  padding:18px 26px; border-top:1px solid var(--border);
  display:flex; justify-content:flex-end; gap:10px;
  position:sticky; bottom:0; background:#FFFFFF;
}

/* Level slider */
.level-display { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.level-num { font-family:var(--font-head); font-size:22px; font-weight:800; color:var(--blue); }

/* Toast notifications */
.toast-container {
  position:fixed; bottom:28px; right:28px; z-index:99999;
  display:flex; flex-direction:column; gap:10px; pointer-events:none;
}
.toast {
  background:#FFFFFF; border:1px solid var(--border);
  border-radius:10px; padding:14px 20px;
  display:flex; align-items:center; gap:12px;
  font-size:13px; pointer-events:all;
  animation:toastIn 0.3s var(--ease) forwards;
  min-width:260px; max-width:380px;
  box-shadow:0 8px 30px rgba(21,101,192,0.15);
}
.toast.success { border-color:rgba(34,197,94,0.4); }
.toast.error   { border-color:rgba(239,68,68,0.35); }
.toast.info    { border-color:var(--border-bright); }
.toast-icon { font-size:18px; flex-shrink:0; }
.toast-msg  { flex:1; color:var(--text-1); }
.toast.fade-out { animation:toastOut 0.3s ease forwards; }
@keyframes toastIn  { from { opacity:0; transform:translateX(30px); } to { opacity:1; transform:none; } }
@keyframes toastOut { to   { opacity:0; transform:translateX(30px); } }

/* Stat cards on dashboard */
.stat-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:16px; margin-bottom:28px; }
.stat-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:10px; padding:20px; text-align:center;
  box-shadow:0 2px 12px rgba(21,101,192,0.07);
  transition:transform 0.2s, box-shadow 0.2s;
}
.stat-card:hover { transform:translateY(-2px); box-shadow:0 6px 24px rgba(21,101,192,0.12); }
.stat-card-num {
  font-family:var(--font-head); font-size:32px; font-weight:900;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue-light));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.stat-card-label {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px;
  color:var(--text-2); text-transform:uppercase; margin-top:4px;
}

/* Trophy type select */
.trophy-radio { display:flex; gap:8px; flex-wrap:wrap; }
.trophy-opt input { display:none; }
.trophy-opt label {
  padding:6px 16px; border-radius:20px; cursor:pointer;
  font-family:var(--font-mono); font-size:11px; letter-spacing:1px;
  border:1px solid; transition:all 0.2s; display:block;
}
.trophy-opt.platinum label { border-color:#8264E6; color:#8264E6; }
.trophy-opt.gold     label { border-color:#CC9300; color:#CC9300; }
.trophy-opt.silver   label { border-color:#8A8A9A; color:#8A8A9A; }
.trophy-opt.bronze   label { border-color:#A05A28; color:#A05A28; }
.trophy-opt input:checked + label { font-weight:700; background:rgba(0,0,0,0.05); }

/* Checkbox toggle */
.toggle-wrap { display:flex; align-items:center; gap:10px; }
.toggle-wrap label { font-size:13px; color:var(--text-2); cursor:pointer; user-select:none; }
input[type="checkbox"] { width:16px; height:16px; accent-color:var(--blue); cursor:pointer; }

/* ── Responsive ── */
@media (max-width:900px) {
  :root { --sidebar-w:60px; }
  .sidebar-header { padding:16px 12px; }
  .sidebar-logo-text, .sidebar-sub,
  .sidebar-section, .sidebar-item span:not(.sidebar-item-icon),
  .sidebar-footer-btn span:not(.icon) { display:none; }
  .sidebar-item { padding:14px; justify-content:center; }
  .sidebar-footer-btn { justify-content:center; }
  .admin-content { padding:20px 16px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid.cols-3 { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .form-grid.cols-3 { grid-template-columns:1fr; }
  .stat-cards { grid-template-columns:1fr 1fr; }
}
