/* ── VICOBAPro — Global Styles ─────────────────────────── */
:root {
  --primary:#1B4332;--primary-light:#2D6A4F;--accent:#F4A261;
  --gold:#FFB703;--bg:#F8F5F0;--bg-dark:#0D1F17;
  --bg-card:#142B1E;--bg-input:#1A3528;--card:#FFFFFF;
  --text:#1A1A2E;--text-light:#F0EDE8;--text-muted:#6B7280;
  --text-muted-dk:#8BA898;--danger:#DC2626;--warning:#F59E0B;
  --success:#16A34A;--suspended:#7C3AED;--border:#E5E7EB;
  --border-dk:#2A4A38;--radius:14px;--shadow:0 2px 12px rgba(0,0,0,.08);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'DM Sans',-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
#root{min-height:100vh;display:flex;justify-content:center;background:#E5E0D8}
.app-shell{width:100%;max-width:430px;min-height:100vh;background:var(--bg);display:flex;flex-direction:column;position:relative;overflow:hidden}
.screen{flex:1;overflow-y:auto;padding-bottom:80px}
.screen::-webkit-scrollbar{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:15px 20px;font-family:'DM Sans',sans-serif;font-weight:800;font-size:15px;border:none;border-radius:12px;cursor:pointer;transition:transform .1s,opacity .2s}
.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--accent);color:var(--primary)}.btn-secondary{background:rgba(255,255,255,.08);color:var(--text-light)}
.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}
.btn-green{background:var(--primary);color:#fff}.btn-gold{background:var(--gold);color:var(--primary)}
.btn-outline{background:transparent;border:2px solid currentColor}.btn-sm{padding:9px 14px;font-size:12px;border-radius:10px}
.btn-auto{width:auto}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.card-dark{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-dk);padding:24px}
.input-wrap{margin-bottom:16px}
.input-label{font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;display:block}
.input{width:100%;padding:14px 16px;border-radius:12px;border:1.5px solid var(--border);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text);background:#FAFAFA;outline:none;transition:border-color .2s}
.input:focus{border-color:var(--accent)}.input-dark{background:var(--bg-input);border-color:var(--border-dk);color:var(--text-light)}
.input-dark:focus{border-color:var(--accent)}.input-error{border-color:var(--danger)!important}
.error-msg{font-size:11px;color:var(--danger);margin-top:4px}
.select{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);font-size:14px;font-family:'DM Sans',sans-serif;color:var(--text);background:#FAFAFA;outline:none}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:10px;font-weight:700;white-space:nowrap}
.badge-success{background:#DCFCE7;color:var(--success)}.badge-danger{background:#FEE2E2;color:var(--danger)}
.badge-warning{background:#FEF3C7;color:#92400E}.badge-purple{background:#EDE9FE;color:var(--suspended)}
.badge-muted{background:#F3F4F6;color:var(--text-muted)}.badge-gold{background:#FEF3C7;color:#92400E}
.badge-green{background:#D1FAE5;color:var(--primary-light)}
.stat-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.stat-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:16px}
.stat-card{background:var(--card);border-radius:14px;padding:14px;box-shadow:var(--shadow);border-top:3px solid var(--primary)}
.stat-icon{font-size:22px;margin-bottom:4px}.stat-value{font-size:20px;font-weight:900;color:var(--text);font-family:'Playfair Display',serif}
.stat-label{font-size:11px;color:var(--text-muted);margin-top:2px}.stat-sub{font-size:10px;font-weight:700;margin-top:3px}
.modal-overlay{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center}
.modal-box{background:var(--card);border-radius:20px 20px 0 0;padding:24px 20px 36px;width:100%;max-width:430px;max-height:92vh;overflow-y:auto}
.modal-box::-webkit-scrollbar{display:none}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.modal-title{font-weight:800;font-size:17px;font-family:'Playfair Display',serif}
.modal-close{background:var(--bg);border:none;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:16px;color:var(--text-muted)}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:12px;font-weight:700;font-size:13px;color:#fff;box-shadow:0 4px 20px rgba(0,0,0,.2);white-space:nowrap;z-index:9999;animation:slideDown .3s ease}
.toast-success{background:var(--success)}.toast-error{background:var(--danger)}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:var(--card);border-top:1px solid var(--border);display:flex;padding:8px 0 16px;z-index:100;box-shadow:0 -4px 20px rgba(0,0,0,.08)}
.nav-btn{flex:1;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}
.nav-icon{font-size:20px}.nav-label{font-size:9px;font-weight:700}.nav-dot{width:4px;height:4px;border-radius:99px;background:var(--primary);margin-top:1px}
.top-header{background:var(--primary);padding:20px 20px 0}
.header-tabs{display:flex}
.tab-btn{flex:1;padding:12px 0;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:600;font-size:12px;color:rgba(255,255,255,.5);border-bottom:3px solid transparent;transition:all .2s}
.tab-btn.active{color:var(--gold);font-weight:800;border-bottom-color:var(--gold)}
.progress-track{background:var(--border);border-radius:99px;height:8px;overflow:hidden}
.progress-fill{height:100%;border-radius:99px;transition:width .5s}
.list-item{background:var(--card);border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}
.list-item-name{font-weight:800;font-size:15px;color:var(--text)}.list-item-sub{font-size:12px;color:var(--text-muted);margin-top:2px}
.alert{border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:13px;display:flex;gap:8px;align-items:flex-start}
.alert-error{background:rgba(220,38,38,.1);border:1px solid var(--danger);color:var(--danger)}
.alert-success{background:rgba(22,163,74,.1);border:1px solid var(--success);color:var(--success)}
.alert-warning{background:rgba(245,158,11,.1);border:1px solid var(--warning);color:#92400E}
.alert-info{background:rgba(244,162,97,.1);border:1px solid var(--accent);color:#9A3412}
.divider{border:none;border-top:1px solid var(--border);margin:12px 0}
.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}
.empty-icon{font-size:48px;margin-bottom:12px}.empty-text{font-size:14px;line-height:1.6}
.spinner{animation:spin 1s linear infinite;display:inline-block}
.text-center{text-align:center}.text-right{text-align:right}
.fw-900{font-weight:900}.fw-800{font-weight:800}.fw-700{font-weight:700}
.font-display{font-family:'Playfair Display',serif}
.flex{display:flex}.flex-1{flex:1}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}
.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mt-8{margin-top:8px}
.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}
.p-16{padding:16px}.p-20{padding:20px}
.color-success{color:var(--success)}.color-danger{color:var(--danger)}
.color-warning{color:var(--warning)}.color-muted{color:var(--text-muted)}
.color-gold{color:var(--gold)}.color-primary{color:var(--primary)}
.color-white{color:#fff}.color-accent{color:var(--accent)}
.bg-light{background:var(--bg)}.bg-white{background:#fff}
.info-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.info-key{color:var(--text-muted)}.info-val{font-weight:700;color:var(--text)}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick-btn{border:none;border-radius:12px;padding:14px 10px;cursor:pointer;font-weight:700;font-size:13px;text-align:center;color:#fff;font-family:'DM Sans',sans-serif}
.quick-icon{font-size:22px;margin-bottom:4px}
@keyframes slideDown{from{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@media(min-width:431px){.app-shell{box-shadow:0 0 60px rgba(0,0,0,.15)}}
@media(max-width:360px){.stat-grid-3{grid-template-columns:1fr 1fr}}

/* Auth pages - centered card on desktop */
@media (min-width: 768px) {
  .auth-center {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
  }
  .auth-card-wrap {
    width: 100%;
    max-width: 460px;
  }
}


/* ===== VICOBAPro Desktop Workspace v2 ===== */
:root{--vp-green:#005b36;--vp-green2:#007a48;--vp-soft:#f3f7f5;--vp-line:#e4ebe7;--vp-text:#17211c}
html,body{width:100%;min-width:0;overflow:hidden;background:#f4f7f5}
#root{width:100%;height:100vh;min-height:0;display:block;background:#f4f7f5}
.app-shell{width:100%;max-width:none;height:100vh;min-height:0;background:#f4f7f5;overflow:hidden;box-shadow:none}
.v-icon{display:block}
.vp-layout{height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr);grid-template-rows:62px minmax(0,1fr);background:#f4f7f5;color:var(--vp-text)}
.vp-topbar{grid-column:1/-1;display:flex;align-items:center;gap:22px;background:linear-gradient(110deg,#004c2d,#00663b);color:#fff;padding:0 22px;box-shadow:0 2px 9px rgba(0,0,0,.14);z-index:5}
.vp-brand{width:230px;display:flex;align-items:center;gap:10px;font-family:'Playfair Display',serif;font-size:24px;font-weight:900}.vp-brand span span,.vp-side-logo strong span{color:#ffb703}.vp-brand-mark{font-size:29px}.vp-menu-toggle,.vp-icon-btn{border:0;background:transparent;color:#fff;cursor:pointer;position:relative}.vp-search{width:min(565px,42vw);height:40px;border-radius:12px;background:#fff;display:flex;align-items:center;color:#708079;padding:0 13px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.vp-search input{border:0;outline:0;flex:1;padding:0 10px;font:inherit}.vp-search kbd{border:1px solid #e5e7eb;background:#f6f7f7;border-radius:6px;padding:3px 8px;font-size:11px}.vp-top-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.vp-date{display:flex;align-items:center;gap:7px;font-size:12px}.vp-icon-btn b{position:absolute;top:-7px;right:-7px;background:#ed2f22;border-radius:50%;font-size:9px;padding:2px 5px}.vp-user{display:flex;align-items:center;gap:8px}.vp-user strong,.vp-user small{display:block}.vp-user strong{font-size:13px}.vp-user small{font-size:10px;opacity:.72}.vp-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#eef7f2;color:#075d39;font-weight:900}
.vp-sidebar{grid-row:2;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--vp-line);padding:18px 14px 14px;min-height:0}.vp-side-logo{text-align:center;padding:0 0 16px}.vp-logo-circle{width:65px;height:65px;border-radius:50%;background:#005b36;color:#fff;display:grid;place-items:center;margin:0 auto 7px;font-size:35px;box-shadow:0 5px 16px rgba(0,91,54,.2)}.vp-side-logo strong{display:block;font-size:19px}.vp-side-logo small{font-size:9px;color:#78847e}.vp-side-title{font-size:10px;font-weight:900;margin:9px 8px;color:#26332c}.vp-side-nav{display:flex;flex-direction:column;gap:3px}.vp-nav-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;padding:10px 12px;border-radius:8px;color:#24332b;font:600 12px 'DM Sans';cursor:pointer;text-align:left}.vp-nav-item:hover{background:#f1f7f3}.vp-nav-item.active{background:#e5f1ea;color:#00643b}.vp-nav-icon{width:21px}.vp-side-foot{margin-top:auto;border-top:1px solid #edf0ee;padding-top:8px}.vp-group-select{width:100%;height:38px;border:1px solid #dfe5e1;border-radius:8px;padding:0 10px;background:#fff}.vp-balance{margin-top:10px;background:linear-gradient(135deg,#006039,#003f26);color:#fff;padding:12px;border-radius:9px;position:relative}.vp-balance small{display:block;font-size:9px}.vp-balance strong{display:block;font-size:21px;margin-top:4px}.vp-balance span{position:absolute;right:10px;bottom:12px;background:#139b56;border-radius:12px;padding:3px 6px;font-size:9px}.vp-logout{width:100%;height:36px;border:1px solid #dde3df;background:#fff;border-radius:8px;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.vp-main{grid-column:2;grid-row:2;min-width:0;min-height:0;overflow:auto}.vp-page{padding:20px 22px;min-height:100%}.vp-dashboard{height:100%;display:flex;flex-direction:column;gap:12px}.vp-page-head h1{font-size:24px;line-height:1}.vp-page-head p{margin-top:5px;color:#6d7872}.vp-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.vp-kpi{height:132px;background:#fff;border:1px solid var(--vp-line);border-radius:12px;padding:15px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 3px 12px rgba(23,48,35,.05)}.vp-kpi-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}.vp-kpi-icon.green{background:#d9f7e4;color:#128246}.vp-kpi-icon.blue{background:#dceaff;color:#2875da}.vp-kpi-icon.purple{background:#eee4ff;color:#7650b9}.vp-kpi-icon.orange{background:#fff0ce;color:#ee9b00}.vp-kpi-icon.teal{background:#d7f8f7;color:#159a9c}.vp-kpi small{font-size:10px;font-weight:900}.vp-kpi strong{display:block;font-size:21px;margin:5px 0}.vp-kpi p{font-size:10px;color:#58645e}.vp-kpi span{display:inline-block;margin-top:12px;background:#eaf7ef;color:#15934d;border-radius:7px;padding:5px 8px;font-size:10px;font-weight:900}.vp-kpi em{font-style:normal;color:#68746e;font-weight:400;margin-left:3px}
.vp-dash-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:12px;min-height:0}.vp-panel{background:#fff;border:1px solid var(--vp-line);border-radius:12px;box-shadow:0 3px 12px rgba(23,48,35,.04);overflow:hidden}.vp-panel-head{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.vp-panel-head h3{font-size:12px}.vp-panel-head button{border:0;background:transparent}.vp-table-wrap{padding:0 10px 10px}.vp-table{width:100%;border-collapse:collapse;font-size:10px}.vp-table th,.vp-table td{border:1px solid #e7ebe9;padding:8px 9px;text-align:left;white-space:nowrap}.vp-table th{background:#f6f8f7;font-weight:800}.vp-table tfoot td{font-weight:900;background:#fbfcfb}.vp-line-chart{height:245px;position:relative;padding:10px 16px 28px 42px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 42px,#edf1ef 43px)}.vp-line-chart svg{width:100%;height:100%}.vp-y{position:absolute;left:8px;top:14px;height:190px;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:#65716b;line-height:38px}.vp-x{position:absolute;left:43px;right:14px;bottom:8px;display:flex;justify-content:space-between;font-size:9px}.vp-chart-total{margin:0 12px 12px;background:#f7f9f8;border:1px solid #e8ecea;border-radius:8px;padding:9px 12px;display:flex;justify-content:space-between}.vp-chart-total span{font-size:10px}.vp-chart-total strong{display:block;font-size:17px;margin-top:2px}.vp-chart-total b{color:#16964d}.vp-donut-wrap{display:flex;align-items:center;justify-content:center;gap:25px;padding:20px 14px}.vp-donut{width:170px;height:170px;border-radius:50%;background:conic-gradient(#49c974 0 40%,#ffa500 40% 70%,#7556b3 70% 90%,#aeb5b1 90%);display:grid;place-items:center;position:relative}.vp-donut:after{content:'';position:absolute;inset:38px;background:#fff;border-radius:50%}.vp-donut span{position:relative;z-index:2;text-align:center;font-size:10px}.vp-donut strong{font-size:19px}.vp-legend p{font-size:10px;margin:9px 0;display:grid;grid-template-columns:12px 1fr auto;gap:4px 6px}.vp-legend i{width:8px;height:8px;border-radius:50%;margin-top:2px}.vp-legend .g{background:#49c974}.vp-legend .o{background:#ffa500}.vp-legend .p{background:#7556b3}.vp-legend .x{background:#aeb5b1}.vp-legend small{grid-column:2/4}.vp-bottom-grid{display:grid;grid-template-columns:1.65fr .8fr .8fr;gap:12px}.vp-quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:0 12px 12px}.vp-quick-grid button{height:82px;border:1px solid #dfe9e3;border-radius:9px;background:#f5fbf7;color:#08703f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:10px;cursor:pointer}.vp-quick-grid button:nth-child(2){background:#eef5ff;color:#1b65b8}.vp-quick-grid button:nth-child(3){background:#fff7e8;color:#c68100}.vp-quick-grid button:nth-child(4){background:#f7efff;color:#6e3caf}.vp-quick-grid button:nth-child(5){background:#eafafa;color:#15888a}.vp-events p,.vp-reminders p{display:flex;align-items:center;gap:8px;font-size:10px;margin:11px 14px}.vp-reminders .ok{color:#178d49}.vp-reminders .warn{color:#e18a00}.vp-reminders .info{color:#216dc5}
/* Existing internal pages inherit clean database/table feel */
.vp-page>.card,.vp-page .list-item,.vp-page .card{box-shadow:none;border:1px solid var(--vp-line);border-radius:9px}.vp-page .screen{padding-bottom:0}.vp-page table{font-size:12px}.vp-page .stat-grid-2,.vp-page .stat-grid-3{gap:10px}.vp-page .stat-card{box-shadow:none;border:1px solid var(--vp-line)}
.bottom-nav,.top-header{display:none!important}
@media(max-width:1100px){.vp-layout{grid-template-columns:205px minmax(0,1fr)}.vp-kpi-grid{grid-template-columns:repeat(3,1fr)}.vp-dashboard{height:auto}.vp-dash-grid{grid-template-columns:1fr 1fr}.vp-expense{grid-column:1/-1}.vp-bottom-grid{grid-template-columns:1fr}.vp-main{overflow:auto}}
@media(max-width:720px){html,body,#root,.app-shell{overflow:auto;height:auto;min-height:100%}.vp-layout{display:block;min-height:100vh}.vp-topbar{position:sticky;top:0;height:58px;padding:0 12px}.vp-brand{width:auto;font-size:19px}.vp-search,.vp-date,.vp-user span:last-child{display:none}.vp-sidebar{position:fixed;left:-260px;top:58px;bottom:0;width:240px;z-index:20;transition:.25s}.vp-main{overflow:visible}.vp-page{padding:12px}.vp-kpi-grid{grid-template-columns:1fr 1fr}.vp-kpi{height:112px;padding:11px}.vp-kpi-icon{width:43px;height:43px}.vp-kpi strong{font-size:16px}.vp-dash-grid{grid-template-columns:1fr}.vp-bottom-grid{grid-template-columns:1fr}.vp-quick-grid{grid-template-columns:repeat(3,1fr)}.vp-expense{grid-column:auto}.vp-top-actions{margin-left:auto}.vp-dashboard{gap:10px}.vp-page-head h1{font-size:20px}}

/* ===== Clean database pages ===== */
.vp-data-page{padding:2px 0 18px;min-height:100%}.vp-data-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.vp-data-head h1{font-size:22px;letter-spacing:.2px}.vp-data-head p{font-size:12px;color:#6d7872;margin-top:4px}.vp-primary-action{height:40px;border:0;border-radius:8px;background:#087344;color:#fff;padding:0 16px;display:flex;align-items:center;gap:8px;font:800 12px 'DM Sans';cursor:pointer;box-shadow:0 3px 8px rgba(8,115,68,.18)}.vp-data-tools{height:54px;background:#fff;border:1px solid var(--vp-line);border-radius:10px 10px 0 0;display:flex;align-items:center;padding:0 12px;gap:12px}.vp-data-search{height:36px;min-width:320px;max-width:520px;display:flex;align-items:center;gap:8px;border:1px solid #dfe6e2;border-radius:7px;padding:0 11px;background:#fbfcfb}.vp-data-search input{border:0;outline:0;background:transparent;width:100%;font:12px 'DM Sans'}.vp-record-count{margin-left:auto;font-size:11px;color:#6d7872;background:#f3f7f5;padding:6px 10px;border-radius:12px}.vp-db-table-wrap{background:#fff;border-left:1px solid var(--vp-line);border-right:1px solid var(--vp-line);overflow:auto}.vp-db-table{width:100%;border-collapse:collapse;font-size:11px;min-width:930px}.vp-db-table th{height:38px;background:#e9f2ed;color:#20352a;text-align:left;padding:0 12px;border-right:1px solid #d7e1db;border-bottom:1px solid #cfdad4;font-size:10px;white-space:nowrap}.vp-db-table td{height:45px;padding:7px 12px;border-right:1px solid #edf0ee;border-bottom:1px solid #e8ecea;white-space:nowrap}.vp-db-table tbody tr:hover{background:#f4faf6}.vp-db-table td strong{display:block;font-size:12px}.vp-db-table td small{display:block;color:#9a5d00;margin-top:2px}.vp-db-table .money{text-align:right;font-variant-numeric:tabular-nums}.vp-db-table .total{font-weight:900;color:#075c38}.vp-db-table tfoot td{background:#f6f8f7;font-weight:900}.vp-status{display:inline-flex;align-items:center;padding:4px 9px;border-radius:12px;font-size:10px;font-weight:800}.vp-status.ok{background:#def7e7;color:#138049}.vp-status.hold{background:#eee7ff;color:#6c43bb}.vp-status.bad{background:#fee2e2;color:#b91c1c}.vp-row-action{border:1px solid #d8e1dc;background:#fff;border-radius:6px;padding:5px 10px;font:700 10px 'DM Sans';cursor:pointer}.vp-row-action:hover{border-color:#087344;color:#087344}.vp-table-footer{height:44px;background:#fff;border:1px solid var(--vp-line);border-radius:0 0 10px 10px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:10px;color:#66736c}.vp-table-footer div{display:flex;align-items:center;gap:8px}.vp-table-footer button,.vp-table-footer b{width:28px;height:26px;border:1px solid #dde4e0;background:#fff;border-radius:5px;display:grid;place-items:center}.vp-empty{padding:50px;text-align:center;color:#7b8780}
/* Other pages: flatten cards and make records denser */
.vp-main .list-item{border:1px solid #e2e9e5!important;border-left-width:3px!important;border-radius:8px!important;box-shadow:none!important;padding:12px 14px!important;margin-bottom:8px!important}.vp-main .stat-card{border-radius:8px!important;box-shadow:none!important}.vp-main .input,.vp-main .select{border-radius:7px}.vp-main .btn{border-radius:7px}.vp-main .card{border-radius:8px!important;box-shadow:none!important}
@media(max-width:720px){.vp-data-head{align-items:flex-start;gap:10px}.vp-data-head p{display:none}.vp-primary-action span{display:none}.vp-primary-action{width:40px;padding:0;justify-content:center}.vp-data-search{min-width:0;flex:1}.vp-record-count{display:none}.vp-data-tools{height:50px}.vp-db-table{min-width:780px}}

/* ===== Unified UI/UX for every module ===== */
.vp-head-actions{display:flex;gap:8px}.vp-secondary-action{height:40px;border:1px solid #d9e3dd;border-radius:8px;background:#fff;color:#284336;padding:0 14px;display:flex;align-items:center;gap:7px;font:800 12px 'DM Sans';cursor:pointer}.vp-primary-action.danger{background:#c93333}.vp-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.vp-mini-stat{height:84px;background:#fff;border:1px solid var(--vp-line);border-radius:11px;padding:14px 16px;display:flex;align-items:center;gap:13px;box-shadow:0 3px 12px rgba(23,48,35,.04)}.vp-mini-stat>svg{width:42px;height:42px;padding:9px;border-radius:12px}.vp-mini-stat span{font-size:10px;font-weight:900;color:#536259}.vp-mini-stat strong{display:block;font-size:19px;color:#16271e;margin-top:6px}.vp-mini-stat.green>svg{background:#dcf7e6;color:#148348}.vp-mini-stat.blue>svg{background:#e0edff;color:#286ed0}.vp-mini-stat.orange>svg{background:#fff0d4;color:#e99700}.vp-mini-stat.purple>svg{background:#eee5ff;color:#7350b3}.vp-mini-stat.red>svg{background:#ffe3e3;color:#c93131}.vp-negative{color:#c73535!important;font-weight:800}.vp-wrap-cell{white-space:normal!important;min-width:260px;line-height:1.35}.vp-modal-summary{background:#f4f8f6;border:1px solid #dfe8e3;border-radius:9px;padding:12px;margin-bottom:14px}.vp-modal-summary span,.vp-modal-summary small{display:block;color:#6c7872;font-size:11px}.vp-modal-summary strong{display:block;font-size:20px;margin:4px 0;color:#0b6b41}.vp-report-summary{background:#fff;border:1px solid var(--vp-line);border-radius:11px;padding:18px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.vp-report-summary>div{display:flex;align-items:center;gap:12px;color:#087344}.vp-report-summary span{font-size:10px;font-weight:900}.vp-report-summary strong{display:block;font-size:22px;color:#17271f}.vp-report-summary p{font-size:11px;color:#69756f}.vp-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vp-report-card{min-height:105px;border:1px solid var(--vp-line);border-radius:11px;background:#fff;padding:16px;text-align:left;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;cursor:pointer;box-shadow:0 3px 12px rgba(23,48,35,.04)}.vp-report-card:hover{border-color:#38a169;transform:translateY(-1px)}.vp-report-icon{width:52px;height:52px;border-radius:13px;background:#e8f6ee;color:#087344;display:grid;place-items:center}.vp-report-card strong{display:block;font-size:14px;color:#183026}.vp-report-card small{display:block;font-size:11px;color:#748078;margin-top:5px}.vp-report-card b{font-size:11px;color:#087344;border:1px solid #cfe1d7;border-radius:7px;padding:7px 10px}.vp-data-page .modal-overlay{z-index:1000}
@media(max-width:720px){.vp-summary-row{grid-template-columns:1fr}.vp-head-actions{gap:5px}.vp-secondary-action,.vp-primary-action{font-size:0;width:40px;padding:0;justify-content:center}.vp-secondary-action svg,.vp-primary-action svg{width:18px;height:18px}.vp-report-grid{grid-template-columns:1fr}.vp-report-summary p{display:none}.vp-mini-stat{height:72px}.vp-wrap-cell{min-width:220px}}

/* ===== Dashboard refinement: group title, calm sidebar and readable typography ===== */
:root{--vp-sidebar-soft:#eaf5ee}
.vp-sidebar{background:linear-gradient(180deg,#edf8f1 0%,#e5f2ea 100%);border-right:1px solid #cadfd2}
.vp-side-logo{background:rgba(255,255,255,.62);border:1px solid rgba(10,111,65,.09);border-radius:14px;padding:12px 8px 14px;margin-bottom:8px}
.vp-nav-item{font-size:14px;padding:11px 13px;color:#183b2a}
.vp-nav-item.active{background:#cfe8d8;color:#075f38;box-shadow:inset 3px 0 0 #087344}
.vp-nav-item:hover{background:#dcefe3}
.vp-side-title{font-size:11px;letter-spacing:.45px}
.vp-balance{margin-top:8px}
.vp-logout{font-size:13px;font-weight:800}
.vp-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.vp-page-head h1{font-size:25px}
.vp-page-head p{font-size:13px}
.vp-current-group{min-width:300px;max-width:470px;background:linear-gradient(135deg,#e5f5eb,#f4fbf6);border:1px solid #cde2d5;border-left:5px solid #087344;border-radius:12px;padding:11px 16px;text-align:left}
.vp-current-group small{display:block;font-size:10px;font-weight:900;letter-spacing:.7px;color:#54806a}
.vp-current-group strong{display:block;margin-top:4px;font-size:18px;color:#075a36;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-dashboard{gap:10px;height:100%}
.vp-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.vp-kpi{height:106px;padding:12px}
.vp-kpi small{font-size:11px}.vp-kpi strong{font-size:20px}.vp-kpi p{font-size:11px}
.vp-dash-grid{grid-template-columns:1.35fr 1fr 1fr;gap:10px;min-height:0;flex:1}
.vp-panel{min-height:0}.vp-panel-head h3{font-size:12px}
.vp-table{font-size:12px}.vp-table th{font-size:11px}.vp-table td{font-size:12px}
.vp-main{overflow:hidden}.vp-page{height:100%;overflow:hidden;padding:14px 16px}
.vp-dashboard .vp-dash-grid{height:calc(100vh - 58px - 14px - 63px - 106px - 30px)}
.vp-dashboard .vp-panel{overflow:hidden}
.vp-dashboard .vp-table-wrap{max-height:100%;overflow:auto}
.vp-dashboard .vp-chart-panel,.vp-dashboard .vp-expense{height:100%}
.vp-data-head h1{font-size:25px}.vp-data-head p{font-size:13px}
.vp-db-table{font-size:13px}.vp-db-table th{font-size:12px}.vp-db-table td{font-size:13px}.vp-db-table td strong{font-size:13px}
.vp-primary-action,.vp-secondary-action{font-size:13px}
@media(max-width:1100px){.vp-main{overflow:auto}.vp-page{height:auto;overflow:visible}.vp-dashboard .vp-dash-grid{height:auto}.vp-kpi-grid{grid-template-columns:repeat(2,1fr)}.vp-current-group{min-width:240px}.vp-dashboard{height:auto}.vp-dash-grid{grid-template-columns:1fr 1fr}.vp-expense{grid-column:1/-1}}
@media(max-width:720px){.vp-page-head{align-items:flex-start;flex-direction:column}.vp-current-group{width:100%;min-width:0}.vp-current-group strong{font-size:16px}.vp-sidebar{background:linear-gradient(180deg,#edf8f1,#e2f0e7)}.vp-nav-item{font-size:14px}.vp-kpi-grid{grid-template-columns:1fr 1fr}.vp-main{overflow:visible}.vp-page{height:auto;overflow:visible}.vp-db-table{font-size:12px}.vp-data-head h1{font-size:22px}}


/* ===== Approved topbar + centered group identity ===== */
.vp-top-link{height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border-radius:9px;border:1px solid rgba(255,255,255,.55);color:#fff;font-size:12px;font-weight:900;white-space:nowrap;text-decoration:none}
.vp-top-link:hover{background:rgba(255,255,255,.1)}
.vp-top-link.portal{background:#f5a15f;border-color:#f5a15f;color:#173020}
.vp-top-link.portal:hover{background:#f7ad72}
.vp-group-hero{min-height:82px;background:linear-gradient(135deg,#fff,#f3faf6);border:1px solid #cfe2d6;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 18px;box-shadow:0 4px 15px rgba(14,74,46,.05)}
.vp-group-hero small{font-size:11px;font-weight:900;letter-spacing:1px;color:#00663b}
.vp-group-hero h1{margin:3px 0 0;font-family:'Playfair Display',Georgia,serif;font-size:31px;line-height:1;color:#075d36}
.vp-group-hero p{margin:5px 0 0;font-size:11px;color:#69756f}
.vp-dashboard .vp-dash-grid{height:calc(100vh - 58px - 14px - 82px - 106px - 30px)}
@media(max-width:1050px){.vp-top-link{padding:0 10px}.vp-top-link span{display:none}.vp-top-actions{gap:10px}}
@media(max-width:720px){.vp-top-link{width:36px;padding:0;justify-content:center}.vp-top-link span{display:none}.vp-group-hero{min-height:72px}.vp-group-hero h1{font-size:24px}}


/* ── Premium member registration modal ───────────────────── */
.member-modal-overlay{
  align-items:center!important;
  justify-content:center!important;
  padding:22px;
  background:rgba(7,31,21,.66)!important;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  animation:memberOverlayIn .18s ease-out;
}
.member-modal-box{
  width:min(100%,520px)!important;
  max-width:520px!important;
  max-height:calc(100vh - 44px)!important;
  border-radius:20px!important;
  padding:0 28px 28px!important;
  overflow:auto;
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 30px 80px rgba(0,0,0,.28),0 10px 25px rgba(13,78,49,.12);
  animation:memberModalIn .22s cubic-bezier(.22,.9,.3,1);
}
.member-modal-box .modal-header{
  position:sticky;top:0;z-index:2;
  margin:0 -28px 0;
  padding:20px 24px 16px;
  background:linear-gradient(135deg,#f5fbf7,#fff);
  border-bottom:1px solid #e3eee7;
  border-radius:20px 20px 0 0;
}
.member-modal-box .modal-title{font-size:20px;color:#123b29;letter-spacing:-.2px}
.member-modal-box .modal-close{
  width:36px;height:36px;padding:0;border-radius:10px;
  display:grid;place-items:center;background:#edf5f0;color:#4d6257;
  transition:background .15s,color .15s,transform .15s;
}
.member-modal-box .modal-close:hover{background:#dcece3;color:#0b6b41;transform:rotate(5deg)}
.member-modal-intro{display:flex;align-items:center;gap:13px;padding:20px 0 18px}
.member-modal-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:linear-gradient(145deg,#dff5e7,#ccebd8);color:#087344;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(8,115,68,.08)}
.member-modal-intro strong{display:block;font-size:15px;color:#183529;margin-bottom:4px}
.member-modal-intro span{display:block;font-size:12px;line-height:1.45;color:#6c7a72}
.member-modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.member-modal-fields .input-wrap{margin-bottom:15px}
.member-modal-fields .member-gender-wrap{grid-column:1/-1}
.member-modal-box .input-label{font-size:10px;font-weight:900;color:#52645b;letter-spacing:.7px;margin-bottom:7px}
.member-modal-box .input-label b{color:#d14949}
.member-modal-box .member-input,.member-modal-box .select{
  height:48px;border-radius:11px;border:1px solid #d8e3dd;background:#fbfdfc;
  font-size:13px;padding:0 14px;transition:border-color .15s,box-shadow .15s,background .15s;
}
.member-modal-box .member-input:focus,.member-modal-box .select:focus{border-color:#169456;background:#fff;box-shadow:0 0 0 4px rgba(22,148,86,.10)}
.member-modal-box .input-error{border-color:#d93b3b!important;box-shadow:0 0 0 4px rgba(217,59,59,.10)!important}
.member-modal-actions{display:grid;grid-template-columns:130px 1fr;gap:12px;margin-top:7px;padding-top:18px;border-top:1px solid #e6eee9}
.member-cancel-btn,.member-save-btn{height:46px;border-radius:11px;border:0;font:800 13px 'DM Sans',sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.member-cancel-btn{background:#eef3f0;color:#42584c;border:1px solid #dbe5df}
.member-cancel-btn:hover{background:#e4ede8}
.member-save-btn{background:linear-gradient(135deg,#0f8a4c,#0a6d3d);color:#fff;box-shadow:0 9px 20px rgba(10,109,61,.22)}
.member-save-btn:hover{filter:brightness(1.04);transform:translateY(-1px)}
.member-save-btn:disabled{opacity:.72;cursor:wait;transform:none}
.member-btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:memberSpin .7s linear infinite}
@keyframes memberModalIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes memberOverlayIn{from{opacity:0}to{opacity:1}}
@keyframes memberSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){
  .member-modal-overlay{padding:12px!important;align-items:center!important}
  .member-modal-box{width:100%!important;max-height:calc(100vh - 24px)!important;padding:0 18px 20px!important;border-radius:17px!important}
  .member-modal-box .modal-header{margin:0 -18px;padding:17px 16px 14px;border-radius:17px 17px 0 0}
  .member-modal-fields{grid-template-columns:1fr}
  .member-modal-fields .member-gender-wrap{grid-column:auto}
  .member-modal-actions{grid-template-columns:1fr}
  .member-cancel-btn{order:2}
}

/* VICOBAPro member modal final safe override — 20260722-member-modal-final-001 */
.member-modal-overlay.modal-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:rgba(3,28,18,.72)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}
.member-modal-overlay .member-modal-box{
  width:min(540px,calc(100vw - 32px))!important;
  max-width:540px!important;
  max-height:calc(100vh - 48px)!important;
  margin:auto!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 30px 90px rgba(0,0,0,.34)!important;
  transform:none!important;
}
.member-modal-overlay .member-modal-intro{display:flex!important}
.member-modal-overlay .member-modal-actions{display:grid!important}
.member-modal-overlay .modal-close{position:relative!important;z-index:5!important;cursor:pointer!important;pointer-events:auto!important}
@media(max-width:640px){
  .member-modal-overlay.modal-overlay{padding:12px!important}
  .member-modal-overlay .member-modal-box{width:100%!important;max-height:calc(100vh - 24px)!important}
}

/* =========================================================
   VICOBAPro GLOBAL EXCEL / DATABASE TABLE THEME
   Applies to all system tables without changing any logic.
   Version: 20260722-excel-tables-001
   ========================================================= */
:root{
  --vp-table-blue:#0877b9;
  --vp-table-blue-dark:#05679f;
  --vp-table-line:#cfd7dd;
  --vp-table-row:#ffffff;
  --vp-table-alt:#eef3f7;
  --vp-table-hover:#dfeef8;
  --vp-table-total:#f7f8f9;
}

/* Universal table container */
.vp-db-table-wrap,
.vp-table-wrap,
.vp-page .table-responsive,
.vp-page .table-wrap,
.vp-page .overflow-auto{
  border:1px solid #aebbc4!important;
  background:#fff!important;
  overflow:auto!important;
  scrollbar-width:thin;
  scrollbar-color:#9ba7af #eef1f3;
}
.vp-db-table-wrap::-webkit-scrollbar,
.vp-table-wrap::-webkit-scrollbar,
.vp-page .table-responsive::-webkit-scrollbar,
.vp-page .table-wrap::-webkit-scrollbar{height:12px;width:12px}
.vp-db-table-wrap::-webkit-scrollbar-track,
.vp-table-wrap::-webkit-scrollbar-track{background:#eef1f3}
.vp-db-table-wrap::-webkit-scrollbar-thumb,
.vp-table-wrap::-webkit-scrollbar-thumb{background:#9ba7af;border:2px solid #eef1f3;border-radius:8px}

/* All app tables */
.vp-db-table,
.vp-table,
.vp-page table{
  width:100%!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  background:#fff!important;
  color:#111!important;
  font-family:'DM Sans',Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1.25!important;
  table-layout:auto;
}

/* Excel-blue header */
.vp-db-table thead th,
.vp-table thead th,
.vp-page table thead th{
  background:linear-gradient(180deg,var(--vp-table-blue),var(--vp-table-blue-dark))!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:800!important;
  text-transform:none!important;
  letter-spacing:.1px!important;
  height:36px!important;
  padding:8px 10px!important;
  border-right:1px solid rgba(255,255,255,.24)!important;
  border-bottom:1px solid #03598b!important;
  text-align:left!important;
  white-space:nowrap!important;
  position:sticky;
  top:0;
  z-index:2;
}
.vp-db-table thead th:last-child,
.vp-table thead th:last-child,
.vp-page table thead th:last-child{border-right:0!important}

/* Clear gridlines and compact rows */
.vp-db-table tbody td,
.vp-table tbody td,
.vp-page table tbody td{
  height:36px!important;
  padding:7px 10px!important;
  border-right:1px solid var(--vp-table-line)!important;
  border-bottom:1px solid var(--vp-table-line)!important;
  vertical-align:middle!important;
  background:var(--vp-table-row)!important;
  white-space:nowrap!important;
}
.vp-db-table tbody tr:nth-child(even) td,
.vp-table tbody tr:nth-child(even) td,
.vp-page table tbody tr:nth-child(even) td{
  background:var(--vp-table-alt)!important;
}
.vp-db-table tbody tr:hover td,
.vp-table tbody tr:hover td,
.vp-page table tbody tr:hover td{
  background:var(--vp-table-hover)!important;
}
.vp-db-table tbody td:last-child,
.vp-table tbody td:last-child,
.vp-page table tbody td:last-child{border-right:0!important}

/* Names and amounts remain readable */
.vp-db-table td strong,
.vp-table td strong,
.vp-page table td strong{
  font-size:12px!important;
  font-weight:800!important;
  color:#111!important;
}
.vp-db-table td small,
.vp-table td small,
.vp-page table td small{
  font-size:10px!important;
  line-height:1.15!important;
}
.vp-db-table .money,
.vp-table .money,
.vp-page table .money,
.vp-page table td[data-type="number"]{
  text-align:right!important;
  font-variant-numeric:tabular-nums!important;
}

/* Total/footer row like desktop database software */
.vp-db-table tfoot td,
.vp-table tfoot td,
.vp-page table tfoot td{
  height:38px!important;
  padding:8px 10px!important;
  background:var(--vp-table-total)!important;
  border-top:2px solid #111!important;
  border-right:1px solid var(--vp-table-line)!important;
  border-bottom:1px solid var(--vp-table-line)!important;
  color:#111!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}

/* Tools area above tables */
.vp-data-tools{
  min-height:52px!important;
  border:1px solid #aebbc4!important;
  border-bottom:0!important;
  border-radius:4px 4px 0 0!important;
  background:#f8f9fa!important;
  box-shadow:none!important;
}
.vp-data-search{
  height:35px!important;
  border:1px solid #b7c1c8!important;
  border-radius:3px!important;
  background:#fff!important;
}
.vp-record-count{
  border:1px solid #cfd7dd!important;
  border-radius:12px!important;
  background:#fff!important;
}

/* Pagination/footer bar */
.vp-table-footer{
  height:42px!important;
  border:1px solid #aebbc4!important;
  border-top:0!important;
  border-radius:0 0 4px 4px!important;
  background:#fff!important;
  font-size:11px!important;
}
.vp-table-footer button,
.vp-table-footer b{
  min-width:34px!important;
  width:auto!important;
  height:29px!important;
  padding:0 10px!important;
  border:1px solid #87a8c4!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#24577f!important;
  font-weight:700!important;
}
.vp-table-footer button:hover{
  background:#eaf4fb!important;
  border-color:#0877b9!important;
}

/* Dashboard tables use the same theme, but remain compact */
.vp-dashboard .vp-table-wrap{border-radius:0!important}
.vp-dashboard .vp-table thead th{height:34px!important;font-size:10px!important}
.vp-dashboard .vp-table tbody td{height:34px!important;font-size:11px!important}

/* Keep status/action controls compact inside grid */
.vp-status{font-size:10px!important;padding:4px 8px!important}
.vp-row-action{border-radius:3px!important;background:#fff!important}

@media(max-width:720px){
  .vp-db-table,.vp-table,.vp-page table{font-size:11px!important;min-width:780px}
  .vp-db-table thead th,.vp-table thead th,.vp-page table thead th{font-size:10px!important;padding:7px 8px!important}
  .vp-db-table tbody td,.vp-table tbody td,.vp-page table tbody td{padding:7px 8px!important}
}

/* =========================================================
   VICOBAPro Modern Database / Excel UI — system-wide
   Version: 20260722-modern-database-ui-001
   Pure presentation layer: no business logic changes.
   ========================================================= */
:root{
  --db-blue:#0b78b8;
  --db-blue-dark:#08679e;
  --db-blue-soft:#eaf5fb;
  --db-green:#087344;
  --db-green-dark:#075d38;
  --db-line:#cbd6dd;
  --db-line-soft:#e1e7eb;
  --db-row:#ffffff;
  --db-row-alt:#f2f6f9;
  --db-row-hover:#e4f2fa;
  --db-text:#18252d;
  --db-muted:#667681;
  --db-panel:#f6f8fa;
  --db-shadow:0 12px 32px rgba(26,53,68,.12);
}

/* ---------- Database tables ---------- */
.vp-db-table-wrap,
.vp-table-wrap,
.vp-page .table-responsive,
.vp-page .table-wrap{
  border:1px solid var(--db-line)!important;
  border-radius:5px!important;
  background:#fff!important;
  box-shadow:0 2px 8px rgba(30,55,69,.06)!important;
  scrollbar-color:#8ea1ad #edf1f4;
  scrollbar-width:thin;
}
.vp-db-table,
.vp-table,
.vp-page table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  color:var(--db-text)!important;
  background:#fff!important;
  font-variant-numeric:tabular-nums;
}
.vp-db-table thead th,
.vp-table thead th,
.vp-page table thead th{
  position:sticky!important;
  top:0!important;
  z-index:3!important;
  height:39px!important;
  padding:8px 11px!important;
  color:#fff!important;
  background:linear-gradient(180deg,var(--db-blue),var(--db-blue-dark))!important;
  border-right:1px solid rgba(255,255,255,.24)!important;
  border-bottom:2px solid #065b8d!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.18px!important;
  text-transform:none!important;
  white-space:nowrap!important;
  box-shadow:inset 0 1px rgba(255,255,255,.18)!important;
}
.vp-db-table tbody td,
.vp-table tbody td,
.vp-page table tbody td{
  min-height:40px!important;
  padding:8px 11px!important;
  border-right:1px solid var(--db-line-soft)!important;
  border-bottom:1px solid var(--db-line)!important;
  background:var(--db-row)!important;
  color:var(--db-text)!important;
  font-size:12px!important;
  line-height:1.25!important;
}
.vp-db-table tbody tr:nth-child(even) td,
.vp-table tbody tr:nth-child(even) td,
.vp-page table tbody tr:nth-child(even) td{
  background:var(--db-row-alt)!important;
}
.vp-db-table tbody tr:hover td,
.vp-table tbody tr:hover td,
.vp-page table tbody tr:hover td{
  background:var(--db-row-hover)!important;
}
.vp-db-table tbody tr:focus-within td,
.vp-table tbody tr:focus-within td,
.vp-page table tbody tr:focus-within td{
  background:#d9edf8!important;
  box-shadow:inset 0 1px 0 #75bfe7,inset 0 -1px 0 #75bfe7!important;
}
.vp-db-table tfoot td,
.vp-table tfoot td,
.vp-page table tfoot td{
  padding:9px 11px!important;
  background:linear-gradient(180deg,#f8fafb,#e9eef2)!important;
  border-top:2px solid #4f6471!important;
  border-right:1px solid var(--db-line)!important;
  color:#111d24!important;
  font-size:12px!important;
  font-weight:900!important;
}
.vp-db-table .money,
.vp-table .money,
.vp-page table .money,
.vp-page table td[data-type="number"]{
  text-align:right!important;
  font-variant-numeric:tabular-nums!important;
}
.vp-row-action,
.vp-page table button{
  min-height:29px!important;
  padding:5px 11px!important;
  border:1px solid #b9c8d1!important;
  border-radius:4px!important;
  background:linear-gradient(180deg,#fff,#edf2f5)!important;
  color:#17313f!important;
  font-size:10px!important;
  font-weight:800!important;
  box-shadow:0 1px 1px rgba(0,0,0,.04)!important;
}
.vp-row-action:hover,
.vp-page table button:hover{
  border-color:var(--db-blue)!important;
  color:#075e91!important;
  background:#eef8fd!important;
}
.vp-table-footer{
  min-height:44px!important;
  border:1px solid var(--db-line)!important;
  border-top:0!important;
  border-radius:0 0 5px 5px!important;
  background:linear-gradient(180deg,#fff,#f1f4f6)!important;
  color:#536570!important;
}
.vp-table-footer button,.vp-table-footer b{
  border-radius:4px!important;
  border-color:#bdcbd4!important;
  background:#fff!important;
}
.vp-data-tools{
  border-radius:5px 5px 0 0!important;
  border-color:var(--db-line)!important;
  background:linear-gradient(180deg,#fff,#f3f6f8)!important;
  box-shadow:0 2px 7px rgba(30,55,69,.05)!important;
}
.vp-data-search{
  border-radius:4px!important;
  border-color:#bfcdd5!important;
  background:#fff!important;
  box-shadow:inset 0 1px 2px rgba(31,54,68,.05)!important;
}
.vp-data-search:focus-within{
  border-color:var(--db-blue)!important;
  box-shadow:0 0 0 3px rgba(11,120,184,.12)!important;
}
.vp-record-count{
  border:1px solid #d4dee4!important;
  border-radius:4px!important;
  background:#f5f8fa!important;
}

/* ---------- All modals: modern database dialog ---------- */
.modal-overlay,
.member-modal-overlay.modal-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
  background:rgba(15,33,43,.66)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}
.modal-box,
.member-modal-overlay .member-modal-box{
  width:min(560px,calc(100vw - 34px))!important;
  max-width:560px!important;
  max-height:calc(100vh - 44px)!important;
  margin:auto!important;
  padding:0 22px 22px!important;
  overflow:auto!important;
  border:1px solid #9fb1bc!important;
  border-radius:7px!important;
  background:#fff!important;
  box-shadow:0 28px 80px rgba(4,20,29,.38),0 0 0 1px rgba(255,255,255,.45)!important;
}
.modal-header,
.member-modal-box .modal-header{
  position:sticky!important;
  top:0!important;
  z-index:4!important;
  min-height:52px!important;
  margin:0 -22px 18px!important;
  padding:0 14px 0 18px!important;
  display:flex!important;
  align-items:center!important;
  border-bottom:1px solid #aebdc6!important;
  border-radius:7px 7px 0 0!important;
  background:linear-gradient(180deg,#f8fbfc 0%,#e8eef2 100%)!important;
  box-shadow:inset 0 1px #fff!important;
}
.modal-title,
.member-modal-box .modal-title{
  color:#17313f!important;
  font-family:'DM Sans',Arial,sans-serif!important;
  font-size:17px!important;
  font-weight:900!important;
  letter-spacing:.1px!important;
}
.modal-close,
.member-modal-overlay .modal-close{
  width:32px!important;
  height:32px!important;
  padding:0!important;
  border:1px solid #c4d0d7!important;
  border-radius:4px!important;
  display:grid!important;
  place-items:center!important;
  background:linear-gradient(180deg,#fff,#edf2f5)!important;
  color:#5a6a74!important;
  cursor:pointer!important;
  box-shadow:0 1px 2px rgba(0,0,0,.04)!important;
}
.modal-close:hover{
  border-color:#d15c5c!important;
  color:#a92020!important;
  background:#fff0f0!important;
  transform:none!important;
}
.member-modal-intro{
  margin:0 0 16px!important;
  padding:12px 13px!important;
  border:1px solid #cddbe2!important;
  border-left:4px solid var(--db-blue)!important;
  border-radius:4px!important;
  background:linear-gradient(90deg,#edf7fc,#f8fbfc)!important;
}
.member-modal-icon{
  width:42px!important;
  height:42px!important;
  flex-basis:42px!important;
  border:1px solid #bad7e7!important;
  border-radius:5px!important;
  background:#dff1fa!important;
  color:#0872ad!important;
  box-shadow:none!important;
}
.member-modal-intro strong{font-size:14px!important;color:#17313f!important}
.member-modal-intro span{font-size:11px!important;color:#637682!important}

/* Forms in every dialog */
.modal-box .input-wrap{margin-bottom:14px!important}
.modal-box .input-label,
.member-modal-box .input-label{
  margin-bottom:6px!important;
  color:#405763!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.45px!important;
  text-transform:uppercase!important;
}
.modal-box .input,
.modal-box .select,
.modal-box input:not([type="checkbox"]):not([type="radio"]),
.modal-box select,
.modal-box textarea,
.member-modal-box .member-input,
.member-modal-box .select{
  min-height:42px!important;
  border:1px solid #b8c7cf!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#1d2f39!important;
  font:500 12px 'DM Sans',Arial,sans-serif!important;
  box-shadow:inset 0 1px 2px rgba(22,43,55,.06)!important;
}
.modal-box textarea{min-height:88px!important;padding:10px 12px!important;resize:vertical!important}
.modal-box .input:focus,
.modal-box .select:focus,
.modal-box input:focus,
.modal-box select:focus,
.modal-box textarea:focus,
.member-modal-box .member-input:focus,
.member-modal-box .select:focus{
  border-color:var(--db-blue)!important;
  outline:0!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(11,120,184,.14),inset 0 1px 2px rgba(22,43,55,.05)!important;
}
.modal-box .input-error,
.member-modal-box .input-error{
  border-color:#d64040!important;
  box-shadow:0 0 0 3px rgba(214,64,64,.12)!important;
}

/* Modal action bar */
.member-modal-actions,
.modal-box .modal-actions{
  margin:18px -22px -22px!important;
  padding:13px 16px!important;
  border-top:1px solid #b8c6ce!important;
  background:linear-gradient(180deg,#f7f9fa,#e9eef1)!important;
  border-radius:0 0 7px 7px!important;
}
.member-modal-actions{grid-template-columns:120px 1fr!important;gap:10px!important}
.member-cancel-btn,
.member-save-btn,
.modal-box .btn{
  min-height:40px!important;
  border-radius:4px!important;
  font-size:12px!important;
  font-weight:900!important;
  box-shadow:0 1px 2px rgba(0,0,0,.08)!important;
}
.member-cancel-btn,
.modal-box .btn-secondary{
  border:1px solid #b9c7cf!important;
  background:linear-gradient(180deg,#fff,#e9eef1)!important;
  color:#314a57!important;
}
.member-save-btn,
.modal-box .btn-success,
.modal-box .btn-green,
.modal-box .btn-primary{
  border:1px solid #075d38!important;
  background:linear-gradient(180deg,#109154,#087344)!important;
  color:#fff!important;
}
.member-save-btn:hover,
.modal-box .btn-success:hover,
.modal-box .btn-green:hover,
.modal-box .btn-primary:hover{
  filter:brightness(1.04)!important;
  transform:none!important;
}
.modal-box .btn-danger{border:1px solid #a62929!important;background:linear-gradient(180deg,#d84a4a,#b92e2e)!important}
.modal-box .btn-gold{border:1px solid #c37d00!important;background:linear-gradient(180deg,#ffb93c,#e99b0b)!important;color:#2b210a!important}
.vp-modal-summary{
  border:1px solid #c8d6de!important;
  border-radius:4px!important;
  background:#f1f6f8!important;
}

/* Wide database dialogs where useful */
.modal-box:has(table),
.modal-box:has(.vp-db-table),
.modal-box:has(.vp-table){
  width:min(920px,calc(100vw - 34px))!important;
  max-width:920px!important;
}

@media(max-width:640px){
  .modal-overlay,.member-modal-overlay.modal-overlay{padding:10px!important}
  .modal-box,.member-modal-overlay .member-modal-box{
    width:100%!important;
    max-height:calc(100vh - 20px)!important;
    padding:0 14px 16px!important;
    border-radius:6px!important;
  }
  .modal-header,.member-modal-box .modal-header{
    margin:0 -14px 14px!important;
    border-radius:6px 6px 0 0!important;
  }
  .member-modal-fields{grid-template-columns:1fr!important}
  .member-modal-fields .member-gender-wrap{grid-column:auto!important}
  .member-modal-actions{
    grid-template-columns:1fr!important;
    margin:16px -14px -16px!important;
  }
  .member-cancel-btn{order:2!important}
  .vp-db-table,.vp-table,.vp-page table{font-size:11px!important}
}


/* =============================================================
   GROUP CONTROL CENTER — MODERN DATABASE UI
   ============================================================= */
.vp-settings-center{display:flex;flex-direction:column;gap:14px;max-width:1450px;margin:0 auto}.vp-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:4px 0}.vp-settings-head h1{font-size:26px;margin:2px 0 4px;color:#0b241a}.vp-settings-head p{margin:0;color:#64748b;font-size:13px}.vp-settings-eyebrow{font-size:10px;font-weight:900;letter-spacing:1.5px;color:#087f5b}.vp-settings-save{min-width:190px}.vp-settings-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.vp-settings-kpi{background:#fff;border:1px solid #cbd5df;border-radius:10px;min-height:74px;display:flex;align-items:center;gap:12px;padding:12px 16px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.vp-settings-kpi i{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#e9f7ef;color:#087f5b}.vp-settings-kpi span{display:flex;flex-direction:column}.vp-settings-kpi small{font-size:10px;text-transform:uppercase;font-weight:800;color:#64748b}.vp-settings-kpi strong{font-size:17px;margin-top:3px;color:#0f172a}.vp-settings-tabs{display:flex;align-items:center;background:#e5edf3;border:1px solid #b6c7d5;border-radius:8px;padding:4px;gap:4px}.vp-settings-tab{border:0;background:transparent;padding:10px 18px;border-radius:6px;font-weight:800;color:#425466;cursor:pointer}.vp-settings-tab.active{background:#087bb9;color:#fff;box-shadow:0 2px 6px rgba(8,123,185,.25)}.vp-settings-form{display:flex;flex-direction:column;gap:14px}.vp-settings-panel{background:#fff;border:1px solid #aebfcd;border-radius:8px;overflow:hidden;box-shadow:0 2px 7px rgba(15,23,42,.04)}.vp-settings-panel>header{display:flex;align-items:center;gap:11px;background:linear-gradient(180deg,#f8fbfd,#e8f0f5);border-bottom:1px solid #b7c7d4;padding:12px 15px}.vp-settings-panel>header>i{width:36px;height:36px;border-radius:6px;background:#087bb9;color:#fff;display:grid;place-items:center}.vp-settings-panel>header h2{font-size:15px;margin:0;color:#102a43}.vp-settings-panel>header p{font-size:11px;color:#66788a;margin:2px 0 0}.vp-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-bottom:1px solid #d5dee5}.vp-db-field{display:flex;flex-direction:column;gap:5px;padding:12px;border-right:1px solid #d5dee5;border-bottom:1px solid #d5dee5;min-width:0}.vp-db-field:nth-child(4n){border-right:0}.vp-db-field>span{font-size:10px;text-transform:uppercase;letter-spacing:.35px;font-weight:900;color:#334e68}.vp-db-field>small{font-size:9px;color:#7b8794}.vp-db-input,.vp-settings-table input{width:100%;height:38px;border:1px solid #9eb3c3;background:#fff;border-radius:4px;padding:0 10px;color:#102a43;font-weight:650;outline:none;box-sizing:border-box}.vp-db-input:focus,.vp-settings-table input:focus{border-color:#087bb9;box-shadow:0 0 0 2px rgba(8,123,185,.12)}.vp-setting-toggle{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 15px;border-bottom:1px solid #e1e8ed;cursor:pointer}.vp-setting-toggle:last-child{border-bottom:0}.vp-setting-toggle>span{display:flex;flex-direction:column}.vp-setting-toggle strong{font-size:12px;color:#243b53}.vp-setting-toggle small{font-size:10px;color:#7b8794;margin-top:2px}.vp-setting-toggle input{position:absolute;opacity:0;pointer-events:none}.vp-toggle-slider{width:40px;height:22px;border-radius:20px;background:#aebbc5;position:relative;transition:.2s;flex:0 0 auto}.vp-toggle-slider:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}.vp-setting-toggle input:checked+.vp-toggle-slider{background:#0c9954}.vp-setting-toggle input:checked+.vp-toggle-slider:after{transform:translateX(18px)}.vp-settings-table-wrap{overflow:auto;padding:12px}.vp-settings-table{width:100%;border-collapse:collapse;font-size:11px;min-width:720px}.vp-settings-table th{background:#087bb9;color:#fff;text-align:left;padding:9px 8px;border:1px solid #d9edf8;text-transform:uppercase;font-size:9px}.vp-settings-table td{border:1px solid #c8d3dc;padding:5px 7px;background:#fff}.vp-settings-table tbody tr:nth-child(even) td{background:#edf3f7}.vp-settings-table input{height:31px;border-radius:2px;text-align:right;font-size:11px}.vp-row-delete{border:1px solid #e6a4a4;background:#fff5f5;color:#b42318;border-radius:4px;padding:6px 10px;font-weight:800;cursor:pointer}.vp-add-rule{margin:0 12px 12px}.vp-settings-actions{display:flex;justify-content:flex-end;gap:9px;padding:12px 15px;background:#f3f6f8;border-top:1px solid #ccd7df}.vp-settings-panel>.vp-settings-actions{margin-top:0}.vp-settings-form>.vp-settings-actions{border:1px solid #bdcad4;border-radius:7px}.vp-settings-actions .btn{min-width:165px}
@media(max-width:1100px){.vp-settings-summary{grid-template-columns:repeat(2,1fr)}.vp-settings-grid{grid-template-columns:repeat(2,1fr)}.vp-db-field:nth-child(4n){border-right:1px solid #d5dee5}.vp-db-field:nth-child(2n){border-right:0}}
@media(max-width:680px){.vp-settings-head{flex-direction:column}.vp-settings-save{width:100%}.vp-settings-summary{grid-template-columns:1fr}.vp-settings-tabs{overflow:auto}.vp-settings-tab{white-space:nowrap;flex:1}.vp-settings-grid{grid-template-columns:1fr}.vp-db-field{border-right:0}.vp-settings-actions{flex-direction:column}.vp-settings-actions .btn{width:100%}}

/* =============================================================
   GROUP CONTROL CENTER — COMPACT RESPONSIVE REFINEMENT
   Keeps existing logic intact; improves spacing, card rhythm,
   scrolling and visual density.
   ============================================================= */
.vp-page:has(.vp-settings-center){
  height:100%!important;
  overflow:auto!important;
  padding-bottom:34px!important;
  scrollbar-gutter:stable;
}
.vp-settings-center{
  max-width:1500px;
  gap:12px;
  padding-bottom:72px;
}
.vp-settings-head{
  position:sticky;
  top:0;
  z-index:7;
  align-items:center;
  padding:8px 0 10px;
  background:linear-gradient(180deg,#f4f7f5 0%,rgba(244,247,245,.96) 76%,rgba(244,247,245,0) 100%);
}
.vp-settings-head>div{min-width:0}
.vp-settings-head h1{font-size:24px;line-height:1.1}
.vp-settings-save{height:44px;min-width:220px;border-radius:8px;box-shadow:0 4px 12px rgba(8,115,68,.16)}
.vp-settings-summary{gap:10px}
.vp-settings-kpi{min-height:66px;padding:10px 13px;border-radius:8px}
.vp-settings-kpi i{width:38px;height:38px}
.vp-settings-kpi strong{font-size:16px}
.vp-settings-tabs{position:sticky;top:64px;z-index:6;padding:4px;border-radius:7px;box-shadow:0 3px 9px rgba(15,23,42,.06)}
.vp-settings-tab{padding:9px 20px}

.vp-settings-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:12px;
}
.vp-settings-panel{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  border-radius:8px;
  min-width:0;
}
.vp-settings-panel>header,
.vp-settings-panel>.vp-settings-grid,
.vp-settings-panel>.vp-settings-table-wrap,
.vp-settings-panel>.vp-add-rule,
.vp-settings-panel>.vp-settings-actions{
  grid-column:1/-1;
}
.vp-settings-panel:has(.vp-settings-table){grid-column:1/-1}
.vp-settings-panel>header{padding:10px 13px;min-height:54px}
.vp-settings-panel>header>i{width:34px;height:34px}
.vp-settings-panel>header h2{font-size:14px}
.vp-settings-panel>header p{font-size:10px}

.vp-settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:11px;
  border-bottom:1px solid #d5dee5;
  background:#f8fbfc;
}
.vp-db-field{
  padding:10px;
  border:1px solid #d4dee6!important;
  border-radius:6px;
  background:#fff;
  gap:6px;
  box-shadow:0 1px 2px rgba(15,23,42,.025);
}
.vp-db-field>span{font-size:9px;line-height:1.25}
.vp-db-field>small{min-height:11px}
.vp-db-input,.vp-settings-table input{height:36px;border-color:#a9bac7;border-radius:5px}
.vp-db-input:hover{border-color:#7f9aad}

.vp-setting-toggle{
  margin:8px;
  min-height:58px;
  padding:10px 12px;
  border:1px solid #d7e1e8!important;
  border-radius:7px;
  background:#fbfdfe;
}
.vp-setting-toggle:hover{background:#f2f8f5;border-color:#a9c9ba!important}
.vp-setting-toggle strong{font-size:11px;line-height:1.25}
.vp-setting-toggle small{line-height:1.3}

.vp-settings-table-wrap{padding:10px 11px 8px}
.vp-settings-table{min-width:680px}
.vp-settings-table th{height:34px;padding:7px 8px}
.vp-settings-table td{padding:5px 6px}
.vp-settings-table input{height:30px}
.vp-add-rule{justify-self:start;margin:2px 11px 11px}

.vp-settings-actions{
  grid-column:1/-1;
  position:sticky;
  bottom:0;
  z-index:5;
  margin-top:2px;
  padding:10px 12px;
  border:1px solid #bccbd5!important;
  border-radius:7px!important;
  background:rgba(246,249,250,.97);
  box-shadow:0 -5px 16px rgba(15,23,42,.08);
  backdrop-filter:blur(8px);
}
.vp-settings-actions .btn{min-width:180px;height:40px}

@media(max-width:1180px){
  .vp-settings-form{grid-template-columns:1fr}
  .vp-settings-panel:has(.vp-settings-table){grid-column:auto}
  .vp-settings-tabs{top:62px}
}
@media(max-width:760px){
  .vp-page:has(.vp-settings-center){padding-bottom:18px!important}
  .vp-settings-center{padding-bottom:90px}
  .vp-settings-head{position:static;align-items:stretch}
  .vp-settings-tabs{top:58px}
  .vp-settings-grid{grid-template-columns:1fr}
  .vp-settings-panel{grid-template-columns:1fr}
  .vp-settings-panel>header,.vp-settings-panel>.vp-settings-grid,.vp-settings-panel>.vp-settings-table-wrap,.vp-settings-panel>.vp-add-rule,.vp-settings-panel>.vp-settings-actions{grid-column:1}
  .vp-setting-toggle{margin:7px 9px}
  .vp-settings-actions{flex-direction:column;bottom:8px}
  .vp-settings-actions .btn{width:100%;min-width:0}
}

/* MIRADI & GAWIO — Excel/database feel */
.vp-fund-summary,.vp-dividend-page .vp-summary-row{grid-template-columns:repeat(4,minmax(0,1fr));}
.vp-data-table td small{display:block;color:#64748b;font-size:11px;margin-top:3px}
.vp-data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.vp-data-table .positive{color:#087a49;font-weight:800}.vp-data-table .total-cell{background:#e9f7ef;color:#075f3a;font-weight:900}
.vp-empty-cell{text-align:center!important;padding:42px!important;color:#64748b}
.vp-row-action{border:1px solid #9bb6ca;background:#fff;color:#075f3a;border-radius:5px;padding:7px 10px;font-weight:700;cursor:pointer}
.vp-row-action:hover{background:#e7f5ee}
.vp-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800}.vp-status.active{background:#dcfce7;color:#087a49}.vp-status.muted{background:#e2e8f0;color:#475569}
.vp-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.vp-modal-note{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:#eef6fb;border:1px solid #bfd2e0;border-radius:7px;margin-bottom:14px}.vp-modal-note span{color:#64748b}
.vp-dividend-period{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;background:#edf5fa;border:1px solid #9eb8ca;padding:12px;margin-bottom:12px;border-radius:7px}.vp-dividend-period label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#334155}.vp-dividend-period input{height:38px;border:1px solid #9eb8ca;border-radius:4px;padding:0 10px;background:#fff;font:inherit}
.vp-income-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #9eb8ca;border-radius:7px;overflow:hidden;margin:12px 0;background:#fff}.vp-income-strip span{padding:10px;border-right:1px solid #cbd8e1;color:#526273;font-size:11px}.vp-income-strip span:last-child{border-right:0}.vp-income-strip b{display:block;color:#0f172a;margin-top:4px;font-size:13px}
.vp-dividend-table{min-width:1250px}.vp-dividend-table tfoot th{background:#e7eef3;color:#0f172a;border-top:2px solid #47718f;text-align:right}
@media(max-width:1000px){.vp-fund-summary,.vp-dividend-page .vp-summary-row{grid-template-columns:repeat(2,1fr)}.vp-income-strip{grid-template-columns:repeat(3,1fr)}.vp-dividend-period{grid-template-columns:1fr 1fr}.vp-dividend-period label:first-child{grid-column:1/-1}}
@media(max-width:640px){.vp-fund-summary,.vp-dividend-page .vp-summary-row,.vp-income-strip,.vp-modal-grid,.vp-dividend-period{grid-template-columns:1fr}.vp-dividend-period label:first-child{grid-column:auto}}


/* ===== PHASE 1: LIVE SEARCH, MAPATO & MATUMIZI ===== */
.vp-live-search{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:280px;max-width:420px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;color:#64748b}
.vp-live-search:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.vp-live-search input{border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;min-width:0;flex:1;font-size:14px;padding:0!important}
.vp-live-count{white-space:nowrap;font-size:11px;font-weight:800;color:#475569;background:#f1f5f9;border-radius:999px;padding:4px 7px}
.vp-auto-toolbar{display:flex;align-items:center;justify-content:flex-end;padding:10px 12px;border-bottom:1px solid #dbe3ee;background:#f8fafc}
.vp-table-toolbar{gap:12px;flex-wrap:wrap}
.vp-income-page .vp-table-card,.vp-expenses-page .vp-table-card{margin-top:18px}
.vp-mini-stat.red{border-left-color:#dc2626}.vp-mini-stat.red>svg{color:#dc2626}
.negative{color:#b91c1c!important;font-weight:800}.positive{color:#15803d!important}
.vp-income-strip .negative{display:inline-block}
@media(max-width:760px){.vp-live-search{min-width:100%;order:3}.vp-table-toolbar{align-items:flex-start}.vp-live-count{margin-left:auto}}

/* Membership governance module */
.vp-member-tools{display:grid;grid-template-columns:minmax(260px,1fr) 170px 190px auto;gap:10px;align-items:center}
.vp-table-filter{height:40px;border:1px solid #d7dfdc;border-radius:8px;background:#fff;padding:0 12px;font-size:13px;color:#24342f;outline:none}
.vp-table-filter:focus{border-color:#2d7a58;box-shadow:0 0 0 3px rgba(45,122,88,.1)}
.vp-membership-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.vp-membership-badge.individual{background:#eaf6ef;color:#17643f}
.vp-membership-badge.representative{background:#eaf1fb;color:#245b9a}
.vp-membership-badge.special{background:#fff4d9;color:#8a5b00}
.vp-row-action.danger{margin-left:5px;color:#9d302b;border-color:#efc5c2;background:#fff7f6}
.vp-row-action.danger:hover{background:#fde8e6}
.vp-rule-note{padding:12px 14px;margin:10px 0;border:1px solid #dce7e2;border-left:4px solid #2d7a58;border-radius:8px;background:#f7fbf9;color:#344c42;font-size:13px;line-height:1.5}
.vp-member-profile{padding:15px;border-radius:10px;background:#f2f7f4;margin-bottom:12px}
.vp-member-profile h3{margin:0 0 4px;font-size:18px}.vp-member-profile p{margin:0;color:#61736b;font-size:13px}
.vp-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vp-detail-grid>div{border:1px solid #e0e7e4;border-radius:8px;padding:10px 12px;background:#fff}
.vp-detail-grid span{display:block;font-size:10px;text-transform:uppercase;color:#7b8b84;margin-bottom:4px}.vp-detail-grid strong{font-size:13px;color:#273a32}
@media(max-width:900px){.vp-member-tools{grid-template-columns:1fr 1fr}.vp-member-tools .vp-data-search{grid-column:1/-1}.vp-detail-grid{grid-template-columns:1fr}}
@media(max-width:560px){.vp-member-tools{grid-template-columns:1fr}.vp-member-tools .vp-data-search{grid-column:auto}}

/* =============================================================
   SYSTEM-WIDE UI STABILITY — 20260723
   One table search, scrollable grouped sidebar, visible logout.
   ============================================================= */
.vp-sidebar{padding:12px 10px 10px!important;overflow:hidden!important;min-height:0!important}
.vp-side-logo{flex:0 0 auto;padding-bottom:10px!important}
.vp-logo-circle{width:54px!important;height:54px!important;font-size:28px!important}
.vp-side-nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 3px 10px!important;scrollbar-width:thin;scrollbar-color:#a8c8b6 transparent}
.vp-side-nav::-webkit-scrollbar{width:6px}.vp-side-nav::-webkit-scrollbar-thumb{background:#a8c8b6;border-radius:8px}.vp-side-nav::-webkit-scrollbar-track{background:transparent}
.vp-nav-group{border-bottom:1px solid #dce9e1;padding:3px 0}.vp-nav-group:last-child{border-bottom:0}
.vp-nav-group-toggle{width:100%;height:34px;border:0;background:transparent;padding:0 9px;display:flex;align-items:center;justify-content:space-between;color:#527064;font:900 9px 'DM Sans';letter-spacing:.7px;text-transform:uppercase;cursor:pointer}
.vp-nav-chevron{font-size:16px;line-height:1;transition:transform .18s ease}.vp-nav-group.open .vp-nav-chevron{transform:rotate(180deg)}
.vp-nav-group-items{display:none;padding:1px 0 4px}.vp-nav-group.open .vp-nav-group-items{display:block}
.vp-nav-item{padding:9px 11px!important;font-size:12px!important;margin:1px 0}
.vp-side-foot{flex:0 0 auto!important;margin-top:0!important;background:linear-gradient(180deg,rgba(237,248,241,.92),#edf8f1)!important;border-top:1px solid #cfe1d7!important;padding:9px 3px 0!important;box-shadow:0 -8px 18px rgba(18,69,43,.06)}
.vp-side-foot .vp-balance{margin-top:0!important;padding:9px 10px!important}.vp-side-foot .vp-balance strong{font-size:17px!important}
.vp-logout{height:42px!important;margin-top:8px!important;border:1px solid #b73b3b!important;background:linear-gradient(180deg,#fff,#fff1f1)!important;color:#a61f1f!important;font-size:12px!important;font-weight:900!important;box-shadow:0 2px 7px rgba(166,31,31,.08)}
.vp-logout:hover{background:#b72c2c!important;color:#fff!important}
.vp-top-link{font-family:'DM Sans',sans-serif;cursor:pointer}.vp-top-link.home{border:1px solid rgba(255,255,255,.55)}
/* The canonical search is the one attached directly to the table toolbar. */
.vp-data-tools .vp-data-search{display:none!important}
.vp-data-tools:empty{display:none!important}
.vp-auto-toolbar{min-height:52px!important;justify-content:flex-end!important;padding:8px 12px!important;border-bottom:1px solid #c6d3dc!important;background:linear-gradient(180deg,#f7fafc,#edf3f7)!important}
.vp-live-search{margin-left:auto!important}
/* Never allow a dialog to appear visually empty if a rendering error occurs. */
.vp-modal-render-error{display:flex;flex-direction:column;gap:6px;margin:8px 0 18px;padding:16px;border:1px solid #e4a6a6;background:#fff4f4;color:#9f2424;border-radius:6px}.vp-modal-render-error strong{font-size:14px}.vp-modal-render-error span{font-size:12px}
.modal-overlay{align-items:center!important;padding:18px!important}.modal-box{border-radius:8px!important;max-height:calc(100vh - 36px)!important}
@media(max-width:900px){.vp-sidebar{position:relative}.vp-side-logo{display:none}.vp-side-foot .vp-balance{display:none}.vp-logout{margin-top:4px!important}}

/* =============================================================
   TYPOGRAPHY, COMPACT KPIs & CONTENT-FIT TABLES — 20260723
   ============================================================= */
html,body,.vp-layout,.vp-main,.vp-page,button,input,select,textarea{
  font-family:'Inter','DM Sans',Arial,sans-serif;
}
body{font-size:14px;line-height:1.45}
.vp-page-head h1,.vp-data-head h1{font-size:25px;font-weight:850;letter-spacing:-.35px}
.vp-page-head p,.vp-data-head p{font-size:13px;line-height:1.5}
.vp-nav-item{font-size:13px;font-weight:650}
.vp-side-title{font-size:11px;letter-spacing:.35px}
.vp-user strong{font-size:14px}.vp-user small{font-size:11px}
.vp-brand{font-family:'Inter','DM Sans',sans-serif;font-size:23px;font-weight:900;letter-spacing:-.65px}
.vp-side-logo strong{font-family:'Inter','DM Sans',sans-serif;font-size:20px;font-weight:900;letter-spacing:-.45px}
.vp-group-hero h1{
  font-family:'Inter','DM Sans',Arial,sans-serif!important;
  font-size:30px!important;
  font-weight:950!important;
  letter-spacing:-.8px!important;
  line-height:1.08!important;
}
.vp-group-hero small{font-size:11px}.vp-group-hero p{font-size:12px}

/* Compact statistics cards: preserve room for tables and forms. */
.vp-kpi-grid{gap:9px}
.vp-kpi{height:104px;padding:11px 12px;gap:9px;border-radius:10px}
.vp-kpi-icon{width:44px;height:44px}
.vp-kpi small{font-size:10px}.vp-kpi strong{font-size:18px;margin:3px 0}.vp-kpi p{font-size:10px}
.vp-kpi span{margin-top:5px;padding:3px 6px}
.vp-summary-row{display:flex!important;flex-wrap:wrap;justify-content:flex-start;gap:9px!important}
.vp-mini-stat{height:68px!important;min-width:205px;max-width:285px;flex:0 1 250px;padding:9px 12px!important;gap:10px!important;border-radius:9px!important}
.vp-mini-stat>svg{width:36px!important;height:36px!important;padding:8px!important;border-radius:9px!important}
.vp-mini-stat span{font-size:9px!important;letter-spacing:.2px}.vp-mini-stat strong{font-size:16px!important;margin-top:3px!important}

/* Readable database tables that only use the width their content needs. */
.vp-table-card{
  width:fit-content;
  min-width:min(100%,560px);
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
  background:#fff;
  border:1px solid #dce5e0;
  border-radius:10px;
  box-shadow:0 3px 12px rgba(23,48,35,.04);
}
.vp-table-scroll{width:fit-content;max-width:100%;overflow:auto;margin:0 auto}
.vp-data-table{width:max-content!important;min-width:0!important;max-width:none;border-collapse:collapse;font-size:13px!important;background:#fff}
.vp-data-table th{font-size:11px!important;font-weight:850!important;letter-spacing:.12px;white-space:nowrap;padding:9px 12px!important}
.vp-data-table td{font-size:13px!important;line-height:1.35;padding:9px 12px!important;white-space:nowrap}
.vp-data-table td strong{font-size:13px;font-weight:750}
.vp-data-table td.vp-wrap-cell,.vp-data-table .vp-wrap-cell{white-space:normal!important;min-width:210px;max-width:340px}
.vp-db-table-wrap{width:fit-content;min-width:min(100%,560px);max-width:100%;margin:0 auto;overflow:auto;border:1px solid var(--vp-line);border-radius:9px}
.vp-db-table{width:max-content!important;min-width:0!important;font-size:13px!important}
.vp-db-table th{font-size:11px!important;padding:0 11px!important}.vp-db-table td{font-size:13px!important;height:42px;padding:7px 11px!important}
.vp-table-toolbar{min-height:48px;padding:8px 11px;background:#fff}
.vp-table-title{font-size:13px;font-weight:850}.vp-record-count{font-size:11px}
.vp-table-footer{width:100%;font-size:11px}

/* Actions for records that support controlled editing and saving. */
.vp-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.vp-row-action,.vp-row-delete{font-family:'Inter','DM Sans',sans-serif;font-size:11px!important;font-weight:750!important;padding:6px 9px!important;border-radius:6px!important}
.vp-row-delete{border:1px solid #efc9c9;background:#fff7f7;color:#aa2929;cursor:pointer}
.vp-row-delete:hover{background:#feecec;border-color:#df9898}
.modal-title{font-family:'Inter','DM Sans',sans-serif;font-size:18px;font-weight:900}
.input-label{font-size:11px}.input,.select{font-size:14px}

@media(max-width:900px){
  .vp-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp-mini-stat{min-width:180px;max-width:none;flex:1 1 210px}
  .vp-table-card,.vp-db-table-wrap{min-width:100%}
}
@media(max-width:560px){
  body{font-size:13px}.vp-group-hero h1{font-size:24px!important}
  .vp-kpi-grid{grid-template-columns:1fr 1fr}.vp-kpi{height:96px}
  .vp-summary-row{display:grid!important;grid-template-columns:1fr!important}
  .vp-mini-stat{width:100%;min-width:0;max-width:none}
}

/* =============================================================
   BALANCED READABLE TABLE WIDTH — 20260723
   Tables stay centered and content-aware, but receive enough room
   for comfortable reading without being forced to full-page width.
   ============================================================= */
.vp-table-card{
  width:fit-content;
  min-width:min(92%,760px);
  max-width:min(100%,1120px);
  margin-inline:auto;
}
.vp-table-scroll{
  width:100%;
  max-width:100%;
  margin-inline:auto;
  overflow:auto;
}
.vp-data-table{
  width:max-content!important;
  min-width:720px!important;
}
.vp-db-table-wrap{
  width:fit-content;
  min-width:min(92%,760px);
  max-width:min(100%,1120px);
  margin-inline:auto;
}
.vp-db-table{
  width:max-content!important;
  min-width:720px!important;
}
/* Give important text columns breathing room while preserving compact numeric columns. */
.vp-data-table th,.vp-data-table td,
.vp-db-table th,.vp-db-table td{padding-left:14px!important;padding-right:14px!important}
.vp-data-table th:nth-child(2),.vp-data-table td:nth-child(2),
.vp-data-table th:nth-child(3),.vp-data-table td:nth-child(3),
.vp-db-table th:nth-child(2),.vp-db-table td:nth-child(2),
.vp-db-table th:nth-child(3),.vp-db-table td:nth-child(3){min-width:125px}

@media(max-width:900px){
  .vp-table-card,.vp-db-table-wrap{width:100%;min-width:100%;max-width:100%}
  .vp-data-table,.vp-db-table{min-width:760px!important}
}

/* =============================================================
   INNER TABLE SCROLL + HISA/AKIBA ACTIONS — 20260723
   ============================================================= */
.vp-data-page{min-height:0;overflow:auto;padding-bottom:22px}
.vp-inner-scroll,.vp-db-table-wrap,.vp-table-scroll,.vp-table-wrap,.vp-settings-table-wrap{
  max-height:58vh;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
  -webkit-overflow-scrolling:touch;
}
.vp-db-table-wrap,.vp-table-card{max-width:100%!important}
.vp-db-table thead th,.vp-data-table thead th,.vp-table thead th{
  position:sticky;top:0;z-index:3;
}
.vp-db-table tfoot td,.vp-data-table tfoot td,.vp-db-table tfoot th,.vp-data-table tfoot th{
  position:sticky;bottom:0;z-index:2;background:#f4f8f6;
}
.vp-inner-scroll::-webkit-scrollbar,.vp-db-table-wrap::-webkit-scrollbar,.vp-table-scroll::-webkit-scrollbar,.vp-table-wrap::-webkit-scrollbar{width:11px;height:11px}
.vp-inner-scroll::-webkit-scrollbar-thumb,.vp-db-table-wrap::-webkit-scrollbar-thumb,.vp-table-scroll::-webkit-scrollbar-thumb,.vp-table-wrap::-webkit-scrollbar-thumb{background:#9aaba2;border:2px solid #eef3f0;border-radius:8px}
.vp-inner-scroll::-webkit-scrollbar-track,.vp-db-table-wrap::-webkit-scrollbar-track,.vp-table-scroll::-webkit-scrollbar-track,.vp-table-wrap::-webkit-scrollbar-track{background:#eef3f0}
.vp-shares-page .vp-db-table-wrap{width:min(100%,1180px);min-width:min(94%,820px)}
.vp-shares-table{min-width:1040px!important}
.vp-shares-summary{grid-template-columns:repeat(4,minmax(180px,1fr))!important}
.vp-mini-stat small{display:block;margin-top:3px;font-size:10px;color:#718078;font-weight:650}
.vp-filter-actions{display:flex;align-items:center;gap:9px}
.vp-inline-select{height:36px;border:1px solid #c8d5ce;border-radius:7px;background:#fff;padding:0 10px;font:700 12px 'Inter','DM Sans',sans-serif;color:#35463d}
.vp-member-cell{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:190px}
.vp-member-quick{border:1px solid #a9cdbb;background:#eff9f3;color:#087647;border-radius:6px;padding:5px 8px;font:800 10px 'Inter','DM Sans',sans-serif;cursor:pointer}
.vp-member-quick:hover{background:#dff3e7}
.vp-member-summary-modal h3{font-size:20px;margin:0 0 4px}.vp-member-summary-modal p{margin:0 0 14px;color:#6b7770}
.vp-member-balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}
.vp-member-balance-grid span{border:1px solid #d8e4dd;background:#f7faf8;border-radius:8px;padding:11px;font-size:11px;color:#64736b}
.vp-member-balance-grid strong{display:block;margin-top:5px;font-size:15px;color:#0d5134}
@media(max-width:900px){.vp-shares-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.vp-data-page{overflow:visible}.vp-inner-scroll,.vp-db-table-wrap,.vp-table-scroll,.vp-table-wrap{max-height:62vh}.vp-shares-page .vp-db-table-wrap{min-width:100%;width:100%}}
@media(max-width:560px){.vp-shares-summary{grid-template-columns:1fr!important}.vp-filter-actions{width:100%;justify-content:space-between}.vp-data-tools{align-items:stretch}.vp-member-balance-grid{grid-template-columns:1fr}}


/* =============================================================
   MEETING ENGINE + LANGUAGE SWITCH — Phase 1
   ============================================================= */
.vp-language-switch{height:34px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:inherit;border-radius:8px;padding:0 9px;display:flex;align-items:center;gap:6px;cursor:pointer;font:700 10px 'DM Sans'}.vp-language-switch b{background:#fff;color:#075536;border-radius:4px;padding:3px 5px}.vp-language-switch span{white-space:nowrap}
.vp-meeting-rule-banner{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:10px 13px;background:#fff7df;border:1px solid #ead58e;border-left:4px solid #d4a017;border-radius:8px;color:#6d5100;font-size:11px}
.vp-meeting-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.vp-meeting-type{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900}.vp-meeting-type.regular{background:#e8f3ed;color:#0b6b43}.vp-meeting-type.general{background:#e5edff;color:#275baa}.vp-meeting-type.dividend{background:#fff1ce;color:#8a6100}.vp-meeting-type.emergency{background:#fde7e7;color:#a72e2e}
.vp-meeting-workspace{position:fixed;z-index:1000;inset:72px 26px 20px 266px;background:#f7faf8;border:1px solid #cfddd5;border-radius:14px;box-shadow:0 24px 60px rgba(12,55,35,.22);padding:20px;overflow:auto}.vp-meeting-workspace-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid #dbe7e0}.vp-meeting-workspace-head span{font-size:10px;font-weight:900;color:#0b6b43;text-transform:uppercase}.vp-meeting-workspace-head h2{font-size:22px;margin:4px 0}.vp-meeting-workspace-head p{font-size:11px;color:#68776f}
.vp-meeting-fields{display:grid;grid-template-columns:160px 1fr 1fr;gap:10px;margin:16px 0}.vp-meeting-fields label{display:flex;flex-direction:column;gap:5px}.vp-meeting-fields label span{font-size:9px;font-weight:900;text-transform:uppercase;color:#64746b}.vp-meeting-fields input,.vp-meeting-fields textarea{width:100%;border:1px solid #d5e0da;border-radius:8px;padding:9px;background:#fff;font:12px 'DM Sans'}.vp-meeting-fields label:nth-child(n+3){grid-column:span 1}
.vp-attendance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0}.vp-attendance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #dce7e1;border-radius:8px;padding:9px 10px}.vp-attendance-row strong,.vp-attendance-row small{display:block}.vp-attendance-row strong{font-size:12px}.vp-attendance-row small{font-size:9px;color:#718078}.vp-attendance-select{min-width:160px;height:34px;border:1px solid #d3ded8;border-radius:7px;background:#fff;padding:0 7px;font-size:10px}
.vp-offence-entry{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;background:#fff8e8;border:1px solid #ebd9a6;border-radius:9px;padding:11px}.vp-offence-entry strong{grid-column:1/-1;font-size:11px;color:#725600}.vp-offence-entry select{height:36px;border:1px solid #d8d8c5;border-radius:7px;padding:0 8px;background:#fff}.vp-meeting-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.vp-meeting-actions .btn{width:auto;min-width:210px}
@media(max-width:1000px){.vp-meeting-summary{grid-template-columns:repeat(2,1fr)}.vp-meeting-workspace{inset:66px 12px 12px}.vp-meeting-fields{grid-template-columns:1fr 1fr}.vp-attendance-grid{grid-template-columns:1fr}.vp-language-switch span{display:none}}
@media(max-width:600px){.vp-meeting-summary,.vp-meeting-fields{grid-template-columns:1fr}.vp-offence-entry{grid-template-columns:1fr}.vp-meeting-actions{flex-direction:column}.vp-meeting-actions .btn{width:100%;min-width:0}}


/* =============================================================
   SAFE FOUNDATION PHASE 0 — Gawio, language and meetings
   ============================================================= */
.vp-dividend-page{min-width:0;max-width:100%;overflow:hidden!important}
.vp-dividend-page .vp-table-card{display:block;width:100%!important;max-width:100%!important;min-width:0!important;margin-inline:0!important;overflow:hidden}
.vp-dividend-page .vp-table-scroll{display:block;width:100%!important;max-width:100%!important;min-width:0!important;max-height:calc(100vh - 360px);overflow:auto!important;touch-action:pan-x pan-y;overscroll-behavior:contain;scrollbar-gutter:stable}
.vp-dividend-page .vp-dividend-table{min-width:1500px!important;width:max-content!important;table-layout:auto}
.vp-dividend-page .vp-dividend-table th,.vp-dividend-page .vp-dividend-table td{white-space:nowrap!important}
.vp-dividend-page .vp-dividend-table thead th{position:sticky;top:0;z-index:5}
.vp-dividend-page .vp-dividend-table tfoot th{position:sticky;bottom:0;z-index:4}
.vp-dividend-page .vp-table-scroll:focus{outline:3px solid rgba(11,107,67,.14);outline-offset:-3px}

/* Keep the bilingual switch visible on practical desktop widths. */
.vp-language-switch{display:inline-flex!important;flex:0 0 auto!important;min-width:82px;justify-content:center;background:#eef6f1!important;border:1px solid #c8ddd1!important;color:#18352a!important}
.vp-language-switch b{background:#0b6b43!important;color:#fff!important}
.vp-top-actions{min-width:0}.vp-top-actions>*{flex-shrink:0}
@media(max-width:1180px){.vp-top-link span,.vp-date{display:none}.vp-language-switch{min-width:58px}.vp-language-switch span{display:none}}

/* Meeting Engine entry and workspace remain reachable above all tables. */
.vp-nav-item[data-tab="meetings"],.vp-meeting-rule-banner{visibility:visible!important}
.vp-meeting-workspace{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(max-height:760px){.vp-dividend-page .vp-table-scroll{max-height:46vh}}

/* Registration back button — isolated from internal theme */
.vp-register-back-btn{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:var(--text-light);
  font:800 20px/1 'DM Sans',sans-serif;
  cursor:pointer;
  transition:background .2s,border-color .2s,transform .1s;
}
.vp-register-back-btn:hover{background:rgba(255,255,255,.14);border-color:rgba(244,162,97,.5)}
.vp-register-back-btn:active{transform:scale(.96)}
.vp-register-back-btn:focus-visible{outline:3px solid rgba(244,162,97,.35);outline-offset:2px}


/* ===== Topbar Home button — visible on white enterprise topbar ===== */
.vp-top-link.vp-home-link{
  background:#087344!important;
  border:1px solid #087344!important;
  color:#fff!important;
  box-shadow:0 4px 12px rgba(8,115,68,.22)!important;
  opacity:1!important;
  cursor:pointer!important;
}
.vp-top-link.vp-home-link:hover{
  background:#005f38!important;
  border-color:#005f38!important;
  color:#fff!important;
  transform:translateY(-1px);
}
.vp-top-link.vp-home-link .v-icon{stroke:currentColor!important;}

/* =============================================================
   LOGIN + REGISTRATION — DASHBOARD ENTERPRISE UI
   UI-only layer. Authentication, validation and processing untouched.
   ============================================================= */
.vp-auth-screen{
  position:relative;
  min-height:100vh!important;
  width:100%;
  overflow:auto;
  background:
    radial-gradient(circle at 12% 18%,rgba(19,145,83,.09),transparent 25%),
    radial-gradient(circle at 88% 78%,rgba(244,162,97,.10),transparent 24%),
    linear-gradient(135deg,#f7faf8 0%,#eef5f1 48%,#f8faf9 100%)!important;
  color:#17251e;
}

.vp-auth-screen::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background-image:
    linear-gradient(rgba(12,95,56,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(12,95,56,.035) 1px,transparent 1px);
  background-size:32px 32px;
}

.vp-auth-screen::after{
  content:"";
  position:fixed;
  top:-180px;
  right:-140px;
  width:520px;
  height:520px;
  border-radius:50%;
  border:1px solid rgba(9,111,65,.10);
  box-shadow:
    0 0 0 70px rgba(9,111,65,.025),
    0 0 0 140px rgba(9,111,65,.018);
  pointer-events:none;
}

.vp-auth-shell{
  position:relative;
  z-index:2;
  width:100%;
  margin:0 auto!important;
}

.vp-login-shell{
  max-width:470px!important;
  padding:32px 24px 38px!important;
}

.vp-register-shell{
  max-width:620px!important;
  padding:28px 24px 40px!important;
}

.vp-auth-brand{
  padding:18px 0 22px!important;
}

.vp-auth-brand > div:first-child{
  width:58px;
  height:58px;
  margin:0 auto 10px!important;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(145deg,#087647,#005f38);
  color:#fff;
  font-size:29px!important;
  box-shadow:0 13px 28px rgba(0,103,60,.20);
}

.vp-auth-brand > div:nth-child(2){
  color:#13372a!important;
  font-size:26px!important;
  letter-spacing:-.4px;
}

.vp-auth-brand > div:nth-child(3){
  color:#718078!important;
  font-weight:800;
  letter-spacing:1.8px!important;
}

.vp-auth-card{
  position:relative;
  overflow:hidden;
  padding:28px!important;
  border:1px solid #d8e5de!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:
    0 22px 55px rgba(19,65,43,.10),
    0 2px 8px rgba(19,65,43,.05)!important;
}

.vp-auth-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,#087647 0 72%,#f0a100 72% 100%);
}

.vp-auth-card h2,
.vp-auth-card h3,
.vp-auth-plans > h3{
  color:#13372a!important;
  letter-spacing:-.25px;
}

.vp-auth-card > p,
.vp-auth-plans > p{
  color:#6b7b73!important;
}

.vp-auth-screen .input-label{
  color:#36594a!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.85px!important;
}

.vp-auth-screen .input,
.vp-auth-screen .select{
  min-height:48px;
  padding:13px 15px!important;
  border:1px solid #cfddd6!important;
  border-radius:9px!important;
  background:#fbfdfc!important;
  color:#1e3329!important;
  box-shadow:inset 0 1px 2px rgba(16,67,43,.025);
}

.vp-auth-screen .input::placeholder{
  color:#96a49d!important;
}

.vp-auth-screen .input:hover,
.vp-auth-screen .select:hover{
  border-color:#aac8b9!important;
}

.vp-auth-screen .input:focus,
.vp-auth-screen .select:focus{
  border-color:#087647!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(8,118,71,.10)!important;
}

.vp-auth-screen .input-error{
  border-color:#dc2626!important;
  box-shadow:0 0 0 4px rgba(220,38,38,.08)!important;
}

.vp-auth-screen .input-wrap{
  margin-bottom:15px;
}

.vp-auth-screen .btn-primary{
  min-height:49px;
  border-radius:9px!important;
  background:linear-gradient(135deg,#07804b,#00683e)!important;
  color:#fff!important;
  box-shadow:0 9px 20px rgba(0,107,62,.18);
}

.vp-auth-screen .btn-primary:hover{
  background:linear-gradient(135deg,#006f41,#005832)!important;
  transform:translateY(-1px);
}

.vp-auth-screen .alert-error{
  background:#fff2f2!important;
  border:1px solid #f2c8c8!important;
  color:#a91f1f!important;
}

.vp-auth-login .vp-auth-card button[style*="background:none"]{
  color:#b56c00!important;
}

.vp-auth-switch{
  margin-top:17px!important;
  padding:12px;
  border:1px solid #dce7e1;
  border-radius:10px;
  background:rgba(255,255,255,.72);
  color:#6d7b74!important;
}

.vp-auth-switch button{
  color:#087647!important;
}

.vp-auth-step-header{
  padding:10px 4px 20px!important;
}

.vp-auth-step-header > div:nth-child(2) > div:first-child{
  color:#143c2d!important;
  font-size:17px!important;
}

.vp-auth-step-header > div:nth-child(2) > div:last-child{
  color:#718078!important;
}

.vp-register-back-btn{
  border:1px solid #cadbd2!important;
  background:#fff!important;
  color:#087647!important;
  box-shadow:0 5px 14px rgba(17,76,46,.07);
}

.vp-register-back-btn:hover{
  background:#edf7f1!important;
  border-color:#9fc8b3!important;
}

.vp-auth-step-header > div:last-child > div{
  background:#d8e5de!important;
}

.vp-auth-step-header > div:last-child > div[style*="F4A261"],
.vp-auth-step-header > div:last-child > div[style*="244,162,97"]{
  background:#087647!important;
}

.vp-searchable-district-icon{
  color:#087647!important;
}

.vp-auth-plans{
  position:relative;
  padding:28px;
  border:1px solid #d8e5de;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 55px rgba(19,65,43,.10);
}

.vp-auth-plans::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  border-radius:16px 16px 0 0;
  background:linear-gradient(90deg,#087647 0 72%,#f0a100 72% 100%);
}

.vp-auth-plans > div[style*="background"]{
  background:#f9fcfa!important;
  border-color:#d8e4dd!important;
  border-radius:10px!important;
  box-shadow:none!important;
}

.vp-auth-plans > div[style*="background"]:hover{
  border-color:#8fbba5!important;
  background:#f2f9f5!important;
}

.vp-auth-plans span[style*="color:#F0EDE8"],
.vp-auth-plans div[style*="color:#F0EDE8"]{
  color:#193b2d!important;
}

.vp-auth-plans span[style*="color:#8BA898"],
.vp-auth-plans div[style*="color:#8BA898"]{
  color:#718078!important;
}

.vp-auth-plans span[style*="color:#F4A261"]{
  color:#087647!important;
}

.vp-auth-register .alert{
  max-width:100%;
}

@media(min-width:900px){
  .vp-auth-login{
    display:grid;
    place-items:center;
  }

  .vp-login-shell{
    transform:translateY(-5px);
  }

  .vp-auth-register{
    display:flex;
    align-items:flex-start;
    justify-content:center;
  }
}

@media(max-width:640px){
  .vp-login-shell,
  .vp-register-shell{
    padding-left:15px!important;
    padding-right:15px!important;
  }

  .vp-auth-card,
  .vp-auth-plans{
    padding:21px!important;
    border-radius:13px!important;
  }

  .vp-auth-brand{
    padding-top:8px!important;
  }
}

/* =============================================================
   GAWIO PAGE — RELIABLE PAGE-LEVEL VERTICAL SCROLL
   The main workspace owns vertical scrolling. The dividend table
   keeps horizontal scrolling only, preventing nested-scroll lock.
   ============================================================= */
.vp-main{
  height:100%;
  max-height:100%;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}

.vp-page{
  min-height:100%;
  height:auto!important;
  overflow:visible!important;
}

.vp-dividend-page{
  min-height:max-content!important;
  height:auto!important;
  overflow:visible!important;
  padding-bottom:56px!important;
}

.vp-dividend-page .vp-table-card{
  overflow:visible!important;
  margin-bottom:24px;
}

.vp-dividend-page .vp-table-scroll{
  width:100%;
  max-height:none!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  overscroll-behavior-x:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}

.vp-dividend-page .vp-dividend-table{
  margin-bottom:0;
}

/* Keep the header visible while scrolling the long dividend page. */
.vp-dividend-page .vp-data-head{
  position:sticky;
  top:0;
  z-index:8;
  padding:8px 0 10px;
  background:#f4f7f5;
}

.vp-main::-webkit-scrollbar{width:11px}
.vp-main::-webkit-scrollbar-track{background:#edf3ef}
.vp-main::-webkit-scrollbar-thumb{
  background:#9db3a7;
  border:2px solid #edf3ef;
  border-radius:999px;
}

@media(max-width:720px){
  .vp-main{
    height:auto;
    max-height:none;
    overflow:visible!important;
  }
  .vp-dividend-page .vp-data-head{position:static}
}

/* =============================================================
   GAWIO TABLE — COMPACT CONTENT-FIT COLUMNS
   Applies only to the member dividend table.
   ============================================================= */
.vp-dividend-page .vp-dividend-table{
  width:max-content!important;
  min-width:max-content!important;
  table-layout:auto!important;
  border-collapse:collapse;
}

.vp-dividend-page .vp-dividend-table th,
.vp-dividend-page .vp-dividend-table td{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  padding:7px 9px!important;
  white-space:nowrap!important;
  vertical-align:middle;
}

/* Row number */
.vp-dividend-page .vp-dividend-table th:nth-child(1),
.vp-dividend-page .vp-dividend-table td:nth-child(1){
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  padding-left:6px!important;
  padding-right:6px!important;
  text-align:center;
}

/* Member name: readable but not unnecessarily wide */
.vp-dividend-page .vp-dividend-table th:nth-child(2),
.vp-dividend-page .vp-dividend-table td:nth-child(2){
  width:140px!important;
  min-width:140px!important;
  max-width:180px!important;
  text-align:left;
}

/* Money and percentage columns fit their contents */
.vp-dividend-page .vp-dividend-table th:nth-child(n+3),
.vp-dividend-page .vp-dividend-table td:nth-child(n+3){
  width:1%!important;
  min-width:max-content!important;
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* Ratio is naturally narrower than money columns */
.vp-dividend-page .vp-dividend-table th:nth-child(7),
.vp-dividend-page .vp-dividend-table td:nth-child(7){
  min-width:72px!important;
  text-align:center;
}

/* Slightly longer headings need only a modest minimum */
.vp-dividend-page .vp-dividend-table th:nth-child(8),
.vp-dividend-page .vp-dividend-table td:nth-child(8),
.vp-dividend-page .vp-dividend-table th:nth-child(11),
.vp-dividend-page .vp-dividend-table td:nth-child(11),
.vp-dividend-page .vp-dividend-table th:nth-child(13),
.vp-dividend-page .vp-dividend-table td:nth-child(13){
  min-width:108px!important;
}

/* Footer follows the same compact geometry */
.vp-dividend-page .vp-dividend-table tfoot th{
  padding:8px 9px!important;
  white-space:nowrap!important;
}

/* ===== VICOBAPro Loan Workflow Workspace ===== */
.vp-loan-workspace{padding-bottom:28px}
.vp-loan-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.vp-loan-kpis>div{background:#fff;border:1px solid var(--vp-line);border-radius:10px;padding:13px 14px;min-width:0}
.vp-loan-kpis small{display:block;font-size:9px;font-weight:900;color:#65736c;letter-spacing:.35px}
.vp-loan-kpis strong{display:block;margin:5px 0 3px;font-size:18px;color:#143c2d}
.vp-loan-kpis span{display:block;font-size:10px;color:#78847e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-loan-tabs{display:flex;align-items:center;gap:6px;padding:6px;background:#eaf1ed;border:1px solid #dbe5df;border-radius:10px;margin-bottom:10px;overflow-x:auto}
.vp-loan-tabs button{height:36px;padding:0 14px;border:0;border-radius:7px;background:transparent;color:#53635b;font:800 11px 'DM Sans';white-space:nowrap;cursor:pointer}
.vp-loan-tabs button b{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 5px;border-radius:10px;background:#d5e1da;font-size:9px}
.vp-loan-tabs button.active{background:#fff;color:#087344;box-shadow:0 2px 7px rgba(20,64,43,.09)}
.vp-loan-tabs button.active b{background:#e1f2e8;color:#087344}
.vp-loan-table-wrap{max-height:none!important;overflow-x:auto!important;overflow-y:visible!important}
.vp-loan-table{min-width:1100px}
.vp-loan-table th,.vp-loan-table td{padding-left:9px!important;padding-right:9px!important}
.vp-loan-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}
.vp-row-action.danger{color:#b42318;border-color:#f2b8b5;background:#fff7f7}
.vp-empty-row{text-align:center!important;padding:34px!important;color:#78847e}
.vp-loan-week-note{margin:0 0 15px;padding:10px 12px;border:1px solid #dce8e1;border-radius:8px;background:#f5faf7;color:#087344;font-size:12px;font-weight:800}
@media(max-width:1050px){.vp-loan-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.vp-loan-kpis{grid-template-columns:1fr 1fr}.vp-loan-tabs{border-radius:8px}}

\n\n/* Loan KPI navigation: cards open their matching table tab */\n.vp-loan-kpis>button{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer;background:#fff;border:1px solid var(--vp-line);border-radius:10px;padding:13px 14px;min-width:0;transition:border-color .18s,box-shadow .18s,transform .18s}\n.vp-loan-kpis>button:hover{border-color:#9fc8b3;box-shadow:0 5px 15px rgba(20,64,43,.08);transform:translateY(-1px)}\n.vp-loan-kpis>button small{display:block;font-size:9px;font-weight:900;color:#65736c;letter-spacing:.35px}\n.vp-loan-kpis>button strong{display:block;margin:5px 0 3px;font-size:18px;color:#143c2d}\n.vp-loan-kpis>button span{display:block;font-size:10px;color:#78847e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n

/* Loan application validation feedback */
.vp-loan-form-error{margin:0 0 13px;padding:11px 13px;border:1px solid #efb2b2;border-radius:8px;background:#fff3f3;color:#a82020;font-size:12px;font-weight:700;line-height:1.45}
