import{_ as ce}from"./8DBoKuB3.js";import{e as se,B as O,c as d,a as e,t as s,y as X,C as J,F as I,r as Q,k as C,j as U,l as _,m,o as u,s as pe,g as ve,z as he,b as ee,d as Y,D as fe,h as xe,w as te}from"./BsgqXOrB.js";const ge={class:"bg-slate-800 rounded-xl border border-slate-700 p-5"},_e={class:"flex items-center justify-between mb-4"},me={class:"text-sm font-semibold text-white"},be={class:"text-xs text-slate-400 mt-0.5"},ye={value:"7"},we={value:"14"},ke={value:"30"},$e={value:"90"},Ce={key:0,class:"flex items-center justify-center py-12"},Me={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},Be={class:"text-slate-500 text-xs"},je={key:2,class:"relative"},De=["viewBox"],Ue=["x1","y1","x2","y2"],ze=["x","y"],Te=["onMouseenter"],Ae=["x","y","width","height","fill","opacity"],Ve={key:0},Le=["x","y","width"],He=["x","y"],Fe=["x","y"],Se={class:"flex items-center justify-between mt-4 pt-3 border-t border-slate-700/50"},We={class:"flex items-center gap-4 text-xs"},Pe={class:"flex items-center gap-1.5"},Ee={class:"text-slate-400"},Ne={class:"text-slate-400"},Re={class:"text-white font-semibold ml-1"},Ie={class:"text-slate-400"},Ye={class:"text-white font-semibold ml-1"},Oe={key:0,class:"flex items-center gap-1 text-xs"},Xe={key:0,class:"w-3.5 h-3.5 text-emerald-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Qe={key:1,class:"w-3.5 h-3.5 text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},qe={class:"text-slate-500"},F=800,G=220,Ge=se({__name:"UserTrendChart",props:{data:{},loading:{type:Boolean}},setup(K){const S=K,$=_("30"),z=_(null),p={top:10,right:16,bottom:30,left:36},h=m(()=>{const o=parseInt($.value,10);if(!S.data||S.data.length===0)return[];const a=[...S.data].sort((r,c)=>new Date(r.date).getTime()-new Date(c.date).getTime()),n=new Date;return n.setDate(n.getDate()-o),a.filter(r=>new Date(r.date)>=n)}),b=m(()=>h.value.length===0?1:Math.max(...h.value.map(o=>o.count),1)),y=G-p.top-p.bottom,k=m(()=>{const o=[];for(let a=0;a<=4;a++)o.push(p.top+y/4*a);return o}),x=m(()=>{const o=[];for(let a=0;a<=4;a++){const n=p.top+y/4*a,r=Math.round(b.value-b.value/4*a);o.push({y:n,text:r.toString()})}return o}),g=m(()=>{const o=h.value.length;if(o===0)return 0;const a=F-p.left-p.right,n=32,r=a/o*.7;return Math.min(r,n)}),M=m(()=>{const o=h.value.length;if(o===0)return[];const a=F-p.left-p.right,n=o>1?(a-g.value*o)/(o-1):0;return h.value.map((r,c)=>{const v=p.left+c*(g.value+n),P=b.value>0?r.count/b.value*y:0,A=G-p.bottom-P,V=b.value>0?r.count/b.value:0;let L;V>.8?L="#6366f1":V>.5?L="#818cf8":V>.3?L="#a5b4fc":L="#c7d2fe";const q=`${r.count} ${T(r.date)}`,E=q.length*7+16;let H=v+g.value/2-E/2;H
F-p.right&&(H=F-p.right-E);const Z=A-4;return{x:v,y:A,height:P,color:L,tooltipX:H,tooltipY:Z,tooltipWidth:E,tooltipText:q}})}),B=m(()=>{const o=h.value.length;if(o===0)return[];const a=F-p.left-p.right,n=o>1?(a-g.value*o)/(o-1):0;let r=1;return o>14&&(r=2),o>30&&(r=5),o>60&&(r=10),h.value.map((c,v)=>{const P=p.left+v*(g.value+n),A=new Date(c.date),V=`${A.getMonth()+1}/${A.getDate()}`;return{x:P,label:V,idx:v}}).filter((c,v)=>v%r===0||v===o-1)}),j=m(()=>{if(h.value.length===0)return 0;const o=h.value.reduce((a,n)=>a+n.count,0);return Math.round(o/h.value.length)}),D=m(()=>h.value.reduce((o,a)=>o+a.count,0)),w=m(()=>{const o=h.value;if(o.length<4)return"stable";const a=Math.floor(o.length/2),n=o.slice(0,a).reduce((c,v)=>c+v.count,0)/a,r=o.slice(a).reduce((c,v)=>c+v.count,0)/(o.length-a);return r>n*1.05?"up":r{const o=h.value;if(o.length<4)return 0;const a=Math.floor(o.length/2),n=o.slice(0,a).reduce((c,v)=>c+v.count,0)/a;if(n===0)return 100;const r=o.slice(a).reduce((c,v)=>c+v.count,0)/(o.length-a);return Math.round(Math.abs((r-n)/n)*100)});function T(o){try{const a=new Date(o);return`${a.getMonth()+1}/${a.getDate()}`}catch{return o}}function W(){z.value=null}return O(()=>S.data,()=>{W()}),(o,a)=>(u(),d("div",ge,[e("div",_e,[e("div",null,[e("h3",me,s(o.$t("users.trend_title")),1),e("p",be,s(o.$t("users.trend_subtitle")),1)]),X(e("select",{"onUpdate:modelValue":a[0]||(a[0]=n=>$.value=n),class:"px-2.5 py-1.5 text-xs bg-slate-700 border border-slate-600 rounded-lg text-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 transition",onChange:W},[e("option",ye,s(o.$t("users.trend_7d")),1),e("option",we,s(o.$t("users.trend_14d")),1),e("option",ke,s(o.$t("users.trend_30d")),1),e("option",$e,s(o.$t("users.trend_90d")),1)],544),[[J,$.value]])]),K.loading?(u(),d("div",Ce,[...a[2]||(a[2]=[e("svg",{class:"w-6 h-6 text-indigo-400 animate-spin",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)])])):h.value.length===0?(u(),d("div",Me,[a[3]||(a[3]=e("svg",{class:"w-10 h-10 text-slate-600 mb-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})],-1)),e("p",Be,s(o.$t("users.trend_no_data")),1)])):(u(),d("div",je,[(u(),d("svg",{viewBox:`0 0 ${F} ${G}`,class:"w-full h-auto overflow-visible",preserveAspectRatio:"xMidYMid meet"},[(u(!0),d(I,null,Q(k.value,(n,r)=>(u(),d("line",{key:"grid-"+r,x1:p.left,y1:n,x2:F-p.right,y2:n,stroke:"currentColor",class:"text-slate-700/50","stroke-width":"1","stroke-dasharray":"4,4"},null,8,Ue))),128)),(u(!0),d(I,null,Q(x.value,(n,r)=>(u(),d("text",{key:"ylabel-"+r,x:p.left-8,y:n.y+4,"text-anchor":"end",class:"fill-slate-500","font-size":"10"},s(n.text),9,ze))),128)),(u(!0),d(I,null,Q(M.value,(n,r)=>(u(),d("g",{key:"bar-"+r,class:"chart-bar-group",onMouseenter:c=>z.value=r,onMouseleave:a[1]||(a[1]=c=>z.value=null)},[e("rect",{x:n.x,y:n.y,width:g.value,height:n.height,rx:3,ry:3,fill:n.color,opacity:z.value===r?.9:.7,class:"transition-all duration-200 cursor-pointer"},null,8,Ae),z.value===r?(u(),d("g",Ve,[e("rect",{x:n.tooltipX,y:n.tooltipY-28,width:n.tooltipWidth,height:"22",rx:"4",fill:"#1e293b",stroke:"#475569","stroke-width":"1"},null,8,Le),e("text",{x:n.tooltipX+n.tooltipWidth/2,y:n.tooltipY-13,"text-anchor":"middle",fill:"#e2e8f0","font-size":"11","font-weight":"600"},s(n.tooltipText),9,He)])):U("",!0)],40,Te))),128)),(u(!0),d(I,null,Q(B.value,(n,r)=>(u(),d("text",{key:"xlabel-"+r,x:n.x+g.value/2,y:G-p.bottom+16,"text-anchor":"middle",class:"fill-slate-500","font-size":"9"},s(n.label),9,Fe))),128))],8,De)),e("div",Se,[e("div",We,[e("div",Pe,[a[4]||(a[4]=e("span",{class:"w-2.5 h-2.5 rounded-sm bg-indigo-500/70"},null,-1)),e("span",Ee,s(o.$t("users.trend_daily")),1)]),e("div",null,[e("span",Ne,s(o.$t("users.trend_avg"))+":",1),e("span",Re,s(j.value),1)]),e("div",null,[e("span",Ie,s(o.$t("users.trend_total"))+":",1),e("span",Ye,s(D.value),1)])]),w.value!=="stable"?(u(),d("div",Oe,[w.value==="up"?(u(),d("svg",Xe,[...a[5]||(a[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},null,-1)])])):(u(),d("svg",Qe,[...a[6]||(a[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 17h8m0 0V9m0 8l-8-8-4 4-6-6"},null,-1)])])),e("span",{class:C([w.value==="up"?"text-emerald-400":"text-red-400","font-medium"])},s(f.value)+"% ",3),e("span",qe,s(o.$t("users.trend_vs_prev")),1)])):U("",!0)])]))]))}}),Je={class:"mb-8"},Ke={class:"text-2xl font-bold text-white"},Ze={class:"text-slate-400 mt-1"},et={class:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4 mb-6"},tt={class:"relative flex-1 max-w-md"},st=["placeholder"],ot={class:"flex items-center gap-2 flex-wrap"},lt={value:"all"},at={value:"active"},nt={value:"inactive"},rt={value:"deleted"},it={value:"banned"},dt={value:"all"},ut={value:"user"},ct={value:"admin"},pt={value:"staff"},vt={value:"superadmin"},ht={value:"all"},ft={value:"FREE"},xt={value:"PREMIUM"},gt={value:"ENTERPRISE"},_t={key:0,class:"flex items-center justify-center py-20"},mt={class:"flex flex-col items-center gap-3"},bt={class:"text-slate-400 text-sm"},yt={key:1,class:"flex flex-col items-center justify-center py-20 text-center"},wt={class:"text-red-400 text-sm mb-2"},kt={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 mb-8"},$t={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},Ct={class:"flex items-center gap-3"},Mt={class:"text-xs text-slate-400 uppercase tracking-wider"},Bt={class:"text-2xl font-bold text-white"},jt={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},Dt={class:"flex items-center gap-3"},Ut={class:"text-xs text-slate-400 uppercase tracking-wider"},zt={class:"text-2xl font-bold text-emerald-400"},Tt={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},At={class:"flex items-center gap-3"},Vt={class:"text-xs text-slate-400 uppercase tracking-wider"},Lt={class:"text-2xl font-bold text-red-400"},Ht={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},Ft={class:"flex items-center gap-3"},St={class:"text-xs text-slate-400 uppercase tracking-wider"},Wt={class:"text-2xl font-bold text-amber-400"},Pt={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},Et={class:"flex items-center gap-3"},Nt={class:"text-xs text-slate-400 uppercase tracking-wider"},Rt={class:"text-2xl font-bold text-cyan-400"},It={class:"mb-8"},Yt={key:0,class:"mb-4 text-xs text-slate-500"},Ot={class:"text-slate-300 font-semibold"},Xt={key:1,class:"mb-4 px-4 py-3 bg-indigo-900/30 border border-indigo-700/50 rounded-xl flex items-center justify-between"},Qt={class:"text-sm text-indigo-300"},qt={class:"flex items-center gap-2"},Gt={class:"bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"},Jt={class:"overflow-x-auto"},Kt={class:"w-full text-sm"},Zt={class:"border-b border-slate-700 bg-slate-800/80"},es={class:"text-left py-3.5 px-4 w-10"},ts=["checked"],ss={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},os={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},ls={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},as={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},ns={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},rs={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},is={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},ds={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},us={class:"py-3.5 px-4"},cs=["checked","onChange"],ps={class:"py-3.5 px-4 text-slate-400 font-mono text-xs"},vs={class:"py-3.5 px-4"},hs={class:"py-3.5 px-4"},fs={class:"text-slate-300"},xs={class:"py-3.5 px-4"},gs={class:"py-3.5 px-4"},_s={class:"py-3.5 px-4"},ms={class:"py-3.5 px-4 text-slate-300 text-xs"},bs={class:"py-3.5 px-4"},ys={class:"text-slate-400 text-xs uppercase"},ws={class:"py-3.5 px-4"},ks={class:"flex items-center gap-2"},$s=["onClick"],Cs={key:0,class:"flex flex-col items-center justify-center py-16 text-center"},Ms={class:"text-slate-400 text-sm"},Bs={key:2,class:"flex items-center justify-between mt-6"},js={class:"text-xs text-slate-500"},Ds={class:"flex items-center gap-2"},Us=["disabled"],zs=["disabled"],Vs=se({__name:"index",setup(K){const S=fe(),$=pe(),z=m(()=>$.isAdmin?!0:!!$.user?.system_capabilities?.["users:view"]),p=m(()=>$.isAdmin?!0:!!$.user?.system_capabilities?.["users:edit"]);!z.value&&!$.isAdmin&&S.push("/");const h=_(!0),b=_(null),y=_([]),k=_(0),x=_(0),g=_(50),M=_(""),B=_("all"),j=_("all"),D=_("all"),w=_({total_users:0,active_users:0,deleted_users:0,banned_users:0,new_users_today:0,new_users_this_week:0,new_users_this_month:0,users_by_role:{},users_by_plan:{},users_by_language:{},users_with_person:0,users_without_person:0,registration_trend:[],active_organizations_count:0,total_memberships:0}),f=_([]),T=_(null);let W=null;function o(){W&&clearTimeout(W),W=setTimeout(()=>{x.value=0,c()},400)}O(M,()=>{o()}),O(B,()=>{x.value=0,c()}),O(j,()=>{x.value=0,c()}),O(D,()=>{x.value=0,c()});const a=m(()=>M.value!==""||B.value!=="all"||j.value!=="all"||D.value!=="all"),n=m(()=>y.value.length>0&&f.value.length===y.value.length);function r(){const l=xe("access_token").value;return l?{Authorization:`Bearer ${l}`}:{}}async function c(){h.value=!0,b.value=null;try{const t={skip:x.value,limit:g.value};if(M.value&&(t.search_term=M.value),B.value!=="all")switch(B.value){case"active":t.is_active=!0;break;case"inactive":t.is_active=!1;break;case"deleted":t.is_deleted=!0;break;case"banned":t.is_active=!1;break}j.value!=="all"&&(t.role=j.value),D.value!=="all"&&(t.plan_filter=D.value);const l=await $fetch("/api/v1/admin/users",{params:t,headers:r()});y.value=l.users,k.value=l.total}catch(t){console.error("[Users] Failed to fetch users:",t),b.value=t?.data?.detail||t?.message||"Failed to load users"}finally{h.value=!1}}async function v(){try{const t=await $fetch("/api/v1/admin/users/stats",{headers:r()});w.value=t}catch(t){console.error("[Users] Failed to fetch stats:",t)}}function P(){x.value+g.value0&&(x.value=Math.max(0,x.value-g.value),c())}function V(){n.value?f.value=[]:f.value=y.value.map(t=>t.id)}function L(t){const l=f.value.indexOf(t);l===-1?f.value.push(t):f.value.splice(l,1)}function q(){f.value=[]}async function E(){if(f.value.length!==0)try{await $fetch("/api/v1/admin/users/bulk-action",{method:"POST",headers:{...r(),"Content-Type":"application/json"},body:{user_ids:f.value,action:"activate"}}),N("success",`${f.value.length} user(s) activated successfully`),f.value=[],await c(),await v()}catch(t){console.error("[Users] Bulk activate failed:",t),N("error",t?.data?.detail||t?.message||"Bulk activate failed")}}async function H(){if(f.value.length!==0)try{await $fetch("/api/v1/admin/users/bulk-action",{method:"POST",headers:{...r(),"Content-Type":"application/json"},body:{user_ids:f.value,action:"deactivate"}}),N("success",`${f.value.length} user(s) deactivated successfully`),f.value=[],await c(),await v()}catch(t){console.error("[Users] Bulk deactivate failed:",t),N("error",t?.data?.detail||t?.message||"Bulk deactivate failed")}}async function Z(t){const l=!t.is_active;try{await $fetch(`/api/v1/admin/users/${t.id}`,{method:"PATCH",headers:{...r(),"Content-Type":"application/json"},body:{is_active:l}}),N("success",`User "${t.email}" ${l?"activated":"deactivated"} successfully`),await c(),await v()}catch(R){console.error("[Users] Toggle status failed:",R),N("error",R?.data?.detail||R?.message||"Failed to toggle user status")}}function oe(t){const l=t.toLowerCase();return l==="superadmin"?"bg-purple-500/20 text-purple-300":l==="admin"?"bg-indigo-500/20 text-indigo-300":l==="staff"?"bg-cyan-500/20 text-cyan-300":"bg-slate-500/20 text-slate-300"}function le(t){const l=t.toLowerCase();return l==="superadmin"?"Superadmin":l==="admin"?"Admin":l==="staff"?"Staff":"User"}function ae(t){return t.is_deleted?"bg-red-500/10 text-red-400":t.is_active?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"}function ne(t){return t.is_deleted?"bg-red-400":t.is_active?"bg-emerald-400":"bg-amber-400"}function re(t){return t.is_deleted?"Deleted":t.is_active?"Active":"Inactive"}function ie(t){const l=(t||"").toLowerCase();return l.includes("enterprise")||l.includes("vip")?"bg-purple-500/20 text-purple-300":l.includes("premium")||l.includes("pro")?"bg-amber-500/20 text-amber-300":"bg-slate-500/20 text-slate-300"}function de(t){if(!t)return"—";try{return new Date(t).toLocaleDateString("hu-HU",{year:"numeric",month:"short",day:"numeric"})}catch{return t}}function N(t,l){T.value={type:t,message:l},setTimeout(()=>{T.value=null},4e3)}return ve(()=>{c(),v()}),(t,l)=>{const R=ce;return u(),d("div",null,[e("div",Je,[e("h1",Ke,s(t.$t("users.title")),1),e("p",Ze,s(t.$t("users.subtitle")),1)]),e("div",et,[e("div",tt,[l[4]||(l[4]=e("svg",{class:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),X(e("input",{"onUpdate:modelValue":l[0]||(l[0]=i=>M.value=i),type:"text",placeholder:t.$t("common.search_placeholder"),class:"w-full pl-10 pr-4 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 transition"},null,8,st),[[he,M.value]])]),e("div",ot,[X(e("select",{"onUpdate:modelValue":l[1]||(l[1]=i=>B.value=i),class:"px-3 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 transition"},[e("option",lt,s(t.$t("users.all_statuses")),1),e("option",at,s(t.$t("users.status_active")),1),e("option",nt,s(t.$t("users.status_inactive")),1),e("option",rt,s(t.$t("users.status_deleted")),1),e("option",it,s(t.$t("users.status_banned")),1)],512),[[J,B.value]]),X(e("select",{"onUpdate:modelValue":l[2]||(l[2]=i=>j.value=i),class:"px-3 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 transition"},[e("option",dt,s(t.$t("users.all_roles")),1),e("option",ut,s(t.$t("users.role_user")),1),e("option",ct,s(t.$t("users.role_admin")),1),e("option",pt,s(t.$t("users.role_staff")),1),e("option",vt,s(t.$t("users.role_superadmin")),1)],512),[[J,j.value]]),X(e("select",{"onUpdate:modelValue":l[3]||(l[3]=i=>D.value=i),class:"px-3 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 transition"},[e("option",ht,s(t.$t("users.all_plans")),1),e("option",ft,s(t.$t("users.plan_free")),1),e("option",xt,s(t.$t("users.plan_premium")),1),e("option",gt,s(t.$t("users.plan_enterprise")),1)],512),[[J,D.value]])])]),h.value?(u(),d("div",_t,[e("div",mt,[l[5]||(l[5]=e("svg",{class:"w-8 h-8 text-indigo-400 animate-spin",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),e("p",bt,s(t.$t("common.loading")),1)])])):b.value?(u(),d("div",yt,[l[6]||(l[6]=e("svg",{class:"w-12 h-12 text-red-500 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})],-1)),e("p",wt,s(b.value),1),e("button",{onClick:c,class:"px-4 py-2 text-sm bg-indigo-600/20 text-indigo-300 hover:bg-indigo-600/30 rounded-lg transition"},s(t.$t("common.retry")),1)])):(u(),d(I,{key:2},[e("div",kt,[e("div",$t,[e("div",Ct,[l[7]||(l[7]=e("div",{class:"p-2 rounded-lg bg-indigo-500/10 text-indigo-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"})])],-1)),e("div",null,[e("p",Mt,s(t.$t("users.total_users")),1),e("p",Bt,s(w.value.total_users),1)])])]),e("div",jt,[e("div",Dt,[l[8]||(l[8]=e("div",{class:"p-2 rounded-lg bg-emerald-500/10 text-emerald-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})])],-1)),e("div",null,[e("p",Ut,s(t.$t("users.active_users")),1),e("p",zt,s(w.value.active_users),1)])])]),e("div",Tt,[e("div",At,[l[9]||(l[9]=e("div",{class:"p-2 rounded-lg bg-red-500/10 text-red-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})])],-1)),e("div",null,[e("p",Vt,s(t.$t("users.deleted_users")),1),e("p",Lt,s(w.value.deleted_users),1)])])]),e("div",Ht,[e("div",Ft,[l[10]||(l[10]=e("div",{class:"p-2 rounded-lg bg-amber-500/10 text-amber-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"})])],-1)),e("div",null,[e("p",St,s(t.$t("users.banned_users")),1),e("p",Wt,s(w.value.banned_users),1)])])]),e("div",Pt,[e("div",Et,[l[11]||(l[11]=e("div",{class:"p-2 rounded-lg bg-cyan-500/10 text-cyan-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})])],-1)),e("div",null,[e("p",Nt,s(t.$t("users.new_today")),1),e("p",Rt,s(w.value.new_users_today),1)])])])]),e("div",It,[ee(Ge,{data:w.value.registration_trend,loading:h.value},null,8,["data","loading"])]),a.value?(u(),d("div",Yt,[Y(s(t.$t("users.filtered_results"))+": ",1),e("span",Ot,s(y.value.length),1),Y(" / "+s(k.value)+" db ",1)])):U("",!0),f.value.length>0&&p.value?(u(),d("div",Xt,[e("p",Qt,s(t.$t("users.selected_count",{count:f.value.length})),1),e("div",qt,[e("button",{onClick:E,class:"px-3 py-1.5 text-xs font-medium bg-emerald-600/20 text-emerald-300 hover:bg-emerald-600/30 rounded-lg transition"},s(t.$t("users.bulk_activate")),1),e("button",{onClick:H,class:"px-3 py-1.5 text-xs font-medium bg-red-600/20 text-red-300 hover:bg-red-600/30 rounded-lg transition"},s(t.$t("users.bulk_deactivate")),1),e("button",{onClick:q,class:"px-3 py-1.5 text-xs font-medium bg-slate-600/20 text-slate-300 hover:bg-slate-600/30 rounded-lg transition"},s(t.$t("users.clear_selection")),1)])])):U("",!0),e("div",Gt,[e("div",Jt,[e("table",Kt,[e("thead",null,[e("tr",Zt,[e("th",es,[e("input",{type:"checkbox",checked:n.value,onChange:V,class:"rounded border-slate-600 bg-slate-700 text-indigo-600 focus:ring-indigo-500/50"},null,40,ts)]),l[12]||(l[12]=e("th",{class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},"ID",-1)),e("th",ss,s(t.$t("common.email")),1),e("th",os,s(t.$t("common.name")),1),e("th",ls,s(t.$t("users.role")),1),e("th",as,s(t.$t("common.status")),1),e("th",ns,s(t.$t("users.package")),1),e("th",rs,s(t.$t("users.registration")),1),e("th",is,s(t.$t("users.language")),1),e("th",ds,s(t.$t("common.actions")),1)])]),e("tbody",null,[(u(!0),d(I,null,Q(y.value,i=>(u(),d("tr",{key:i.id,class:"border-b border-slate-700/50 hover:bg-slate-700/30 transition"},[e("td",us,[e("input",{type:"checkbox",checked:f.value.includes(i.id),onChange:ue=>L(i.id),class:"rounded border-slate-600 bg-slate-700 text-indigo-600 focus:ring-indigo-500/50"},null,40,cs)]),e("td",ps,s(i.id),1),e("td",vs,[ee(R,{to:"/users/"+i.id,class:"text-sm font-medium text-white hover:underline cursor-pointer hover:text-indigo-400 transition-colors"},{default:te(()=>[Y(s(i.email),1)]),_:2},1032,["to"])]),e("td",hs,[e("span",fs,s(i.person_name||"—"),1)]),e("td",xs,[e("span",{class:C(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",oe(i.role)])},s(le(i.role)),3)]),e("td",gs,[e("span",{class:C(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",ae(i)])},[e("span",{class:C(["w-1.5 h-1.5 rounded-full mr-1.5",ne(i)])},null,2),Y(" "+s(re(i)),1)],2)]),e("td",_s,[e("span",{class:C(["px-2.5 py-0.5 rounded-full text-xs font-medium",ie(i.subscription_plan)])},s(i.subscription_plan||"—"),3)]),e("td",ms,s(de(i.created_at)),1),e("td",bs,[e("span",ys,s(i.preferred_language||"—"),1)]),e("td",ws,[e("div",ks,[ee(R,{to:"/users/"+i.id,class:"px-3 py-1.5 text-xs font-medium bg-slate-600/20 text-slate-300 hover:bg-slate-600/30 rounded-lg transition"},{default:te(()=>[Y(s(t.$t("common.view")),1)]),_:1},8,["to"]),!i.is_deleted&&p.value?(u(),d("button",{key:0,onClick:ue=>Z(i),class:C(["px-3 py-1.5 text-xs font-medium rounded-lg transition",i.is_active?"bg-red-500/10 text-red-300 hover:bg-red-500/20":"bg-emerald-500/10 text-emerald-300 hover:bg-emerald-500/20"])},s(i.is_active?t.$t("common.deactivate"):t.$t("common.activate")),11,$s)):U("",!0)])])]))),128))])])]),y.value.length===0&&!h.value?(u(),d("div",Cs,[l[13]||(l[13]=e("svg",{class:"w-12 h-12 text-slate-600 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"})],-1)),e("p",Ms,s(t.$t("common.no_results")),1)])):U("",!0)]),k.value>g.value?(u(),d("div",Bs,[e("p",js,s(t.$t("users.showing"))+" "+s(x.value+1)+"–"+s(Math.min(x.value+g.value,k.value))+" / "+s(k.value),1),e("div",Ds,[e("button",{onClick:A,disabled:x.value===0,class:C(["px-3 py-1.5 text-xs font-medium rounded-lg transition disabled:opacity-30 disabled:cursor-not-allowed",x.value>0?"bg-slate-700 text-slate-300 hover:bg-slate-600":"bg-slate-800 text-slate-600"])},s(t.$t("common.prev")),11,Us),e("button",{onClick:P,disabled:x.value+g.value>=k.value,class:C(["px-3 py-1.5 text-xs font-medium rounded-lg transition disabled:opacity-30 disabled:cursor-not-allowed",x.value+g.value