/* Client dashboard (logged-in area) */
.loginwrap{max-width:430px;margin:30px auto}.loginwrap .card{padding:26px;border-radius:var(--r-lg);box-shadow:var(--sh2);animation:fadeUp .6s var(--ease) both}
.loginwrap input{width:100%;padding:13px 14px;font-size:16px;margin-top:4px}.loginwrap label{display:block;font-size:13px;color:var(--mute);margin-top:14px}.loginwrap button.big{width:100%;padding:14px;font-size:16px;margin-top:20px}
.err{color:var(--bad);background:#fde8e6;border-radius:10px;padding:8px 12px;margin-top:12px;font-size:14px}
.pwrow{position:relative}.pwrow button{position:absolute;right:6px;top:8px;background:transparent!important;color:var(--mute)!important;box-shadow:none!important;padding:6px 10px;font-size:13px}
.dashtop{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0}.dashtop img{height:38px}.dashtop .who{display:flex;gap:10px;align-items:center}.dashtop .who span.nm{font:700 14px Manrope;color:var(--navy);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dtabs{display:flex;gap:6px;overflow-x:auto;position:sticky;top:0;z-index:25;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:8px 0;border-bottom:1px solid var(--line)}
.dtab{white-space:nowrap;background:transparent!important;color:var(--mute)!important;box-shadow:none!important;padding:9px 16px;border-radius:999px;font-weight:700}.dtab:hover{color:var(--brand)!important;background:var(--green-soft)!important}.dtab.on{background:linear-gradient(135deg,#4c9226,#5cb62f)!important;color:#fff!important;box-shadow:0 4px 12px rgba(76,146,38,.3)!important}
.bnav{display:none}
.dash .bar{top:58px}
.welcome{border-radius:var(--r-lg);padding:22px;background:linear-gradient(120deg,#fff 35%,#eafce0);border:1px solid #d6efc6;margin-top:16px;animation:fadeUp .6s var(--ease) both}.welcome h1{font-size:26px}
.chipr{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chipr span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;color:var(--navy)}
.alert{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:14px;padding:12px 16px;border-radius:14px;background:#fff7e0;border:1px solid #f3dc9b}.alert.bad{background:#fde8e6;border-color:#f3b3ad}
.cols{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:6px}@media(max-width:900px){.cols{grid-template-columns:1fr}}
.gcard{padding:14px 16px}.gcard .t{color:var(--mute);font-size:13px;font-weight:500}.gcard .v{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font:800 22px Manrope;color:var(--navy)}.gcard .v small{font:500 13px Inter;color:var(--mute)}
.gbar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0 4px}.gbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#4c9226,#7fd451);animation:grow 1.2s var(--ease) both}.gbar i.neg{background:#f4a29c}
.mcard{text-align:center;padding:22px 16px}.mcard .av{width:70px;height:70px;font-size:30px;margin:0 auto 10px;border-radius:20px}.mcard h3{font:800 19px Manrope;color:var(--navy)}
.cta{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:14px}.cta a{text-decoration:none}.cta button{padding:10px 18px}
button.wa{background:linear-gradient(135deg,#1da851,#25d366)!important}
.pl-month{margin-top:26px}.pl-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.pl-head h2{margin:0}
.pl-bar{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin:10px 0 14px}.pl-bar i{display:block;height:100%;background:linear-gradient(90deg,#4c9226,#7fd451);border-radius:99px;animation:grow 1.2s var(--ease) both}
.pl-item{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;background:#fff;transition:.25s var(--ease)}.pl-item:hover{transform:translateX(4px);box-shadow:var(--sh1)}
.pl-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:16px;background:var(--soft)}
.st-Done .pl-dot{background:#d9f3e4}.st-In .pl-dot{background:#fff1d6;animation:pulse 2s infinite}.st-Delayed .pl-dot{background:#fde2e0}.st-Planned .pl-dot{background:#e3efff}
.pill.Planned{background:#e3efff;color:#1e4180}.pill.Delayed{background:#fde2e0;color:#b3261e}.pill.Overdue{background:#fde2e0;color:#b3261e}.pill.Cancelled{background:#eef1f7;color:#6b7793}
.cat{display:inline-block;background:var(--green-soft);color:var(--brand);border-radius:99px;padding:1px 10px;font-size:12px;font-weight:600}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px}.tile{background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:14px;padding:14px;box-shadow:var(--sh1)}.tile b{display:block;font:800 22px Manrope;color:var(--navy)}.tile span{color:var(--mute);font-size:13px}.tile.bad{border-top-color:var(--bad)}.tile.bad b{color:var(--bad)}
.inv-table td,.inv-table th{white-space:nowrap}
.paybox{margin-top:16px;padding:16px;border-radius:14px;background:var(--soft);border:1px dashed #b7c3dc;white-space:pre-line}
@media(max-width:700px){
  .dtabs{display:none}.dash .bar{top:0}
  .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .bnav button{background:transparent!important;color:var(--mute)!important;box-shadow:none!important;border-radius:12px;padding:6px 8px;display:flex;flex-direction:column;align-items:center;gap:1px;font:600 11px Manrope;min-width:56px}.bnav button span{font-size:19px}.bnav button.on{color:var(--brand)!important;background:var(--green-soft)!important}
  #pane{padding-bottom:84px}.top{bottom:80px!important}.welcome h1{font-size:21px}.dashtop .who span.nm{max-width:110px}
  .inv-table{display:none}.inv-cards{display:block!important}
}
.inv-cards{display:none}.inv-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;background:#fff}

/* ===== Animated login-only home ===== */
.lg{position:relative;min-height:100vh;display:flex;flex-direction:column;overflow:hidden;margin:0 -18px;padding:0 18px}
.lg-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 15% 15%,#eafce0 0,transparent 42%),radial-gradient(circle at 90% 85%,#e3efff 0,transparent 45%),#fff}
.lg-bg .mesh{position:absolute;inset:0;background-image:linear-gradient(rgba(10,22,48,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(10,22,48,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 0,transparent 75%);mask-image:radial-gradient(circle at 50% 40%,#000 0,transparent 75%)}
.lg-bg i{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;animation:drift 14s ease-in-out infinite}.lg-bg .b1{width:360px;height:360px;background:#b9eb9a;left:-80px;top:-60px}.lg-bg .b2{width:300px;height:300px;background:#b9d3ff;right:-60px;top:20%;animation-delay:-5s}.lg-bg .b3{width:260px;height:260px;background:#d9f5c5;left:35%;bottom:-90px;animation-delay:-9s}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.12)}66%{transform:translate(-30px,35px) scale(.92)}}
.lg-top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:16px 0;max-width:1180px;margin:0 auto;width:100%}.lg-top img{height:42px}
.lg-main{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;max-width:1180px;margin:0 auto;width:100%;padding:10px 0 40px}
.lg-hero h1{font-size:clamp(32px,4.6vw,56px);line-height:1.1;margin-top:18px;animation:fadeUp .8s var(--ease) both}.lg-hero .lead{color:var(--mute);font-size:18px;max-width:520px;margin:16px 0 0;animation:fadeUp .8s .12s var(--ease) both}
.lg-hero .tag{animation:fadeUp .6s var(--ease) both}
.rot{display:inline-block;position:relative;height:1.15em;min-width:4.6em;vertical-align:bottom;overflow:hidden}.rot b{position:absolute;left:0;top:0;color:var(--green);opacity:0;transform:translateY(100%);animation:rotw 12s infinite}.rot b:nth-child(2){animation-delay:3s}.rot b:nth-child(3){animation-delay:6s}.rot b:nth-child(4){animation-delay:9s}
@keyframes rotw{0%{opacity:0;transform:translateY(100%)}5%,22%{opacity:1;transform:none}27%,100%{opacity:0;transform:translateY(-100%)}}
.lg-art{position:relative;max-width:520px;margin-top:30px;animation:fadeUp .9s .25s var(--ease) both}.lg-chart{width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(76,146,38,.18))}
.lg-chart .gridl path{stroke:rgba(10,22,48,.08);stroke-width:1;stroke-dasharray:4 6;fill:none}
.lg-chart .line{stroke-dasharray:700;stroke-dashoffset:700;animation:draw 2.6s .5s var(--ease) forwards}.lg-chart .area{opacity:0;animation:fadeIn 1.4s 1.6s forwards}.lg-chart .dot{opacity:0;animation:fadeIn .4s 3s forwards}.lg-chart .ring{opacity:0;transform-origin:418px 16px;animation:ringp 2s 3s infinite}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes fadeIn{to{opacity:1}}@keyframes ringp{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.fl{position:absolute;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 14px;font:700 13px Manrope;color:var(--navy);box-shadow:var(--sh2);animation:floaty 6s ease-in-out infinite;white-space:nowrap}.fl b{color:var(--green)}
.f1{left:4%;top:-6%}.f2{right:2%;top:14%;animation-delay:-2s}.f3{left:12%;bottom:6%;animation-delay:-4s}.f4{right:10%;bottom:-8%;animation-delay:-1s}
.lg-card{animation:fadeUp .9s .15s var(--ease) both}.lg-card .card{padding:30px;border-radius:26px;background:#fff;box-shadow:0 30px 70px rgba(10,22,48,.14);border:0;position:relative}
.lg-card .card::before{content:"";position:absolute;inset:-3px;border-radius:29px;z-index:-1;background:linear-gradient(120deg,#5cb62f,#0ea5e9,#5cb62f);background-size:200% 200%;animation:gshift 6s linear infinite;opacity:.55;filter:blur(1px)}
@keyframes gshift{to{background-position:200% 0}}
.lg-card h2{font-size:28px;margin:4px 0 2px}.lg-wave{font-size:34px;display:inline-block;transform-origin:70% 70%;animation:wave 2.4s 1s infinite}@keyframes wave{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}
.lg-card label{display:block;font-size:13px;color:var(--mute);margin-top:14px}.lg-card input{width:100%;padding:13px 14px;font-size:16px;margin-top:4px}.lg-card button.big{width:100%;padding:14px;font-size:16px;margin-top:20px}
.lg-marq{position:relative;z-index:2;overflow:hidden;border-top:1px solid var(--line);background:rgba(255,255,255,.7);padding:12px 0;margin:0 -18px}.lg-marq div{display:flex;gap:26px;width:max-content;animation:marq 38s linear infinite;font:700 14px Manrope;color:var(--navy)}.lg-marq i{color:var(--green);font-style:normal}
@keyframes marq{to{transform:translateX(-50%)}}
@media(max-width:900px){.lg-main{grid-template-columns:1fr;gap:18px}.lg-hero .lead{font-size:16px}.lg-art{max-width:100%}}
@media(max-width:600px){.lg-art,.lg-hero .lead{display:none}.lg-hero h1{font-size:30px;margin-top:10px}.lg-card .card{padding:22px;border-radius:22px}.lg-top img{height:34px}}
@media(prefers-reduced-motion:reduce){.lg-chart .line{stroke-dashoffset:0}.lg-chart .area,.lg-chart .dot{opacity:1}.rot b:first-child{opacity:1;transform:none}}
.pl-sum{margin:0 0 12px;background:var(--green-soft);border-color:#cdeebb}
