:root{
  --bg:#0b0b0d;
  --panel:#121218;
  --panel2:#161622;
  --text:#f2f2f6;
  --muted:#a7a7b3;
  --border:rgba(255,255,255,.12);
  --accent:#4ea1ff;
  --accent2:#7c5cff;
  --good:#2de37b;
  --bad:#ff4d4d;
  --warn:#ffd24a;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --radius:14px;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:
    radial-gradient(900px 700px at 15% 10%, rgba(78,161,255,.12), transparent 55%),
    radial-gradient(900px 700px at 85% 20%, rgba(124,92,255,.12), transparent 55%),
    var(--bg);
  color:var(--text);
}

a{color:inherit;}
.container{max-width:1140px;margin:0 auto;padding:18px;}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.topbar{
  position:sticky; top:0; z-index:20;
  background:rgba(11,11,13,.78);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--border);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:14px 18px;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:900; letter-spacing:.25px;
}
.brand-badge{
  width:34px;height:34px;border-radius:11px;
  background: linear-gradient(135deg, rgba(78,161,255,.95), rgba(124,92,255,.95));
  display:grid; place-items:center;
  font-weight:900; color:#0a0a0f;
}
.nav{
  display:flex; flex-wrap:wrap;
  gap:10px;
}
.nav a{
  text-decoration:none;
  color:var(--muted);
  padding:8px 10px;
  border-radius:10px;
  border:1px solid transparent;
}
.nav a.active{
  color:var(--text);
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
}
.nav a:hover{color:var(--text);}

.header-tools{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  justify-content:flex-end;
}
.smalllabel{font-size:12px;color:var(--muted);}
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  font-size:12px;
  color:var(--muted);
}
.dot{
  width:8px;height:8px;border-radius:999px;background:var(--good);
  box-shadow:0 0 0 6px rgba(45,227,123,.12);
}

.grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:14px;
}
@media (max-width: 920px){
  .grid{grid-template-columns:1fr;}
}

.section{padding:16px;}
.section h2{margin:0 0 10px 0;font-size:18px;}
.section h3{margin:0 0 10px 0;font-size:15px;color:var(--muted);font-weight:700;}
.muted{color:var(--muted);}
.hr{height:1px;background:var(--border);border:0;margin:14px 0;}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:var(--text);
  padding:9px 12px;
  border-radius:12px;
  cursor:pointer;
  user-select:none;
}
.btn:hover{border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.08);}
.btn.primary{
  border-color:rgba(78,161,255,.45);
  background:rgba(78,161,255,.16);
}
.btn.good{
  border-color:rgba(45,227,123,.35);
  background:rgba(45,227,123,.12);
}
.btn.bad{
  border-color:rgba(255,77,77,.35);
  background:rgba(255,77,77,.12);
}
.btn.warn{
  border-color:rgba(255,210,74,.35);
  background:rgba(255,210,74,.12);
}
.btn.small{padding:7px 10px; border-radius:10px; font-size:13px;}
.btn:disabled{opacity:.45; cursor:not-allowed;}

.row{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.spread{display:flex; justify-content:space-between; align-items:center; gap:12px;}
.stack{display:flex; flex-direction:column; gap:10px;}

.input, .select, .textarea{
  width:100%;
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  outline:none;
}
.textarea{min-height:90px; resize:vertical;}

.pill{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--border);
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  color:var(--muted);
  background:rgba(255,255,255,.04);
}

.avatar{
  width:44px;height:44px;border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  object-fit:cover;
}
.avatar.big{width:76px;height:76px;border-radius:22px;}

.kv{
  display:grid;
  grid-template-columns: 150px 1fr;
  gap:8px 12px;
  align-items:center;
}
@media (max-width: 520px){
  .kv{grid-template-columns:1fr;}
}
.kv .k{color:var(--muted); font-size:13px;}
.kv .v{font-size:14px;}

.list{display:flex; flex-direction:column; gap:10px;}
.item{
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.03);
}
.item:hover{border-color:rgba(255,255,255,.18);}

.stars{display:inline-flex; gap:3px; font-size:18px;}
.star-btn{
  background:transparent; border:0; padding:0;
  cursor:pointer; color:rgba(255,255,255,.35);
  font-size:18px;
}
.star-btn.on{color:var(--warn);}
.star-display{color:var(--warn);}

.tabs{display:flex; gap:8px; flex-wrap:wrap; margin:10px 0;}
.tab{
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
}
.tab.active{
  color:var(--text);
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
}

.mapbox{
  height:280px;
  border-radius:16px;
  border:1px solid var(--border);
  background:
    radial-gradient(14px 14px at 20% 30%, rgba(78,161,255,.28), transparent 70%),
    radial-gradient(14px 14px at 72% 52%, rgba(124,92,255,.28), transparent 70%),
    radial-gradient(14px 14px at 62% 18%, rgba(45,227,123,.22), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  position:relative;
  overflow:hidden;
}
.mapbox .label{
  position:absolute; left:14px; top:12px;
  font-size:13px; color:var(--muted);
  background:rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.10);
  padding:7px 10px; border-radius:999px;
}
.mapbox .pin{
  width:10px;height:10px;border-radius:999px;
  background:rgba(78,161,255,.95);
  box-shadow:0 0 0 8px rgba(78,161,255,.12);
  position:absolute;
}

.gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:10px;
}
@media (max-width: 920px){
  .gallery-grid{grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 520px){
  .gallery-grid{grid-template-columns: 1fr;}
}
.post-img{
  width:100%;
  height:160px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.05);
  object-fit:cover;
}

.footer{
  margin-top:16px;
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.04);
}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px;
  color:var(--muted);
  font-size:13px;
}
.footer .social a{margin-left:10px;text-decoration:none;color:var(--muted);}
.footer .social a:hover{color:var(--text);}

.notice{
  padding:12px;
  border:1px dashed rgba(255,255,255,.22);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  color:var(--muted);
}

.toast{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%);
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.55);
  color:var(--text);
  z-index:50;
  display:none;
  max-width:min(680px, 92vw);
}
.toast.show{display:block;}