: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;
  --bs-backdrop-bg: #fff;
  --obs-shadow: 0 10px 28px rgba(0,0,0,.05);
}
:root {
    --page-bg: #090b0d;
    --card-bg: #171a1d;
    --green-light:#34d399!important;
    --input-bg: #101316;
    --input-border: #30363d;
    --input-border-focus: #00a77b;

    --text-primary: #f1f3f5;
    --text-secondary: #a1a8b3;
    --text-muted: #6f7782;

    --accent: #00a77b;
}


body {
  background:rgb(9 9 11 / var(--tw-bg-opacity, 1)) !important;
}
.modal-title {
  color:#fff !important;
}
.form-label {
  margin-bottom: .5rem;
  font-size: 14px !important;
  font-weight: 600;
  color:#fff;
}
.modal-backdrop {
  --bs-backdrop-bg: #fff;
  z-index:10000;
}
.form-check-input:checked[type="checkbox"] {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
}

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);
  color:#fff !important;
}
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);
}
h1,h2,h3,h4,h5 {
  color:rgb(5 150 105 / var(--tw-bg-opacity, 1)) !important;
  font-weight:900;
}
.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;
}
.modal-content {
  background:#000;
}
.modal {
  z-index:100000;
}
.modal-header {
  border-bottom: 3px solid #000 !important;
}
.modal-footer {
  border-top: 3px solid #000 !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 */

.action-btn.primary {
  color: var(--green-light) !important;
    border-color: #225b4b !important;
    background: #17372d !important;
}
.btn-primary {
  color: var(--green-light) !important;
    border-color: #225b4b !important;
    background: #17372d !important;
}

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

    .sidebar{
      width:200px;
      flex-shrink:0;
      background:--card-bg;
    }

    .sidebar-brand{
      font-weight:900;
      letter-spacing:.3px;
      color:rgb(5 150 105 / var(--tw-bg-opacity, 1)) !important;
      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:#27272a80;
      color:#fff;
    }

    .snav.active{
      color:rgb(5 150 105 / var(--tw-bg-opacity, 1)) !important;      
      font-weight:700;
    }

    .snav.active i{
      color:rgb(5 150 105 / var(--tw-bg-opacity, 1)) !important;
    }

    .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:#101112;
      /*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;
      border:1px solid #222 !important;
    }
    .card > .p-3  {
      border-color:#000 !important;
      border-bottom:1px solid;
    }
    /* ===== TABLE (OBSIDIAN STANDARD) ===== */
    .table{
      margin:0;
    }
    .upload-card {
      box-shadow: 0 1px 2px rgba(0,0,0,.2) !important;
    }
    select, input, textarea {
      background: #000 !important;
      color: #fff !important;    
      border:2px solid #222 !important;
    }
    .table thead th{
      font-size:12px;
      font-weight:600;
      color:var(--obs-muted);
      text-transform:uppercase;
      letter-spacing:.06em;
      background: transparent;
      border-bottom:1px solid var(--obs-border);
      padding:12px;
      white-space:nowrap;
    }

    .form-label-icon {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-weight: 600;
    }

    .form-label-icon i {
        font-size: 0.95rem;
        opacity: 0.75;
    }
    .table tbody td{
      padding:12px;
      border-color:var(--obs-border);
      vertical-align:middle;
      font-size: 13px;
    }

    .table tbody tr:hover{
      background:#f8fafc;
    }
    .table>:not(caption)>*>* {
        padding: .5rem .5rem;
        color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
        background-color:#171a1d !important;
        border-bottom-width: var(--bs-border-width);
        box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
    }
    .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:none !important; var(--bs-card-border-width) solid var(--bs-card-border-color);
    }
    .sidebar-group {
  margin-top: 8px;
}
.border-bottom {
  border-color:#000 !important;
}

.sidebar-group-title {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  color: var(--obs-muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.snav.subnav {
  margin-left: 18px;
  padding-left: 14px;
  font-size: 14px;
}
.container {
  max-width:1180px;
}

.card {
    background: var(--card-bg);
    border: 1px solid #252a30;
    border-radius: 14px;
}


/* Labels */
.form-label {
    color: var(--text-secondary);
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 7px;
}

.cta-available {
    background: #19b768;
    color: #fff;
    opacity: 1;
    cursor: pointer;
}

.cta-disabled {
    background: #888;
    color: #fff;
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}
/* Inputs + selects */
.form-control,
.form-select {
    background-color: var(--input-bg) !important;
    border: 1px solid var(--input-border);
    color: var(--text-primary);

    border-radius: 7px;


    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        background-color .15s ease;
}


/* Focus */
.form-control:focus,
.form-select:focus {
    background-color: #111519;
    color: var(--text-primary);

    border-color: var(--input-border-focus);

    box-shadow:
        0 0 0 3px rgba(0, 167, 123, 0.12);
}


/* Placeholder */
.form-control::placeholder {
    color: #555e68;
}


/* Help text */
.form-text {
    color: var(--text-muted);
    font-size: 0.78rem;
    margin-top: 6px;
}


/* Select arrow / option */
.form-select option {
    background: var(--input-bg);
    color: var(--text-primary);
}


/* Disabled */
.form-control:disabled,
.form-select:disabled {
    background-color: #15181b;
    color: #6d747c;
    border-color: #252a30;
}


/* Optional icon labels */
.form-label-icon {
    display: flex;
    align-items: center;
    gap: 7px;
}

.form-label-icon i {
    color: var(--accent);
    font-size: 0.9rem;
}

.container {
  max-width: 100%;
  padding: 20px;
}