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

:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-2:#f1f5f9;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e2e8f0;
  --shadow:0 18px 40px rgba(15,23,42,.08);
  --primary:#2563eb;
  --primary-600:#1d4ed8;
  --accent:#7c3aed;
  --accent-600:#6d28d9;
  --success:#16a34a;
  --danger:#dc2626;
  --warning:#d97706;

  --sidebar-grad:#ffffff;
  --sidebar-text:#0f172a;
  --sidebar-muted:#94a3b8;
  --sidebar-active:#2563eb;
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Manrope","Trebuchet MS","Lucida Sans","Lucida Sans Unicode","Lucida Grande",sans-serif;font-size:13px;line-height:1.45}
a{color:inherit}
h1,h2,h3,h4{letter-spacing:-.01em}
/* Layout */
.app{min-height:100vh}
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:250px;
  background:var(--sidebar-grad);
  color:var(--sidebar-text);
  display:flex;flex-direction:column;
  border-right:1px solid var(--border);
  z-index:50;
  transform:translateX(0);
  transition:transform .2s ease;
}
.sidebar__brand{
  display:flex;gap:12px;align-items:center;
  padding:16px 16px;
  border-bottom:1px solid var(--border);
}
.logo-badge{
  width:40px;height:40px;border-radius:12px;
  background:var(--primary);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;letter-spacing:.5px;
  box-shadow:0 10px 20px rgba(37,99,235,.25);
}
.brand-text{line-height:1.1}
.brand-title{font-weight:800;font-size:13px}
.brand-sub{font-size:12px;color:var(--sidebar-muted);margin-top:3px}

.sidebar__scroll{padding:4px 8px 12px;overflow:auto;flex:1}
.sidebar__section{
  color:var(--sidebar-muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin:16px 12px 8px;
  font-weight:700;
}
.navitem{
  display:flex;gap:12px;align-items:center;
  padding:10px 12px;
  margin:3px 6px;
  text-decoration:none;
  border-radius:12px;
  color:#475569;
  font-weight:700;
  border:1px solid transparent;
  transition:background .2s ease,color .2s ease,box-shadow .2s ease;
}
.navitem:hover{background:var(--surface-2);color:#0f172a}
.navitem.is-active{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 10px 20px rgba(37,99,235,.2);
}
.navitem.is-active .navicon{opacity:1}
.navicon{width:18px;text-align:center;opacity:.9}

.sidebar__footer{
  padding:14px 14px 16px;
  border-top:1px solid var(--border);
}
.userchip{
  display:flex;gap:10px;align-items:center;
  background:var(--surface-2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:8px 10px;
}
.userchip__avatar{
  width:38px;height:38px;border-radius:12px;
  background:var(--surface-2);
  display:flex;align-items:center;justify-content:center;
}
.userchip__name{font-size:12px;font-weight:700}
.userchip__role{font-size:11px;color:var(--sidebar-muted)}

.overlay{display:none;position:fixed;inset:0;background:rgba(2,6,23,.45);z-index:40}

.app__main{margin-left:250px;min-height:100vh;display:flex;flex-direction:column}
.appbar{
  position:sticky;top:0;z-index:30;
  height:62px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 18px;
}
.appbar__left{display:flex;gap:12px;align-items:center}
.appbar__title{font-weight:800;font-size:13px}
.appbar__center{flex:1;max-width:540px;margin:0 14px}
.appbar__right{display:flex;gap:10px;align-items:center}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(16,185,129,.2);
  background:rgba(16,185,129,.08);
  color:#047857;
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.status-dot{
  width:8px;height:8px;border-radius:50%;
  background:#10b981;
  box-shadow:0 0 0 4px rgba(16,185,129,.2);
}
.appbar-profile{
  display:flex;align-items:center;gap:10px;
  padding-left:8px;
  border-left:1px solid var(--border);
}
.appbar-profile__meta{text-align:right}
.appbar-profile__name{font-size:12px;font-weight:800}
.appbar-profile__role{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.appbar-profile__avatar{
  width:34px;height:34px;border-radius:12px;
  background:var(--surface-2);
  border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-weight:800;color:#0f172a;
}
.appbar-profile__avatar img{
  width:100%;height:100%;
  border-radius:11px;
  object-fit:cover;
  display:block;
}
.iconbtn{
  border:1px solid rgba(37,99,235,.22);
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  border-radius:10px;
  padding:6px 9px;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.iconbtn:hover{
  background:linear-gradient(180deg,rgba(37,99,235,.14),rgba(37,99,235,.04));
  border-color:rgba(37,99,235,.45);
  transform:translateY(-1px);
}

.search{
  display:flex;gap:8px;align-items:center;
  border:1px solid var(--border);
  background:var(--surface-2);
  border-radius:16px;
  padding:8px 12px;
}
.search__icon{opacity:.55}
.search__input{border:0;outline:0;background:transparent;flex:1;color:var(--text);font-size:13px}
.search__input:disabled{opacity:.7}

.content{width:100%;max-width:1240px;margin:0 auto;padding:16px}

/* Auth (login) */
.auth-body{background:linear-gradient(180deg,#0b1220,#0a1020);color:#eaf1ff}
.auth-shell{max-width:520px;margin:0 auto;padding:28px 18px}
.auth-brand{display:flex;gap:12px;align-items:center;margin:18px 0 22px}
.auth-main{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.auth-body .card{background:transparent;border:0;box-shadow:none;padding:0;margin:0}

.auth-card{display:flex;flex-direction:column;gap:14px}
.auth-card__head{display:flex;flex-direction:column;gap:6px}
.auth-card__foot{opacity:.9}
.auth-form{display:flex;flex-direction:column;gap:10px}
.auth-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.auth-actions .btn, .auth-actions button{min-width:140px}

/* Components */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:20px;
  padding:16px;
  margin:12px 0;
  box-shadow:var(--shadow);
}
/* nested cards */
.card .card{box-shadow:none;background:var(--surface-2)}
.card .card{border:1px solid var(--border)}
.card h2{margin:0 0 10px;font-size:18px}
.card h3{margin:0 0 10px;font-size:15px}

.row{display:flex;gap:12px;flex-wrap:wrap}
.col{flex:1;min-width:260px}

label{display:block;margin:10px 0 6px;color:var(--muted);font-size:12px}
input,select,textarea{
  width:100%;
  padding:9px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  outline:0;
  font-size:13px;
}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(37,99,235,.45);box-shadow:0 0 0 4px rgba(37,99,235,.12)}

/* Form helpers */
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.section{padding:14px;border-radius:16px;border:1px solid var(--border);background:var(--surface-2);margin-top:12px}
.section__title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.section__title h3{margin:0;font-size:14px}
.muted{color:var(--muted)}

/* Toggle switch */
.switch{position:relative;display:inline-block;width:46px;height:28px;vertical-align:middle}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#dbe4f3;transition:.2s;border-radius:999px}
.slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:white;transition:.2s;border-radius:999px;box-shadow:0 4px 10px rgba(15,23,42,.18)}
.switch input:checked + .slider{background:linear-gradient(90deg,var(--primary),var(--accent))}
.switch input:checked + .slider:before{transform:translateX(18px)}

/* Simple tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tab{
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(37,99,235,.2);
  background:linear-gradient(180deg,#fff,#f4f7ff);
  text-decoration:none;
  font-size:12px;
  color:var(--muted);
}
.tab:hover{
  border-color:rgba(37,99,235,.45);
  color:var(--text);
  background:#eef3ff;
}
.tab.is-active{
  color:var(--text);
  border-color:rgba(37,99,235,.45);
  background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(124,58,237,.14));
  box-shadow:0 0 0 4px rgba(37,99,235,.08);
}

button,.btn{
  display:inline-flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  padding:9px 12px;
  border-radius:14px;
  border:1px solid rgba(37,99,235,.22);
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  color:var(--text);
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 10px 20px rgba(37,99,235,.08);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  /* improves tap reliability on mobile */
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
button:hover,.btn:hover{
  background:linear-gradient(180deg,rgba(37,99,235,.14),rgba(37,99,235,.04));
  border-color:rgba(37,99,235,.38);
  transform:translateY(-1px);
}
button:focus-visible,.btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(37,99,235,.16);
}

.btn.primary,button.primary{
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 14px 28px rgba(37,99,235,.25);
}
.btn.primary:hover,button.primary:hover{
  background:linear-gradient(135deg,var(--primary-600),var(--accent-600));
  border-color:var(--primary-600);
}

.btn.dark,button.dark{background:#111827;border-color:#111827;color:#fff}
.btn.dark:hover,button.dark:hover{background:#0b1220;border-color:#0b1220}

.table{width:100%;border-collapse:separate;border-spacing:0 8px;margin-top:10px}
.table thead th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.14em;padding:11px 12px;text-align:left}
.table tbody tr{background:var(--surface);border:1px solid var(--border);box-shadow:0 10px 22px rgba(15,23,42,.06)}
.table tbody td{padding:10px 12px}
.table tbody tr td:first-child{border-top-left-radius:14px;border-bottom-left-radius:14px}
.table tbody tr td:last-child{border-top-right-radius:14px;border-bottom-right-radius:14px}

/* Responsive table scrolling (wrap is injected automatically by JS) */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll::-webkit-scrollbar{height:10px}
.table-scroll::-webkit-scrollbar-thumb{background:rgba(15,23,42,.18);border-radius:999px}
.table-scroll::-webkit-scrollbar-track{background:transparent}

/* give big tables room on small screens */
@media (max-width: 900px){
  .table{min-width: 880px}
}

.small{font-size:11px;color:var(--muted)}

/* KPIs */
.kpi{display:flex;flex-direction:column;gap:6px}
.kpi__label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}
.kpi__value{font-size:24px;font-weight:800;line-height:1}
.kpi__sub{font-size:11px;color:var(--muted)}

/* Affiliate dashboard accent cards */
.aff-panel-card{
  position:relative;
  overflow:hidden;
}
.aff-panel-card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,#3b82f6,#a855f7);
}
.aff-panel-card--blue::before{
  background:linear-gradient(90deg,#3b82f6,#60a5fa);
}
.aff-panel-card--purple::before{
  background:linear-gradient(90deg,#8b5cf6,#c084fc);
}

/* Affiliate dashboard KPI cards */
.aff-kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:14px;
}
.aff-kpi-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
  display:flex;
  flex-direction:column;
  gap:6px;
  position:relative;
}
.aff-kpi-head{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-bottom:6px;
}
.aff-kpi-icon{
  width:46px;height:46px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#e8f0ff;
  color:#2563eb;
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
}
.aff-kpi-icon svg{width:22px;height:22px}
.aff-kpi-icon--clicks{background:rgba(59,130,246,.12);color:#2563eb}
.aff-kpi-icon--conversions{background:rgba(168,85,247,.14);color:#7c3aed}
.aff-kpi-icon--revenue{background:rgba(34,197,94,.16);color:#16a34a}
.aff-kpi-icon--profit{background:rgba(245,158,11,.18);color:#d97706}
.aff-kpi-label{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.12em;
}
.aff-kpi-value{
  font-size:24px;
  font-weight:800;
  line-height:1.1;
}
.aff-kpi-sub{
  font-size:11px;
  color:var(--muted);
}
.aff-kpi-trend{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
}
.aff-kpi-trend::before{
  content:none;
}
.aff-kpi-trend--up{color:var(--success)}
.aff-kpi-trend--up::before{border-bottom:7px solid currentColor}
.aff-kpi-trend--down{color:var(--danger)}
.aff-kpi-trend--down::before{border-top:7px solid currentColor}
.aff-kpi-trend--down span{color:var(--danger)}
.aff-kpi-trend--up span{color:var(--success)}

@media(max-width:1100px){
  .aff-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .aff-kpi-grid{grid-template-columns:1fr}
}

/* Mini charts */
.spark{width:100%;height:54px}
.spark polyline{fill:none;stroke:var(--primary);stroke-width:2}
.spark .grid{stroke:var(--border);stroke-width:1}


.flash{
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  margin:0 0 14px;
  box-shadow:var(--shadow);
}
.flash.success{border-color:rgba(22,163,74,.25);background:rgba(22,163,74,.06)}
.flash.error{border-color:rgba(220,38,38,.25);background:rgba(220,38,38,.06)}
.flash.warning{border-color:rgba(217,119,6,.25);background:rgba(217,119,6,.06)}

.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);font-size:11px}
.badge.ok{border-color:rgba(22,163,74,.25);background:rgba(22,163,74,.06);color:var(--success)}
.badge.bad{border-color:rgba(220,38,38,.25);background:rgba(220,38,38,.06);color:var(--danger)}
.badge.warn{border-color:rgba(217,119,6,.25);background:rgba(217,119,6,.06);color:var(--warning)}

.codebox{display:flex;gap:8px;align-items:center}
.codebox input{flex:1}

/* Old primary nav hidden (sidebar is primary now) */
.nav{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.nav--primary{display:none}
.nav--page a{display:inline-flex;align-items:center;padding:9px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);text-decoration:none}
.nav--page a:hover{background:var(--surface-2)}

/* Desktop collapsed sidebar */
body.sidebar-collapsed .sidebar{width:84px}
body.sidebar-collapsed .app__main{margin-left:84px}
body.sidebar-collapsed .brand-text{display:none}
body.sidebar-collapsed .sidebar__section{display:none}
body.sidebar-collapsed .sidebar__brand{justify-content:center}
body.sidebar-collapsed .sidebar__footer{display:none}
body.sidebar-collapsed .sidebar__scroll{padding:8px}
body.sidebar-collapsed .navitem{justify-content:center}
body.sidebar-collapsed .navitem span:last-child{display:none}

/* Toast */
#toast-root{position:fixed;right:16px;bottom:16px;z-index:99;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--text);color:#fff;padding:10px 12px;border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.22);opacity:0;transform:translateY(8px);transition:opacity .16s ease, transform .16s ease}
.toast.show{opacity:1;transform:translateY(0)}

/* Mobile */
@media (max-width: 900px){
  .sidebar{transform:translateX(-105%)}
  .sidebar.is-open{transform:translateX(0)}
  .overlay{display:block;opacity:0;pointer-events:none;transition:opacity .2s ease}
  .overlay.is-open{opacity:1;pointer-events:auto}
  .app__main{margin-left:0}
  .appbar__center{display:none}
}

/* ================================
   O18 UI tweaks (Affiliate Offers/Reports + Auth)
   ================================ */

/* Auth pages: match dashboard look */
.auth-body{background:var(--bg);color:var(--text);}
.auth-head{margin-bottom:16px;}
.auth-main{background:var(--surface);border:1px solid var(--border);box-shadow:0 14px 40px rgba(17,24,39,.08);}
.auth-side{background:linear-gradient(180deg, rgba(90,140,255,.10), rgba(90,140,255,0));border:1px dashed var(--border);color:var(--muted);}

/* Page header */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;}
.page-head h1{margin:0;font-size:24px;letter-spacing:-.02em;}
.page-sub{color:var(--muted);font-size:12px;margin-top:4px;}

/* Tabs */
.tabs{display:flex;gap:18px;border-bottom:1px solid var(--border);margin:6px 0 14px;}
.tabs a{padding:8px 2px;text-decoration:none;color:var(--muted);font-weight:700;font-size:12px;}
.tabs a.is-active{color:var(--text);border-bottom:2px solid var(--primary);}
.tabs a.is-disabled{opacity:.45;pointer-events:none;}

/* Filter bar + chips */
.chipbar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:18px;background:var(--surface);}
.chip{display:inline-flex;align-items:center;gap:8px;padding:5px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:700;color:var(--text);}
.chip .x{opacity:.55;}

.filterbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:12px;}
.field{display:flex;flex-direction:column;gap:6px;min-width:160px;}
.field label{font-size:12px;color:var(--muted);font-weight:800;}
.filterbar .actions{display:flex;align-items:flex-end;}
@media (max-width: 700px){
  .filterbar{gap:10px;}
  .filterbar .field,
  .filterbar .actions{flex:1 1 100%;min-width:0;}
  .filterbar .actions .btn,
  .filterbar .actions button{width:100%;}
}

.quickrange{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.quickrange a{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;border:1px solid rgba(37,99,235,.22);background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));text-decoration:none;color:var(--text);font-weight:800;font-size:11px;}
.quickrange a:hover{border-color:rgba(37,99,235,.45);background:linear-gradient(180deg,rgba(37,99,235,.14),rgba(37,99,235,.04));}

.actionbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;}
.actionbar .btn{padding:9px 12px;}
.actionbar .btn.secondary{
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  border:1px solid rgba(37,99,235,.22);
  color:var(--text);
}
.actionbar .btn.secondary:hover{
  border-color:rgba(37,99,235,.45);
  background:linear-gradient(180deg,rgba(37,99,235,.14),rgba(37,99,235,.04));
}

/* Offer list rows */
.logo-cell{display:flex;align-items:center;gap:12px;}
.logo-placeholder{width:44px;height:44px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--muted);flex:none;}
.offer-title{font-weight:900;font-size:13px;}
.offer-sub{font-size:11px;color:var(--muted);margin-top:2px;}

/* Simple 2-col grid */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:900px){
  .grid-2{grid-template-columns:1fr;}
  .reports-view .filter-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .reports-view .filter-row{grid-template-columns:1fr;}
}

/* Offer view */
.offer-top{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.offer-top .h3{margin:0;font-size:18px;letter-spacing:-.01em;}
.code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}

.linkbox{display:flex;gap:10px;align-items:center;}
.linkbox input{flex:1;}

.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
@media(max-width:700px){.toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){
  .toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .toggle-item{padding:8px;}
  .toggle-item .label{font-size:12px;}
  .toggle-item .hint{font-size:10px;}
  .toggle-item .switch{transform:scale(.9);transform-origin:center right;}
}

.toggle-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);}
.toggle-item .label{font-weight:800;font-size:12px;}
.toggle-item .hint{font-size:10px;color:var(--muted);font-weight:700;}

/* Make long pages nicer on mobile */
.card{overflow:hidden;}

/* Multiselect (Reports) */
.filterbox{border:1px solid #e5e7eb; border-radius:16px; padding:12px; background:#fcfcff; margin-bottom:12px;}
.ms{position:relative;}
.ms-btn{width:100%; text-align:left; background:linear-gradient(180deg,rgba(37,99,235,.06),rgba(37,99,235,.01)); border:1px solid rgba(37,99,235,.22); border-radius:999px; padding:10px 12px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-height:44px;}
.ms-btn:focus{outline:none; box-shadow:0 0 0 3px rgba(37,99,235,.18);}
.ms-btn .chip{margin:0;}
.ms-menu{position:absolute; top:calc(100% + 6px); left:0; right:0; background:#fff; border:1px solid #e5e7eb; border-radius:14px; box-shadow:0 10px 24px rgba(0,0,0,.08); padding:10px; display:none; z-index:50; max-height:260px; overflow:auto;}
.ms.open .ms-menu{display:block;}
.ms-menu label{display:flex; gap:10px; align-items:center; padding:8px 10px; border-radius:10px; cursor:pointer; user-select:none;}
.ms-menu label:hover{background:#f5f7ff;}

.btnbar{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.btn.sm{padding:7px 10px; font-size:12px; border-radius:10px;}

/* Campaign builder */
.campaign-builder{padding:0}
.campaign-builder__head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:18px;border-bottom:1px solid var(--border);
  background:linear-gradient(180deg, rgba(37,99,235,.08), rgba(37,99,235,0));
}
.builder-title{display:flex;gap:12px;align-items:center}
.builder-icon{
  width:44px;height:44px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(37,99,235,.12);
  border:1px solid rgba(37,99,235,.25);
  color:var(--primary);font-weight:800;
}
.builder-actions{display:flex;gap:10px;flex-wrap:wrap}

.campaign-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:16px;padding:18px;
}
.campaign-col--full{grid-column:1 / -1}
.campaign-col .section:first-child{margin-top:0}

.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-option{position:relative;display:block}
.theme-option input{position:absolute;opacity:0;pointer-events:none}
.theme-card{
  border:1px solid var(--border);border-radius:14px;padding:8px;
  background:var(--surface);display:flex;flex-direction:column;gap:8px;
  text-align:center;font-size:12px;color:var(--muted);cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.theme-option input:checked + .theme-card{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
  color:var(--text);
}
.theme-preview{
  display:block;height:120px;border-radius:10px;position:relative;overflow:hidden;
}
.theme-preview::before{
  content:"";position:absolute;left:12px;right:32px;top:12px;height:10px;
  border-radius:999px;background:rgba(255,255,255,.55);
}
.theme-preview::after{
  content:"";position:absolute;left:12px;right:12px;bottom:12px;height:14px;
  border-radius:999px;background:rgba(255,255,255,.75);
}
.theme-preview--midnight{background:linear-gradient(180deg,#0f172a,#1f2937)}
.theme-preview--sky{background:linear-gradient(180deg,#e2e8f0,#f8fafc)}
.theme-preview--sunrise{background:linear-gradient(180deg,#fee2e2,#fff7ed)}

.disclosure{margin-top:10px}
.disclosure > summary{
  cursor:pointer;list-style:none;font-weight:800;color:var(--text);
  display:flex;align-items:center;justify-content:space-between;
}
.disclosure > summary::-webkit-details-marker{display:none}
.disclosure > summary::after{content:"+";color:var(--muted);font-weight:900}
.disclosure[open] > summary::after{content:"-"}
.disclosure__body{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
.section.disclosure .disclosure__body{display:block}
.token-chip{
  display:inline-flex;align-items:center;gap:6px;padding:4px 8px;
  border-radius:999px;border:1px solid var(--border);background:var(--surface);
  font-size:12px;font-weight:700;
}

.payout-table{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.payout-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;align-items:center}
.payout-row.payout-row--2{grid-template-columns:1.4fr 1fr}
.payout-row--head{
  font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
}
.payout-label{font-weight:800}

.payout-summary{
  margin-top:12px;border:1px solid var(--border);border-radius:16px;
  padding:12px;background:var(--surface-2);
}
.summary-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-weight:800}
.summary-row + .summary-row{border-top:1px dashed var(--border)}
.summary-row--profit strong{color:var(--success)}

@media (max-width: 1100px){
  .campaign-grid{grid-template-columns:1fr}
}
@media (max-width: 700px){
  .theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .builder-actions .btn{flex:1}
}

/* ================================
   Nexus-inspired reports styling
   ================================ */
.badge.live{
  border-color:rgba(37,99,235,.18);
  background:rgba(37,99,235,.08);
  color:var(--primary);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:10px;
}

.reports-view .page-head{
  align-items:center;
  margin-bottom:18px;
}
.reports-view .page-head h1{
  font-size:30px;
  letter-spacing:-.02em;
}
.reports-view .page-sub{
  font-size:13px;
}

.reports-view .smart-query{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:16px;
  padding:8px 12px;
  box-shadow:0 10px 22px rgba(15,23,42,.06);
  margin-bottom:18px;
}
.reports-view .smart-query__icon{
  color:#2563eb;
  font-weight:800;
}
.reports-view .smart-query__input{
  flex:1;
  border:0;
  background:transparent;
  outline:0;
  font-size:13px;
  color:var(--muted);
}
.reports-view .smart-query__btn{
  border:0;
  background:var(--primary);
  color:#fff;
  width:36px;height:36px;
  border-radius:12px;
  font-weight:800;
  cursor:not-allowed;
}

.reports-view .o18-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:6px 0 28px;
}
.reports-view .o18-filter-card{
  border-radius:28px;
  border:1px solid #e2e8f0;
  background:#fff;
  padding:18px;
  box-shadow:0 18px 40px rgba(15,23,42,.06);
}
.reports-view .filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:6px 4px 14px;
  border-bottom:1px solid #eef2f7;
  margin-bottom:16px;
}
.reports-view .filter-head__title{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
}
.reports-view .filter-head__clear{
  color:var(--primary);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  text-decoration:none;
}
.reports-view .filter-field{margin-bottom:14px}
.reports-view .filter-field + .filter-field{
  border-top:1px solid #eef2f7;
  padding-top:14px;
}
.reports-view .filter-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:14px;
}
.reports-view .filter-row.filter-row--2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.reports-view .filter-row .filter-field{
  margin-bottom:0;
}
.reports-view .filter-row .filter-field + .filter-field{
  border-top:0;
  padding-top:0;
}
.reports-view .filter-label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:800;
  color:#94a3b8;
  margin:0 0 8px;
}
.reports-view .o18-chip-box{
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:12px;
  margin:0 0 14px;
  background:#f8fafc;
}
.reports-view .columns-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 6px;
  border-top:1px solid #e2e8f0;
  margin-top:10px;
}
.reports-view .columns-toggle__label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:800;
  color:#94a3b8;
}
.reports-view .columns-toggle__btn{
  border:1px solid #dbe3f1;
  background:#fff;
  color:#1d4ed8;
  font-weight:800;
  font-size:10px;
  padding:6px 10px;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.reports-view .o18-chip-wrap{
  gap:8px;
  display:flex;
  flex-wrap:wrap;
  flex-direction:row;
}
.reports-view .o18-chip{
  width:auto;
  border-radius:10px;
  border:1px solid #c7d2fe;
  background:#eaf2ff;
  color:#1e3a8a;
  font-weight:700;
  font-size:12px;
  padding:6px 10px;
  justify-content:flex-start;
}
.reports-view .o18-chip .x{
  color:#3b82f6;
  font-weight:800;
  margin-right:6px;
}
.reports-view .o18-chip.locked{
  border-color:#dbeafe;
  background:#f1f5ff;
  color:#1e3a8a;
}
.reports-view .o18-colsearch{
  border-radius:12px;
  border:1px solid #e2e8f0;
  background:#fff;
  margin-top:12px;
}
.reports-view .o18-col-list{
  border-radius:14px;
  border:1px solid #e2e8f0;
  background:#fff;
}
.reports-view .o18-col-list.is-collapsed{
  display:none;
}
.reports-view .o18-col-section{
  padding:10px 12px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:800;
  color:#94a3b8;
  background:#f8fafc;
  border-top:1px solid #eef2f7;
}
.reports-view .o18-col-section:first-child{
  border-top:0;
}
.reports-view .o18-col-item{
  border-top:1px solid #eef2f7;
  padding:10px 12px;
}
.reports-view .o18-col-item .meta{
  color:#94a3b8;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
}
.reports-view .o18-col-item .right{
  gap:8px;
}
.reports-view .toggle{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:38px;
  height:22px;
}
.reports-view .toggle input{
  opacity:0;
  width:0;
  height:0;
}
.reports-view .toggle__track{
  position:absolute;
  inset:0;
  background:#dbe4f3;
  border-radius:999px;
  transition:background .2s ease;
}
.reports-view .toggle__track::after{
  content:"";
  position:absolute;
  width:16px;
  height:16px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 3px 6px rgba(15,23,42,.16);
  transition:transform .2s ease;
}
.reports-view .toggle input:checked + .toggle__track{
  background:linear-gradient(90deg,var(--primary),var(--accent));
}
.reports-view .toggle input:checked + .toggle__track::after{
  transform:translateX(16px);
}
.reports-view .o18-control{
  border-radius:999px;
  border:1px solid rgba(37,99,235,.22);
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  padding:12px 18px;
  font-weight:700;
  color:#0f172a;
  width:100%;
}
.reports-view .o18-period-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:12px;
}
.reports-view .o18-period-label{
  grid-column:1 / -1;
}
.reports-view .o18-period-label{font-weight:700;color:var(--muted)}
.reports-view .o18-period-label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.reports-view .o18-quick{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
}
.reports-view .o18-btn-range{
  border:1px solid rgba(37,99,235,.22);
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  color:#0f172a;
  border-radius:9px;
  font-weight:700;
  font-size:8px;
  padding:6px 4px;
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.reports-view .o18-submit{
  border-radius:16px;
  background:linear-gradient(180deg,#2f6cf2,#245ad9);
  color:#fff;
  font-weight:700;
  box-shadow:0 14px 28px rgba(37,99,235,.25);
  height:40px;
  font-size:13px;
  width:100%;
  text-transform:uppercase;
  letter-spacing:.2em;
  border:0;
}
.reports-view .o18-export{
  margin:14px 0 10px;
}
.reports-view .btn.secondary{
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(37,99,235,.02));
  border:1px solid rgba(37,99,235,.22);
  color:var(--text);
}
.reports-view .btn.secondary:hover{
  border-color:rgba(37,99,235,.45);
  background:linear-gradient(180deg,rgba(37,99,235,.14),rgba(37,99,235,.04));
}
.reports-view .o18-table-card{
  border-radius:24px;
  border:1px solid #e2e8f0;
  background:#fff;
  overflow:auto;
  box-shadow:var(--shadow);
}
.reports-view .o18-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:680px;
}
.reports-view .o18-table thead th{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
  color:#94a3b8;
  padding:14px 14px;
  border-bottom:1px solid #e2e8f0;
  background:#f8fafc;
}
.reports-view .o18-table tbody td{
  padding:14px 14px;
  border-bottom:1px solid #eef2f7;
  font-size:13px;
  font-weight:700;
  color:#0f172a;
}
.reports-view .o18-muted{color:var(--muted);font-weight:600}
.reports-view .o18-sort-icon{opacity:.35}
.reports-view .o18-alert{
  border-radius:16px;
  border:1px solid rgba(220,38,38,.2);
  background:rgba(220,38,38,.05);
}

@media (max-width: 520px){
  .reports-view .o18-period-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reports-view .o18-period-row .o18-control{padding:8px 10px;font-size:11px;}
}

@media (max-width: 640px){
  .reports-view .o18-filter-card{padding:10px;border-radius:20px;}
  .reports-view .filter-head{padding:2px 2px 8px;margin-bottom:8px;}
  .reports-view .filter-field{margin-bottom:8px;}
  .reports-view .filter-field + .filter-field{padding-top:8px;}
  .reports-view .o18-chip-box{padding:6px;margin:0 0 8px;border-radius:14px;}
  .reports-view .o18-chip-wrap{gap:5px;}
  .reports-view .o18-chip{font-size:9px;padding:3px 7px;}
  .reports-view .o18-chip .x{margin-right:3px;font-size:9px;}
  .reports-view .o18-period-row{margin-bottom:6px;}
  .reports-view .o18-submit{height:34px;font-size:10px;letter-spacing:.14em;}
}
