:root{
  --obs-bg:#f6f8fb;
  --obs-card:#ffffff;
  --obs-border:#e5e7eb;
  --obs-text:#111827;
  --obs-muted:#6b7280;
  --obs-primary:#2563eb;

  --obs-radius:10px;
  --obs-radius-sm:8px;

  --obs-shadow: 0 10px 28px rgba(0,0,0,.05);
}
.form-label {
  margin-bottom: .5rem;
  font-size: 14px !important;
  font-weight: 600;
}
body{
  background: var(--obs-bg);
  color: var(--obs-text);
}

.card{
  border:1px solid transparent !important;
  border-radius: var(--obs-radius);
  box-shadow: var(--obs-shadow);
}
tbody, td, tfoot, th, thead, tr {
    border-color: inherit;
    border-style: none !important;
    border-width: 0 !important;
}
.kicker {
    font-size: 12px;
    color: var(--obs-muted);
}
.small-muted{ color: var(--obs-muted); font-size: 12px; }
.mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
}
.btn-underline {
  border-bottom:5px solid #8B5CF6 !important;
}
.btn-primary{
  border-color: #8B5CF6 !important;
  border-radius: var(--obs-radius-sm);
  font-weight: 600;
  color: white !important;
  background:#8B5CF6 !important;
}
.btn-primary:hover {
  text-decoration:none !important;
}

.btn-outline-secondary{
  border-radius: var(--obs-radius-sm);
  font-weight: 600;
}

/* Nav links (header include) */
.navlink{
  color: var(--obs-muted);
  text-decoration:none;
  padding: 8px 10px;
  border-radius: 8px;
}
.navlink:hover{ background:#f1f5f9; color: var(--obs-text); }
.navlink.active{ background:#eef2ff; color: var(--obs-primary); font-weight: 600; }

/* Table headers */
.table thead th{
  font-size:12px;
  color: var(--obs-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 1px solid var(--obs-border);
}
.table td{ vertical-align: middle; border-color: var(--obs-border); }

/* Pills */


/* Sidebar */
.app-shell{
      display:flex;
      min-height:100vh;
    }

    .sidebar{
      width:200px;
      flex-shrink:0;
      background:#ffffff;
      border-right:1px solid #e5e7eb;
    }

    .sidebar-brand{
      font-weight:800;
      letter-spacing:.3px;
      color:#8B5CF6;
      font-size:24px;
    }

    .snav{
      display:flex;
      align-items:center;
      gap:10px;
      padding:10px 12px;
      border-radius:10px;
      text-decoration:none;
      color:#6b7280;
    }

    .snav i{
      font-size:16px;
      width:18px;
      text-align:center;
      color:#94a3b8;
    }

    .snav:hover{
      background:#f1f5f9;
      color:#111827;
    }

    .snav.active{
      background:#eef2ff;
      color:#8B5CF6;
      font-weight:700;
    }

    .snav.active i{
      color:#8B5CF6;
    }

    .sidebar-footer{
      border-top:1px solid #e5e7eb;
    }

    /* ===== Obsidian table style (matches Campaigns page) ===== */

   /* ===== GLOBAL DESIGN TOKENS ===== */
    :root{
      --obs-bg:#f6f8fb;
      --obs-card:#ffffff;
      --obs-border:#e5e7eb;
      --obs-text:#111827;
      --obs-muted:#6b7280;
      --obs-primary:#2563eb;
      --obs-ok:#16a34a;
      --obs-warn:#d97706;
      --obs-danger:#dc2626;
      --obs-radius:10px;
      --obs-shadow:0 10px 28px rgba(0,0,0,.05);
    }

    /* ===== CARD ===== */
    .card{
      background:var(--obs-card);
      /*border:1px solid var(--obs-border);*/
      border-radius:var(--obs-radius);
      box-shadow:var(--obs-shadow);
      overflow:hidden;
      box-shadow: 0 1px 2px rgba(0,0,0,.2) !important;
    }
    /* ===== TABLE (OBSIDIAN STANDARD) ===== */
    .table{
      margin:0;
    }
    .upload-card {
      box-shadow: 0 1px 2px rgba(0,0,0,.2) !important;
    }
    .table thead th{
      font-size:12px;
      font-weight:600;
      color:var(--obs-muted);
      text-transform:uppercase;
      letter-spacing:.06em;
      background:#f9fafb;
      border-bottom:1px solid var(--obs-border);
      padding:12px;
      white-space:nowrap;
    }

    .table tbody td{
      padding:12px;
      border-color:var(--obs-border);
      vertical-align:middle;
      font-size: 13px;
    }

    .table tbody tr:hover{
      background:#f8fafc;
    }

    .table a{
      color:inherit;
      text-decoration:none;
    }
    .table a:hover{
      text-decoration:underline;
    }

    /* ===== PILL ===== */
    .pill{
      display:inline-flex;
      align-items:center;
      padding:10px 15px;
      border-radius:999px;
      font-size:12px;
      background:#f9fafb;
      white-space:nowrap;
      line-height:1.1;
      
    }

    .pill.ok{
      color:var(--obs-ok);
      background:rgba(22,163,74,.08);
      border-color:rgba(22,163,74,.25);
    }
    .pill.warn{
      color:var(--obs-warn);
      background:rgba(217,119,6,.10);
      border-color:rgba(217,119,6,.25);
    }
    .pill.info{
      color:var(--obs-primary);
      background:rgba(37,99,235,.08);
      border-color:rgba(37,99,235,.20);
    }
    .pill.danger{
      color:var(--obs-danger);
      background:rgba(220,38,38,.10);
      border-color:rgba(220,38,38,.25);
    }
    .card-header {
    padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
    margin-bottom: 0;
    color: var(--bs-card-cap-color);
    background-color: transparent !important;
    border-top-right-radius:15px !important;
    border-top-left-radius:15px !important;
    /* background-color: var(--bs-card-cap-bg); */
    border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
    }