:root{--accent:#d3f45f;--bg:#09090d;--surface:#1c1c23;--line:#34343d;--text:#f9f9fa;--muted:#b4b4bd;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{border:0}.brand{font-size:28px;font-weight:900;letter-spacing:-.07em}.brand span{color:var(--accent)}#app{display:flex;overflow:hidden}.sidebar{width:250px;flex:none;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;background:#101015}.sidebar nav{display:grid;gap:7px;margin-top:45px}.sidebar button{background:none;color:var(--muted);text-align:left;border-radius:10px;padding:12px;font-weight:700;font-size:16px}.sidebar button.active,.sidebar button:hover{color:var(--text);background:#292a2e}.nav-glyph{display:inline-block;width:32px;text-align:center;font-size:22px;vertical-align:-2px}.side-foot{margin-top:auto;display:grid;gap:15px}.side-foot small{color:var(--muted)}.stage{height:100%;flex:1;position:relative;min-width:0;background:radial-gradient(circle at 50% 40%,#25232c,#09090d 70%)}.feed{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior-y:contain}.feed::-webkit-scrollbar{display:none}.slide{height:100%;max-width:540px;margin:auto;position:relative;scroll-snap-align:start;scroll-snap-stop:always;background:#17161c;overflow:hidden;box-shadow:0 0 70px #0009}.video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;background:transparent}.fallback{position:absolute;inset:0;background:radial-gradient(circle at 65% 30%,var(--glow),transparent 50%),linear-gradient(145deg,var(--base),#16141c);display:grid;place-items:center}.fallback span{width:38%;aspect-ratio:1;border:2px solid #ffffff66;border-radius:30%;transform:rotate(25deg);box-shadow:0 0 90px var(--glow),inset 0 0 90px var(--glow)}.slide:after{content:"";position:absolute;inset:0;background:linear-gradient(#0009,transparent 23%,transparent 55%,#000d);pointer-events:none}.slide-head{position:absolute;z-index:3;top:22px;left:0;right:0;text-align:center;text-shadow:0 1px 8px #000;font-weight:800;font-size:17px}.slide-head button{background:none;color:#fff;padding:4px 8px;font-weight:800}.slide-head button.active{border-bottom:3px solid var(--accent)}.slide-copy{position:absolute;z-index:3;bottom:37px;left:18px;right:95px;text-shadow:0 2px 9px #000}.slide-copy strong{font-size:17px}.slide-copy p{line-height:1.35;font-size:15px;margin:7px 0}.slide-copy small{color:#ddf2ad}.slide-actions{position:absolute;z-index:4;right:14px;bottom:50px;display:grid;gap:15px}.slide-actions button{min-width:57px;background:none;color:#fff;display:grid;justify-items:center;font-size:12px;font-weight:750;text-shadow:0 2px 8px #000}.slide-actions .symbol{font-size:31px;line-height:1.35}.slide-actions .avatar{width:46px;height:46px;border:2px solid #fff;border-radius:50%;background:#45434c;display:grid;place-items:center;font-size:14px}.slide-actions .liked{color:#ff5675}.tap{position:absolute;z-index:2;inset:0;background:none;color:transparent}.pause{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);font-size:34px;background:#0009;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;opacity:0;pointer-events:none}.slide.paused .pause{opacity:1}.overlay{position:absolute;z-index:7;inset:0;overflow:auto;background:var(--bg);padding:32px max(25px,calc((100% - 900px)/2)) 70px}.overlay[hidden]{display:none}.overlay h1{font-size:clamp(30px,4vw,43px);letter-spacing:-.05em;margin:10px 0 22px}.overlay h2{font-size:22px}.back{background:none;color:var(--accent);font-weight:700;padding:0 0 12px}.muted{color:var(--muted);line-height:1.5}.panel{background:var(--surface);border:1px solid var(--line);padding:22px;border-radius:14px;margin:18px 0}.panel p{color:var(--muted);line-height:1.5}.form{display:grid;gap:13px;max-width:500px}.form label{display:grid;gap:6px;font-size:14px;font-weight:700}.field{background:#26262e;color:var(--text);border:1px solid #52525d;border-radius:9px;padding:12px;width:100%;font-size:16px}.primary{background:var(--accent);color:#151615;font-weight:850;padding:12px 16px;border-radius:9px}.secondary{background:#32323a;color:var(--text);padding:11px 15px;border-radius:9px;font-weight:700}.danger{background:#6f2937;color:#fff;padding:10px 13px;border-radius:8px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.list{display:grid;gap:10px}.item{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.item strong{display:block}.item small{color:var(--muted)}.swatches{display:flex;gap:10px;flex-wrap:wrap}.swatch{width:37px;height:37px;background:var(--swatch);border-radius:50%;border:2px solid #fff5}.swatch.active{outline:3px solid var(--text);outline-offset:2px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:15px}.metric{font-size:30px;font-weight:850;color:var(--accent)}.visit-table{width:100%;border-collapse:collapse;font-size:14px}.visit-table th,.visit-table td{text-align:left;padding:9px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.table-wrap{overflow:auto}.toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translateX(-50%);background:#33333b;padding:11px 18px;border-radius:22px;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center}.toast.show{opacity:1}.mobile-nav{display:none}@media(max-width:760px){.sidebar{display:none}.stage{width:100%;height:100dvh}.slide{max-width:none;box-shadow:none}.slide-head{top:calc(env(safe-area-inset-top) + 15px)}.slide-copy{bottom:calc(80px + env(safe-area-inset-bottom))}.slide-actions{bottom:calc(107px + env(safe-area-inset-bottom))}.mobile-nav{display:flex;position:fixed;z-index:8;bottom:0;left:0;right:0;height:calc(65px + env(safe-area-inset-bottom));padding:7px 4px calc(env(safe-area-inset-bottom) + 4px);background:linear-gradient(#09090dcc,#09090d);justify-content:space-around;align-items:center}.mobile-nav button{background:none;color:#b4b4bd;min-width:57px;font-size:11px;font-weight:750;display:flex;align-items:center;flex-direction:column;gap:2px}.mobile-nav button.active{color:#fff}.mobile-nav .nav-glyph{font-size:24px;width:auto}.mobile-nav button.upload .nav-glyph{background:var(--accent);color:#111;border-radius:8px;padding:0 14px;font-size:28px}.overlay{padding:calc(env(safe-area-inset-top) + 18px) 17px calc(95px + env(safe-area-inset-bottom))}.toast{bottom:calc(82px + env(safe-area-inset-bottom))}}@media(max-width:360px){.slide-copy{right:78px}.slide-actions{right:6px}.slide-copy p{font-size:14px}.mobile-nav button{min-width:48px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.admin-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:15px;margin-bottom:16px}.admin-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:9px;padding:10px 13px;white-space:nowrap}.admin-tabs button.active{background:var(--accent);color:#171717;font-weight:800}.visit-table .field{min-width:110px;padding:8px;font-size:14px}.item p{margin:7px 0;line-height:1.4}.item small{font-size:12px}
.overlay.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: safe center;
  overflow-y: auto;
  padding: 18px;
  background: #000b;
}
.overlay.auth-gate[hidden] {
  display: none;
}
.auth-dialog {
  position: relative;
  width: min(100%, 440px);
  max-height: min(90dvh, 800px);
  overflow-y: auto;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  box-shadow: 0 20px 70px #000c;
}
.auth-dialog h1 {
  font-size: 29px;
  margin: 0 35px 19px 0;
}
.auth-gate .panel {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
.auth-dismiss {
  position: absolute;
  top: 15px;
  right: 16px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #32323a;
  color: var(--text);
  font-size: 24px;
  line-height: 1;
}
.auth-guest {
  width: 100%;
  padding: 11px;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
}
.auth-guest:hover {
  color: var(--text);
  background: #ffffff12;
}
.auth-gate .remember {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  line-height: 1.4;
}
.auth-gate .remember input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}
@media (max-width: 760px) {
  .overlay.auth-gate {
    padding: calc(16px + env(safe-area-inset-top)) 16px
      calc(16px + env(safe-area-inset-bottom));
  }
  .auth-dialog {
    max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 20px;
  }
}
.profile-head {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 15px 0 23px;
}
.profile-head h1 {
  margin: 0 0 7px;
  overflow-wrap: anywhere;
}
.profile-photo {
  width: 94px;
  height: 94px;
  flex: none;
  border: 2px solid var(--accent);
  border-radius: 50%;
  object-fit: cover;
}
.profile-photo.empty {
  display: grid;
  place-items: center;
  background: #393943;
  color: var(--text);
  font-size: 26px;
  font-weight: 800;
}
.feed-photo {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.profile-actions {
  margin: 15px 0 24px;
}
.profile-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}
.profile-head .row {
  margin-top: 12px;
}
.profile-head .row button {
  font-size: 13px;
}
.profile-list[hidden] {
  display: none;
}
.panel button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}
.overlay button.item {
  color: var(--text);
  text-align: left;
}
.overlay button.item:hover {
  background: #303039;
}
.age-review {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.age-review h3 {
  margin: 0;
}
.age-review .row {
  color: var(--text);
  justify-content: flex-start;
  margin: 12px 0;
}
.age-review input {
  accent-color: var(--accent);
}
.video-seek {
  position: absolute;
  z-index: 5;
  bottom: 7px;
  left: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 34px;
  color: #fff;
  text-shadow: 0 1px 6px #000;
}
.video-seek input {
  flex: 1;
  min-width: 0;
  height: 32px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
  touch-action: none;
}
.video-seek input::-webkit-slider-runnable-track {
  height: 5px;
  border-radius: 5px;
  background: linear-gradient(to right, var(--accent) var(--played, 0%), #fffc var(--played, 0%));
}
.video-seek input::-moz-range-track {
  height: 5px;
  border-radius: 5px;
  background: linear-gradient(to right, var(--accent) var(--played, 0%), #fffc var(--played, 0%));
}
.video-seek input::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 17px;
  height: 17px;
  margin-top: -6px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 1px 6px #000b;
}
.video-seek input::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--accent);
}
.video-seek input:disabled { opacity: .4; cursor: default; }
.video-time { flex: none; font-size: 11px; font-weight: 750; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  .video-seek { bottom: calc(66px + env(safe-area-inset-bottom)); left: 12px; right: 12px; }
  .slide-copy { bottom: calc(111px + env(safe-area-inset-bottom)); }
}
.private-folder .item > span:first-child {
  min-width: 180px;
}
.private-category {
  max-width: 195px;
}
@media (max-width: 760px) {
  .private-folder .item {
    flex-wrap: wrap;
  }
  .private-folder .item > .row {
    width: 100%;
  }
  .private-category {
    flex: 1;
    max-width: none;
  }
}
@media (max-width: 760px) {
  .profile-photo {
    width: 70px;
    height: 70px;
  }
  .profile-head {
    gap: 12px;
  }
}
