:root{
  --oz-primary:#5b4fe9;
  --oz-primary-dark:#4a3fd1;
  --oz-primary-light:#eeecfd;
  --oz-green:#22a06b;
  --oz-green-dark:#188055;
  --oz-text:#1f2333;
  --oz-muted:#6b7280;
  --oz-border:#e6e7ee;
  --oz-bg:#f8f9fc;
  --oz-white:#ffffff;
  --oz-danger:#dc2626;
  --oz-radius:14px;
  --oz-shadow:0 8px 24px rgba(31,35,51,.06);
  --oz-shadow-lg:0 20px 50px rgba(91,79,233,.15);
  --font-display:'Poppins', 'Segoe UI', sans-serif;
  --font-body:'Inter', 'Segoe UI', sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-body);
  color:var(--oz-text);
  background:var(--oz-bg);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;font-weight:700}
p{margin:0 0 1em;color:var(--oz-muted);line-height:1.6}
.container{max-width:1180px;margin:0 auto;padding:0 24px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border-radius:10px;font-weight:600;
  border:none;cursor:pointer;font-size:15px;transition:.15s ease;
}
.btn-primary{background:var(--oz-primary);color:#fff}
.btn-primary:hover{background:var(--oz-primary-dark)}
.btn-outline{background:#fff;color:var(--oz-primary);border:1.5px solid var(--oz-primary)}
.btn-outline:hover{background:var(--oz-primary-light)}
.btn-green{background:var(--oz-green);color:#fff}
.btn-green:hover{background:var(--oz-green-dark)}
.btn-block{width:100%;justify-content:center}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:8px}

/* ---------- Top Navbar ---------- */
.oz-navbar{
  position:sticky;top:0;z-index:50;background:#fff;
  border-bottom:1px solid var(--oz-border);
}
.oz-navbar-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:72px;
}
.oz-logo{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:20px}
.oz-logo .dot{width:26px;height:26px;border-radius:50%;border:3px solid var(--oz-primary)}
.oz-logo .brand-2{color:var(--oz-primary)}
.oz-nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.oz-nav-links a{font-weight:500;color:var(--oz-text);font-size:15px}
.oz-nav-links a.active{color:var(--oz-primary)}
.oz-nav-right{display:flex;align-items:center;gap:12px}
.oz-mobile-toggle{display:none;background:none;border:none;font-size:26px;cursor:pointer;color:var(--oz-text)}
.oz-mobile-menu{display:none;flex-direction:column;gap:2px;background:#fff;border-top:1px solid var(--oz-border);padding:12px 24px 20px}
.oz-mobile-menu a{padding:12px 4px;border-bottom:1px solid var(--oz-border);font-weight:500}
.oz-mobile-menu.open{display:flex}

@media(max-width:900px){
  .oz-nav-links,.oz-nav-right .btn{display:none}
  .oz-mobile-toggle{display:block}
}

/* ---------- Hero ---------- */
.oz-hero{padding:64px 0 40px}
.oz-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.oz-eyebrow{display:inline-block;background:var(--oz-primary-light);color:var(--oz-primary);
  font-weight:600;font-size:13px;padding:6px 14px;border-radius:20px;margin-bottom:18px}
.oz-hero h1{font-size:46px;line-height:1.12}
.oz-hero h1 .accent{color:var(--oz-primary)}
.oz-hero-actions{display:flex;gap:14px;margin:26px 0}
.oz-stats{display:flex;gap:28px;flex-wrap:wrap;background:#fff;border:1px solid var(--oz-border);
  border-radius:var(--oz-radius);padding:18px 22px;box-shadow:var(--oz-shadow)}
.oz-stat{display:flex;align-items:center;gap:10px}
.oz-stat b{display:block;font-size:16px}
.oz-stat span{font-size:12px;color:var(--oz-muted)}
.oz-stat .ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--oz-primary-light)}
.oz-hero-art{background:linear-gradient(160deg,#efedff,#f8f9fc);border-radius:24px;padding:36px;text-align:center}

@media(max-width:900px){
  .oz-hero-grid{grid-template-columns:1fr}
  .oz-hero h1{font-size:34px}
  .oz-stats{gap:16px}
}

/* ---------- Split cards (Publisher / Advertiser) ---------- */
.oz-split{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:56px 0}
.oz-split-card{background:#fff;border:1px solid var(--oz-border);border-radius:20px;padding:36px;box-shadow:var(--oz-shadow)}
.oz-split-icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.oz-split-card.publisher .oz-split-icon{background:var(--oz-primary-light)}
.oz-split-card.advertiser .oz-split-icon{background:#e7f7ef}
.oz-split-list{list-style:none;padding:0;margin:18px 0}
.oz-split-list li{display:flex;align-items:center;gap:10px;padding:6px 0;color:var(--oz-text);font-size:14.5px}
.oz-split-list li::before{content:"✓";color:var(--oz-green);font-weight:700}
@media(max-width:900px){.oz-split{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.oz-footer{background:#12142b;color:#c7c9db;padding:56px 0 24px;margin-top:60px}
.oz-footer .container{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px}
.oz-footer h4{color:#fff;font-size:14px;margin-bottom:14px}
.oz-footer a{display:block;color:#9698b3;font-size:13.5px;padding:5px 0}
.oz-footer a:hover{color:#fff}
.oz-footer-bottom{border-top:1px solid #262848;margin-top:36px;padding-top:20px;
  display:flex;justify-content:space-between;font-size:13px;color:#8688a4;flex-wrap:wrap;gap:10px}
@media(max-width:900px){.oz-footer .container{grid-template-columns:1fr 1fr}}

/* ---------- Auth pages ---------- */
.oz-auth-wrap{min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;padding:40px 16px}
.oz-auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--oz-border);
  border-radius:20px;padding:34px 32px;box-shadow:var(--oz-shadow-lg)}
.oz-auth-card h2{font-size:24px;margin-bottom:6px}
.oz-field{margin-bottom:16px}
.oz-field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.oz-field input,.oz-field select{
  width:100%;padding:12px 14px;border:1.5px solid var(--oz-border);border-radius:10px;
  font-size:14.5px;font-family:var(--font-body);background:#fbfbfd;
}
.oz-field input:focus,.oz-field select:focus{outline:none;border-color:var(--oz-primary);background:#fff}
.oz-alert{padding:12px 14px;border-radius:10px;font-size:13.5px;margin-bottom:16px}
.oz-alert-error{background:#fdecec;color:var(--oz-danger)}
.oz-alert-success{background:#e8f8f0;color:var(--oz-green-dark)}
.oz-auth-foot{text-align:center;font-size:13.5px;margin-top:16px;color:var(--oz-muted)}

/* ---------- Captcha widget ---------- */
.oz-captcha{border:1.5px solid var(--oz-border);border-radius:14px;padding:18px;margin-bottom:16px;background:#fbfbfd}
.oz-captcha-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px}
.oz-captcha-badge svg{display:block}
.oz-captcha-sub{font-size:12.5px;margin:4px 0 12px;color:var(--oz-muted)}
.oz-captcha-target{display:flex;justify-content:center;padding:14px;background:#fff;border:1px solid var(--oz-border);border-radius:10px;margin-bottom:14px}
.oz-captcha-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.oz-captcha-opt{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;
  border:1.5px solid var(--oz-border);border-radius:10px;padding:10px 4px;cursor:pointer;background:#fff}
.oz-captcha-opt input{margin:0}
.oz-captcha-opt:has(input:checked){border-color:var(--oz-primary);box-shadow:0 0 0 3px var(--oz-primary-light)}
@media(max-width:420px){.oz-captcha-options{grid-template-columns:repeat(4,1fr);gap:6px}
  .oz-captcha-opt{padding:6px 2px}}

/* ---------- Dashboard shell (sidebar layout) ---------- */
.oz-app{display:flex;min-height:100vh}
.oz-sidebar{
  width:250px;flex-shrink:0;background:#12142b;color:#c7c9db;
  padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.oz-sidebar .oz-logo{color:#fff;padding:10px 8px 22px}
.oz-sidebar .oz-logo .dot{border-color:#fff}
.oz-sidebar nav a{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;
  color:#c7c9db;font-size:14.5px;font-weight:500;margin-bottom:2px;
}
.oz-sidebar nav a:hover{background:#1c1f3d;color:#fff}
.oz-sidebar nav a.active{background:var(--oz-primary);color:#fff}
.oz-sidebar .grp-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6d6f8e;margin:18px 12px 6px}

.oz-main{flex:1;min-width:0}
.oz-topbar{
  height:66px;background:#fff;border-bottom:1px solid var(--oz-border);
  display:flex;align-items:center;justify-content:space-between;padding:0 24px;
  position:sticky;top:0;z-index:20;
}
.oz-topbar-title{font-family:var(--font-display);font-weight:700;font-size:18px}
.oz-content{padding:26px 24px}

.oz-hamburger{display:none;background:none;border:none;font-size:24px;cursor:pointer}
@media(max-width:900px){
  .oz-sidebar{position:fixed;left:-270px;top:0;width:260px;z-index:100;transition:left .2s ease}
  .oz-sidebar.open{left:0}
  .oz-hamburger{display:block}
  .oz-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:90}
  .oz-sidebar-overlay.open{display:block}
}

/* ---------- Dashboard cards / stats ---------- */
.oz-cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:22px}
.oz-card{background:#fff;border:1px solid var(--oz-border);border-radius:16px;padding:20px 22px;box-shadow:var(--oz-shadow)}
.oz-card .label{font-size:12.5px;color:var(--oz-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.oz-card .value{font-family:var(--font-display);font-size:24px;font-weight:700;margin-top:6px}
.oz-card.balance-publisher{background:linear-gradient(135deg,var(--oz-primary),#8b7ff5);color:#fff}
.oz-card.balance-publisher .label{color:#e4e1ff}
.oz-card.balance-advertise{background:linear-gradient(135deg,var(--oz-green),#4bc98e);color:#fff}
.oz-card.balance-advertise .label{color:#e2f8ee}

.oz-panel{background:#fff;border:1px solid var(--oz-border);border-radius:16px;padding:22px;box-shadow:var(--oz-shadow);margin-bottom:20px}
.oz-panel h3{font-size:16px;margin-bottom:14px}

table.oz-table{width:100%;border-collapse:collapse;font-size:13.5px}
table.oz-table th{text-align:left;color:var(--oz-muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--oz-border);font-size:12px;text-transform:uppercase}
table.oz-table td{padding:12px;border-bottom:1px solid var(--oz-border)}
.oz-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700}
.oz-badge.pending{background:#fef3c7;color:#92400e}
.oz-badge.approved,.oz-badge.active,.oz-badge.completed{background:#dcfce7;color:#166534}
.oz-badge.rejected,.oz-badge.banned{background:#fee2e2;color:#991b1b}
