:root {
  --bg:#0d0f14;
  --surface:#161921;
  --card:#1c2030;
  --border:#2a3040;
  --text:#e6e9f0;
  --muted:#8791a6;
  --accent:#2563eb;
  --accent-hover:#3b75e8;
  --green:#3fb950;
  --danger:#f85149;
  --yellow:#d29922;
}
* { box-sizing:border-box; }
body {
  margin:0;
  min-height:100vh;
  background:var(--bg);
  color:var(--text);
  font-family:"Segoe UI",system-ui,-apple-system,sans-serif;
}
button,input,select { font:inherit; }
button,.button-link {
  border:0;
  border-radius:7px;
  padding:10px 16px;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
button:hover,.button-link:hover { background:var(--accent-hover); }
button:disabled { opacity:.45; cursor:not-allowed; }
button.secondary,.button-link.secondary {
  background:var(--card);
  color:var(--text);
  border:1px solid var(--border);
}
button.danger-outline {
  background:transparent;
  color:var(--danger);
  border:1px solid var(--danger);
}
.primary { background:var(--accent); }
.full { width:100%; }
.header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 28px;
  background:#090b10;
  border-bottom:3px solid var(--accent);
}
.header h1 { margin:0; font-size:22px; }
.header p { margin:4px 0 0; color:var(--muted); font-size:13px; }

.public-header {
  position:relative;
  justify-content:center;
  min-height:215px;
  padding:22px 100px 24px;
  background:
    radial-gradient(circle at 50% -70%,rgba(37,99,235,.18),transparent 54%),
    #050609;
}
.public-brand {
  width:min(720px,100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.event-logo {
  display:block;
  width:clamp(360px,55vw,650px);
  max-width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.32));
}
.powered-by {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42em;
  margin-top:3px;
  color:#98a2b8;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.35;
  text-decoration:none;
  transition:color .15s ease,transform .15s ease;
}
.powered-by strong {
  color:#f3f4f6;
  font-weight:900;
}
.powered-by:hover {
  color:#8ab4ff;
  transform:translateY(-1px);
}
.powered-by:hover strong { color:#fff; }
.public-header .public-header-title {
  margin:10px 0 0;
  color:var(--text);
  font-size:21px;
  font-weight:750;
  letter-spacing:.01em;
  line-height:1.25;
}
.public-header > .admin-link {
  position:absolute;
  top:22px;
  right:28px;
}

.admin-link {
  color:#8ab4ff;
  text-decoration:none;
  font-size:13px;
}
.page {
  width:min(820px,calc(100% - 30px));
  margin:30px auto 50px;
}
.admin-page {
  width:min(1500px,calc(100% - 30px));
  margin:26px auto 50px;
}
.hero,.panel,.success-panel {
  margin-bottom:18px;
  padding:24px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
}
.hero h2,.panel h2,.success-panel h2 { margin:6px 0 8px; }
.hero p,.panel p { color:var(--muted); }
.step-label {
  color:#71a0ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.search-row,.code-row {
  display:flex;
  gap:9px;
}
input,select {
  width:100%;
  padding:11px 13px;
  background:var(--card);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:7px;
  outline:none;
}
input:focus,select:focus { border-color:var(--accent); }
label {
  display:block;
  margin:14px 0 6px;
  font-size:13px;
  font-weight:700;
}
.checkbox {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:14px 0;
  color:var(--muted);
  font-weight:400;
}
.checkbox input { width:auto; margin-top:3px; }
.results { display:grid; gap:9px; margin-top:16px; }
.talk-card {
  padding:14px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:9px;
  cursor:pointer;
}
.talk-card:hover { border-color:var(--accent); }
.talk-name { font-weight:800; margin-bottom:4px; }
.talk-title { color:var(--text); margin-bottom:6px; }
.talk-meta { color:var(--muted); font-size:12px; }
.selected-talk {
  padding:13px;
  background:var(--card);
  border-left:4px solid var(--accent);
  border-radius:7px;
}
.code-box { margin-top:14px; }
.status { min-height:20px; margin-top:12px; color:var(--muted); font-size:13px; }
.status.error { color:var(--danger); }
.status.good { color:var(--green); }
.notice {
  padding:10px 12px;
  border-left:4px solid var(--yellow);
  background:rgba(210,153,34,.08);
}
.drop-zone {
  margin:18px 0 10px;
  padding:35px 20px;
  text-align:center;
  background:var(--card);
  border:2px dashed #46506a;
  border-radius:10px;
  cursor:pointer;
}
.drop-zone.dragging { border-color:var(--accent); }
.drop-zone span { display:block; margin-top:5px; color:var(--muted); font-weight:400; }
.drop-zone input { display:none; }
.file-info { min-height:22px; margin:8px 0; color:var(--muted); }
.progress-wrap { margin-top:16px; }
.progress-track {
  width:100%;
  height:12px;
  overflow:hidden;
  background:var(--card);
  border-radius:999px;
}
.progress-bar {
  width:0;
  height:100%;
  background:var(--accent);
  transition:width .15s linear;
}
.progress-text { margin-top:6px; color:var(--muted); font-size:12px; }
.success-panel { text-align:center; }
.success-icon {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin:0 auto 12px;
  border-radius:50%;
  background:var(--green);
  color:#07120a;
  font-size:32px;
  font-weight:900;
}
.hidden { display:none !important; }
footer {
  padding:18px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
  border-top:1px solid var(--border);
}
.admin-login { max-width:520px; margin:35px auto; }
.admin-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.admin-toolbar h2 { margin:0 0 4px; }
.summary-line { color:var(--muted); font-size:13px; }
.toolbar-buttons { display:flex; gap:7px; flex-wrap:wrap; }
.filters {
  display:grid;
  grid-template-columns:minmax(280px,1fr) 180px 150px 190px;
  gap:9px;
  margin-bottom:12px;
}
.table-wrap {
  overflow:auto;
  border:1px solid var(--border);
  border-radius:10px;
}
.admin-table {
  width:100%;
  min-width:1180px;
  border-collapse:collapse;
  background:var(--surface);
  font-size:12px;
}
.admin-table th {
  position:sticky;
  top:0;
  padding:10px;
  text-align:left;
  color:var(--muted);
  background:#11151e;
  border-bottom:2px solid var(--accent);
}
.admin-table td {
  padding:10px;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}
.status-pill {
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  font-weight:800;
}
.status-pill.received {
  color:var(--green);
  background:rgba(63,185,80,.10);
}
.status-pill.pending {
  color:var(--yellow);
  background:rgba(210,153,34,.10);
}
.small-muted { color:var(--muted); font-size:11px; margin-top:3px; }
.table-action {
  padding:5px 8px;
  font-size:11px;
  white-space:nowrap;
}
.file-link { color:#8ab4ff; text-decoration:none; }
@media (max-width:850px) {
  .header { padding:15px; }
  .public-header {
    min-height:0;
    padding:18px 15px 20px;
    flex-direction:column;
  }
  .event-logo { width:min(100%,560px); }
  .powered-by {
    margin-top:5px;
    font-size:10px;
    letter-spacing:.11em;
  }
  .public-header .public-header-title {
    margin-top:9px;
    font-size:18px;
  }
  .public-header > .admin-link {
    position:static;
    align-self:flex-end;
    margin-top:8px;
  }
  .search-row,.code-row { flex-direction:column; }
  .filters { grid-template-columns:1fr; }
  .hero,.panel,.success-panel { padding:18px; }
}

.mode-buttons { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 0 26px; }
.mode-button { padding:15px; font-size:15px; }
.mode-button.active { background:var(--accent); box-shadow:0 0 0 2px rgba(37,99,235,.25); }
.talk-meta-prominent {
  display:flex; flex-wrap:wrap; gap:8px 15px; margin-top:12px;
  color:#4ade80; font-size:16px; font-weight:900; letter-spacing:.02em;
}
.selected-talk .talk-meta-prominent { font-size:18px; }
.status-result {
  margin-bottom:18px; padding:25px; text-align:center;
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
}
.google-button {
  background:#fff; color:#202124; border:1px solid #dadce0;
  font-size:15px; padding:13px;
}
.google-button:hover { background:#f5f7f9; }
.admin-summary-cards {
  display:grid; grid-template-columns:repeat(4,minmax(140px,1fr));
  gap:10px; margin-bottom:14px;
}
.summary-card {
  padding:15px; background:var(--surface); border:1px solid var(--border);
  border-radius:10px;
}
.summary-card span { display:block; color:var(--muted); font-size:12px; }
.summary-card strong { display:block; margin-top:5px; font-size:25px; }
.summary-card.received strong { color:var(--green); }
.summary-card.pending strong { color:var(--yellow); }
@media (max-width:850px) {
  .mode-buttons,.admin-summary-cards { grid-template-columns:1fr 1fr; }
  .talk-meta-prominent { font-size:14px; }
}

.upload-rules {
  margin:18px 0;
  padding:18px;
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.35);
  border-left:5px solid var(--accent);
  border-radius:10px;
}
.upload-rules h3 {
  margin:0 0 10px;
  color:var(--text);
  font-size:17px;
}
.upload-rules p {
  margin:8px 0;
  color:var(--text);
  line-height:1.55;
}
