 
:root{--app-bg:#f4f7fb;--app-surface:#fff;--app-ink:#172433;--app-muted:#667789;--app-line:#e5ebf2;--app-navy:#0b1d32;--app-blue:#2765a8;--app-blue2:#eaf3ff;--app-shadow:0 18px 55px rgba(20,42,68,.08)}
body.app-body{background:var(--app-bg);color:var(--app-ink);font-family:Manrope,Arial,sans-serif;min-height:100vh}
.app-topbar{height:76px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--app-line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,70px);position:sticky;top:0;z-index:100}
.app-brand{display:flex;align-items:center;gap:12px;color:var(--app-ink);font-weight:800;letter-spacing:2px;font-size:13px}
.app-brand img{width:150px;height:42px;object-fit:contain;object-position:left center}
.app-top-actions{display:flex;align-items:center;gap:12px}
.app-top-actions a,.app-top-actions button{border:1px solid var(--app-line);background:#fff;color:var(--app-ink);padding:10px 14px;border-radius:10px;font:700 11px Manrope,Arial;cursor:pointer;transition:.25s}
.app-top-actions a:hover,.app-top-actions button:hover{border-color:#9ab8d8;transform:translateY(-2px);box-shadow:0 8px 22px rgba(25,66,110,.08)}
.app-shell{max-width:1440px;margin:auto;padding:34px clamp(16px,4vw,54px) 70px;display:grid;grid-template-columns:238px minmax(0,1fr);gap:28px}
.app-sidebar{align-self:start;position:sticky;top:102px;background:var(--app-surface);border:1px solid var(--app-line);border-radius:18px;padding:18px;box-shadow:var(--app-shadow)}
.sidebar-label{font:700 9px "DM Mono",monospace;letter-spacing:1.4px;color:#91a0af;padding:12px 10px 8px}
.app-nav{display:grid;gap:4px}
.app-nav a{padding:11px 12px;border-radius:10px;color:#536477;font-size:11px;font-weight:700;display:flex;align-items:center;gap:10px;transition:.2s}
.app-nav a:hover,.app-nav a[aria-current=page]{background:var(--app-blue2);color:var(--app-blue);transform:translateX(3px)}
.app-nav a span{width:19px;text-align:center;font-size:15px}
.app-content{min-width:0}
.app-welcome{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:8px 0 26px}
.app-eyebrow{font:700 9px "DM Mono",monospace;letter-spacing:1.5px;color:var(--app-blue);text-transform:uppercase}
.app-welcome h1{font-size:clamp(28px,4vw,42px);letter-spacing:-1.8px;line-height:1.05;margin:10px 0 8px;color:var(--app-navy)}
.app-welcome p{margin:0;color:var(--app-muted);font-size:12px;line-height:1.7}
.app-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;background:var(--app-navy);color:#fff;padding:13px 17px;font:800 11px Manrope,Arial;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}
.app-button:hover{transform:translateY(-3px);background:#173b60;box-shadow:0 12px 25px rgba(11,29,50,.17)}
.app-button.secondary{background:#edf4fb;color:#214c77}
.app-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.app-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.app-card{background:var(--app-surface);border:1px solid var(--app-line);border-radius:17px;padding:21px;box-shadow:var(--app-shadow);min-width:0;transition:transform .3s,border-color .3s,box-shadow .3s}
.app-card:hover{transform:translateY(-4px);border-color:#c8d8e8;box-shadow:0 22px 55px rgba(20,42,68,.11)}
.app-card h2,.app-card h3{margin:0 0 9px;color:var(--app-navy);letter-spacing:-.5px}
.app-card h2{font-size:18px}.app-card h3{font-size:14px}
.app-card p{font-size:11px;line-height:1.75;color:var(--app-muted)}
.stat-card{grid-column:span 3;min-height:132px}
.stat-label{font:700 9px "DM Mono",monospace;color:#8392a2;letter-spacing:1px;text-transform:uppercase}
.stat-value{font-size:30px;font-weight:800;letter-spacing:-1.5px;color:var(--app-navy);margin:13px 0 5px}
.stat-note{font-size:10px;color:#7b8a9a}
.app-panel{grid-column:span 8}.app-panel-side{grid-column:span 4}
.app-card-wide{grid-column:1/-1}.app-card-half{grid-column:span 6}.app-card-third{grid-column:span 4}
.app-table-wrap{overflow:auto;border:1px solid var(--app-line);border-radius:12px}
.app-table{width:100%;border-collapse:collapse;min-width:540px}
.app-table th{text-align:left;font:700 9px "DM Mono",monospace;letter-spacing:.8px;color:#8a98a7;background:#f8fafc;padding:13px}
.app-table td{font-size:11px;color:#4b5d70;padding:14px 13px;border-top:1px solid var(--app-line)}
.app-table td strong{color:var(--app-ink)}
.app-pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;background:#eef4fa;color:#42617f;padding:6px 9px;font:700 9px Manrope,Arial}
.app-pill.good{background:#e8f7f0;color:#24734f}.app-pill.pending{background:#fff5df;color:#936b22}
.app-form{display:grid;gap:14px}
.app-field{display:grid;gap:7px}
.app-field label{font-size:10px;font-weight:800;color:#46596d}
.app-field input,.app-field select,.app-field textarea{width:100%;border:1px solid #dce4ed;border-radius:10px;background:#fff;padding:13px 14px;color:#1d2d3d;font:500 12px Manrope,Arial;outline:none;transition:border-color .2s,box-shadow .2s}
.app-field input:focus,.app-field select:focus,.app-field textarea:focus{border-color:#7ca6d2;box-shadow:0 0 0 4px rgba(39,101,168,.09)}
.app-field textarea{min-height:120px;resize:vertical}
.app-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.app-notice{border:1px solid #d9e6f4;background:#f2f7fd;border-radius:12px;padding:14px;color:#526b84;font-size:10px;line-height:1.7}
.app-alert{display:none;border-radius:10px;padding:12px 14px;font-size:11px;line-height:1.6;margin:12px 0}
.app-alert.show{display:block}.app-alert.error{background:#fff0ef;color:#9b3831;border:1px solid #f4d1cd}.app-alert.success{background:#eaf8f0;color:#236947;border:1px solid #cbe9d8}
.app-auth-wrap{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:35px 18px;background:radial-gradient(circle at 80% 15%,#e1efff,transparent 28%),linear-gradient(145deg,#f6f8fb,#edf3f9)}
.app-auth-card{width:min(100%,470px);background:#fff;border:1px solid var(--app-line);border-radius:22px;padding:clamp(24px,5vw,42px);box-shadow:0 28px 80px rgba(18,44,73,.12)}
.app-auth-card h1{font-size:30px;letter-spacing:-1.3px;color:var(--app-navy);margin:14px 0 8px}
.app-auth-card>p{font-size:11px;line-height:1.8;color:var(--app-muted);margin:0 0 24px}
.app-auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:18px;font-size:10px;color:var(--app-blue)}
.app-empty{padding:28px;text-align:center;color:#8493a2;font-size:11px;border:1px dashed #d5dfe9;border-radius:12px}
.app-chart{height:180px;width:100%;display:block}
.app-chart path.line{fill:none;stroke:#3479ba;stroke-width:3;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;animation:appChartDraw 3.2s ease forwards}
.app-chart path.area{fill:url(#appArea)}
@keyframes appChartDraw{to{stroke-dashoffset:0}}
.app-motion-panel{position:relative;overflow:hidden;min-height:210px;background:linear-gradient(120deg,#0b1d32,#183c5b);color:#fff}
.app-motion-panel:before{content:"";position:absolute;inset:-50%;background:repeating-linear-gradient(115deg,transparent 0 55px,rgba(128,190,230,.12) 56px 57px);animation:appDrift 22s linear infinite}
.app-motion-panel:after{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(130,196,234,.22);border-radius:50%;right:-80px;top:-110px;box-shadow:0 0 0 35px rgba(130,196,234,.035),0 0 0 70px rgba(130,196,234,.025);animation:appPulse 7s ease-in-out infinite}
@keyframes appDrift{to{transform:translate3d(90px,0,0)}}@keyframes appPulse{50%{transform:scale(1.08);opacity:.65}}
.app-motion-panel>*{position:relative;z-index:1}
.app-footer{text-align:center;padding:20px;color:#93a0ad;font-size:9px}
.nav-portal{border:1px solid rgba(117,220,225,.45)!important;padding:10px 13px!important;border-radius:3px;color:var(--cyan)!important}
.nav-portal span{margin-left:7px}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:static}.app-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.app-panel{grid-column:span 7}.app-panel-side{grid-column:span 5}}
@media(max-width:680px){.app-topbar{height:66px;padding:0 16px}.app-brand img{width:122px}.app-top-actions a{padding:9px 10px}.app-shell{padding:20px 14px 45px;gap:16px}.app-sidebar{padding:12px}.app-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-label{padding:8px}.app-welcome{align-items:flex-start;flex-direction:column}.app-welcome>.app-button{width:100%}.stat-card{grid-column:span 6}.app-panel,.app-panel-side,.app-card-half,.app-card-third{grid-column:1/-1}.app-form-row{grid-template-columns:1fr}.app-card{padding:17px}.app-auth-card{padding:25px 20px}}
@media(prefers-reduced-motion:reduce){.app-card,.app-nav a,.app-button{transition:none}.app-chart path.line{animation:none;stroke-dashoffset:0}.app-motion-panel:before,.app-motion-panel:after{animation:none}}

.app-table select{border:1px solid #dce4ed;border-radius:7px;padding:7px 8px;background:#fff;color:#40556b;font:600 9px Manrope,Arial;max-width:145px}


/* NEXFIN account header refinements */
.app-top-actions { flex-wrap: wrap; justify-content: flex-end; }
.app-top-actions a:focus-visible,
.app-top-actions button:focus-visible,
.app-button:focus-visible,
.app-nav a:focus-visible {
  outline: 3px solid rgba(39,101,168,.35);
  outline-offset: 3px;
}
@media(max-width:560px) {
  .app-topbar { min-height: 72px; height: auto; padding-top: 12px; padding-bottom: 12px; gap: 10px; }
  .app-brand img { width: 112px; }
  .app-brand { gap: 7px; font-size: 10px; letter-spacing: 1px; }
  .app-top-actions { gap: 6px; }
  .app-top-actions a { padding: 8px 9px; font-size: 9px; }
}


/* Additive client profile photo presentation. */
.app-profile-avatar-wrap{display:flex;align-items:center;gap:13px;margin:8px 0 18px;color:#718398;font:700 9px "DM Mono",monospace;letter-spacing:1px}
.app-profile-avatar-wrap img{width:76px;height:76px;border-radius:50%;object-fit:cover;background:#eaf1f8;border:3px solid #fff;box-shadow:0 0 0 1px #dce6f0}

/* ================================================================
   NEXFIN NIGHT LUXE — additive dashboard visual upgrade
   Existing page structure, content, links and behaviour are retained.
   ================================================================ */
:root{
  color-scheme:dark;
  --app-bg:#07111f;--app-surface:#0c1b2b;--app-ink:#edf5f7;--app-muted:#9aafbf;
  --app-line:rgba(117,220,225,.17);--app-navy:#f0f7f7;--app-blue:#75dce1;
  --app-blue2:rgba(117,220,225,.10);--app-shadow:0 18px 55px rgba(0,0,0,.24);
  --app-gold:#d9bd82;
}
html{background:#07111f}
body.app-body{background:radial-gradient(ellipse at 78% 0%,rgba(31,91,116,.20),transparent 34%),radial-gradient(ellipse at 5% 45%,rgba(31,65,105,.16),transparent 35%),#07111f;color:var(--app-ink)}
.app-topbar{background:rgba(5,15,27,.88);border-bottom-color:rgba(117,220,225,.16);box-shadow:0 8px 35px rgba(0,0,0,.16)}
.app-brand{color:#f4f8f8}.app-brand img{filter:drop-shadow(0 0 9px rgba(117,220,225,.12))}
.app-top-actions a,.app-top-actions button{background:rgba(10,29,46,.88);border-color:rgba(117,220,225,.25);color:#eaf5f6}
.app-top-actions a:hover,.app-top-actions button:hover{border-color:#75dce1;box-shadow:0 0 20px rgba(117,220,225,.14)}
.app-sidebar{background:linear-gradient(160deg,rgba(14,34,52,.98),rgba(8,23,38,.98));border-color:rgba(117,220,225,.19);box-shadow:0 18px 55px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.025)}
.sidebar-label{color:#7f9bab}
.app-nav a{color:#b3c4cf;border:1px solid transparent;position:relative;overflow:hidden}
.app-nav a span{color:#83dce0;text-shadow:0 0 12px rgba(117,220,225,.38)}
.app-nav a:hover,.app-nav a[aria-current=page]{background:linear-gradient(100deg,rgba(117,220,225,.16),rgba(117,220,225,.045));border-color:rgba(117,220,225,.28);color:#f2ffff;box-shadow:inset 3px 0 #75dce1,0 0 22px rgba(117,220,225,.07);transform:translateX(3px)}
.app-eyebrow{color:#83dce0;text-shadow:0 0 16px rgba(117,220,225,.2)}
.app-welcome h1{color:#f4f8f8;text-shadow:0 0 28px rgba(117,220,225,.10)}
.app-welcome p,.app-card p{color:#a6b9c7}
.app-button{background:linear-gradient(110deg,#75dce1,#b0e7df);color:#071522;box-shadow:0 0 0 1px rgba(117,220,225,.22),0 8px 25px rgba(44,180,184,.12)}
.app-button:hover{background:linear-gradient(110deg,#a4f0eb,#d4e9c9);box-shadow:0 0 28px rgba(117,220,225,.28);color:#06131e}
.app-button.secondary{background:rgba(117,220,225,.12);color:#b9f2ef;border:1px solid rgba(117,220,225,.28)}
.app-card{background:linear-gradient(145deg,rgba(15,35,54,.97),rgba(9,25,41,.98));border-color:rgba(117,220,225,.15);box-shadow:0 18px 50px rgba(0,0,0,.20),inset 0 1px rgba(255,255,255,.025);animation:nightCardIn .65s both}
.app-card:hover{border-color:rgba(117,220,225,.48);box-shadow:0 22px 55px rgba(0,0,0,.3),0 0 25px rgba(117,220,225,.075),inset 0 1px rgba(255,255,255,.04)}
.app-card h2,.app-card h3{color:#effafa}
.stat-card{position:relative;overflow:hidden}
.stat-card:after{content:"";position:absolute;width:110px;height:110px;right:-46px;top:-48px;border:1px solid rgba(117,220,225,.19);border-radius:50%;box-shadow:0 0 0 14px rgba(117,220,225,.025),0 0 0 29px rgba(117,220,225,.018);pointer-events:none}
.stat-label{color:#8da8b7}.stat-value{color:#eafafa;text-shadow:0 0 18px rgba(117,220,225,.22)}.stat-note{color:#91a8b8}
.app-table-wrap{border-color:rgba(117,220,225,.18)}
.app-table th{background:#10283a;color:#a6c2ce}.app-table td{color:#c0d0d9;border-top-color:rgba(117,220,225,.12)}.app-table td strong{color:#f1f8f8}
.app-table select{background:#10283a;border-color:rgba(117,220,225,.25);color:#e4f2f2}
.app-pill{background:rgba(117,220,225,.12);color:#b7e9e7}.app-pill.good{background:rgba(65,190,133,.14);color:#8de0b8}.app-pill.pending{background:rgba(217,189,130,.14);color:#e8ce98}
.app-field label{color:#c4d5dd}.app-field input,.app-field select,.app-field textarea{background:#081827;border-color:rgba(117,220,225,.2);color:#eff8f8;box-sizing:border-box}.app-field input::placeholder,.app-field textarea::placeholder{color:#7892a3}.app-field input:focus,.app-field select:focus,.app-field textarea:focus{border-color:#75dce1;box-shadow:0 0 0 3px rgba(117,220,225,.12),0 0 18px rgba(117,220,225,.08)}
.app-notice{background:rgba(117,220,225,.065);border-color:rgba(117,220,225,.2);color:#b2c9d3}
.app-empty{border-color:rgba(117,220,225,.24);color:#9ab1bf;background:rgba(4,17,29,.24)}
.app-chart path.line{stroke:#83e6e4;filter:drop-shadow(0 0 6px rgba(117,220,225,.85));stroke-width:3.5}
.app-chart path.area{fill:url(#appArea);filter:drop-shadow(0 0 10px rgba(117,220,225,.08))}
.app-motion-panel{background:linear-gradient(120deg,#071827,#0d3449 58%,#142b3e);border-color:rgba(117,220,225,.36);box-shadow:0 0 35px rgba(39,155,168,.11),inset 0 1px rgba(255,255,255,.04)}
.app-motion-panel .app-button{background:linear-gradient(110deg,#75dce1,#d9bd82);color:#071522}
.app-footer{color:#718c9d}
.app-auth-wrap{background:radial-gradient(circle at 80% 15%,rgba(46,128,150,.2),transparent 28%),linear-gradient(145deg,#07111f,#0b1c2c)}
.app-auth-card{background:linear-gradient(145deg,#102338,#091a2a);border-color:rgba(117,220,225,.2);box-shadow:0 28px 80px rgba(0,0,0,.4),0 0 35px rgba(117,220,225,.06)}
.app-auth-card h1{color:#f3fafa}.app-auth-card>p{color:#a7bbc8}.app-auth-links{color:#8fe4e2}.app-auth-links a{color:#8fe4e2}
.app-form .app-button{width:100%;max-width:100%;box-sizing:border-box;white-space:normal}
.app-profile-avatar-wrap{color:#9ab1bf}.app-profile-avatar-wrap img{border-color:#10283a;box-shadow:0 0 0 1px rgba(117,220,225,.4),0 0 20px rgba(117,220,225,.12)}
@keyframes nightCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:681px){.app-card:nth-child(2){animation-delay:.06s}.app-card:nth-child(3){animation-delay:.12s}.app-card:nth-child(4){animation-delay:.18s}.app-card:nth-child(5){animation-delay:.22s}}
@media(max-width:980px){.app-sidebar{position:relative;top:auto}.app-shell{padding-top:24px}}
@media(max-width:560px){.app-topbar{background:rgba(5,15,27,.96)}.app-top-actions a,.app-top-actions button{font-size:9px;padding:8px 9px}}
@media(prefers-reduced-motion:reduce){.app-card{animation:none!important}}

/* NEXFIN portal polish — consistent night-luxe UI across client/admin tools. */
.app-topbar{box-shadow:0 10px 35px rgba(0,0,0,.20),inset 0 -1px rgba(117,220,225,.05)}
.app-sidebar,.app-card,.app-auth-card{backdrop-filter:blur(12px)}
.app-card{position:relative;overflow:hidden}
.app-card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(117,220,225,.24),transparent);pointer-events:none}
.app-card h1,.app-card h2,.app-card h3{letter-spacing:-.035em}
.app-card .stat-value{font-variant-numeric:tabular-nums}
.app-nav a{min-height:40px}
.app-nav a:focus-visible,.app-button:focus-visible,.app-top-actions a:focus-visible,.app-top-actions button:focus-visible{outline:2px solid #75dce1;outline-offset:3px}
.app-table tbody tr{transition:background .2s ease}
.app-table tbody tr:hover{background:rgba(117,220,225,.045)}
.app-pill{border:1px solid rgba(117,220,225,.10)}
.app-field input:hover,.app-field select:hover,.app-field textarea:hover{border-color:rgba(117,220,225,.38)}
.app-button{position:relative;overflow:hidden}
.app-button:after{content:"";position:absolute;inset:0;transform:translateX(-130%);background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transition:transform .6s;pointer-events:none}
.app-button:hover:after{transform:translateX(130%)}
.app-auth-card{position:relative;overflow:hidden}
.app-auth-card:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#75dce1,#d9bd82,transparent);opacity:.8}
.app-top-actions a,.app-top-actions button{border-radius:7px}
@media(max-width:680px){.app-sidebar{overflow:hidden}.app-nav{gap:6px}.app-nav a{min-width:0;overflow-wrap:anywhere}.app-topbar{align-items:center}.app-top-actions{flex-wrap:wrap}}
