/* property-management-software mini illustrations (pm-*) */
.pm-net,.pm-lease,.pm-rent,.pm-belt,.pm-mtr,.pm-pt{position:relative;color:#0F172A;font-size:11.5px;font-weight:600;line-height:1.2}
.pm-net b,.pm-lease b,.pm-rent b,.pm-belt b,.pm-mtr b,.pm-pt b{font-weight:600}
/* 1 network */
.pm-net{width:260px;height:110px}
.pm-net svg{position:absolute;inset:0}
.pm-l{fill:none;stroke:#D6D0C2;stroke-width:1.5;stroke-dasharray:3 4}
.pm-pl{fill:none;stroke:var(--sx-a);stroke-width:3;stroke-linecap:round;stroke-dasharray:9 100;opacity:0;animation:pmk-pulse 4.2s cubic-bezier(.45,0,.3,1) infinite}
.pm-p2{animation-delay:.9s}.pm-p3{animation-delay:1.9s}
.pm-n{position:absolute;display:flex;align-items:center;gap:6px;height:30px;padding:0 9px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #E7E2D8,0 4px 10px -6px rgba(15,23,42,.25);white-space:nowrap}
.pm-n::after{content:"";position:absolute;inset:-3px;border:2px solid var(--sx-a2);border-radius:13px;opacity:0;animation:pmk-ring 4.2s ease-out infinite}
.pm-n1{left:8px;top:40px;width:92px}.pm-n2{left:160px;top:6px;width:94px}.pm-n3{left:160px;top:74px;width:94px}
.pm-n2::after{animation-delay:.8s}.pm-n3::after{animation-delay:1.8s}
.pm-n u{width:12px;height:12px;border-radius:4px;flex:none}
.pm-i1{background:var(--sx-a)}.pm-i2{background:var(--sx-b)}.pm-i3{background:#0F172A}
@keyframes pmk-pulse{0%{stroke-dashoffset:9;opacity:0}6%{opacity:1}42%{stroke-dashoffset:-100;opacity:1}50%,100%{stroke-dashoffset:-100;opacity:0}}
@keyframes pmk-ring{0%{opacity:0;transform:scale(.94)}8%{opacity:1;transform:scale(1)}32%,100%{opacity:0;transform:scale(1.1)}}
/* 2 lease + stamp */
.pm-lease{width:200px;height:116px}
.pm-doc{position:absolute;left:12px;top:2px;width:150px;height:112px;padding:10px 12px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #E7E2D8,0 8px 18px -10px rgba(15,23,42,.3)}
.pm-dt{display:block;font-size:11.5px;margin-bottom:7px}
.pm-ln{display:block;height:4px;border-radius:2px;background:#EDE9DF;margin-bottom:5px}
.pm-w1{width:100%}.pm-w2{width:82%}.pm-w3{width:62%}
.pm-sg{position:absolute;left:12px;bottom:6px;font-size:10px;color:#64748B}
.pm-doc svg{position:absolute;left:10px;bottom:17px;overflow:visible}
.pm-sig{fill:none;stroke:var(--sx-a);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:0;animation:pmk-sign 5.6s ease-in-out infinite}
.pm-sl{position:absolute;left:12px;right:12px;bottom:19px;height:1px;background:#D6D0C2}
.pm-stamp{position:absolute;right:0;bottom:16px;padding:4px 9px;border:2px solid #166534;border-radius:7px;color:#166534;background:rgba(220,252,231,.92);font-size:11.5px;font-weight:700;letter-spacing:.08em;transform:rotate(-10deg);animation:pmk-stamp 5.6s cubic-bezier(.3,0,.2,1) infinite}
@keyframes pmk-sign{0%,6%{stroke-dashoffset:100;opacity:1}44%,92%{stroke-dashoffset:0;opacity:1}98%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes pmk-stamp{0%,50%{opacity:0;transform:translateY(-34px) rotate(-10deg) scale(1.8)}55%{opacity:1;transform:translateY(0) rotate(-10deg) scale(.9)}59%{transform:translateY(-4px) rotate(-10deg) scale(1.04)}63%,90%{opacity:1;transform:translateY(0) rotate(-10deg) scale(1)}97%,100%{opacity:0;transform:translateY(0) rotate(-10deg) scale(1)}}
/* 3 rent odometer */
.pm-rent{width:190px;padding:10px 14px 12px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px #E7E2D8,0 8px 18px -10px rgba(15,23,42,.3)}
.pm-rh{display:flex;justify-content:space-between;font-size:10.5px;color:#64748B}
.pm-rh em{font-style:normal}
.pm-od{display:flex;align-items:center;justify-content:center;height:34px;margin:4px 0 6px;font-size:26px;font-weight:700;color:#0F172A}
.pm-od s{text-decoration:none;margin:0 1px}
.pm-dg{height:30px;width:17px;overflow:hidden}
.pm-dg div{display:block;transform:translateY(calc(var(--d)*-30px));animation:pmk-roll 5.8s cubic-bezier(.2,.8,.2,1) infinite}
.pm-dg i{display:block;height:30px;line-height:30px;font-style:normal;text-align:center}
.pm-dg:nth-of-type(2) div{animation-delay:.12s}.pm-dg:nth-of-type(3) div{animation-delay:.24s}.pm-dg:nth-of-type(4) div{animation-delay:.36s}
.pm-st{display:grid;justify-items:center}
.pm-st span{grid-area:1/1;padding:3px 10px;border-radius:99px;font-size:10.5px}
.pm-s1{background:#FEF3C7;color:#92400E;opacity:0;animation:pmk-s1 5.8s ease-in-out infinite}
.pm-s2{background:#DCFCE7;color:#166534;animation:pmk-s2 5.8s ease-in-out infinite}
@keyframes pmk-roll{0%,4%{transform:translateY(0);opacity:1}38%,88%{transform:translateY(calc(var(--d)*-30px));opacity:1}94%{transform:translateY(calc(var(--d)*-30px));opacity:0}94.1%{transform:translateY(0);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes pmk-s1{0%,4%{opacity:1;transform:translateY(0)}38%,44%{opacity:1}50%,100%{opacity:0;transform:translateY(-4px)}}
@keyframes pmk-s2{0%,44%{opacity:0;transform:translateY(5px)}52%,88%{opacity:1;transform:translateY(0)}94%,100%{opacity:0}}
/* 4 conveyor */
.pm-belt{width:280px;height:112px;overflow:hidden}
.pm-vn{position:absolute;left:50%;top:4px;margin-left:-52px;width:104px;height:26px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;background:var(--sx-a);color:#fff;animation:pmk-vend 6s ease-in-out infinite}
.pm-vn u{width:9px;height:9px;border-radius:50%;background:var(--sx-a2)}
.pm-tread{position:absolute;left:0;right:0;bottom:12px;height:8px;border-radius:4px;background:repeating-linear-gradient(90deg,#CFC9BA 0 15px,#E4DFD2 15px 31px);background-size:31px 100%;animation:pmk-tread 2.6s linear infinite}
.pm-tk{position:absolute;left:0;bottom:24px;width:78px;height:40px;padding:6px 8px;border-radius:9px;background:#fff;box-shadow:0 0 0 1px #E7E2D8,0 5px 10px -6px rgba(15,23,42,.3);display:grid;grid-template-columns:auto;align-content:center;gap:3px;transform:translateX(var(--x));animation:pmk-belt 6s linear infinite}
.pm-k1{--x:-6px}.pm-k2{--x:100px;animation-delay:-2s}.pm-k3{--x:202px;animation-delay:-4s}
.pm-tk u{position:absolute;right:8px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--sx-b);animation:pmk-dot 6s linear infinite}
.pm-k2 u,.pm-k2 .pm-sd{animation-delay:-2s}.pm-k3 u,.pm-k3 .pm-sd{animation-delay:-4s}
.pm-tk b{font-size:11.5px}
.pm-tk span{grid-area:3/1;font-size:10px;padding:1px 6px;border-radius:99px;justify-self:start}
.pm-tk b{grid-area:1/1}
.pm-so{background:#FEF3C7;color:#92400E}
.pm-sd{background:#DCFCE7;color:#166534;animation:pmk-done 6s linear infinite}
.pm-tk .pm-so{animation:pmk-open 6s linear infinite}.pm-k2 .pm-so{animation-delay:-2s}.pm-k3 .pm-so{animation-delay:-4s}
@keyframes pmk-belt{from{transform:translateX(-90px)}to{transform:translateX(290px)}}
@keyframes pmk-tread{to{background-position:155px 0}}
@keyframes pmk-open{0%,46%{opacity:1}52%,100%{opacity:0}}
@keyframes pmk-done{0%,46%{opacity:0}52%,100%{opacity:1}}
@keyframes pmk-dot{0%,46%{background:var(--sx-b)}52%,100%{background:#22C55E}}
@keyframes pmk-vend{0%,10%,24%,43%,57%,77%,90%,100%{transform:scale(1)}17%,50%,83%{transform:scale(1.07)}}
/* 5 meter scan */
.pm-mtr{width:172px;padding:9px 12px 10px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px #E7E2D8,0 8px 18px -10px rgba(15,23,42,.3)}
.pm-mh{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:#64748B}
.pm-mc{display:grid;justify-items:end}
.pm-mc b{grid-area:1/1;padding:2px 8px;border-radius:99px;font-size:10px}
.pm-c1{background:#CCFBF1;color:#0F766E;animation:pmk-c1 7s ease-in-out infinite}
.pm-c2{background:#FEF3C7;color:#92400E;opacity:0;animation:pmk-c2 7s ease-in-out infinite}
.pm-scr{position:relative;overflow:hidden;height:40px;margin:7px 0 5px;border-radius:8px;background:#0F172A;display:grid;place-items:center;font-size:19px;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.pm-scr span{grid-area:1/1;font-weight:700}
.pm-ph{color:#334155}
.pm-rd{color:var(--sx-a2)}
.pm-ra{clip-path:inset(0 0 0 0);animation:pmk-ra 7s linear infinite}
.pm-rb{color:#FCD34D;opacity:0;clip-path:inset(0 100% 0 0);animation:pmk-rb 7s linear infinite}
.pm-sc{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--sx-a2);box-shadow:0 0 10px 3px rgba(94,234,212,.55);opacity:0;animation:pmk-sc 7s linear infinite}
.pm-kw{text-align:center;font-size:10px;color:#64748B}
@keyframes pmk-sc{0%,6%{opacity:0;transform:translateX(0)}8%{opacity:1;transform:translateX(0)}32%{opacity:1;transform:translateX(148px)}34%{opacity:0;transform:translateX(148px)}56%{opacity:0;transform:translateX(148px)}58%{opacity:1;transform:translateX(148px)}82%{opacity:1;transform:translateX(0)}84%,100%{opacity:0;transform:translateX(0)}}
@keyframes pmk-ra{0%,8%{opacity:1;clip-path:inset(0 100% 0 0)}32%{clip-path:inset(0 0 0 0);opacity:1}46%{opacity:1}52%,100%{opacity:0;clip-path:inset(0 0 0 0)}}
@keyframes pmk-rb{0%,58%{opacity:0;clip-path:inset(0 0 0 100%)}58.1%{opacity:1;clip-path:inset(0 0 0 100%)}82%{opacity:1;clip-path:inset(0 0 0 0)}94%{opacity:1}99%,100%{opacity:0;clip-path:inset(0 0 0 0)}}
@keyframes pmk-c1{0%,46%{opacity:1}52%,94%{opacity:0}100%{opacity:1}}
@keyframes pmk-c2{0%,46%{opacity:0}52%,92%{opacity:1}98%,100%{opacity:0}}
/* 6 scoped portal */
.pm-pt{display:grid;justify-items:center;gap:8px}
.pm-gr{display:grid;grid-template-columns:repeat(3,60px);gap:8px}
.pm-t{position:relative;height:40px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #E7E2D8;display:grid;place-content:center;justify-items:center;gap:1px}
.pm-t span{font-size:10px;color:#64748B}
.pm-me{box-shadow:0 0 0 1.5px var(--sx-a),0 6px 12px -8px rgba(15,118,110,.6)}
.pm-me b{font-size:11px}
.pm-me::after{content:"";position:absolute;inset:-2px;border:2px solid var(--sx-a2);border-radius:12px;opacity:0;animation:pmk-sonar 3.4s ease-out infinite}
.pm-m2::after{animation-delay:1.1s}
.pm-ot{opacity:.4;background:#F3F0E8;animation:pmk-dim 3.4s ease-in-out infinite}
.pm-ot:nth-child(3){animation-delay:.5s}.pm-ot:nth-child(4){animation-delay:1s}.pm-ot:nth-child(6){animation-delay:1.5s}
.pm-ot svg{fill:none;stroke:#94A3B8;stroke-width:1.5}
.pm-tag{padding:3px 10px;border-radius:99px;background:#CCFBF1;color:#0F766E;font-size:10.5px}
@keyframes pmk-sonar{0%{opacity:0;transform:scale(1)}12%{opacity:.9}70%,100%{opacity:0;transform:scale(1.28,1.45)}}
@keyframes pmk-dim{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.18;transform:scale(.94)}}
@media (prefers-reduced-motion:reduce){
.pm-pl,.pm-n::after,.pm-sig,.pm-stamp,.pm-dg div,.pm-s1,.pm-s2,.pm-vn,.pm-tread,.pm-tk,.pm-tk u,.pm-tk .pm-so,.pm-sd,.pm-c1,.pm-c2,.pm-ra,.pm-rb,.pm-sc,.pm-me::after,.pm-ot{animation:none!important}
.pm-tk u{background:#22C55E}.pm-tk .pm-so{opacity:0}.pm-tk .pm-sd{opacity:1}
}
