:root{
  --ink:#0B1020; --ink-deep:#070B16; --surface:#131A2E; --surface-2:#182142;
  --line:rgba(160,180,230,.16); --line-soft:rgba(160,180,230,.09);
  --cyan:#38E1D6; --violet:#7B6CF6; --gold:#E8B84B;
  --text:#EAF0FF; --muted:#94A3C7; --faint:#6C7BA0;
  --ok:#3ad29f; --err:#ff6b81;
  --font-display:"Space Grotesk",system-ui,sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  --font-mono:"Space Mono",ui-monospace,monospace;
  --radius:14px;
}
*{ box-sizing:border-box; }
body{
  margin:0; font-family:var(--font-body); color:var(--text);
  background:
    radial-gradient(60% 40% at 85% -5%, rgba(123,108,246,.14), transparent 60%),
    radial-gradient(50% 40% at 5% 0%, rgba(56,225,214,.1), transparent 62%),
    linear-gradient(180deg,var(--ink),var(--ink-deep));
  min-height:100vh; line-height:1.6;
}
a{ color:var(--cyan); text-decoration:none; }
.wrap{ width:min(1080px, calc(100% - 40px)); margin-inline:auto; }
.mono{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); }

/* Top bar */
.admin-bar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; margin-bottom:2rem;
  border-bottom:1px solid var(--line); background:rgba(7,11,20,.7); backdrop-filter:blur(12px);
}
.admin-bar .wrap{ display:flex; align-items:center; justify-content:space-between; }
.admin-brand{ font-family:var(--font-display); font-weight:700; letter-spacing:.06em; font-size:1.15rem; color:var(--text); }
.admin-brand span{ color:var(--muted); font-weight:500; }
.admin-bar nav{ display:flex; gap:1.2rem; align-items:center; }
.admin-bar nav a{ color:var(--muted); font-weight:500; font-size:.92rem; }
.admin-bar nav a:hover{ color:var(--text); }

/* Headings */
h1{ font-family:var(--font-display); font-weight:700; letter-spacing:-.01em; font-size:1.9rem; margin:.2rem 0 .3rem; }
h2{ font-family:var(--font-display); font-weight:600; font-size:1.25rem; margin:2rem 0 1rem; }
.sub{ color:var(--muted); margin:0 0 2rem; }

/* Cards / list */
.card{ background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015)); border:1px solid var(--line); border-radius:var(--radius); }
.page-group{ margin-bottom:2.2rem; }
.group-label{ display:flex; align-items:center; gap:.8rem; margin:0 0 .9rem; }
.group-label h2{ margin:0; font-size:1.05rem; }
.group-line{ flex:1; height:1px; background:var(--line-soft); }

.page-list{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.page-row{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1rem 1.2rem; border:1px solid var(--line); border-radius:12px;
  background:rgba(255,255,255,.025); transition:border-color .2s, transform .2s;
}
.page-row:hover{ border-color:rgba(56,225,214,.4); transform:translateX(3px); }
.page-row .info{ min-width:0; }
.page-row .title{ font-family:var(--font-display); font-weight:600; }
.page-row .meta{ color:var(--faint); font-size:.8rem; font-family:var(--font-mono); }
.badge-hidden{ font-family:var(--font-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(232,184,75,.4); border-radius:6px; padding:2px 7px; }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:.5em; cursor:pointer;
  font-family:var(--font-display); font-weight:600; font-size:.92rem;
  padding:.65em 1.15em; border-radius:999px; border:1px solid var(--line);
  background:rgba(255,255,255,.04); color:var(--text); transition:transform .2s, box-shadow .2s, border-color .2s, background .2s;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ border-color:transparent; color:#07101d; background:linear-gradient(120deg,var(--cyan),var(--violet)); box-shadow:0 10px 26px -12px rgba(56,225,214,.6); }
.btn-ghost:hover{ border-color:var(--cyan); }
.btn-danger{ border-color:rgba(255,107,129,.4); color:var(--err); background:rgba(255,107,129,.06); }
.btn-sm{ padding:.5em .9em; font-size:.82rem; }

/* Forms */
.field{ margin-bottom:1.4rem; }
label.lbl{ display:block; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; }
input[type=text], input[type=password], textarea{
  width:100%; padding:.8rem 1rem; border-radius:10px; border:1px solid var(--line);
  background:rgba(0,0,0,.25); color:var(--text); font-family:var(--font-body); font-size:1rem;
}
input:focus, textarea:focus{ outline:2px solid var(--cyan); outline-offset:1px; border-color:transparent; }
.editor-shell{ border:1px solid var(--line); border-radius:12px; overflow:hidden; }

.form-actions{ display:flex; gap:.8rem; align-items:center; margin-top:1.6rem; flex-wrap:wrap; }

/* Flash messages */
.flash{ padding:.85rem 1.1rem; border-radius:10px; margin-bottom:1.5rem; font-size:.94rem; }
.flash.ok{ background:rgba(58,210,159,.1); border:1px solid rgba(58,210,159,.4); color:var(--ok); }
.flash.err{ background:rgba(255,107,129,.1); border:1px solid rgba(255,107,129,.4); color:var(--err); }

/* Gallery manager */
.gallery-manager{ margin-top:1rem; }
.gm-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.8rem; margin-top:1rem; }
.gm-item{ position:relative; border:1px solid var(--line); border-radius:10px; overflow:hidden; aspect-ratio:4/3; background:#000; }
.gm-item img{ width:100%; height:100%; object-fit:cover; }
.gm-item .rm{ position:absolute; top:6px; right:6px; width:26px; height:26px; border-radius:50%; border:0; cursor:pointer; background:rgba(4,7,14,.8); color:#fff; font-size:1rem; line-height:1; }
.gm-item .rm:hover{ background:var(--err); }
.drop-hint{ color:var(--faint); font-size:.85rem; margin-top:.6rem; }

/* Login */
.login-wrap{ min-height:100vh; display:grid; place-items:center; padding:2rem; }
.login-card{ width:min(420px,100%); padding:2.4rem; }
.login-card h1{ font-size:1.5rem; }
.login-logo{ display:flex; gap:6px; margin-bottom:1.4rem; }
.login-logo span{ width:11px; height:11px; border-radius:50%; }
.login-logo .a{ background:var(--cyan); } .login-logo .i{ background:var(--violet); } .login-logo .r{ background:var(--gold); }

.hint{ color:var(--faint); font-size:.82rem; margin-top:1.2rem; }
.media-lib{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.7rem; margin-top:1rem; max-height:340px; overflow:auto; padding:.4rem; border:1px solid var(--line-soft); border-radius:10px; }
.media-lib button{ padding:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#000; cursor:pointer; aspect-ratio:1; }
.media-lib img{ width:100%; height:100%; object-fit:cover; }
.media-lib button:hover{ border-color:var(--cyan); }

/* People editor (speakers & jury) */
.people-editor{ display:flex; flex-direction:column; gap:1rem; margin-bottom:1rem; }
.pe-row{ border:1px solid var(--line); border-radius:12px; padding:1.1rem 1.2rem; background:rgba(255,255,255,.025); }
.pe-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.pe-num{ font-family:var(--font-mono); font-size:.8rem; color:var(--cyan); border:1px solid var(--line); border-radius:6px; padding:2px 9px; }
.pe-imgs{ display:flex; gap:1.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.pe-img{ display:flex; flex-direction:column; gap:.4rem; align-items:flex-start; }
.pe-label{ font-family:var(--font-mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.pe-thumb{ width:96px; height:96px; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:#0A0F1E; display:grid; place-items:center; }
.pe-thumb img{ width:100%; height:100%; object-fit:cover; }
.pe-thumb.empty span{ font-size:1.6rem; color:var(--faint); }
.pe-thumb.loading{ opacity:.5; }
.pe-fields{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.pe-field{ display:flex; flex-direction:column; gap:.4rem; }
.pe-field textarea{ min-height:70px; resize:vertical; }
@media (max-width:640px){ .pe-fields{ grid-template-columns:1fr; } }
