#dashboard{background:radial-gradient(ellipse at 95% 0,#e4edff,transparent 45%),#f5f7fc}#dashboard .ff-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#071a43,#0f429d 70%,#2866c4);border:1px solid #2e65bc;border-radius:26px;box-shadow:0 16px 35px #14396b24;padding:32px 36px;display:flex;justify-content:space-between;min-height:245px;color:white;margin-bottom:24px}#dashboard .ff-hero:after{content:'';position:absolute;inset:auto -60px -180px auto;width:450px;height:300px;border-radius:50%;background:#4f97ff38;filter:blur(40px);pointer-events:none}#dashboard .eyebrow{color:#a9ceff;font-size:10px;letter-spacing:2px;font-weight:800}#dashboard .ff-hero h2{font-size:32px;line-height:1.15;letter-spacing:-1px;margin:12px 0}#dashboard .ff-hero p{color:#c7d7f1;font-size:12px;margin:0}.ff-hero-copy{position:relative;z-index:1}.ff-hero-stats{display:flex;gap:32px;margin-top:24px}.ff-hero-stats span{display:block;font-size:11px;color:#bfd3f4}.ff-hero-stats strong{display:block;font-size:24px;letter-spacing:-.5px;margin-top:5px}.ff-orbit{width:190px;height:190px;align-self:center;position:relative;display:grid;place-items:center;flex-shrink:0;margin:0 20px}.ff-orbit span{display:grid;place-items:center;width:110px;height:110px;border-radius:30px;transform:rotate(-10deg);background:linear-gradient(135deg,#ffffff30,#ffffff05);border:1px solid #a7ceff75;box-shadow:0 0 45px #5aa1ff55,inset 0 0 25px #d2e7ff15;font-size:65px;font-weight:700;color:#e6f1ff}.ff-orbit i{position:absolute;inset:0;border:1px solid #a3c8ff30;border-radius:50%}.ff-orbit i:nth-child(3){inset:-18px}.ff-orbit i:nth-child(4){inset:20px}.ff-action-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ff-action-heading h3{font-size:15px;margin:0}.ff-action-heading>span{font-size:11px;color:#697386}#dashboard .ff-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}#dashboard .ff-actions .quick-action{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:14px;border-radius:16px;background:white;border:1px solid #e0e8f5;color:#1c3559;font-size:12px;box-shadow:0 5px 12px #17395b05}#dashboard .ff-actions .quick-action span{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#edf3ff;color:#2464cd;font-size:21px;margin:0;flex-shrink:0}#dashboard .ff-actions .primary-action{background:#175bce;color:white;border-color:#175bce}#dashboard .ff-actions .primary-action span{background:#ffffff20;color:white}#dashboard .ff-actions .danger-action span{background:#fff0f1;color:#d44858}#dashboard .dashboard-kpis{gap:14px}#dashboard .kpi{text-align:left;cursor:pointer;position:relative;padding:18px;background:linear-gradient(145deg,#fff,#f9fbff);border:1px solid #dfe7f3;border-radius:20px;box-shadow:0 8px 22px #15326008;transition:transform .18s,box-shadow .18s;min-width:0}#dashboard .kpi:hover{transform:translateY(-3px);box-shadow:0 12px 25px #15326016}#dashboard button:focus-visible{outline:3px solid #4596ff;outline-offset:3px}.ff-kpi-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.ff-kpi-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#eaf1ff;color:#2463c6;font-size:20px;font-weight:700}.ff-kpi-arrow{color:#8299b8;font-size:17px}#dashboard .kpi .label{font-size:11px;font-weight:600;color:#62718a}#dashboard .kpi .value{font-size:25px;letter-spacing:-.8px;color:#102d58;overflow-wrap:anywhere}#dashboard .kpi .hint{font-size:10px;line-height:1.5}#dashboard .kpi-overdue{background:linear-gradient(135deg,#fff,#fff2f3);border-color:#f5dadd}#dashboard .kpi-overdue .ff-kpi-icon{background:#ffe5e9;color:#c8374d}#dashboard .kpi-today .ff-kpi-icon{background:#e1f7ed;color:#087c54}#dashboard .card{border-radius:22px;border-color:#e1e8f3;box-shadow:0 8px 22px #15326006}#dashboard .card-title h3{font-size:15px}#dashboard .card-title p{font-size:11px}.ff-performance{display:flex;gap:20px;align-items:center;margin:22px 0}.ff-rate-ring{width:130px;height:130px;flex-shrink:0;border-radius:50%;padding:10px;background:conic-gradient(#2468da var(--rate),#eaf0fa 0);box-shadow:0 0 25px #2468da12}.ff-rate-ring>div{border-radius:50%;background:white;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.ff-rate-ring strong{font-size:28px;color:#15366b}.ff-rate-ring span{font-size:9px;color:#6c7e97;text-align:center;padding:0 10px}#dashboard .ff-performance .performance-summary{display:grid;grid-template-columns:1fr;gap:9px;margin:0;flex:1}#dashboard .ff-performance .performance-summary>div{padding:0;background:none;border:0}#dashboard .performance-summary span{font-size:10px}#dashboard .performance-summary strong{font-size:16px}#dashboard .progress-track{height:6px}#dashboard .empty{font-size:12px;padding:26px 12px}#dashboard .aging-item{border-radius:13px}#dashboard .trend-chart{margin-top:18px}@media(min-width:1500px){#dashboard{max-width:1500px;margin:auto}}@media(max-width:700px){#dashboard{padding:16px 14px 90px}#dashboard .ff-hero{padding:24px 20px;min-height:0;border-radius:22px;margin-bottom:20px}#dashboard .ff-hero h2{font-size:27px}#dashboard .ff-hero p{max-width:220px;font-size:11px}.ff-orbit{position:absolute;right:-60px;top:12px;opacity:.35;width:165px;height:165px;margin:0}.ff-hero-stats{gap:20px;margin-top:24px}.ff-hero-stats strong{font-size:22px}.ff-hero-stats span{font-size:10px}#dashboard .ff-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:20px}#dashboard .ff-actions .quick-action{padding:11px;font-size:11px;gap:8px}#dashboard .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#dashboard .kpi{padding:14px;border-radius:17px}#dashboard .kpi .value{font-size:22px}.ff-kpi-top{margin-bottom:12px}#dashboard .dashboard-main-grid,#dashboard .dashboard-row{grid-template-columns:1fr;gap:14px}#dashboard .card{padding:16px}.ff-performance{gap:18px}.ff-rate-ring{width:125px;height:125px}#dashboard .card-title{align-items:flex-start}#dashboard .card-title .link{font-size:11px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){#dashboard .kpi{transition:none}}

#dashboard .dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}#dashboard .dashboard-main-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}#dashboard .dashboard-row{grid-template-columns:repeat(2,minmax(0,1fr))}#dashboard .card{min-width:0}#dashboard .ff-kpi-icon{font-family:system-ui}#dashboard .ff-hero h2{max-width:100%}@media(max-width:700px){#dashboard .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#dashboard .dashboard-main-grid,#dashboard .dashboard-row{grid-template-columns:minmax(0,1fr)}#dashboard .ff-hero h2{font-size:25px}}

@media(max-width:700px){#dashboard .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}#dashboard .kpi .value{font-size:20px}#dashboard .kpi .label{font-size:10px}}

#dashboard .ff-hero{min-height:290px;background:radial-gradient(ellipse at 85% 70%,#226cc2 0,transparent 50%),linear-gradient(120deg,#07162f,#12376f);border-bottom:3px solid #ee4057}#dashboard .ff-hero h2{font-size:32px;max-width:420px}.ff-vehicle-scene{position:relative;align-self:center;width:46%;max-width:480px;flex-shrink:0;z-index:1}.ff-vehicle-scene svg{display:block;width:100%;height:auto}.ff-scene-caption{font-size:9px;letter-spacing:3px;color:#a0caff;text-align:right}.ff-scene-tags{display:flex;justify-content:center;gap:12px}.ff-scene-tags span{color:#bed9ff;border:1px solid #6196d34d;border-radius:6px;padding:5px 8px;font-size:8px;letter-spacing:1px}.ff-journey{padding:22px;border-radius:20px;background:linear-gradient(120deg,#fff,#eef4fd);border:1px solid #dce6f6;margin:22px 0;display:flex;align-items:center;gap:26px}.ff-journey-title{width:190px;flex-shrink:0}.ff-journey-title>span{font-size:9px;letter-spacing:1.5px;color:#2463bf;font-weight:800}.ff-journey-title h3{font-size:18px;line-height:1.3;margin:8px 0 0;color:#16355b}.ff-journey-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;flex:1;position:relative}.ff-journey-track:before{content:'';position:absolute;left:25px;right:25px;top:17px;border-top:2px dashed #b5c8e2}.ff-journey-track button{position:relative;border:0;background:none;text-align:left;padding:0;cursor:pointer}.ff-journey-track b{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#163f80;color:#fff;border:3px solid #edf3fc;font-size:10px;margin-bottom:8px}.ff-journey-track button:last-child b{background:#e64155}.ff-journey-track span{display:block;font-size:11px;font-weight:800;color:#193a68}.ff-journey-track small{display:block;font-size:9px;color:#70839e;margin-top:4px}#dashboard .kpi-portfolio{background:linear-gradient(135deg,#123468,#1a559e);border-color:#1c5293}#dashboard .kpi-portfolio .label,#dashboard .kpi-portfolio .hint{color:#c4dbfa}#dashboard .kpi-portfolio .value{color:#fff}#dashboard .kpi-portfolio:after{background:#ffffff0b}#dashboard .kpi-portfolio .ff-kpi-icon{background:#ffffff18;color:#fff}#dashboard .kpi-portfolio .ff-kpi-arrow{color:#b7d7ff}#dashboard .performance-card{border-top:3px solid #266bd0}#dashboard .aging-card{border-top:3px solid #e84b5f}@media(max-width:1000px){.ff-journey{display:block}.ff-journey-title{width:auto;margin-bottom:18px}.ff-journey-title h3{font-size:16px}}@media(max-width:700px){#dashboard .ff-hero{display:block;padding:22px 20px 16px;min-height:0}#dashboard .ff-hero h2{font-size:26px;max-width:none}.ff-vehicle-scene{width:100%;max-width:330px;margin:14px auto 0}.ff-vehicle-scene svg{margin:-8px 0 -8px}.ff-scene-caption{display:none}.ff-scene-tags span{font-size:7px;padding:4px 7px}.ff-hero-stats{margin-top:20px}.ff-journey{padding:18px 14px}.ff-journey-track{gap:5px}.ff-journey-track span{font-size:10px}.ff-journey-track small{font-size:8px;line-height:1.4}.ff-journey-track b{width:32px;height:32px}.ff-journey-track:before{top:15px}}

#dashboard .ff-hero{box-shadow:0 18px 38px #0b2f6d24,inset 0 1px 0 #b9d7ff25}#dashboard .ff-hero:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 58px,#a2c9ff04 59px 60px);pointer-events:none}#dashboard .eyebrow:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#73c7ff;margin-right:8px;box-shadow:0 0 12px #58aaff}#dashboard .ff-hero-stats>div{border-left:2px solid #5198ef;padding-left:12px}#dashboard .ff-hero-stats>div:last-child{border-color:#f16b7b}.ff-kpi-icon svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}#dashboard .kpi:after{content:'';width:95px;height:95px;right:-38px;top:-32px;border:14px solid #d8e6f52e;background:transparent;border-radius:50%}#dashboard .kpi .value{font-variant-numeric:tabular-nums}#dashboard .kpi-due{border-bottom:3px solid #e5ab4a}#dashboard .kpi-today{border-bottom:3px solid #28a579}#dashboard .kpi-overdue{border-bottom:3px solid #df5367}.ff-journey{background:linear-gradient(120deg,#10294e,#173b70);border-color:#204b87;box-shadow:0 10px 25px #112c5012}.ff-journey-title>span{color:#90c1ff}.ff-journey-title h3{color:white}.ff-journey-track:before{top:16px;border-top:3px dashed #9db6d96e}.ff-journey-track b{background:#21548f;border:3px solid #173b70;box-shadow:0 0 0 1px #497aad}.ff-journey-track span{color:#eff5ff}.ff-journey-track small{color:#afc6e4}.ff-journey-track button:hover b{background:#317ac9}.ff-journey-track button:focus-visible{outline:2px solid #94c8ff;outline-offset:5px}#dashboard .card-title{padding-bottom:14px;border-bottom:1px solid #e5edf8;margin-bottom:12px}#dashboard .performance-card .card-title h3:before,#dashboard .aging-card .card-title h3:before{content:'';display:inline-block;width:7px;height:18px;border-radius:3px;background:#2d71da;vertical-align:middle;margin-right:8px}#dashboard .aging-card .card-title h3:before{background:#e34c61}#dashboard .ff-rate-ring{background:conic-gradient(from 225deg,#2974e0 var(--rate),#e7eef9 0);box-shadow:0 5px 20px #2365b915}#dashboard .ff-rate-ring strong{font-variant-numeric:tabular-nums}#dashboard .trend-chart{padding:14px 10px 2px;background:linear-gradient(#eff5ff80,#fff);border-radius:14px}#dashboard .aging-item{border:1px solid #e7edf5;border-left:3px solid #d99835;background:#fffaf0}#dashboard .aging-item:last-child{border-left-color:#de4660;background:#fff3f5}#dashboard .table-wrap{border-radius:12px}#dashboard th{background:#f0f5fc;color:#587496;font-size:10px}#dashboard tbody tr:hover{background:#f7faff}#dashboard .success-empty{background:#effaf6;border:1px dashed #a1d8c2;border-radius:12px;color:#257255}#dashboard .ff-actions .quick-action{box-shadow:0 5px 15px #102d5909}#dashboard .ff-actions .quick-action:hover{border-color:#80adea}#dashboard .ff-actions .quick-action:first-child span{font-size:0}#dashboard .ff-actions .quick-action:first-child span:before{content:'+';font-size:25px;font-weight:500}.ff-theme-footer{text-align:center;color:#7c8da6;font-size:10px;letter-spacing:1px;padding:24px 0 0}.ff-theme-footer b{color:#325a8e;font-weight:700}@media(max-width:700px){#dashboard .ff-hero{padding-bottom:18px}#dashboard .ff-hero h2{font-size:25px;line-height:1.1;margin:12px 0;max-width:280px}#dashboard .ff-hero p{max-width:230px}.ff-vehicle-scene{max-width:245px;margin:0 auto}.ff-vehicle-scene svg{margin:-4px 0 -8px}.ff-scene-tags{display:none}.ff-hero-stats{margin-top:16px;position:relative;z-index:2;gap:18px}.ff-hero-stats strong{font-size:21px}.ff-hero-stats>div{padding-left:8px!important}.ff-journey{margin:18px 0}.ff-journey-title h3{font-size:15px}.ff-journey-track:before{top:15px}}

/* FlashFin vehicle finance palette */
#dashboard{background:radial-gradient(ellipse at 100% 0,#dceaff,transparent 48%),linear-gradient(160deg,#f2f6fd,#eef3fa)}#dashboard .kpi-customers{background:linear-gradient(135deg,#eff5ff,#e4eeff);border-color:#ccdfff}#dashboard .kpi-customers .ff-kpi-icon{background:#cfe1ff;color:#1853a6}#dashboard .kpi-customers .value{color:#164d9d}#dashboard .kpi-loans{background:linear-gradient(135deg,#edf4ff,#dce9fd);border-color:#c7d9f3}#dashboard .kpi-loans .ff-kpi-icon{background:#c7dcfa;color:#17477f}#dashboard .kpi-loans .value{color:#163b70}#dashboard .kpi-due{background:linear-gradient(135deg,#fff9ed,#ffedca);border-color:#f1d8a4}#dashboard .kpi-due .ff-kpi-icon{background:#ffe2a7;color:#946000}#dashboard .kpi-due .value{color:#835300}#dashboard .kpi-due .label,#dashboard .kpi-due .hint{color:#806b46}#dashboard .kpi-today{background:linear-gradient(135deg,#effcf8,#d7f4e9);border-color:#b6e4d2}#dashboard .kpi-today .ff-kpi-icon{background:#bcebd9;color:#006c4a}#dashboard .kpi-today .value{color:#006c4a}#dashboard .kpi-today .label,#dashboard .kpi-today .hint{color:#476f62}#dashboard .kpi-month{background:linear-gradient(135deg,#edfafb,#d8f0f3);border-color:#b6dde4}#dashboard .kpi-month .ff-kpi-icon{background:#bee5eb;color:#056578}#dashboard .kpi-month .value{color:#075e70}#dashboard .kpi-month .label,#dashboard .kpi-month .hint{color:#496f78}#dashboard .kpi-overdue{background:linear-gradient(135deg,#fff3f4,#ffdee4);border-color:#f1bcc7}#dashboard .kpi-overdue .ff-kpi-icon{background:#ffc5d0;color:#b32943}#dashboard .kpi-overdue .value{color:#ad233d}#dashboard .kpi-overdue .label,#dashboard .kpi-overdue .hint{color:#85525e}#dashboard .kpi-rate{background:linear-gradient(135deg,#f2f4ff,#e2e9ff);border-color:#cdd6f7}#dashboard .kpi-rate .ff-kpi-icon{background:#d0dcff;color:#3458b8}#dashboard .kpi-rate .value{color:#3153a7}#dashboard .kpi-portfolio{background:linear-gradient(135deg,#092648,#155c9d);border-color:#1a568c}#dashboard .ff-actions #dashCollect{background:#e7f7f0;border-color:#bce4d1;color:#0a6648}#dashboard .ff-actions #dashCollect span{background:#c4ead9;color:#09704d}#dashboard .ff-actions #dashOverdues{background:#fff0f3;border-color:#f2c9d2;color:#a92943}#dashboard .ff-actions #dashOverdues span{background:#ffd7df;color:#b12843}#dashboard .performance-card{background:linear-gradient(155deg,#fff,#eef8fa);border-top-color:#168499}#dashboard .performance-card .card-title h3:before{background:#168499}#dashboard .aging-card{background:linear-gradient(155deg,#fff,#fff4f3)}#dashboard .ff-rate-ring{background:conic-gradient(from 225deg,#13899d var(--rate),#dcecf1 0)}#dashboard .progress-fill{background:linear-gradient(90deg,#2674da,#148d9f)}#dashboard .ff-actions .primary-action{background:linear-gradient(135deg,#144988,#246ee0)}#dashboard .ff-kpi-arrow{color:#456b96}#dashboard .kpi-overdue .ff-kpi-arrow{color:#a94a5c}#dashboard .kpi-today .ff-kpi-arrow{color:#377d63}#dashboard .kpi-due .ff-kpi-arrow{color:#947437}

.ff-attention{margin:22px 0;padding:20px;background:#fff;border:1px solid #dce6f3;border-radius:20px;box-shadow:0 8px 20px #173b6206}.ff-attention-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.ff-attention-head h3{margin:0;font-size:15px;color:#193c6b}.ff-attention-head>span{font-size:10px;color:#7b8aa0}.ff-attention-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ff-attention-item{display:flex;align-items:center;gap:12px;text-align:left;background:#f2f6fd;border:1px solid #dbe7f6;border-radius:13px;padding:14px;cursor:pointer;min-width:0}.ff-attention-item>b{display:grid;place-items:center;min-width:36px;height:36px;background:#dce9fc;color:#1e568e;border-radius:11px;font-size:16px}.ff-attention-item>span{flex:1;min-width:0}.ff-attention-item strong{display:block;font-size:12px;color:#1d3b63}.ff-attention-item small{display:block;font-size:10px;color:#6b7b92;margin-top:4px;line-height:1.4}.ff-attention-item i{font-style:normal;color:#587499}.ff-attention-item.risk{background:#fff3f5;border-color:#f3d1d8}.ff-attention-item.risk>b{background:#ffdae2;color:#ad2c45}.ff-attention-item.due{background:#fff9ef;border-color:#efdfbe}.ff-attention-item.due>b{background:#ffe9bb;color:#946208}.ff-attention-item.release{background:#eff9f5;border-color:#cfe9de}.ff-attention-item.release>b{background:#d3f0e3;color:#187556}.ff-clear-status{display:flex;gap:12px;align-items:center}.ff-clear-status>b{display:grid;place-items:center;width:36px;height:36px;background:#dbf2e7;border-radius:50%;color:#207655}.ff-clear-status strong{display:block;font-size:12px;color:#1e624b}.ff-clear-status small{display:block;font-size:10px;color:#6d837b;margin-top:5px}@media(max-width:700px){.ff-attention{padding:16px;margin:18px 0}.ff-attention-list{grid-template-columns:1fr}.ff-attention-item{padding:12px}}

.ff-vehicle-scene .ff-car-body{animation:ff-drive-bob 1.6s ease-in-out infinite;transform-origin:280px 180px}.ff-vehicle-scene .ff-wheel{animation:ff-wheel-turn 1.1s linear infinite;transform-box:view-box}.ff-vehicle-scene .ff-wheel-front{transform-origin:166px 203px}.ff-vehicle-scene .ff-wheel-rear{transform-origin:424px 203px}.ff-vehicle-scene .ff-road-dashes{stroke-dasharray:55 35;animation:ff-road-pass .65s linear infinite}.ff-vehicle-scene .ff-wheel-spokes{stroke:#315a82;stroke-width:3;stroke-linecap:round}.ff-vehicle-scene .ff-speed-lines{animation:ff-speed-flow 1.1s ease-in-out infinite;stroke:#94cdff;stroke-width:2;stroke-linecap:round;opacity:.5}@keyframes ff-wheel-turn{to{transform:rotate(360deg)}}@keyframes ff-road-pass{to{stroke-dashoffset:-90}}@keyframes ff-drive-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes ff-speed-flow{0%,100%{opacity:.15;transform:translateX(0)}50%{opacity:.55;transform:translateX(8px)}}@media(prefers-reduced-motion:reduce){.ff-vehicle-scene .ff-car-body,.ff-vehicle-scene .ff-wheel,.ff-vehicle-scene .ff-road-dashes,.ff-vehicle-scene .ff-speed-lines{animation:none}}
