@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --bg:        #05091a;
  --bg-card:   #0b1230;
  --bg-surface:#0f1a3d;
  --bg-elev:   #132050;
  --border:    #1e2f5e;
  --border-l:  #243870;
  --blue:      #3b82f6;
  --blue-l:    #60a5fa;
  --purple:    #818cf8;
  --green:     #10b981;
  --red:       #ef4444;
  --yellow:    #f59e0b;
  --pink:      #ec4899;
  --text:      #e8efff;
  --text-2:    #8bafd4;
  --text-3:    #4d6a94;
  --r:         12px;
  --r-sm:      8px;
  --r-lg:      18px;
  --font-h:    'Syne', sans-serif;
  --font-b:    'DM Sans', sans-serif;
  --shadow:    0 4px 24px rgba(0,0,0,.4);
  --sidebar-w: 240px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:var(--font-b); font-size:15px; line-height:1.6; min-height:100vh; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,h4 { font-family:var(--font-h); font-weight:700; letter-spacing:-.02em; }
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--border-l); border-radius:3px; }

/* ── Layout ── */
.layout { display:flex; min-height:100vh; }
.sidebar {
  width:var(--sidebar-w); min-height:100vh;
  background:var(--bg-card); border-right:1px solid var(--border);
  position:fixed; top:0; left:0; z-index:100;
  display:flex; flex-direction:column;
  transition:transform .3s;
}
.main { margin-left:var(--sidebar-w); flex:1; }

/* ── Sidebar ── */
.sidebar-logo {
  padding:20px 20px 16px;
  border-bottom:1px solid var(--border);
  margin-bottom:8px;
}
.logo-studio {
  font-family:var(--font-h); font-size:22px; font-weight:800;
  background:linear-gradient(135deg,#60a5fa,#818cf8);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.logo-domain { font-size:11px; color:var(--text-3); margin-top:2px; }

.nav-item {
  display:flex; align-items:center; gap:11px;
  padding:11px 18px; margin:2px 8px;
  border-radius:var(--r-sm);
  color:var(--text-2); font-size:14px; font-weight:500;
  transition:all .15s; cursor:pointer;
}
.nav-item:hover { background:var(--bg-surface); color:var(--text); }
.nav-item.active {
  background:linear-gradient(135deg,rgba(59,130,246,.18),rgba(99,102,241,.08));
  color:var(--blue-l); border:1px solid rgba(59,130,246,.2);
}
.nav-section { font-size:10px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.08em; padding:14px 18px 4px; }
.sidebar-bottom { margin-top:auto; padding:12px 8px; border-top:1px solid var(--border); }
.sidebar-user {
  display:flex; align-items:center; gap:10px; padding:10px;
  border-radius:var(--r-sm); cursor:pointer; transition:background .15s;
}
.sidebar-user:hover { background:var(--bg-surface); }
.s-avatar { width:36px; height:36px; border-radius:50%; object-fit:cover; border:2px solid var(--border); }

/* ── Page header ── */
.page-header {
  padding:24px 28px 0;
  display:flex; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap; gap:12px;
}
.page-title { font-size:24px; font-weight:800; }
.page-sub { font-size:13px; color:var(--text-2); margin-top:4px; }

/* ── Card ── */
.card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r); padding:20px;
}
.card-sm { padding:14px; }
.card-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--border);
}
.card-title { font-size:15px; font-weight:700; display:flex; align-items:center; gap:8px; }

/* ── Grid ── */
.grid { display:grid; gap:16px; }
.g2 { grid-template-columns:repeat(2,1fr); }
.g3 { grid-template-columns:repeat(3,1fr); }
.g4 { grid-template-columns:repeat(4,1fr); }

/* ── Stat card ── */
.stat-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r); padding:20px;
  position:relative; overflow:hidden;
}
.stat-card::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,var(--accent-color,rgba(59,130,246,.06)),transparent);
  pointer-events:none;
}
.stat-icon {
  width:44px; height:44px; border-radius:var(--r-sm);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:12px; font-size:20px;
}
.stat-val { font-family:var(--font-h); font-size:28px; font-weight:800; line-height:1; }
.stat-label { font-size:12px; color:var(--text-2); margin-top:6px; }
.stat-change {
  display:inline-flex; align-items:center; gap:4px;
  font-size:11px; font-weight:600; margin-top:8px;
  padding:2px 8px; border-radius:20px;
}
.stat-change.up   { background:rgba(16,185,129,.12); color:var(--green); }
.stat-change.down { background:rgba(239,68,68,.12);  color:var(--red); }
.stat-change.neutral { background:rgba(139,175,212,.1); color:var(--text-2); }

/* ── Btn ── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 18px; border-radius:var(--r-sm);
  font-family:var(--font-b); font-weight:600; font-size:14px;
  cursor:pointer; border:none; transition:all .15s; white-space:nowrap;
}
.btn-primary { background:linear-gradient(135deg,var(--blue),#2563eb); color:#fff; box-shadow:0 2px 12px rgba(59,130,246,.3); }
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 4px 20px rgba(59,130,246,.5); }
.btn-outline { background:transparent; border:1px solid var(--border-l); color:var(--text-2); }
.btn-outline:hover { border-color:var(--blue); color:var(--blue-l); }
.btn-ghost { background:transparent; color:var(--text-2); }
.btn-ghost:hover { background:var(--bg-surface); color:var(--text); }
.btn-danger { background:rgba(239,68,68,.12); color:var(--red); border:1px solid rgba(239,68,68,.25); }
.btn-danger:hover { background:var(--red); color:#fff; }
.btn-green { background:linear-gradient(135deg,#059669,var(--green)); color:#fff; }
.btn-sm { padding:6px 12px; font-size:12px; }
.btn-lg { padding:12px 28px; font-size:16px; }
.btn-full { width:100%; justify-content:center; }

/* ── Form ── */
.form-group { margin-bottom:16px; }
.form-label { display:block; font-size:13px; font-weight:600; color:var(--text-2); margin-bottom:6px; }
.form-input, .form-textarea, .form-select {
  width:100%; background:var(--bg-surface); border:1px solid var(--border);
  border-radius:var(--r-sm); padding:10px 14px;
  color:var(--text); font-family:var(--font-b); font-size:14px;
  outline:none; transition:border-color .15s;
}
.form-input:focus,.form-textarea:focus,.form-select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(59,130,246,.1); }
.form-input::placeholder { color:var(--text-3); }
.form-textarea { resize:vertical; min-height:90px; }
.form-error { background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.25); border-radius:var(--r-sm); padding:10px 14px; color:var(--red); font-size:13px; margin-bottom:14px; }
.form-success { background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.25); border-radius:var(--r-sm); padding:10px 14px; color:var(--green); font-size:13px; margin-bottom:14px; }

/* ── Table ── */
.table-wrap { overflow-x:auto; border-radius:var(--r); border:1px solid var(--border); }
table { width:100%; border-collapse:collapse; }
th,td { padding:11px 14px; text-align:left; border-bottom:1px solid var(--border); font-size:13px; }
th { font-size:11px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.05em; background:var(--bg-surface); }
tr:last-child td { border-bottom:none; }
tr:hover td { background:rgba(255,255,255,.015); }

/* ── Badge ── */
.badge {
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700;
}
.badge-blue   { background:rgba(59,130,246,.15);  color:var(--blue-l); }
.badge-green  { background:rgba(16,185,129,.15);  color:var(--green); }
.badge-red    { background:rgba(239,68,68,.15);   color:var(--red); }
.badge-yellow { background:rgba(245,158,11,.15);  color:var(--yellow); }
.badge-purple { background:rgba(129,140,248,.15); color:var(--purple); }
.badge-gray   { background:rgba(139,175,212,.1);  color:var(--text-2); }

/* ── Chart container ── */
.chart-wrap { position:relative; height:200px; }
.chart-wrap.tall { height:280px; }

/* ── Progress bar ── */
.progress { height:6px; background:var(--border); border-radius:3px; overflow:hidden; }
.progress-fill { height:100%; border-radius:3px; transition:width .5s; }

/* ── Timeline ── */
.timeline-item { display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.timeline-item:last-child { border-bottom:none; }
.timeline-icon { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* ── Video thumb grid ── */
.video-grid-studio { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.video-card-studio {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r); overflow:hidden; transition:transform .15s,border-color .15s;
  cursor:pointer;
}
.video-card-studio:hover { transform:translateY(-2px); border-color:var(--border-l); }
.video-thumb-studio { aspect-ratio:9/16; background:var(--bg-surface); overflow:hidden; position:relative; }
.video-thumb-studio img { width:100%; height:100%; object-fit:cover; }
.video-thumb-views { position:absolute; bottom:4px; left:4px; font-size:10px; color:#fff; background:rgba(0,0,0,.6); padding:1px 6px; border-radius:10px; }

/* ── Monetization ── */
.money-card {
  background:linear-gradient(135deg,#0f2a4a,#0a1f3d);
  border:1px solid rgba(59,130,246,.3);
  border-radius:var(--r-lg); padding:28px;
  position:relative; overflow:hidden;
}
.money-card::before {
  content:''; position:absolute; top:-40px; right:-40px;
  width:160px; height:160px; border-radius:50%;
  background:radial-gradient(circle,rgba(59,130,246,.12),transparent 70%);
}
.money-amount { font-family:var(--font-h); font-size:42px; font-weight:800; color:#fff; line-height:1; }
.money-sub { font-size:13px; color:var(--blue-l); margin-top:6px; }

/* ── Alert ── */
.alert { padding:14px 16px; border-radius:var(--r-sm); margin-bottom:16px; display:flex; align-items:flex-start; gap:10px; font-size:14px; }
.alert-info   { background:rgba(59,130,246,.08); border:1px solid rgba(59,130,246,.2); color:var(--blue-l); }
.alert-warn   { background:rgba(245,158,11,.08); border:1px solid rgba(245,158,11,.2); color:var(--yellow); }
.alert-success{ background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.2); color:var(--green); }
.alert-error  { background:rgba(239,68,68,.08);  border:1px solid rgba(239,68,68,.2);  color:var(--red); }

/* ── Tabs ── */
.tabs { display:flex; border-bottom:1px solid var(--border); margin-bottom:20px; gap:2px; }
.tab { padding:10px 18px; font-size:14px; font-weight:600; color:var(--text-2); cursor:pointer; border-bottom:2px solid transparent; transition:all .15s; }
.tab.active { color:var(--blue-l); border-bottom-color:var(--blue); }
.tab:hover { color:var(--text); }

/* ── Coming soon overlay ── */
.coming-soon {
  position:relative; overflow:hidden;
  filter:blur(2px) grayscale(.4); pointer-events:none; user-select:none;
}
.coming-soon-badge {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(5,9,26,.7); backdrop-filter:blur(4px); z-index:10;
  flex-direction:column; gap:10px; text-align:center; padding:20px;
  filter:none !important;
}

/* ── Mobile ── */
.hamburger { display:none; }
@media(max-width:768px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); }
  .main { margin-left:0; }
  .hamburger { display:flex; position:fixed; top:14px; left:14px; z-index:200; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-sm); padding:8px; cursor:pointer; color:var(--text); }
  .g2,.g3,.g4 { grid-template-columns:1fr; }
  .page-header { padding:60px 16px 0; }
  .content-pad { padding:16px; }
  .money-amount { font-size:32px; }
}
@media(min-width:769px) and (max-width:1100px) {
  .g4 { grid-template-columns:repeat(2,1fr); }
  .g3 { grid-template-columns:repeat(2,1fr); }
}

/* ── Utils ── */
.flex { display:flex; } .items-center { align-items:center; }
.justify-between { justify-content:space-between; }
.gap-2{gap:8px;} .gap-3{gap:12px;} .gap-4{gap:16px;}
.mt-1{margin-top:4px;} .mt-2{margin-top:8px;} .mt-3{margin-top:12px;}
.mt-4{margin-top:16px;} .mt-6{margin-top:24px;} .mb-4{margin-bottom:16px;}
.p-4{padding:16px;} .p-6{padding:24px;}
.text-sm{font-size:13px;} .text-xs{font-size:11px;}
.text-2{color:var(--text-2);} .text-3{color:var(--text-3);}
.text-green{color:var(--green);} .text-red{color:var(--red);}
.text-blue{color:var(--blue-l);} .text-yellow{color:var(--yellow);}
.font-bold{font-weight:700;} .font-h{font-family:var(--font-h);}
.rounded{border-radius:var(--r);} .rounded-full{border-radius:9999px;}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.w-full{width:100%;} .relative{position:relative;}
.content-pad { padding:24px 28px; }
