/* ============================================================
   SAHAJ CONNECT — NGO WORKSPACE (DS-4). Presentation only.
   A lighter, friendlier SaaS shell than the Admin command centre — same DS
   tokens/components, distinct personality. Loads after components.css.
   ============================================================ */
body.ds-ws{margin:0;background:var(--ds-bg);color:var(--ds-text);font-family:var(--ds-font);font-size:var(--ds-fs-base);}

/* Pre-auth (login) */
body.ds-ws--auth{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--ds-space-4);}

/* Shell layout */
.ds-ws__layout{display:grid;grid-template-columns:264px 1fr;min-height:100vh;}
.ds-ws__sidebar{background:var(--ds-surface);border-right:1px solid var(--ds-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.ds-ws__brand{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--ds-border);}
.ds-ws__logo{width:36px;height:36px;border-radius:10px;background:var(--ds-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none;}
.ds-ws__brandtext{font-weight:700;font-size:15px;line-height:1.1;}
.ds-ws__brandtext small{display:block;font-weight:500;font-size:11px;color:var(--ds-text-muted);}

/* Organisation switcher */
.ds-ws__orgwrap{margin:12px;}
.ds-ws__orgwrap .ds-orgswitch{width:100%;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface-muted);cursor:pointer;text-align:left;}
.ds-ws__orgwrap .ds-orgswitch[disabled]{cursor:default;}
.ds-ws__orgwrap .ds-orgswitch__name{flex:1;overflow:hidden;}
.ds-ws__orgwrap .ds-dropdown__menu{left:0;right:0;}

/* Nav */
.ds-ws__sidebar .ds-nav{padding:8px 10px 24px;}
.ds-nav__grouplabel{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ds-text-subtle);font-weight:700;padding:12px 10px 4px;}
.ds-ws__sidebar .ds-nav__link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--ds-radius-sm);color:var(--ds-text);text-decoration:none;font-size:var(--ds-fs-sm);}
.ds-ws__sidebar .ds-nav__link:hover{background:var(--ds-surface-hover);}
.ds-ws__sidebar .ds-nav__link.is-active{background:var(--ds-primary-soft);color:var(--ds-primary-active);font-weight:600;}
.ds-ws__sidebar .ds-nav__icon .ds-icon{width:18px;height:18px;}

/* Main + topbar */
.ds-ws__main{min-width:0;display:flex;flex-direction:column;}
.ds-ws__topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;height:var(--ds-header-h);padding:0 var(--ds-space-4);background:var(--ds-surface);border-bottom:1px solid var(--ds-border);}
.ds-ws__title{font-size:var(--ds-fs-lg);font-weight:var(--ds-fw-bold);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-ws__menu{display:none;}
.ds-ws__topright{display:flex;align-items:center;gap:12px;}
.ds-ws__user{font-size:var(--ds-fs-sm);color:var(--ds-text-muted);}
.ds-ws__backdrop{display:none;}
.ds-ws__content{padding:var(--ds-space-5) var(--ds-space-4);}
/* the workspace views set their own .container max-width/margin; keep it but cap */
.ds-ws__content .container{max-width:960px;margin-inline:auto;}

/* ---- Shared-class uplift for workspace views (token-driven) ---- */
.ds-ws .panel,.ds-ws .ds-card{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-sm);}
.ds-ws .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--ds-control-h);padding:0 var(--ds-space-4);border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);background:var(--ds-surface);color:var(--ds-text);font-weight:var(--ds-fw-semibold);font-size:var(--ds-fs-base);cursor:pointer;text-decoration:none;line-height:1;}
.ds-ws .btn:hover{background:var(--ds-surface-hover);}
.ds-ws .btn-primary{background:var(--ds-primary);border-color:var(--ds-primary);color:#fff;}
.ds-ws .btn-primary:hover{background:var(--ds-primary-hover);}
.ds-ws .btn-ghost{background:transparent;border-color:transparent;}
.ds-ws .btn-sm{min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);font-size:var(--ds-fs-sm);}
.ds-ws .badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--ds-radius-pill);font-size:var(--ds-fs-xs);font-weight:var(--ds-fw-semibold);}
.ds-ws .badge-green{background:var(--ds-success-soft);color:var(--ds-success);}
.ds-ws .badge-blue{background:var(--ds-info-soft);color:var(--ds-info);}
.ds-ws .badge-amber{background:var(--ds-warning-soft);color:var(--ds-warning);}
.ds-ws .badge-red{background:var(--ds-danger-soft);color:var(--ds-danger);}
.ds-ws .badge-grey{background:var(--ds-neutral-soft);color:var(--ds-neutral-700);}
.ds-ws .table{width:100%;border-collapse:collapse;font-size:var(--ds-fs-base);}
.ds-ws .table th{background:var(--ds-surface-muted);text-align:left;padding:9px 11px;font-size:var(--ds-fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--ds-text-muted);border-bottom:1px solid var(--ds-border);}
.ds-ws .table td{padding:9px 11px;border-bottom:1px solid var(--ds-border);}
.ds-ws .muted{color:var(--ds-text-muted);}
.ds-ws h3{font-size:var(--ds-fs-xl);font-weight:var(--ds-fw-bold);}
.ds-ws h4{font-size:var(--ds-fs-md);font-weight:var(--ds-fw-semibold);}

/* ---- Responsive: mobile drawer + bottom nav ---- */
@media (max-width:1023px){
  .ds-ws__layout{grid-template-columns:1fr;}
  .ds-ws__sidebar{position:fixed;left:0;top:0;bottom:0;width:264px;transform:translateX(-100%);transition:transform var(--ds-motion-standard) var(--ds-ease);z-index:1200;}
  body.ds-ws.ws-nav-open .ds-ws__sidebar{transform:translateX(0);}
  body.ds-ws.ws-nav-open .ds-ws__backdrop{display:block;position:fixed;inset:0;background:rgba(20,36,59,.45);z-index:1100;}
  .ds-ws__menu{display:inline-flex;}
  .ds-ws__content{padding:var(--ds-space-4) var(--ds-space-3);}
  .ds-ws__user{display:none;}
}
@media (max-width:640px){
  .ds-ws .panel,.ds-ws .ds-card{overflow-x:auto;}
  .ds-ws .table{min-width:480px;}
}
@media print{.ds-ws__sidebar,.ds-ws__topbar,.ds-ws__backdrop{display:none !important;}.ds-ws__layout{grid-template-columns:1fr;}}

/* ============================================================
   NGO WORKSPACE MODERN UI — PHASE 1 (shared premium shell)
   Deep-navy sidebar, refined topbar, help card. Additive: overrides the
   base shell above without touching page content. Tenant/RBAC unaffected.
   ============================================================ */
:root{--ws-navy:#0f2233;--ws-navy-2:#16324c;--ws-blue:#2563eb;--ws-blue-soft:#e7f0fe;--ws-ink:#0f2233;--ws-line:#e6ecf2;--ws-bg:#f4f7fb;}
body.ds-ws{background:var(--ws-bg);}
.ds-ws__layout{grid-template-columns:270px 1fr;}
/* Sidebar → deep navy */
.ds-ws__sidebar{background:var(--ws-navy);border-right:0;color:#cdd8e6;}
.ds-ws__brand{border-bottom:1px solid rgba(255,255,255,.08);color:#fff;}
.ds-ws__brandtext{color:#fff;}
.ds-ws__brandtext small{color:#8ea3bd;}
.ds-ws__logo{background:var(--ws-blue);}
.ds-nav__grouplabel{color:#7f95b1;padding:14px 12px 5px;}
.ds-ws__sidebar .ds-nav{padding:6px 12px 16px;}
.ds-ws__sidebar .ds-nav__link{color:#cdd8e6;border-radius:10px;padding:10px 12px;margin-bottom:1px;font-weight:500;}
.ds-ws__sidebar .ds-nav__link:hover{background:rgba(255,255,255,.06);color:#fff;}
.ds-ws__sidebar .ds-nav__link.is-active{background:var(--ws-blue);color:#fff;font-weight:700;box-shadow:0 6px 16px rgba(37,99,235,.35);}
.ds-ws__sidebar .ds-nav__icon .ds-icon{width:19px;height:19px;}
/* Org switcher on navy */
.ds-ws__orgwrap .ds-orgswitch{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;gap:10px;padding:9px 11px;}
.ds-ws__orgwrap .ds-orgswitch__avatar{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none;}
.ds-ws__orgwrap .ds-orgswitch__name{color:#fff;font-weight:700;font-size:13px;}
.ds-ws__orgwrap .ds-orgswitch__name .ds-text-muted{color:#8ea3bd;font-weight:500;}
.ds-ws__orgwrap .ds-orgswitch__chev{color:#8ea3bd;margin-left:auto;}
/* Help card pinned at sidebar bottom */
.ds-ws__help{margin:auto 12px 14px;display:flex;gap:10px;align-items:center;padding:12px;border-radius:12px;background:rgba(255,255,255,.06);color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.1);}
.ds-ws__help:hover{background:rgba(255,255,255,.1);}
.ds-ws__help-ic{width:34px;height:34px;border-radius:9px;background:var(--ws-blue);display:inline-flex;align-items:center;justify-content:center;flex:none;}
.ds-ws__help-ic .ds-icon{width:18px;height:18px;color:#fff;}
.ds-ws__help-tx b{font-size:13px;display:block;}.ds-ws__help-tx small{color:#8ea3bd;font-size:11.5px;}
/* Topbar */
.ds-ws__topbar{border-bottom:1px solid var(--ws-line);}
.ds-ws__bell{position:relative;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--ws-ink);text-decoration:none;}
.ds-ws__bell:hover{background:var(--ws-blue-soft);color:var(--ws-blue);}
.ds-ws__bell .ds-icon{width:20px;height:20px;}
.ds-ws__belldot{position:absolute;top:5px;right:5px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#e11d48;color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.ds-ws__usercard{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--ws-line);border-radius:12px;padding:5px 10px 5px 6px;cursor:pointer;}
.ds-ws__usercard:hover{background:var(--ws-bg);}
.ds-ws__useravatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:none;}
.ds-ws__usermeta{line-height:1.15;text-align:left;}
.ds-ws__usermeta b{font-size:13px;display:block;color:var(--ws-ink);}
.ds-ws__usermeta small{font-size:11.5px;color:#6b7c92;}
.ds-ws__userchev{color:#93a3b8;}
.ds-dropdown__menu--right{right:0;left:auto;}
@media (max-width:1023px){.ds-ws__usermeta{display:none;}.ds-ws__layout{grid-template-columns:1fr;}}

/* ============================================================
   NGO WORKSPACE — Finance V2 + Member V2 shared components (.ac-*)
   Same premium language as Public Presence Phase 1.
   ============================================================ */
.ac{--navy:#0f2233;--blue:#2563eb;--blue-soft:#e7f0fe;--green:#16a34a;--green-soft:#e8f7ee;--amber:#b45309;--amber-soft:#fdf4e3;--red:#c0322b;--ink:#0f2233;--muted:#5b6b7d;--line:#e6ecf2;--radius:14px;color:var(--ink)}
.ac h1,.ac h2,.ac h3,.ac h4{margin:0}
.ac-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.ac-head__l{display:flex;gap:13px;align-items:flex-start}
.ac-head__ic{width:48px;height:48px;border-radius:13px;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ac-head__ic .ds-icon{width:24px;height:24px}
.ac-head h1{font-size:1.5rem;font-weight:800}
.ac-head p{color:var(--muted);margin:3px 0 0;font-size:.9rem}
.ac-head__r{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ac-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:9px 14px;font-weight:700;font-size:.88rem;text-decoration:none;cursor:pointer}
.ac-btn .ds-icon{width:16px;height:16px}
.ac-btn--blue{background:var(--blue);border-color:var(--blue);color:#fff}.ac-btn--blue:hover{background:#1d4ed8}
.ac-btn--green{background:var(--green);border-color:var(--green);color:#fff}.ac-btn--green:hover{background:#15803d}
.ac-btn--ghost:hover{border-color:var(--blue);color:var(--blue)}
.ac-btn--sm{padding:5px 10px;font-size:.8rem}
.ac-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ac-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(15,34,51,.04)}
.ac-kpi .l{font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.ac-kpi .v{font-size:1.5rem;font-weight:800;color:var(--navy);margin-top:5px}
.ac-kpi.cash{border-left:3px solid #16a34a}.ac-kpi.bank{border-left:3px solid #2563eb}
.ac-kpi.income .v{color:#146c46}.ac-kpi.expense .v{color:var(--red)}
.ac-kpi.pos .v{color:#146c46}.ac-kpi.neg .v{color:var(--red)}
.ac-qa{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ac-qa a{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-weight:700;font-size:.86rem;text-decoration:none;color:var(--ink)}
.ac-qa a:hover{border-color:var(--blue);color:var(--blue)}
.ac-qa a.primary{background:var(--green);border-color:var(--green);color:#fff}
.ac-2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}
.ac-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:0 1px 2px rgba(15,34,51,.04)}
.ac-card h3{font-size:1.02rem;font-weight:800;margin-bottom:12px}
.ac-card h3 small{font-weight:600;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;margin-left:6px}
.ac-tbl{width:100%;border-collapse:collapse;font-size:.86rem}
.ac-tbl th{text-align:left;padding:8px 10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line)}
.ac-tbl td{padding:8px 10px;border-bottom:1px solid var(--line)}
.ac-tbl td.n,.ac-tbl th.n{text-align:right;font-variant-numeric:tabular-nums}
.ac-tbl tr:last-child td{border-bottom:0}
.ac-tbl tfoot td{font-weight:800;border-top:2px solid var(--navy);border-bottom:0}
.ac-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ac-badge{font-size:.64rem;font-weight:800;padding:2px 8px;border-radius:999px}
.ac-badge.posted{background:var(--green-soft);color:#146c46}.ac-badge.reversed{background:#fdecec;color:var(--red)}.ac-badge.draft{background:#eef2f6;color:#64748b}
.ac-bal{display:inline-flex;align-items:center;gap:6px;font-weight:800;padding:4px 12px;border-radius:999px}
.ac-bal.ok{background:var(--green-soft);color:#146c46}.ac-bal.bad{background:#fdecec;color:var(--red)}
.ac-field{margin-bottom:12px}
.ac-field label{display:block;font-size:.8rem;font-weight:700;margin-bottom:4px}
.ac-field input,.ac-field select,.ac-field textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:.9rem;font-family:inherit;background:#fff}
.ac-field input:focus,.ac-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.ac-frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ac-tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin-bottom:16px;overflow-x:auto}
.ac-tabs a{padding:10px 14px;font-weight:600;font-size:.86rem;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;text-decoration:none}
.ac-tabs a.on{color:var(--blue);border-bottom-color:var(--blue)}
.ac-empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}
.ac-total-row{display:flex;justify-content:space-between;padding:8px 0;border-top:2px solid var(--navy);font-weight:800;margin-top:6px}
@media(max-width:1024px){.ac-kpis{grid-template-columns:repeat(2,1fr)}.ac-2{grid-template-columns:1fr}}
@media(max-width:560px){.ac-kpis{grid-template-columns:1fr 1fr}.ac-frow{grid-template-columns:1fr}}
