
/* ===== Light theme (default) ===== */
.dvwcdx{ --bg:#ffffff; --surface:#ffffff; --surface2:#f8fafc; --text:#0f172a; --muted:#475569; --border:#e5e7eb; --primary:#111827; --accent:#2563eb; --success:#16a34a; --shadow:0 4px 18px rgba(17,24,39,.08); }
.dvwcdx .wrap{ background: var(--bg); }
.dvwcdx .card{ background: var(--surface); border:1px solid var(--border); border-radius:16px; padding:16px; box-shadow: var(--shadow); }
.dvwcdx .card-title, .dvwcdx .card-hd h4{ color: var(--text); }
.dvwcdx .status, .dvwcdx .card-hd small{ color: var(--muted); }
.dvwcdx .inp, .dvwcdx select, .dvwcdx textarea{ background:#fff; border:1px solid var(--border); color:var(--text); border-radius:12px; padding:10px }
.dvwcdx .inp::placeholder{ color:#94a3b8 }
.dvwcdx .chk span{ color: var(--text); }
.dvwcdx .btn{ background: var(--primary); color:#fff; border:none; border-radius:12px; padding:10px 14px }
.dvwcdx .btn.secondary{ background:#e5e7eb; color:#111827; }
.dvwcdx .notice-empty{ padding:14px; border:1px dashed var(--border); border-radius:12px; color:var(--muted); text-align:center; background: var(--surface2); }

/* Results table (light) */
.dvwcd-results.modern{ --text:#0f172a; --muted:#64748b; --border:#e5e7eb; --chip:#f1f5f9; }
.dvwcd-results__head h3{ color: var(--text); }
.dvwcd-results__tablewrap{ border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#fff; }
.dvwcd-results__table thead th{ background:#f8fafc; color:var(--text); border-bottom:1px solid var(--border); }
.dvwcd-results__table tbody td{ color:var(--text); border-bottom:1px solid var(--border); }
.dvwcd-results__tools label{ color:var(--muted); }
.pill{ background:var(--chip); border:1px solid var(--border); color: var(--text); }
.acct{ background:#111827; color:#d1fae5; }


/* === Ducks Vote Improved Dark Theme === */
:root{
  --bg:#0b0f1a; --surface:#12182a; --surface2:#0f1526;
  --text:#e6e9f2; --muted:#a7b0c6;
  --border:rgba(255,255,255,.09);
  --primary:#7b5cff; --accent:#1ec8ff; --success:#16a34a;
}
/* High contrast inputs */
.dvwcd .card, #dvwcd-proposals .card{background:linear-gradient(180deg,var(--surface),var(--surface2));border:1px solid var(--border);box-shadow:0 18px 50px rgba(0,0,0,.35)}
.dvwcd input, .dvwcd select, .dvwcd textarea{background:#0c1120;border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px}
.dvwcd input:focus, .dvwcd select:focus, .dvwcd textarea:focus{outline:2px solid transparent;box-shadow:0 0 0 2px rgba(123,92,255,.45)}
.dvwcd .btn{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none}
/* Proposals list table */
.dvwcd-proposals .table{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.02)}
.dvwcd-proposals .thead, .dvwcd-proposals .row{display:grid;grid-template-columns:2fr 1fr 1fr .8fr 1fr 1fr .8fr}
.dvwcd-proposals .thead{background:#0e1529;padding:12px 14px;font-weight:600}
.dvwcd-proposals .row{padding:12px 14px;border-bottom:1px solid var(--border)}
.dvwcd-proposals .sub{font-size:.85rem;color:var(--muted)}
.dvwcd-proposals .empty{padding:18px;text-align:center;color:var(--muted)}
/* Modal */
.dvwcd-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center}
.dvwcd-modal__backdrop{position:absolute;inset:0;background:rgba(3,7,18,.75)}
.dvwcd-modal__content{position:relative;z-index:1;width:min(920px,92vw);background:#0c1120;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 18px 60px rgba(0,0,0,.55);color:var(--text)}
.dvwcd-modal__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}
.dvwcd-modal .grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px}
.tally{list-style:none;margin:0;padding:0}
.tally li{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.12)}
.voters{max-height:60vh;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:8px;background:#0e1529}
.voter{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px;border-bottom:1px solid rgba(255,255,255,.06)}
.voter-choice{grid-column:1 / -1;font-size:.9rem}
.voter-meta{grid-column:1 / -1;font-size:.8rem;color:var(--muted)}
/* Badge */
.dvwcd-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);font-size:.85rem;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}

/* Modern UI */
.dvwcdx{--bg:#0f1227;--card:#171a33;--text:#eaf2ff;--muted:#9aa4c7;--acc:#7dd3fc;--brand:#8b5cf6;--ok:#22c55e;--warn:#f59e0b;--err:#ef4444;
font-family:ui-sans-serif,system-ui; color:var(--text); background:radial-gradient(1200px 600px at 20% -10%, #1d2457,#0f1227);
border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:18px; box-shadow:0 10px 30px rgba(0,0,0,.35) inset;}
.hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.title{font-size:20px;font-weight:700}
.status{font-size:14px;color:var(--muted)}
.wallet{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(139,92,246,.12),rgba(0,0,0,0));border:1px solid rgba(139,92,246,.25);padding:10px 12px;border-radius:14px;margin:10px 0}
.wallet .actions{display:flex;gap:8px}
.btn{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer}
.btn.primary{background:linear-gradient(90deg,#7c3aed,#06b6d4);border:none}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.2);opacity:.8}
.btn:disabled{opacity:.5;cursor:not-allowed}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:10px}
.card{background:#171a33;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px}
.card-hd{display:flex;justify-content:space-between;align-items:center}
.card-body{display:flex;flex-direction:column;gap:6px}
.chk{display:inline-flex;align-items:center;gap:8px;margin:4px 10px 4px 0;padding:6px 8px;border:1px solid rgba(255,255,255,.08);border-radius:10px}
.chk input{accent-color:#7dd3fc}
.inp,.sel{background:#0b0f24;border:1px solid rgba(255,255,255,.12);color:#eaf2ff;border-radius:10px;padding:8px 10px}
.card-ft{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.card-ft .msg{font-size:12px;color:#9aa4c7}
#dvwcd-log{background:#0b1020;color:#c8facc;font-size:12px;border-radius:12px;padding:10px;max-height:220px;overflow:auto;margin-top:12px}
.hidden{display:none}


/* Results table modern */
.dvwcd-results.modern{--text:#e6e9f2;--muted:#a7b0c6;--border:rgba(255,255,255,.1);--chip:#0e1529}
.dvwcd-results__head{display:flex;justify-content:space-between;align-items:center;margin:10px 0 8px}
.dvwcd-results__head h3{margin:0;font-size:1.1rem;color:var(--text)}
.dvwcd-results__tools{display:flex;align-items:center;gap:8px}
.dvwcd-results__tools label{color:var(--muted);font-size:.9rem}
.dvwcd-results__tools select{background:#0c1120;border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 10px}
.dvwcd-results__tablewrap{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.02)}
.dvwcd-results__table{width:100%;border-collapse:separate;border-spacing:0}
.dvwcd-results__table thead th{background:#0e1529;color:var(--text);text-align:left;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border)}
.dvwcd-results__table tbody td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text)}
.dvwcd-results__table .empty{color:var(--muted);text-align:center}
.pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--chip);border:1px solid var(--border);font-size:.85rem}
.acct{background:#0b1020;color:#c8facc;padding:2px 8px;border-radius:6px}

/* Voting headings color and contrast */
.dvwcdx .card-title{color:#cbd4ff;font-weight:600}
.dvwcdx .card-body label, .dvwcdx .card-hd small, .dvwcdx .status{color:#a7b0c6}
.dvwcdx .chk span{color:#e6e9f2}
.dvwcdx .inp::placeholder{color:#93a0c0}


/* ===== Dark override ===== */
.dvwcdx.dvwcd-theme-dark{ --bg:#0b0f1a; --surface:#12182a; --surface2:#0f1526; --text:#e6e9f2; --muted:#a7b0c6; --border:rgba(255,255,255,.09); --primary:#7b5cff; --accent:#1ec8ff; --success:#16a34a; --shadow:0 18px 50px rgba(0,0,0,.35); }
.dvwcdx.dvwcd-theme-dark .inp, .dvwcdx.dvwcd-theme-dark select, .dvwcdx.dvwcd-theme-dark textarea{ background:#0c1120; border:1px solid var(--border); color:var(--text); }
.dvwcdx.dvwcd-theme-dark .btn{ background: linear-gradient(135deg, var(--primary), var(--accent)); }
.dvwcdx.dvwcd-theme-dark .notice-empty{ background: rgba(255,255,255,.02); border-color:var(--border); color: var(--muted); }
.dvwcdx.dvwcd-theme-dark .card{ background: linear-gradient(180deg, var(--surface), var(--surface2)); border:1px solid var(--border); box-shadow: var(--shadow); }
.dvwcdx.dvwcd-theme-dark .card-title, .dvwcdx.dvwcd-theme-dark .card-hd h4{ color: var(--text); }
.dvwcdx.dvwcd-theme-dark .status, .dvwcdx.dvwcd-theme-dark .card-hd small{ color: var(--muted); }

/* Results dark */
.dvwcdx.dvwcd-theme-dark + .dvwcd-results.modern{ --text:#e6e9f2; --muted:#a7b0c6; --border:rgba(255,255,255,.1); --chip:#0e1529; }

.dvwcdx .hdr{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}

.dvwcdx label,.dvwcdx .lbl,.dvwcdx .chk span{color:var(--text)!important}


/* Make wrapper background light and remove dark bar when theme=light */
.dvwcdx.dvwcd-theme-light{ background:#fff; }
.dvwcdx.dvwcd-theme-light .wrap, .dvwcdx.dvwcd-theme-light .outer{ background:#fff; }
.dvwcdx.dvwcd-theme-light .deck{ background:#fff; }
.dvwcdx.dvwcd-theme-light .bar, .dvwcdx.dvwcd-theme-light .footer{ background:#fff; }
.dvwcdx.dvwcd-theme-light .card{ background:#fff; }

/* Readability for labels & options on light theme */
.dvwcdx.dvwcd-theme-light label,
.dvwcdx.dvwcd-theme-light .lbl,
.dvwcdx.dvwcd-theme-light .chk span,
.dvwcdx.dvwcd-theme-light .card-hd small { color:#0f172a!important; opacity: 1!important; }

/* Radio / checkbox visual emphasis */
.dvwcdx input[type="radio"], .dvwcdx input[type="checkbox"]{ accent-color:#2563eb; }

/* Header bar light variant */
.dvwcdx.dvwcd-theme-light .hdr{
  background:#f8fafc!important;
  border:1px solid #e5e7eb!important;
  color:#0f172a!important;
}
.dvwcdx.dvwcd-theme-light .hdr .title,
.dvwcdx.dvwcd-theme-light .card-title{ color:#0f172a!important; }

/* Remove dark gradient bars under widget (legacy) */
.dvwcdx.dvwcd-theme-light .progress, .dvwcdx.dvwcd-theme-light .shadowbar{
  background:#fff!important; border-color:transparent!important;
}

/* Ducks modern buttons */
.dvwcdx .btn.primary{
  background: linear-gradient(135deg,#2563eb,#0ea5e9);
  color:#fff; border:none; border-radius:999px; padding:10px 18px; font-weight:800;
  box-shadow:0 10px 18px rgba(37,99,235,.20);
}
.dvwcdx .btn.primary:hover{ filter:brightness(1.05); box-shadow:0 12px 24px rgba(37,99,235,.24); }
#dvwcd-disconnect{
  background: linear-gradient(135deg,#ef4444,#b91c1c);
  color:#fff; border:none; border-radius:999px; padding:10px 18px; font-weight:800;
  box-shadow:0 10px 18px rgba(185,28,28,.20);
}
#dvwcd-disconnect[disabled]{ opacity:.6; filter:grayscale(0.2); cursor:not-allowed; }
#dvwcd-disconnect:hover{ filter:brightness(1.05); box-shadow:0 12px 24px rgba(185,28,28,.24); }

/* Connected badge */
.badge{ display:inline-flex; align-items:center; gap:6px; margin-left:8px; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:700; line-height:1; }
.badge.bad{ background:#e5e7eb; color:#334155; border:1px solid #e5e7eb; }
.badge.ok{ background:linear-gradient(135deg,#22c55e,#16a34a); color:#fff; box-shadow:0 8px 16px rgba(22,163,74,.22); border:0; }
.badge .dot{ width:8px; height:8px; border-radius:999px; background:currentColor; opacity:.9; }


/* ===== Hub UI improvements ===== */
.dvwcd-hub, .dvwcd-results__table, .dvwcd-proposals { color:#0f172a; }
.dvwcd-hub .toolbar .search{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px}
.dvwcd-hub .list .row .ttl{font-weight:600;color:#0f172a}
.dvwcd-hub .list .row .id{font-size:12px;color:#64748b}
.dvwcd-hub__right .head h3{margin:.2rem 0 1rem;font-size:1.1rem;color:#0f172a}
.dvwcd-hub__right .stats{display:grid;grid-template-columns:1fr;gap:6px;color:#0f172a}
.dvwcd-results__table{width:100%;border-collapse:separate;border-spacing:0 8px}
.dvwcd-results__table thead th{background:#6d28d9;color:#fff;padding:10px 12px;border-top-left-radius:8px;border-top-right-radius:8px}
.dvwcd-results__table tbody td{background:#fff;border:1px solid #e5e7eb;border-left:none;border-right:none;padding:10px 12px;color:#0f172a}
.dvwcd-results__table tbody tr{box-shadow:0 1px 6px rgba(0,0,0,.04)}
.dvwcd-results__table code.acct{background:#eef2ff;color:#1e1b4b;padding:2px 6px;border-radius:6px}
.dvwcd-hub .chartwrap > div{background:#fff;border:1px solid #e5e7eb}
.dvwcd-hub .pager button{border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;background:#fff}
.dvwcd-hub .pager .pginfo{font-size:12px;color:#64748b}

.dvwcd-hub .btn.ghost{border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;background:#fff;cursor:pointer}
.dvwcd-hub.is-detail .dvwcd-hub__left{display:none}
.dvwcd-hub.is-detail #hub-back{display:inline-block!important}

/* === Hub v2 table list === */
.dvwcd-hub2 .listView{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px}
.dvwcd-prop-table{width:100%;border-collapse:separate;border-spacing:0 8px}
.dvwcd-prop-table thead th{background:#111827;color:#fff;padding:10px 12px;border-top-left-radius:8px;border-top-right-radius:8px}
.dvwcd-prop-table tbody td{background:#fff;border:1px solid #e5e7eb;border-left:none;border-right:none;padding:10px 12px;color:#0f172a}
.dvwcd-prop-table tbody tr{box-shadow:0 1px 6px rgba(0,0,0,.04);cursor:pointer}
.dvwcd-prop-table .slug{font-size:12px;color:#6b7280}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px}
.badge.open{background:#d1fae5;color:#065f46}
.badge.closed{background:#fee2e2;color:#991b1b}
.dvwcd-hub2 .detailView{margin-top:14px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px}
.hidden{display:none !important}

.dvwcd-hub2 .stats .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f3f4f6}
.dvwcd-hub2 .stats .row span:first-child{font-weight:600;color:#374151}
.dvwcd-hub2 .stats{margin-bottom:12px}

.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 12px}
.kpi{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px}
.kpi .icon{font-size:18px;line-height:1}
.kpi .lbl{color:#6b7280;font-size:12px}
.kpi .val{font-size:16px}
@media (max-width:720px){.kpis{grid-template-columns:1fr}}

/* === Mobile responsive tables (hub proposals & votes) === */
@media (max-width: 700px){
  .dvwcd-prop-table, .dvwcd-results__table{ width:100%; border-collapse:separate; border-spacing:0; }
  .dvwcd-prop-table thead, .dvwcd-results__table thead{ display:none; }
  .dvwcd-prop-table tbody tr, .dvwcd-results__table tbody tr{
    display:block;
    margin:10px 0;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    box-shadow:0 1px 8px rgba(0,0,0,.05);
    overflow:hidden;
  }
  .dvwcd-prop-table tbody td, .dvwcd-results__table tbody td{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    border:0;
  }
  /* Labels via nth-child to avoid changing markup */
  .dvwcd-prop-table tbody td:nth-child(1)::before{ content:"Proposal"; font-weight:600; color:#6b7280; }
  .dvwcd-prop-table tbody td:nth-child(2)::before{ content:"Status"; font-weight:600; color:#6b7280; }
  .dvwcd-prop-table tbody td:nth-child(3)::before{ content:"Votes"; font-weight:600; color:#6b7280; }
  .dvwcd-prop-table tbody td:nth-child(4)::before{ content:"Unique"; font-weight:600; color:#6b7280; }
  .dvwcd-prop-table tbody td:nth-child(5)::before{ content:"Ends"; font-weight:600; color:#6b7280; }

  .dvwcd-results__table tbody td:nth-child(1)::before{ content:"Choice"; font-weight:600; color:#6b7280; }
  .dvwcd-results__table tbody td:nth-child(2)::before{ content:"Account"; font-weight:600; color:#6b7280; }
  .dvwcd-results__table tbody td:nth-child(3)::before{ content:"Ducks"; font-weight:600; color:#6b7280; }
  .dvwcd-results__table tbody td:nth-child(4)::before{ content:"Date"; font-weight:600; color:#6b7280; }

  /* Make proposal first cell look like a title */
  .dvwcd-prop-table tbody td:nth-child(1){
    font-weight:600;
    color:#0f172a;
  }
  .dvwcd-prop-table tbody td:nth-child(1) .slug{ display:block; margin-top:2px; font-weight:400; color:#6b7280; }

  /* Accounts wrap nicely on small screens */
  code.acct{ word-break:break-all; white-space:normal; font-size:12px; }

  /* Pagination spacing */
  .pager{ display:flex; gap:10px; align-items:center; justify-content:center; padding:8px 0; }
}
