/*
Theme Name: Money CRM
Theme URI: https://zyrodigital.in
Author: Zyro Digital
Description: Animated money handling CRM with custom admin and staff login.
Version: 1.1
Text Domain: money-crm
*/
:root{--bg:#070c1a;--s1:#0f1730;--s2:#151f3d;--bd:#243055;--tx:#eaf0ff;--mu:#8d9bc4;--em:#2ee59d;--gd:#f5c451;--rd:#ff6b7a;--bl:#5aa9ff;--r:14px}
*{box-sizing:border-box}html{scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.55 "Plus Jakarta Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
.mu{color:var(--mu);font-size:13px}.i{color:var(--em)}.e{color:var(--rd)}.c{color:var(--bl)}.d{color:var(--gd)}
/* login */
.lg{min-height:100vh;display:grid;place-items:center;padding:20px;position:relative;overflow:hidden}
.aur{position:absolute;inset:-20%;background:radial-gradient(40% 40% at 20% 30%,#1b8f68aa,transparent 70%),radial-gradient(35% 35% at 80% 20%,#3b5bdbaa,transparent 70%),radial-gradient(40% 40% at 60% 85%,#c9971caa,transparent 70%);filter:blur(40px);animation:aur 16s ease-in-out infinite alternate}
@keyframes aur{to{transform:translate3d(4%,-3%,0) rotate(8deg) scale(1.15)}}
.coins i{position:absolute;bottom:-60px;left:var(--x);font-style:normal;font-size:26px;color:var(--gd);opacity:0;animation:fl var(--d) linear var(--s) infinite}
@keyframes fl{10%{opacity:.5}100%{transform:translateY(-110vh) rotate(360deg);opacity:0}}
.lc{position:relative;width:100%;max-width:400px;background:#0f1730cc;backdrop-filter:blur(18px);border:1px solid #ffffff1f;border-radius:22px;padding:32px 28px;box-shadow:0 30px 80px #000a;animation:pop .7s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.94)}}
.lc h1{margin:14px 0 2px;font-size:26px}.lc p{margin:0 0 20px;color:var(--mu)}
.logo{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:30px;font-weight:800;color:#06150e;background:linear-gradient(135deg,var(--em),var(--gd));animation:glow 3s ease-in-out infinite}
.logo.s{width:36px;height:36px;font-size:19px;border-radius:10px;animation:none}
@keyframes glow{50%{box-shadow:0 0 34px #2ee59d88}}
.lc label,.fm label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--mu);margin-bottom:14px}
input,select,textarea{color:var(--tx);background:#0a1126;border:1px solid var(--bd);border-radius:10px;padding:10px 12px;min-width:0;width:100%;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--em);box-shadow:0 0 0 3px #2ee59d33}
.pw{position:relative;display:block}.pw input{padding-right:44px}.eye{position:absolute;right:4px;top:3px;background:none;border:0;color:var(--mu);font-size:17px;padding:8px;cursor:pointer;width:auto}
.btn,button.g,button.x{cursor:pointer;border-radius:10px;border:1px solid var(--em);padding:10px 16px;transition:transform .15s,box-shadow .2s,background .2s}
.btn{background:linear-gradient(135deg,var(--em),#18b97c);color:#04130c;font-weight:700;width:100%;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px #2ee59d44}.btn:active{transform:scale(.97)}
.btn.ld span{opacity:.4}.btn.ld::after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;border:3px solid #04130c55;border-top-color:#04130c;border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.btn.fit{width:auto}
button.g{background:transparent;color:var(--em)}button.g:hover{background:#2ee59d1a}
button.x{padding:2px 9px;border-color:var(--bd);background:none;color:var(--rd);width:auto}
.err{min-height:20px;color:var(--rd);font-size:13px;margin-top:10px;text-align:center}.shake{animation:sh .4s}
@keyframes sh{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
button:focus-visible,a:focus-visible{outline:2px solid var(--gd);outline-offset:2px}
/* app */
.hd{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#070c1acc;backdrop-filter:blur(14px);border-bottom:1px solid var(--bd);animation:dn .5s both}
@keyframes dn{from{transform:translateY(-100%)}}
.br{display:flex;align-items:center;gap:10px}.us{display:flex;align-items:center;gap:12px;font-size:13px}.us em{font-style:normal;background:#2ee59d22;color:var(--em);border-radius:20px;padding:1px 9px;margin-left:4px;font-size:11px}
.wrap{max-width:1080px;margin:0 auto;padding:14px 14px 40px}
.top{position:sticky;top:57px;z-index:25;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0 0 12px;padding:12px 16px;border-radius:var(--r);background:linear-gradient(120deg,#0f6b4f,#14405f);box-shadow:0 10px 30px #0008}
.top span{display:block;font-size:11px;opacity:.8}.top b{font-size:19px}
nav{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;margin-bottom:6px}
nav button{white-space:nowrap;background:var(--s1);color:var(--mu);border:1px solid var(--bd);border-radius:30px;padding:8px 16px;cursor:pointer;transition:all .25s}
nav button:hover{color:var(--tx);transform:translateY(-1px)}nav button.on{background:var(--em);color:#04130c;border-color:var(--em);font-weight:700;box-shadow:0 6px 18px #2ee59d44}
.card{background:linear-gradient(160deg,var(--s2),var(--s1));border:1px solid var(--bd);border-radius:var(--r);padding:16px;margin:12px 0;animation:rise .55s cubic-bezier(.2,.8,.2,1) both}
main>.card:nth-child(2){animation-delay:.07s}main>.card:nth-child(3){animation-delay:.14s}main>.card:nth-child(4){animation-delay:.21s}main>.card:nth-child(5){animation-delay:.28s}main>.card:nth-child(n+6){animation-delay:.32s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
h2{font-size:15px;margin:16px 0 8px}.card>h2:first-child{margin-top:0}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>label{flex:1 1 150px;margin:0}
.fm label{margin-bottom:0}
.kp{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.kp>div{background:#0a1126;border:1px solid var(--bd);border-left:4px solid var(--bd);border-radius:12px;padding:10px 12px;transition:transform .2s,border-color .2s}
.kp>div:hover{transform:translateY(-3px)}.kp b{display:block;font-size:21px}
.kp .i{border-left-color:var(--em)}.kp .e{border-left-color:var(--rd)}.kp .c{border-left-color:var(--bl)}.kp .a{border-left-color:var(--gd)}
.kp .i,.kp .e,.kp .c,.kp .a{color:inherit}
.den{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;margin-top:6px}
.sc{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px solid var(--bd);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}th{color:var(--mu);font-size:12px;font-weight:600}tr:hover td{background:#ffffff08}
.hb{display:grid;grid-template-columns:minmax(90px,150px) 1fr 84px;gap:10px;align-items:center;margin:6px 0;font-size:13px}
.hb i{height:10px;border-radius:6px;background:linear-gradient(90deg,var(--em),var(--bl));transform-origin:left;animation:gx 1s cubic-bezier(.2,.8,.2,1) both}.hb i.e{background:linear-gradient(90deg,var(--rd),var(--gd))}
@keyframes gx{from{transform:scaleX(0)}}.hb b{text-align:right}
.ch{display:grid;grid-template-columns:repeat(14,1fr);gap:5px}.bb{height:130px;display:flex;align-items:flex-end;gap:2px}
.bb i{flex:1;min-height:3px;border-radius:4px 4px 0 0;background:var(--em);transform-origin:bottom;animation:gy .9s cubic-bezier(.2,.8,.2,1) both}.bb i.e{background:var(--rd)}
@keyframes gy{from{transform:scaleY(0)}}.ch small{display:block;text-align:center;color:var(--mu);font-size:10px;margin-top:3px}
.big{font-size:38px;font-weight:800}.ok{color:var(--em)}.bad{color:var(--rd)}.hide{display:none}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120px);background:var(--em);color:#04130c;font-weight:700;padding:11px 20px;border-radius:30px;box-shadow:0 10px 30px #0009;transition:transform .4s cubic-bezier(.2,1.2,.3,1);z-index:50}
#toast.on{transform:translate(-50%,0)}#toast.bad{background:var(--rd);color:#fff}
@media(max-width:600px){.hb{grid-template-columns:90px 1fr 70px}.us span{display:none}.big{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.hd,nav,.top,button{display:none!important}body{background:#fff;color:#000}.card{border:1px solid #999;background:#fff}}
/* balance given block */
.bgs{margin-top:16px;padding:14px;border:1px dashed var(--gd);border-radius:12px;background:#f5c4510d}.bgs h2{margin-top:0;color:var(--gd)}.bgs label{margin-bottom:0}
.kp .d{border-left-color:var(--gd);color:inherit}
