
:root{
  --bg0:#050814;
  --bg1:#0b1220;
  --panel: rgba(255,255,255,.08);
  --stroke: rgba(255,255,255,.18);
  --text: rgba(255,255,255,.96);
  --muted: rgba(255,255,255,.65);
  --accent: rgba(56,189,248,.95);
  --danger: rgba(248,113,113,.95);
  --ok: rgba(74,222,128,.95);
  --shadow: 0 18px 60px rgba(0,0,0,.45);
  --r2: 24px;
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color: var(--text);
  background:
    radial-gradient(1000px 700px at 20% 10%, rgba(56,189,248,.18), transparent 60%),
    radial-gradient(900px 650px at 80% 20%, rgba(167,139,250,.16), transparent 62%),
    radial-gradient(800px 600px at 50% 90%, rgba(74,222,128,.08), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
}

a{color:inherit;text-decoration:none}
img{display:block}

.container{max-width:1300px;margin:0 auto;padding:28px}

/* ===== Topbar ===== */
.topbar{
  position:sticky;top:0;z-index:10;
  backdrop-filter: blur(14px);
  background: rgba(6,10,24,.55);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.topbar-inner{
  max-width:1300px;margin:0 auto;padding:14px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:14px
}
.brand{display:flex;align-items:center;gap:10px;font-weight:650}
.brand img{width:18px;height:18px}
.badge{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:var(--muted)}
.nav{display:flex;gap:10px}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:12px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
  box-shadow:
    0 10px 28px rgba(0,0,0,.35),
    inset 0 0 0 1px rgba(255,255,255,.10);
  font-weight:600;cursor:pointer;
  color: rgba(255,255,255,.96);
  transition: all .15s ease;
}
/* IMPORTANT: constrain svg sizes inside buttons */
.btn img{
  width:16px;
  height:16px;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.6));
}
.btn.icon img{width:16px;height:16px}
.btn:hover{
  background: rgba(255,255,255,.22);
  box-shadow:
    0 14px 36px rgba(0,0,0,.45),
    inset 0 0 0 1px rgba(255,255,255,.18);
}
.btn.primary{border-color: rgba(56,189,248,.55);background: rgba(56,189,248,.28)}
.btn.primary:hover{background: rgba(56,189,248,.38)}
.btn.ghost{background: rgba(255,255,255,.10)}
.btn.small{padding:8px 12px;font-size:13px;border-radius:10px}
.btn.danger{border-color: rgba(248,113,113,.60);background: rgba(248,113,113,.22)}
.btn.icon{padding:8px;width:34px;height:34px;justify-content:center}

/* ===== Headers ===== */
.header-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  flex-wrap:wrap;
}
.title h1{margin:0;font-size:28px}
.title .muted{font-size:13px;color:var(--muted)}

/* ===== Toolbar ===== */
.toolbar{
  margin-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.toolbar-left,
.toolbar-right{display:flex;gap:8px;flex-wrap:wrap}

/* high-contrast selects */
.select{
  padding:10px 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.55);
  color:#fff;
  font-weight:600;
}
.select option{background:#0b1220;color:#fff}

/* ===== Media Grid ===== */
.media-grid{
  margin-top:22px;
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(220px,1fr));
  gap:14px;
}

.media-card{
  background: var(--panel);
  border:1px solid var(--stroke);
  border-radius:18px;
  overflow:hidden;
  box-shadow: var(--shadow);
  position:relative;
}

/* 3:2 aspect ratio */
.media-thumb{
  position:relative;
  width:100%;
  aspect-ratio: 3 / 2;
  background-size:cover;
  background-position:center;
}

.checkbox{
  position:absolute;
  top:10px;left:10px;
  width:22px;height:22px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
}

.media-info{
  padding:10px 12px;
  display:grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  column-gap:8px;
  row-gap:6px;
  align-items:center;
}

.media-badge{
  font-size:11px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.18);
  font-weight:600;
}

.media-actions{
  display:flex;
  gap:6px;
}

.media-actions .btn{
  padding:8px;
  width:36px;
  height:36px;
  justify-content:center;
  border-radius:10px;
}

/* ===== Pager ===== */
.pager{
  margin:28px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.page-input{
  width:64px;
  text-align:center;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.55);
  color:#fff;
  font-weight:700;
}

/* ===== Events cards ===== */
.grid{display:grid;gap:18px}
.grid.cards{grid-template-columns: repeat(12,1fr)}
.card{
  grid-column: span 4;
  border-radius: var(--r2);
  background: var(--panel);
  border:1px solid var(--stroke);
  box-shadow: var(--shadow);
  overflow:hidden;
}
@media(max-width:900px){.card{grid-column:span 6}}
@media(max-width:600px){.card{grid-column:span 12}}

.cover{height:130px;background-size:cover;background-position:center;border-bottom:1px solid rgba(255,255,255,.14)}
.inner{padding:16px}

.h1{font-size:28px;margin:0 0 6px}
.h2{font-size:18px;margin:0 0 6px}
.muted{color:var(--muted);font-size:13px}

.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}

.pill{
  cursor:pointer;
  user-select:none;
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.14);
}
.pill.ok{border-color:rgba(74,222,128,.60);background:rgba(74,222,128,.22)}
.pill.off{border-color:rgba(248,113,113,.55);background:rgba(248,113,113,.22)}

.actions-bar{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.14);
  display:grid;
  grid-template-columns: 1fr auto;
  gap:10px;
}
.actions-primary{display:flex;flex-direction:column;gap:8px}
.actions-icons{display:flex;gap:8px;flex-wrap:nowrap}

.toolbar-left{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  align-items:flex-end;
  margin:18px 0 22px;
}
.select-wrap{display:flex;flex-direction:column;gap:6px}
.select-label{font-size:13px;color:#cbd5f5;opacity:.9}
.event-input{cursor:text}

.pager{display:flex;align-items:center;gap:12px;justify-content:center;margin:28px 0 10px;flex-wrap:wrap}
.pager-label{color:#cbd5f5;font-weight:600;margin-left:10px}
.page-input{
  width:72px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(2,6,23,.55);
  color:#e5e7eb;
  padding:0 12px;
  font-size:16px;
  outline:none;
}
.btn-go{
  height:44px;
  min-width:86px;
  border-radius:999px;
  border:1px solid rgba(56,189,248,.35);
  background:rgba(56,189,248,.22);
  color:#e5e7eb;
  font-weight:800;
  letter-spacing:.5px;
  cursor:pointer;
}
.btn-go:hover{background:rgba(56,189,248,.28)}

/* ===== Accessibility / States ===== */
.btn:focus-visible,
.select:focus-visible,
.page-input:focus-visible,
.pill:focus-visible{
  outline: 2px solid rgba(56,189,248,.70);
  outline-offset: 3px;
}

/* Anchor "disabled" pattern (used for pager / nav when not available) */
.is-disabled{
  opacity:.45;
  pointer-events:none;
  filter:saturate(.8);
}

/* ===== Visual hierarchy tweaks ===== */
.h2{font-size:20px;font-weight:750;letter-spacing:.1px}
.muted{opacity:.9}

/* Card lift on hover (desktop only) */
@media(hover:hover){
  .card{transition:transform .16s ease, box-shadow .16s ease}
  .card:hover{transform:translateY(-2px)}
}

/* Status pill should feel like a toggle */
.pill{transition:transform .12s ease, box-shadow .12s ease, background .12s ease}
.pill:hover{transform:scale(1.03);box-shadow:0 10px 24px rgba(0,0,0,.35)}
.pill:active{transform:scale(.99)}

/* ===== Media cards: richer gallery feel ===== */
@media(hover:hover){
  .media-card{transition:transform .16s ease, box-shadow .16s ease}
  .media-card:hover{transform:translateY(-2px)}

  /* Hide actions until hover on pointer devices; keep visible on touch */
  .media-actions{opacity:.0;transform:translateY(2px);transition:opacity .14s ease, transform .14s ease}
  .media-card:hover .media-actions{opacity:1;transform:translateY(0)}
}

/* Video differentiation: play indicator on thumbnails */
.media-card[data-type="video"] .media-thumb::after{
  content:"";
  position:absolute;
  inset:auto 14px 14px auto;
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.30);
  background:rgba(0,0,0,.35);
  backdrop-filter:blur(6px);
  box-shadow:0 12px 30px rgba(0,0,0,.45);
  background-image:url("../assets/svg/play.svg");
  background-repeat:no-repeat;
  background-position:center;
  background-size:18px 18px;
}

/* --- Fix: Center play overlay --- */
.media-card[data-type="video"] .media-thumb::after{
  inset:auto;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
}

/* --- Image uploader preview --- */
.image-upload{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.image-preview{
  width:100%;
  height:140px;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.image-preview img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.image-preview.loading{
  filter:blur(2px);
}

/* --- SMS textarea styling --- */
textarea.input{
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--stroke);
  border-radius:12px;
  padding:12px 14px;
  resize:vertical;
}
textarea.input:focus{
  outline:none;
  border-color:var(--accent);
}



/* --- Global background fix: prevent vertical tiling and keep visual depth --- */
html, body {
  min-height: 100%;
}

body {
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  background-attachment: fixed;
}

/* Mobile fallback for iOS / low-power devices */
@media (max-width: 768px) {
  body {
    background-attachment: scroll;
  }
}



/* --- Video thumbnail scaling: keep vertical posters proportional and centered --- */
.media-card[data-type="video"] .media-thumb{
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Hide logo completely */
.logo, .app-logo, .brand-logo { display:none !important; }

/* ===== Media card layout: badge + actions in first row, event name in second row ===== */
.media-badge{
  grid-column:1;
  grid-row:1;
  justify-self:start;
}

.media-actions{
  grid-column:3;
  grid-row:1;
  justify-self:end;
  white-space:nowrap;
}

.media-event{
  grid-column:1 / -1;
  grid-row:2;
  font-size:13px;
  line-height:1.35;
  color:var(--muted);
  white-space:normal;
  overflow-wrap:break-word;
}

/* ===== Reset filters button: make it a "select" twin ===== */
.reset-filters-btn{
  cursor:pointer;
}
.reset-filters-btn:hover{
  background:rgba(0,0,0,.45);
  border-color:rgba(255,255,255,.55);
}


/* ===== Fix: Chrome date picker icon invisible on dark inputs ===== */

/* Chrome / Edge calendar icon visibility */
.select[type="date"]::-webkit-calendar-picker-indicator{
  filter: invert(1);
  opacity: .9;
  cursor: pointer;
}
